@jant/core 0.6.14 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/commands/import-site.js +88 -13
- package/bin/commands/migrate.js +55 -0
- package/bin/commands/posts/rebuild-html.js +184 -0
- package/bin/commands/site/snapshot/import.js +14 -10
- package/bin/lib/d1-query.js +23 -5
- package/bin/lib/migration-runner.js +29 -7
- package/bin/lib/node-database.js +32 -0
- package/bin/lib/site-snapshot.js +347 -46
- package/bin/lib/sql-export.js +1 -1
- package/bin/lib/thread-collection-migration.js +326 -0
- package/dist/app-C75Zc8dD.js +6 -0
- package/dist/{app-2i7-WQHg.js → app-C7_4oab9.js} +7774 -6425
- package/dist/client/.vite/manifest.json +8 -8
- package/dist/client/_assets/chunks/{url-pLre2DM_.js → url-CU9pEbk5.js} +1 -1
- package/dist/client/_assets/{client-BvID5ucz.js → client-Bq0vre8Y.js} +59 -38
- package/dist/client/_assets/client-D3VZyG4L.css +2 -0
- package/dist/client/_assets/client-auth-F2rb9WfF.js +5571 -0
- package/dist/{env-OHRKGcMj.js → env-BPYViDJJ.js} +1 -1
- package/dist/{export-DWn149b7.js → export-Dl5KCiEs.js} +1348 -128
- package/dist/{github-api-BgSiE71w.js → github-api-BNF35Lkx.js} +1 -1
- package/dist/{github-app-BbklkFmU.js → github-app-DdiD-bC4.js} +1 -1
- package/dist/{github-sync-C0zyF6XS.js → github-sync-Bqg62IvV.js} +3 -3
- package/dist/{github-sync-Ckk0sJxK.js → github-sync-HdK2EgvJ.js} +3 -3
- package/dist/index.js +5 -5
- package/dist/node.js +7 -7
- package/dist/{url-BMYO-Zlt.js → url-CbLAtlZe.js} +517 -12
- package/package.json +11 -10
- package/src/__tests__/bin/posts-rebuild-html.test.ts +137 -0
- package/src/__tests__/dev-navigation-defaults.test.ts +22 -0
- package/src/__tests__/export-hugo-build.test.ts +63 -4
- package/src/__tests__/export-import-roundtrip.test.ts +6 -4
- package/src/__tests__/export-service.test.ts +142 -9
- package/src/__tests__/helpers/app.ts +3 -0
- package/src/__tests__/helpers/export-fixtures.ts +2 -0
- package/src/__tests__/import-site-command.test.ts +65 -0
- package/src/__tests__/mise-config.test.ts +22 -0
- package/src/__tests__/vite-config.test.ts +45 -0
- package/src/app.tsx +16 -3
- package/src/client/__tests__/collection-created-notice.test.ts +36 -0
- package/src/client/__tests__/collection-form-bridge.test.ts +10 -1
- package/src/client/__tests__/collection-page-actions.test.ts +71 -2
- package/src/client/__tests__/compose-bridge.test.ts +316 -2
- package/src/client/__tests__/compose-shortcuts.test.ts +20 -0
- package/src/client/__tests__/feed-video-player.test.ts +16 -1
- package/src/client/__tests__/footnote-rail.test.ts +472 -0
- package/src/client/__tests__/hydrate-partial.test.ts +3 -0
- package/src/client/__tests__/toast.test.ts +82 -1
- package/src/client/collection-created-notice.ts +66 -0
- package/src/client/collection-form-bridge.ts +17 -0
- package/src/client/collection-navigation.ts +44 -0
- package/src/client/collection-page-actions.ts +57 -1
- package/src/client/components/__tests__/compose-format-convert.test.ts +0 -19
- package/src/client/components/__tests__/jant-collection-directory.test.ts +155 -6
- package/src/client/components/__tests__/jant-command-palette.test.ts +51 -0
- package/src/client/components/__tests__/jant-compose-dialog.test.ts +2268 -206
- package/src/client/components/__tests__/jant-compose-editor.test.ts +147 -59
- package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +114 -64
- package/src/client/components/__tests__/jant-config-editor.test.ts +405 -0
- package/src/client/components/__tests__/jant-media-lightbox.test.ts +121 -0
- package/src/client/components/__tests__/jant-nav-manager.test.ts +538 -2
- package/src/client/components/__tests__/jant-post-form.test.ts +2 -2
- package/src/client/components/__tests__/jant-post-menu.test.ts +47 -5
- package/src/client/components/__tests__/jant-settings-avatar.test.ts +2 -2
- package/src/client/components/__tests__/jant-settings-general.test.ts +3 -3
- package/src/client/components/collection-manager-types.ts +9 -3
- package/src/client/components/compose-format-convert.ts +5 -1
- package/src/client/components/compose-types.ts +55 -3
- package/src/client/components/jant-collection-directory.ts +165 -30
- package/src/client/components/jant-command-palette.ts +14 -7
- package/src/client/components/jant-compose-dialog.ts +1542 -694
- package/src/client/components/jant-compose-editor.ts +237 -99
- package/src/client/components/jant-compose-fullscreen.ts +27 -9
- package/src/client/components/jant-config-editor.ts +722 -0
- package/src/client/components/jant-media-lightbox.ts +100 -18
- package/src/client/components/jant-nav-manager.ts +1283 -54
- package/src/client/components/jant-post-form.ts +3 -3
- package/src/client/components/jant-post-menu.ts +177 -95
- package/src/client/components/nav-manager-types.ts +51 -2
- package/src/client/components/post-form-types.ts +1 -1
- package/src/client/compose-bridge.ts +147 -123
- package/src/client/compose-launch.ts +13 -0
- package/src/client/compose-shortcuts.ts +5 -1
- package/src/client/feed-video-player.ts +62 -2
- package/src/client/footnote-rail.ts +478 -0
- package/src/client/hydrate-partial.ts +2 -0
- package/src/client/media-lightbox-events.ts +63 -0
- package/src/client/post-refresh.ts +135 -0
- package/src/client/site-header-fragment.ts +38 -0
- package/src/client/tiptap/__tests__/blockquote-editing.test.ts +201 -0
- package/src/client/tiptap/__tests__/clear-formatting.test.ts +168 -0
- package/src/client/tiptap/__tests__/link-input-rules.test.ts +121 -0
- package/src/client/tiptap/__tests__/list-editing.test.ts +447 -0
- package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +727 -4
- package/src/client/tiptap/__tests__/table-controls.test.ts +263 -0
- package/src/client/tiptap/__tests__/table-size-picker.test.ts +179 -0
- package/src/client/tiptap/bubble-menu.ts +88 -10
- package/src/client/tiptap/continuous-lists.ts +102 -0
- package/src/client/tiptap/create-editor.ts +3 -0
- package/src/client/tiptap/extensions.ts +14 -5
- package/src/client/tiptap/link-input-rules.ts +4 -4
- package/src/client/tiptap/markdown-clipboard.ts +608 -11
- package/src/client/tiptap/slash-commands.ts +8 -1
- package/src/client/tiptap/structural-keymap.ts +211 -0
- package/src/client/tiptap/tab-indent.ts +8 -22
- package/src/client/tiptap/table-control-labels.ts +30 -0
- package/src/client/tiptap/table-controls.ts +537 -0
- package/src/client/tiptap/table-size-picker.ts +254 -0
- package/src/client/toast.ts +133 -39
- package/src/client-auth.ts +1 -0
- package/src/client.ts +1 -0
- package/src/db/__tests__/backfill-thread-activity.test.ts +234 -0
- package/src/db/__tests__/d1-query.test.ts +43 -1
- package/src/db/__tests__/migration-runner.test.ts +63 -0
- package/src/db/__tests__/migrations.test.ts +469 -0
- package/src/db/__tests__/thread-activity.test.ts +113 -0
- package/src/db/__tests__/thread-collection-migration.test.ts +364 -0
- package/src/db/backfills/0005_split_thread_activity_from_quiet_replies.sql +68 -0
- package/src/db/migrations/0027_old_blue_blade.sql +39 -0
- package/src/db/migrations/0028_superb_post.sql +2 -0
- package/src/db/migrations/0029_boring_magma.sql +1 -0
- package/src/db/migrations/0030_typical_vivisector.sql +50 -0
- package/src/db/migrations/0031_many_ego.sql +3 -0
- package/src/db/migrations/meta/0027_snapshot.json +2511 -0
- package/src/db/migrations/meta/0028_snapshot.json +2511 -0
- package/src/db/migrations/meta/0029_snapshot.json +2519 -0
- package/src/db/migrations/meta/0030_snapshot.json +2541 -0
- package/src/db/migrations/meta/0031_snapshot.json +2562 -0
- package/src/db/migrations/meta/_journal.json +35 -0
- package/src/db/migrations/pg/0025_moaning_epoch.sql +39 -0
- package/src/db/migrations/pg/0026_talented_killer_shrike.sql +2 -0
- package/src/db/migrations/pg/0027_short_cannonball.sql +1 -0
- package/src/db/migrations/pg/0028_perfect_sharon_carter.sql +27 -0
- package/src/db/migrations/pg/0029_rare_hairball.sql +3 -0
- package/src/db/migrations/pg/meta/0025_snapshot.json +3204 -0
- package/src/db/migrations/pg/meta/0026_snapshot.json +3204 -0
- package/src/db/migrations/pg/meta/0027_snapshot.json +3211 -0
- package/src/db/migrations/pg/meta/0028_snapshot.json +3248 -0
- package/src/db/migrations/pg/meta/0029_snapshot.json +3289 -0
- package/src/db/migrations/pg/meta/_journal.json +35 -0
- package/src/db/pg/schema.ts +46 -20
- package/src/db/rehearsal-fixtures/demo-current.json +39 -4
- package/src/db/rehearsal-fixtures/demo-current.sql +121 -6
- package/src/db/schema.ts +48 -20
- package/src/db/thread-activity.ts +101 -0
- package/src/i18n/__tests__/detect.test.ts +8 -2
- package/src/i18n/detect.ts +14 -5
- package/src/i18n/locales/public/en.po +222 -51
- package/src/i18n/locales/public/en.ts +1 -1
- package/src/i18n/locales/public/zh-Hans.po +216 -45
- package/src/i18n/locales/public/zh-Hans.ts +1 -1
- package/src/i18n/locales/public/zh-Hant.po +216 -45
- package/src/i18n/locales/public/zh-Hant.ts +1 -1
- package/src/i18n/locales/settings/en.po +513 -10
- package/src/i18n/locales/settings/en.ts +1 -1
- package/src/i18n/locales/settings/zh-Hans.po +515 -12
- package/src/i18n/locales/settings/zh-Hans.ts +1 -1
- package/src/i18n/locales/settings/zh-Hant.po +515 -12
- package/src/i18n/locales/settings/zh-Hant.ts +1 -1
- package/src/lib/__tests__/api-settings.test.ts +299 -0
- package/src/lib/__tests__/constants.test.ts +5 -0
- package/src/lib/__tests__/feed-policy.test.ts +25 -0
- package/src/lib/__tests__/feed.test.ts +168 -0
- package/src/lib/__tests__/footnotes-upgrade.test.ts +181 -0
- package/src/lib/__tests__/markdown-roundtrip-embed.test.ts +61 -0
- package/src/lib/__tests__/markdown-to-tiptap.test.ts +32 -4
- package/src/lib/__tests__/markdown.test.ts +24 -6
- package/src/lib/__tests__/navigation.test.ts +59 -2
- package/src/lib/__tests__/post-body-html.test.ts +176 -0
- package/src/lib/__tests__/post-display.test.ts +64 -0
- package/src/lib/__tests__/resolve-config.test.ts +113 -1
- package/src/lib/__tests__/slug.test.ts +18 -0
- package/src/lib/__tests__/summary.test.ts +82 -0
- package/src/lib/__tests__/timeline.test.ts +109 -70
- package/src/lib/__tests__/timezones.test.ts +31 -3
- package/src/lib/__tests__/tiptap-render.test.ts +268 -9
- package/src/lib/__tests__/tiptap-to-markdown.test.ts +6 -0
- package/src/lib/__tests__/translit.test.ts +87 -0
- package/src/lib/__tests__/url.test.ts +53 -0
- package/src/lib/__tests__/view.test.ts +53 -0
- package/src/lib/__tests__/worker-response-cache.test.ts +18 -1
- package/src/lib/api-settings.ts +239 -12
- package/src/lib/collection-sort.ts +7 -5
- package/src/lib/constants.ts +2 -0
- package/src/lib/feed-path.ts +25 -0
- package/src/lib/feed-policy.ts +64 -0
- package/src/lib/feed.ts +113 -11
- package/src/lib/footnotes.ts +264 -0
- package/src/lib/github-sync-site-config.ts +2 -0
- package/src/lib/hugo-markdown.ts +15 -3
- package/src/lib/jant-branding.ts +1 -0
- package/src/lib/link-preview.ts +25 -0
- package/src/lib/markdown-manager.ts +193 -5
- package/src/lib/markdown.ts +10 -3
- package/src/lib/navigation.ts +16 -3
- package/src/lib/post-body-html.ts +131 -0
- package/src/lib/post-display.ts +47 -8
- package/src/lib/render.tsx +9 -2
- package/src/lib/resolve-config.ts +100 -16
- package/src/lib/schemas.ts +133 -1
- package/src/lib/settings-paths.ts +5 -0
- package/src/lib/site-skill.ts +78 -0
- package/src/lib/summary.ts +16 -5
- package/src/lib/timeline.ts +137 -131
- package/src/lib/timezones.ts +54 -14
- package/src/lib/tiptap-render.ts +359 -83
- package/src/lib/translit.ts +288 -0
- package/src/lib/url.ts +123 -12
- package/src/lib/view.ts +58 -20
- package/src/lib/worker-response-cache.ts +11 -18
- package/src/middleware/__tests__/public-content-access.test.ts +91 -0
- package/src/middleware/config.ts +2 -2
- package/src/middleware/public-content-access.ts +87 -0
- package/src/node/__tests__/cli-export.test.ts +14 -0
- package/src/node/__tests__/cli-migrate.test.ts +6 -0
- package/src/node/__tests__/cli-site-snapshot.test.ts +205 -2
- package/src/node/__tests__/cli-snapshot-meta.test.ts +100 -0
- package/src/node/index.ts +2 -1
- package/src/preset.css +16 -2
- package/src/routes/__tests__/compose.test.ts +51 -0
- package/src/routes/__tests__/site-skill.test.ts +112 -0
- package/src/routes/api/__tests__/collections.test.ts +91 -19
- package/src/routes/api/__tests__/mcp.test.ts +65 -1
- package/src/routes/api/__tests__/nav-items.test.ts +91 -0
- package/src/routes/api/__tests__/palette.test.ts +44 -0
- package/src/routes/api/__tests__/public-access.test.ts +81 -0
- package/src/routes/api/__tests__/settings.test.ts +217 -0
- package/src/routes/api/collections.ts +22 -26
- package/src/routes/api/export.ts +2 -0
- package/src/routes/api/internal/__tests__/post-body-html.test.ts +163 -0
- package/src/routes/api/internal/__tests__/sites.test.ts +35 -2
- package/src/routes/api/internal/post-body-html.ts +43 -0
- package/src/routes/api/internal/sites.ts +24 -0
- package/src/routes/api/nav-items.ts +24 -1
- package/src/routes/api/posts.ts +14 -10
- package/src/routes/api/public/__tests__/archive.test.ts +35 -0
- package/src/routes/api/public/__tests__/posts.test.ts +246 -0
- package/src/routes/api/public/archive.ts +4 -0
- package/src/routes/api/public/posts.ts +48 -24
- package/src/routes/api/search.ts +3 -0
- package/src/routes/api/settings.ts +33 -0
- package/src/routes/auth/__tests__/setup.test.ts +7 -4
- package/src/routes/compose.tsx +8 -3
- package/src/routes/dash/settings.tsx +45 -2
- package/src/routes/feed/__tests__/feed.test.ts +210 -6
- package/src/routes/feed/__tests__/sitemap.test.ts +68 -1
- package/src/routes/feed/feed.ts +23 -14
- package/src/routes/pages/__tests__/archive-params.test.ts +384 -3
- package/src/routes/pages/__tests__/collection-routing.test.ts +63 -5
- package/src/routes/pages/__tests__/collections.test.ts +9 -9
- package/src/routes/pages/__tests__/featured.test.ts +6 -2
- package/src/routes/pages/__tests__/preview.test.ts +176 -0
- package/src/routes/pages/__tests__/search.test.ts +69 -0
- package/src/routes/pages/archive.tsx +90 -22
- package/src/routes/pages/collection.tsx +32 -19
- package/src/routes/pages/collections.tsx +6 -1
- package/src/routes/pages/page.tsx +86 -11
- package/src/routes/site-skill.ts +18 -0
- package/src/services/__tests__/auth.test.ts +7 -5
- package/src/services/__tests__/collection.test.ts +190 -44
- package/src/services/__tests__/navigation.test.ts +229 -21
- package/src/services/__tests__/post-timeline.test.ts +249 -39
- package/src/services/__tests__/post.test.ts +844 -5
- package/src/services/__tests__/search.test.ts +48 -1
- package/src/services/__tests__/settings.test.ts +8 -0
- package/src/services/__tests__/site-admin.test.ts +121 -1
- package/src/services/auth.ts +2 -2
- package/src/services/bootstrap.ts +3 -2
- package/src/services/collection.ts +224 -167
- package/src/services/export-theme/assets/client-site.css +1 -1
- package/src/services/export-theme/assets/client-site.js +46 -25
- package/src/services/export-theme/layouts/_default/list.html +18 -4
- package/src/services/export-theme/layouts/_default/rss.xml +8 -12
- package/src/services/export-theme/layouts/featured/list.html +5 -4
- package/src/services/export-theme/layouts/partials/featured-thread.html +56 -0
- package/src/services/export-theme/layouts/partials/footer.html +1 -1
- package/src/services/export-theme/layouts/partials/media-gallery.html +1 -0
- package/src/services/export-theme/styles/main.css +30 -2
- package/src/services/export.ts +94 -85
- package/src/services/mcp.ts +37 -27
- package/src/services/media.ts +1 -1
- package/src/services/navigation.ts +185 -46
- package/src/services/path.ts +4 -1
- package/src/services/post.ts +1142 -342
- package/src/services/search.ts +17 -2
- package/src/services/settings.ts +2 -10
- package/src/services/site-admin.ts +63 -43
- package/src/style-cjk-jp.css +1 -1
- package/src/style-cjk-kr.css +1 -1
- package/src/style-cjk-tc.css +1 -1
- package/src/style-cjk.css +1 -1
- package/src/styles/components.css +540 -14
- package/src/styles/site-media.css +111 -19
- package/src/styles/tokens.css +76 -10
- package/src/styles/ui.css +2227 -1347
- package/src/types/bindings.ts +3 -0
- package/src/types/config.ts +243 -12
- package/src/types/constants.ts +22 -1
- package/src/types/entities.ts +14 -8
- package/src/types/operations.ts +18 -10
- package/src/types/props.ts +20 -2
- package/src/types/raw-assets.d.ts +5 -0
- package/src/types/views.ts +22 -4
- package/src/ui/__tests__/font-themes.test.ts +42 -30
- package/src/ui/compose/ComposeDialog.tsx +109 -19
- package/src/ui/dash/appearance/NavigationContent.tsx +332 -4
- package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +23 -0
- package/src/ui/dash/settings/ConfigEditorContent.tsx +578 -0
- package/src/ui/dash/settings/GeneralContent.tsx +15 -5
- package/src/ui/dash/settings/SettingsRootContent.tsx +21 -1
- package/src/ui/dash/settings/__tests__/ConfigEditorContent.test.tsx +98 -0
- package/src/ui/dash/settings/__tests__/SettingsRootContent.test.tsx +15 -0
- package/src/ui/feed/CuratedThreadPreview.tsx +16 -4
- package/src/ui/feed/LinkCard.tsx +2 -12
- package/src/ui/feed/LinkPreview.tsx +2 -7
- package/src/ui/feed/NoteCard.tsx +10 -20
- package/src/ui/feed/PostStatusBadges.tsx +42 -3
- package/src/ui/feed/QuoteCard.tsx +2 -12
- package/src/ui/feed/ThreadPreview.tsx +26 -34
- package/src/ui/feed/TimelineFeed.tsx +2 -2
- package/src/ui/feed/__tests__/thread-preview.test.ts +197 -56
- package/src/ui/feed/__tests__/timeline-cards.test.ts +178 -3
- package/src/ui/feed/thread-preview-state.ts +5 -7
- package/src/ui/font-themes.ts +74 -26
- package/src/ui/layouts/BaseLayout.tsx +22 -8
- package/src/ui/layouts/__tests__/BaseLayout.test.tsx +64 -1
- package/src/ui/pages/ArchivePage.tsx +131 -24
- package/src/ui/pages/CollectionPage.tsx +101 -22
- package/src/ui/pages/CollectionsPage.tsx +3 -1
- package/src/ui/pages/PostPage.tsx +39 -12
- package/src/ui/pages/SearchPage.tsx +6 -14
- package/src/ui/pages/__tests__/ArchivePage.test.tsx +70 -0
- package/src/ui/pages/__tests__/PostPage.test.tsx +88 -0
- package/src/ui/shared/CollectionDirectory.tsx +13 -9
- package/src/ui/shared/CollectionsManager.tsx +17 -7
- package/src/ui/shared/DraftPreviewBar.tsx +49 -0
- package/src/ui/shared/HomePageBranding.tsx +2 -2
- package/src/ui/shared/MediaGallery.tsx +1 -0
- package/src/ui/shared/PostFooter.tsx +38 -13
- package/src/ui/shared/__tests__/home-page-branding.test.tsx +1 -1
- package/src/ui/shared/__tests__/media-gallery.test.ts +1 -0
- package/src/ui/shared/__tests__/navigation-labels.test.ts +2 -2
- package/src/ui/shared/__tests__/post-footer.test.ts +15 -0
- package/src/ui/shared/collection-management-labels.ts +33 -2
- package/src/ui/shared/custom-icons.ts +5 -0
- package/src/ui/shared/navigation-labels.ts +2 -4
- package/src/ui/shared/post-article-attributes.ts +52 -0
- package/dist/app-DZDlmh7C.js +0 -6
- package/dist/client/_assets/client-Cevfpm8H.css +0 -2
- package/dist/client/_assets/client-auth-v3yvhbgZ.js +0 -4736
- package/src/client/tiptap/wrapping-input-rules.ts +0 -102
|
@@ -18,8 +18,14 @@ describe("detectLocaleFromHeader", () => {
|
|
|
18
18
|
expect(detectLocaleFromHeader("fr")).toBe("en");
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
it("
|
|
22
|
-
expect(detectLocaleFromHeader("zh-CN")).toBe("
|
|
21
|
+
it("maps Simplified Chinese browser locales to zh-Hans", () => {
|
|
22
|
+
expect(detectLocaleFromHeader("zh-CN")).toBe("zh-Hans");
|
|
23
|
+
expect(detectLocaleFromHeader("zh-SG")).toBe("zh-Hans");
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("maps Traditional Chinese browser locales to zh-Hant", () => {
|
|
27
|
+
expect(detectLocaleFromHeader("zh-TW")).toBe("zh-Hant");
|
|
28
|
+
expect(detectLocaleFromHeader("zh-HK")).toBe("zh-Hant");
|
|
23
29
|
});
|
|
24
30
|
|
|
25
31
|
it("returns en for undefined", () => {
|
package/src/i18n/detect.ts
CHANGED
|
@@ -43,6 +43,11 @@ function mapTagToLocale(tag: string): Locale | undefined {
|
|
|
43
43
|
const normalized = tag.trim().toLowerCase();
|
|
44
44
|
if (!normalized) return undefined;
|
|
45
45
|
|
|
46
|
+
const cjkProfile = getCjkFontFromLanguageTag(normalized);
|
|
47
|
+
if (cjkProfile === "zh-Hans" || cjkProfile === "zh-Hant") {
|
|
48
|
+
return cjkProfile;
|
|
49
|
+
}
|
|
50
|
+
|
|
46
51
|
const primary = normalized.split("-")[0];
|
|
47
52
|
if (isLocale(primary)) return primary;
|
|
48
53
|
|
|
@@ -90,7 +95,7 @@ export function detectLocaleFromHeader(header: string | undefined): Locale {
|
|
|
90
95
|
return baseLocale;
|
|
91
96
|
}
|
|
92
97
|
|
|
93
|
-
/** Valid CJK
|
|
98
|
+
/** Valid CJK font profile values */
|
|
94
99
|
export const CJK_SERIF_FONT_VALUES = [
|
|
95
100
|
"off",
|
|
96
101
|
"zh-Hans",
|
|
@@ -111,12 +116,16 @@ export function isCjkSerifFont(value: unknown): value is CjkSerifFont {
|
|
|
111
116
|
}
|
|
112
117
|
|
|
113
118
|
/**
|
|
114
|
-
* Map a BCP 47 language tag to a CJK
|
|
119
|
+
* Map a BCP 47 language tag to a CJK font profile.
|
|
115
120
|
*
|
|
116
121
|
* @param tag - BCP 47 language tag (e.g. "zh-CN", "ja")
|
|
117
|
-
* @returns CJK
|
|
122
|
+
* @returns CJK font profile, or `undefined` if not a CJK language
|
|
123
|
+
* @example
|
|
124
|
+
* getCjkFontFromLanguageTag("zh-TW") // "zh-Hant"
|
|
118
125
|
*/
|
|
119
|
-
function
|
|
126
|
+
export function getCjkFontFromLanguageTag(
|
|
127
|
+
tag: string,
|
|
128
|
+
): Exclude<CjkSerifFont, "off"> | undefined {
|
|
120
129
|
const normalized = tag.trim().toLowerCase();
|
|
121
130
|
if (!normalized) return undefined;
|
|
122
131
|
|
|
@@ -177,7 +186,7 @@ export function detectCjkFontFromHeader(
|
|
|
177
186
|
entries.sort((a, b) => b.q - a.q);
|
|
178
187
|
|
|
179
188
|
for (const { tag } of entries) {
|
|
180
|
-
const font =
|
|
189
|
+
const font = getCjkFontFromLanguageTag(tag);
|
|
181
190
|
if (font) return font;
|
|
182
191
|
}
|
|
183
192
|
|
|
@@ -38,6 +38,11 @@ msgstr "{count, plural, one {Found # result} other {Found # results}}"
|
|
|
38
38
|
msgid "{count} images couldn't be saved to your library — their original links were kept."
|
|
39
39
|
msgstr "{count} images couldn't be saved to your library — their original links were kept."
|
|
40
40
|
|
|
41
|
+
#. @context: Value shown on a post's permalink control when the link is generated automatically — a stand-in for the path the server will assign. Sits next to real permalinks rendered as /my-post, so keep the leading slash
|
|
42
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
43
|
+
msgid "/…"
|
|
44
|
+
msgstr "/…"
|
|
45
|
+
|
|
41
46
|
#. @context: Placeholder for the custom collections link URL
|
|
42
47
|
#: src/ui/shared/collection-management-labels.ts
|
|
43
48
|
msgid "/archive?format=quote or https://example.com"
|
|
@@ -163,11 +168,41 @@ msgstr "Add alt text"
|
|
|
163
168
|
msgid "Add Collection"
|
|
164
169
|
msgstr "Add Collection"
|
|
165
170
|
|
|
171
|
+
#. @context: Compose table action
|
|
172
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
173
|
+
msgid "Add column after"
|
|
174
|
+
msgstr "Add column after"
|
|
175
|
+
|
|
176
|
+
#. @context: Compose table action
|
|
177
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
178
|
+
msgid "Add column before"
|
|
179
|
+
msgstr "Add column before"
|
|
180
|
+
|
|
166
181
|
#. @context: Primary action to add a custom link on collections page
|
|
167
182
|
#: src/ui/shared/collection-management-labels.ts
|
|
168
183
|
msgid "Add Link"
|
|
169
184
|
msgstr "Add Link"
|
|
170
185
|
|
|
186
|
+
#. @context: Compose table action
|
|
187
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
188
|
+
msgid "Add row above"
|
|
189
|
+
msgstr "Add row above"
|
|
190
|
+
|
|
191
|
+
#. @context: Compose table action
|
|
192
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
193
|
+
msgid "Add row below"
|
|
194
|
+
msgstr "Add row below"
|
|
195
|
+
|
|
196
|
+
#. @context: Action that adds a Collection to site navigation
|
|
197
|
+
#: src/ui/shared/collection-management-labels.ts
|
|
198
|
+
msgid "Add to Navigation"
|
|
199
|
+
msgstr "Add to Navigation"
|
|
200
|
+
|
|
201
|
+
#. @context: Loading label while adding a Collection to site navigation
|
|
202
|
+
#: src/ui/shared/collection-management-labels.ts
|
|
203
|
+
msgid "Adding…"
|
|
204
|
+
msgstr "Adding…"
|
|
205
|
+
|
|
171
206
|
#. @context: Archive filter - collection dropdown default
|
|
172
207
|
#: src/ui/pages/ArchivePage.tsx
|
|
173
208
|
msgid "All collections"
|
|
@@ -263,11 +298,6 @@ msgstr "Author (optional)"
|
|
|
263
298
|
msgid "Auto"
|
|
264
299
|
msgstr "Auto"
|
|
265
300
|
|
|
266
|
-
#. @context: Compose summary shown near the submit controls when a manual custom link is cleared
|
|
267
|
-
#: src/ui/compose/ComposeDialog.tsx
|
|
268
|
-
msgid "Auto link"
|
|
269
|
-
msgstr "Auto link"
|
|
270
|
-
|
|
271
301
|
#. @context: Usage label for the circle tile asset card
|
|
272
302
|
#: src/ui/pages/BrandPage.tsx
|
|
273
303
|
msgid "Avatar-ready"
|
|
@@ -352,6 +382,11 @@ msgstr "Checking link..."
|
|
|
352
382
|
msgid "Choose a new password."
|
|
353
383
|
msgstr "Choose a new password."
|
|
354
384
|
|
|
385
|
+
#. @context: Accessible title for the table dimension picker
|
|
386
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
387
|
+
msgid "Choose table size"
|
|
388
|
+
msgstr "Choose table size"
|
|
389
|
+
|
|
355
390
|
#. @context: Body copy for the logo downloads section
|
|
356
391
|
#: src/ui/pages/BrandPage.tsx
|
|
357
392
|
msgid "Choose the standard logo for most placements and the reverse logo when you need more contrast."
|
|
@@ -381,6 +416,11 @@ msgstr "Circle tile"
|
|
|
381
416
|
msgid "Clear filter"
|
|
382
417
|
msgstr "Clear filter"
|
|
383
418
|
|
|
419
|
+
#. @context: Post options row that leaves the composer; prompts to save a draft first if there is unsaved work
|
|
420
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
421
|
+
msgid "Close compose"
|
|
422
|
+
msgstr "Close compose"
|
|
423
|
+
|
|
384
424
|
#. @context: Close drawer button label
|
|
385
425
|
#: src/ui/layouts/SiteLayout.tsx
|
|
386
426
|
msgid "Close menu"
|
|
@@ -396,7 +436,12 @@ msgstr "collection"
|
|
|
396
436
|
msgid "Collection"
|
|
397
437
|
msgstr "Collection"
|
|
398
438
|
|
|
399
|
-
#. @context:
|
|
439
|
+
#. @context: Confirmation after adding a Collection to site navigation
|
|
440
|
+
#: src/ui/shared/collection-management-labels.ts
|
|
441
|
+
msgid "Collection added to navigation."
|
|
442
|
+
msgstr "Collection added to navigation."
|
|
443
|
+
|
|
444
|
+
#. @context: Confirmation shown after creating a collection
|
|
400
445
|
#: src/ui/shared/collection-management-labels.ts
|
|
401
446
|
msgid "Collection created."
|
|
402
447
|
msgstr "Collection created."
|
|
@@ -467,6 +512,11 @@ msgstr "Compare it against the theme controls"
|
|
|
467
512
|
msgid "Complete Setup"
|
|
468
513
|
msgstr "Complete Setup"
|
|
469
514
|
|
|
515
|
+
#. @context: Accessible name for the compose dialog
|
|
516
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
517
|
+
msgid "Compose"
|
|
518
|
+
msgstr "Compose"
|
|
519
|
+
|
|
470
520
|
#. @context: Password reset form field
|
|
471
521
|
#: src/routes/auth/reset.tsx
|
|
472
522
|
msgid "Confirm Password"
|
|
@@ -477,11 +527,21 @@ msgstr "Confirm Password"
|
|
|
477
527
|
msgid "Continue →"
|
|
478
528
|
msgstr "Continue →"
|
|
479
529
|
|
|
530
|
+
#. @context: Tooltip on the draft badge, which opens the editor
|
|
531
|
+
#: src/ui/feed/PostStatusBadges.tsx
|
|
532
|
+
msgid "Continue writing this draft"
|
|
533
|
+
msgstr "Continue writing this draft"
|
|
534
|
+
|
|
480
535
|
#. @context: Controls section heading on sample page
|
|
481
536
|
#: src/ui/pages/ThemeSamplePage.tsx
|
|
482
537
|
msgid "Controls"
|
|
483
538
|
msgstr "Controls"
|
|
484
539
|
|
|
540
|
+
#. @context: Error after a Collection could not be added to site navigation
|
|
541
|
+
#: src/ui/shared/collection-management-labels.ts
|
|
542
|
+
msgid "Couldn't add this collection to navigation. Try again."
|
|
543
|
+
msgstr "Couldn't add this collection to navigation. Try again."
|
|
544
|
+
|
|
485
545
|
#. @context: Error toast when account creation fails
|
|
486
546
|
#. @context: Error toast when account creation fails
|
|
487
547
|
#. @context: Error toast when account creation fails
|
|
@@ -570,6 +630,11 @@ msgstr "Default preview image for social shares and link unfurls."
|
|
|
570
630
|
msgid "Delete"
|
|
571
631
|
msgstr "Delete"
|
|
572
632
|
|
|
633
|
+
#. @context: Compose table action
|
|
634
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
635
|
+
msgid "Delete column"
|
|
636
|
+
msgstr "Delete column"
|
|
637
|
+
|
|
573
638
|
#. @context: Draft item action
|
|
574
639
|
#: src/ui/compose/ComposeDialog.tsx
|
|
575
640
|
msgid "Delete Draft"
|
|
@@ -580,10 +645,20 @@ msgstr "Delete Draft"
|
|
|
580
645
|
msgid "Delete image"
|
|
581
646
|
msgstr "Delete image"
|
|
582
647
|
|
|
648
|
+
#. @context: Compose table action
|
|
649
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
650
|
+
msgid "Delete row"
|
|
651
|
+
msgstr "Delete row"
|
|
652
|
+
|
|
653
|
+
#. @context: Destructive compose table action
|
|
654
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
655
|
+
msgid "Delete table"
|
|
656
|
+
msgstr "Delete table"
|
|
657
|
+
|
|
583
658
|
#. @context: Confirm dialog for deleting a collection
|
|
584
659
|
#: src/ui/shared/collection-management-labels.ts
|
|
585
|
-
msgid "Delete this collection permanently?
|
|
586
|
-
msgstr "Delete this collection permanently?
|
|
660
|
+
msgid "Delete this collection permanently? Threads inside won't be removed."
|
|
661
|
+
msgstr "Delete this collection permanently? Threads inside won't be removed."
|
|
587
662
|
|
|
588
663
|
#. @context: Hint shown on signin page when demo credentials are pre-filled
|
|
589
664
|
#: src/routes/auth/signin.tsx
|
|
@@ -696,11 +771,28 @@ msgstr "Download SVG"
|
|
|
696
771
|
msgid "Download the official Jant logo, icons, and preview files."
|
|
697
772
|
msgstr "Download the official Jant logo, icons, and preview files."
|
|
698
773
|
|
|
774
|
+
#. @context: Post status badge for an unpublished draft, shown to the author only
|
|
775
|
+
#: src/ui/feed/PostStatusBadges.tsx
|
|
776
|
+
msgid "Draft"
|
|
777
|
+
msgstr "Draft"
|
|
778
|
+
|
|
779
|
+
#. @context: Accessible label for a draft item's more-actions button
|
|
780
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
781
|
+
msgid "Draft actions"
|
|
782
|
+
msgstr "Draft actions"
|
|
783
|
+
|
|
699
784
|
#. @context: Toast after draft deletion
|
|
700
785
|
#: src/ui/compose/ComposeDialog.tsx
|
|
701
786
|
msgid "Draft deleted."
|
|
702
787
|
msgstr "Draft deleted."
|
|
703
788
|
|
|
789
|
+
#. @context: Browser title prefix for a draft preview page
|
|
790
|
+
#. @context: Status label above a draft preview page
|
|
791
|
+
#: src/routes/pages/page.tsx
|
|
792
|
+
#: src/ui/shared/DraftPreviewBar.tsx
|
|
793
|
+
msgid "Draft preview"
|
|
794
|
+
msgstr "Draft preview"
|
|
795
|
+
|
|
704
796
|
#. @context: Toast shown when a local draft is restored on compose open
|
|
705
797
|
#: src/ui/compose/ComposeDialog.tsx
|
|
706
798
|
msgid "Draft restored."
|
|
@@ -725,11 +817,9 @@ msgstr "Drafts"
|
|
|
725
817
|
msgid "Drag collections, links, and dividers into the order you want."
|
|
726
818
|
msgstr "Drag collections, links, and dividers into the order you want."
|
|
727
819
|
|
|
728
|
-
#. @context: Compose dialog header title when editing a post
|
|
729
820
|
#. @context: Per-collection edit action
|
|
730
821
|
#. @context: Per-collection edit action
|
|
731
822
|
#. @context: Per-collection edit action
|
|
732
|
-
#: src/ui/compose/ComposeDialog.tsx
|
|
733
823
|
#: src/ui/pages/CollectionEditorPage.tsx
|
|
734
824
|
#: src/ui/pages/CollectionEditorPage.tsx
|
|
735
825
|
#: src/ui/shared/collection-management-labels.ts
|
|
@@ -741,11 +831,21 @@ msgstr "Edit"
|
|
|
741
831
|
msgid "Edit custom link"
|
|
742
832
|
msgstr "Edit custom link"
|
|
743
833
|
|
|
834
|
+
#. @context: Action in the draft preview status bar that opens the editor
|
|
835
|
+
#: src/ui/shared/DraftPreviewBar.tsx
|
|
836
|
+
msgid "Edit draft"
|
|
837
|
+
msgstr "Edit draft"
|
|
838
|
+
|
|
744
839
|
#. @context: Button to manually edit the collection link
|
|
745
840
|
#: src/ui/shared/collection-management-labels.ts
|
|
746
841
|
msgid "Edit link"
|
|
747
842
|
msgstr "Edit link"
|
|
748
843
|
|
|
844
|
+
#. @context: Action that opens Navigation settings for a Collection already in navigation
|
|
845
|
+
#: src/ui/shared/collection-management-labels.ts
|
|
846
|
+
msgid "Edit Navigation"
|
|
847
|
+
msgstr "Edit Navigation"
|
|
848
|
+
|
|
749
849
|
#. @context: Compose dialog header title in edit mode
|
|
750
850
|
#: src/ui/compose/ComposeDialog.tsx
|
|
751
851
|
msgid "Edit post"
|
|
@@ -756,6 +856,11 @@ msgstr "Edit post"
|
|
|
756
856
|
msgid "Edit publish date"
|
|
757
857
|
msgstr "Edit publish date"
|
|
758
858
|
|
|
859
|
+
#. @context: Marker above the composer when changing a post that is already published
|
|
860
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
861
|
+
msgid "Editing"
|
|
862
|
+
msgstr "Editing"
|
|
863
|
+
|
|
759
864
|
#. @context: Sample link post title on the theme sample page
|
|
760
865
|
#: src/ui/pages/ThemeSamplePage.tsx
|
|
761
866
|
msgid "Editorial interfaces worth borrowing from"
|
|
@@ -783,20 +888,6 @@ msgstr "Enter a valid date."
|
|
|
783
888
|
msgid "Enter a valid URL starting with http://, https://, or mailto:."
|
|
784
889
|
msgstr "Enter a valid URL starting with http://, https://, or mailto:."
|
|
785
890
|
|
|
786
|
-
#. @context: Plural entry count label
|
|
787
|
-
#. @context: Plural entry count label
|
|
788
|
-
#: src/ui/shared/CollectionDirectory.tsx
|
|
789
|
-
#: src/ui/shared/CollectionsManager.tsx
|
|
790
|
-
msgid "entries"
|
|
791
|
-
msgstr "entries"
|
|
792
|
-
|
|
793
|
-
#. @context: Singular entry count label
|
|
794
|
-
#. @context: Singular entry count label
|
|
795
|
-
#: src/ui/shared/CollectionDirectory.tsx
|
|
796
|
-
#: src/ui/shared/CollectionsManager.tsx
|
|
797
|
-
msgid "entry"
|
|
798
|
-
msgstr "entry"
|
|
799
|
-
|
|
800
891
|
#. @context: Usage label for the brand pack card
|
|
801
892
|
#: src/ui/pages/BrandPage.tsx
|
|
802
893
|
msgid "Everything in one download"
|
|
@@ -1013,6 +1104,11 @@ msgstr "Inline emphasis"
|
|
|
1013
1104
|
msgid "Inline link"
|
|
1014
1105
|
msgstr "Inline link"
|
|
1015
1106
|
|
|
1107
|
+
#. @context: Accessible label for a table size option. %rows% and %cols% are replaced with dimensions
|
|
1108
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
1109
|
+
msgid "Insert %rows% by %cols% table"
|
|
1110
|
+
msgstr "Insert %rows% by %cols% table"
|
|
1111
|
+
|
|
1016
1112
|
#. @context: Sample note summary suffix on the theme sample page
|
|
1017
1113
|
#: src/ui/pages/ThemeSamplePage.tsx
|
|
1018
1114
|
msgid "instead of judging it as an isolated swatch."
|
|
@@ -1070,6 +1166,11 @@ msgstr "Label"
|
|
|
1070
1166
|
msgid "Label (optional)"
|
|
1071
1167
|
msgstr "Label (optional)"
|
|
1072
1168
|
|
|
1169
|
+
#. @context: Tooltip text for the timestamp on an unpublished draft
|
|
1170
|
+
#: src/ui/shared/PostFooter.tsx
|
|
1171
|
+
msgid "Last edited on {date} at {time}"
|
|
1172
|
+
msgstr "Last edited on {date} at {time}"
|
|
1173
|
+
|
|
1073
1174
|
#. @context: Active browse tab label on sample page
|
|
1074
1175
|
#. @context: Browser page title for the latest feed
|
|
1075
1176
|
#. @context: Page heading for the latest posts feed
|
|
@@ -1128,6 +1229,11 @@ msgstr "Link added."
|
|
|
1128
1229
|
msgid "Link removed."
|
|
1129
1230
|
msgstr "Link removed."
|
|
1130
1231
|
|
|
1232
|
+
#. @context: Description for the featured system navigation toggle
|
|
1233
|
+
#: src/ui/shared/navigation-labels.ts
|
|
1234
|
+
msgid "Link to posts you've marked as featured."
|
|
1235
|
+
msgstr "Link to posts you've marked as featured."
|
|
1236
|
+
|
|
1131
1237
|
#. @context: Description for the archive system navigation toggle
|
|
1132
1238
|
#: src/ui/shared/navigation-labels.ts
|
|
1133
1239
|
msgid "Link to the post archive"
|
|
@@ -1138,15 +1244,10 @@ msgstr "Link to the post archive"
|
|
|
1138
1244
|
msgid "Link to your collections page"
|
|
1139
1245
|
msgstr "Link to your collections page"
|
|
1140
1246
|
|
|
1141
|
-
#. @context: Description for the featured system navigation toggle
|
|
1142
|
-
#: src/ui/shared/navigation-labels.ts
|
|
1143
|
-
msgid "Link to your featured posts. If it comes before Latest, the homepage opens here."
|
|
1144
|
-
msgstr "Link to your featured posts. If it comes before Latest, the homepage opens here."
|
|
1145
|
-
|
|
1146
1247
|
#. @context: Description for the latest system navigation toggle
|
|
1147
1248
|
#: src/ui/shared/navigation-labels.ts
|
|
1148
|
-
msgid "Link to your latest posts.
|
|
1149
|
-
msgstr "Link to your latest posts.
|
|
1249
|
+
msgid "Link to your latest posts. Your homepage shows this feed."
|
|
1250
|
+
msgstr "Link to your latest posts. Your homepage shows this feed."
|
|
1150
1251
|
|
|
1151
1252
|
#. @context: Toast after saving a custom collections link
|
|
1152
1253
|
#: src/ui/shared/collection-management-labels.ts
|
|
@@ -1293,10 +1394,10 @@ msgstr "New Password"
|
|
|
1293
1394
|
msgid "New post"
|
|
1294
1395
|
msgstr "New post"
|
|
1295
1396
|
|
|
1296
|
-
#. @context:
|
|
1297
|
-
#: src/ui/
|
|
1298
|
-
msgid "
|
|
1299
|
-
msgstr "
|
|
1397
|
+
#. @context: Archive page meta note explaining the active sort order
|
|
1398
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
1399
|
+
msgid "newest changes first"
|
|
1400
|
+
msgstr "newest changes first"
|
|
1300
1401
|
|
|
1301
1402
|
#. @context: Collection sort order option
|
|
1302
1403
|
#. @context: Collection sort order option
|
|
@@ -1325,8 +1426,8 @@ msgstr "No collections match that search. Try a different name."
|
|
|
1325
1426
|
#: src/ui/pages/CollectionsPage.tsx
|
|
1326
1427
|
#: src/ui/shared/CollectionDirectory.tsx
|
|
1327
1428
|
#: src/ui/shared/CollectionsManager.tsx
|
|
1328
|
-
msgid "No collections yet. Start one to organize
|
|
1329
|
-
msgstr "No collections yet. Start one to organize
|
|
1429
|
+
msgid "No collections yet. Start one to organize threads by topic."
|
|
1430
|
+
msgstr "No collections yet. Start one to organize threads by topic."
|
|
1330
1431
|
|
|
1331
1432
|
#. @context: Drafts panel empty state
|
|
1332
1433
|
#: src/ui/compose/ComposeDialog.tsx
|
|
@@ -1348,6 +1449,11 @@ msgstr "No results. Try different keywords."
|
|
|
1348
1449
|
msgid "No threads match these filters. Try adjusting your selection or clear all filters."
|
|
1349
1450
|
msgstr "No threads match these filters. Try adjusting your selection or clear all filters."
|
|
1350
1451
|
|
|
1452
|
+
#. @context: Action to dismiss the post-create Collection navigation prompt
|
|
1453
|
+
#: src/ui/shared/CollectionsManager.tsx
|
|
1454
|
+
msgid "Not now"
|
|
1455
|
+
msgstr "Not now"
|
|
1456
|
+
|
|
1351
1457
|
#. @context: Compose format tab
|
|
1352
1458
|
#. @context: Post format label - note
|
|
1353
1459
|
#. @context: Post format label on theme sample content card
|
|
@@ -1371,14 +1477,19 @@ msgstr "Notes"
|
|
|
1371
1477
|
|
|
1372
1478
|
#. @context: Empty state message on an aggregate collection page
|
|
1373
1479
|
#: src/ui/pages/CollectionPage.tsx
|
|
1374
|
-
msgid "Nothing here yet. Add
|
|
1375
|
-
msgstr "Nothing here yet. Add
|
|
1480
|
+
msgid "Nothing here yet. Add threads to one of these collections to fill this view."
|
|
1481
|
+
msgstr "Nothing here yet. Add threads to one of these collections to fill this view."
|
|
1376
1482
|
|
|
1377
1483
|
#. @context: Empty state message on featured page
|
|
1378
1484
|
#: src/ui/pages/FeaturedPage.tsx
|
|
1379
1485
|
msgid "Nothing in Featured yet. Mark a post as featured to show it here."
|
|
1380
1486
|
msgstr "Nothing in Featured yet. Mark a post as featured to show it here."
|
|
1381
1487
|
|
|
1488
|
+
#. @context: Value shown on a post's date control when it will publish at the current time
|
|
1489
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
1490
|
+
msgid "Now"
|
|
1491
|
+
msgstr "Now"
|
|
1492
|
+
|
|
1382
1493
|
#. @context: Collection sort order option
|
|
1383
1494
|
#. @context: Collection sort order option
|
|
1384
1495
|
#: src/ui/pages/CollectionPage.tsx
|
|
@@ -1459,6 +1570,11 @@ msgstr ""
|
|
|
1459
1570
|
msgid "Paste a URL..."
|
|
1460
1571
|
msgstr "Paste a URL..."
|
|
1461
1572
|
|
|
1573
|
+
#. @context: Post status badge for a pinned post
|
|
1574
|
+
#: src/ui/feed/PostStatusBadges.tsx
|
|
1575
|
+
msgid "Pinned"
|
|
1576
|
+
msgstr "Pinned"
|
|
1577
|
+
|
|
1462
1578
|
#. @context: Compose button - publish post
|
|
1463
1579
|
#: src/ui/compose/ComposeDialog.tsx
|
|
1464
1580
|
msgid "Post"
|
|
@@ -1484,7 +1600,9 @@ msgstr "Post privately"
|
|
|
1484
1600
|
msgid "Press N to write"
|
|
1485
1601
|
msgstr "Press N to write"
|
|
1486
1602
|
|
|
1603
|
+
#. @context: Draft item action that opens its rendered preview
|
|
1487
1604
|
#. @context: Ghost button label on sample page
|
|
1605
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
1488
1606
|
#: src/ui/pages/ThemeSamplePage.tsx
|
|
1489
1607
|
msgid "Preview"
|
|
1490
1608
|
msgstr "Preview"
|
|
@@ -1520,7 +1638,9 @@ msgstr "Primary logo files"
|
|
|
1520
1638
|
|
|
1521
1639
|
#. @context: Archive visibility filter - private posts
|
|
1522
1640
|
#. @context: Compose publish settings visibility option
|
|
1641
|
+
#. @context: Post status badge for a private post
|
|
1523
1642
|
#: src/ui/compose/ComposeDialog.tsx
|
|
1643
|
+
#: src/ui/feed/PostStatusBadges.tsx
|
|
1524
1644
|
#: src/ui/pages/ArchivePage.tsx
|
|
1525
1645
|
msgid "Private"
|
|
1526
1646
|
msgstr "Private"
|
|
@@ -1539,11 +1659,6 @@ msgstr "Public"
|
|
|
1539
1659
|
msgid "Publish"
|
|
1540
1660
|
msgstr "Publish"
|
|
1541
1661
|
|
|
1542
|
-
#. @context: Compose summary shown near the submit controls when an edited post no longer has a custom publish date
|
|
1543
|
-
#: src/ui/compose/ComposeDialog.tsx
|
|
1544
|
-
msgid "Publish now"
|
|
1545
|
-
msgstr "Publish now"
|
|
1546
|
-
|
|
1547
1662
|
#. @context: Compose publish settings panel title
|
|
1548
1663
|
#: src/ui/compose/ComposeDialog.tsx
|
|
1549
1664
|
msgid "Publish settings"
|
|
@@ -1674,10 +1789,8 @@ msgstr "Replies"
|
|
|
1674
1789
|
|
|
1675
1790
|
#. @context: Archive tile label for a single thread reply
|
|
1676
1791
|
#. @context: Compose button - reply to post
|
|
1677
|
-
#. @context: Compose dialog header title when replying to a post
|
|
1678
1792
|
#. @context: Reply button label in the post footer
|
|
1679
1793
|
#: src/ui/compose/ComposeDialog.tsx
|
|
1680
|
-
#: src/ui/compose/ComposeDialog.tsx
|
|
1681
1794
|
#: src/ui/pages/ArchivePage.tsx
|
|
1682
1795
|
#: src/ui/shared/PostFooter.tsx
|
|
1683
1796
|
msgid "Reply"
|
|
@@ -1811,6 +1924,16 @@ msgstr "Settings"
|
|
|
1811
1924
|
msgid "Shared links"
|
|
1812
1925
|
msgstr "Shared links"
|
|
1813
1926
|
|
|
1927
|
+
#. @context: Archive view option - grid
|
|
1928
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
1929
|
+
msgid "Show as a grid of tiles"
|
|
1930
|
+
msgstr "Show as a grid of tiles"
|
|
1931
|
+
|
|
1932
|
+
#. @context: Archive view option - list
|
|
1933
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
1934
|
+
msgid "Show as a list with full posts"
|
|
1935
|
+
msgstr "Show as a list with full posts"
|
|
1936
|
+
|
|
1814
1937
|
#. @context: Collapse expanded thread ancestor context in the feed
|
|
1815
1938
|
#. @context: Collapse expanded thread ancestor context in the feed
|
|
1816
1939
|
#. @context: Collapse reply context
|
|
@@ -1912,6 +2035,21 @@ msgstr "Something doesn't look right. Check the form and try again."
|
|
|
1912
2035
|
msgid "Sort"
|
|
1913
2036
|
msgstr "Sort"
|
|
1914
2037
|
|
|
2038
|
+
#. @context: Archive sort option - threads that recently gained a post first
|
|
2039
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
2040
|
+
msgid "Sort by when each thread was last added to"
|
|
2041
|
+
msgstr "Sort by when each thread was last added to"
|
|
2042
|
+
|
|
2043
|
+
#. @context: Archive sort option - newest published first
|
|
2044
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
2045
|
+
msgid "Sort by when each thread was published"
|
|
2046
|
+
msgstr "Sort by when each thread was published"
|
|
2047
|
+
|
|
2048
|
+
#. @context: Archive sort toggle group label
|
|
2049
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
2050
|
+
msgid "Sort order"
|
|
2051
|
+
msgstr "Sort order"
|
|
2052
|
+
|
|
1915
2053
|
#. @context: Collection form field
|
|
1916
2054
|
#: src/ui/shared/collection-management-labels.ts
|
|
1917
2055
|
msgid "Sort Order"
|
|
@@ -1982,6 +2120,16 @@ msgstr "Switch the palette and mode without opening settings or changing the act
|
|
|
1982
2120
|
msgid "Switch to the white logo when the standard green version would lose contrast."
|
|
1983
2121
|
msgstr "Switch to the white logo when the standard green version would lose contrast."
|
|
1984
2122
|
|
|
2123
|
+
#. @context: Accessible label for the compose table toolbar
|
|
2124
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
2125
|
+
msgid "Table controls"
|
|
2126
|
+
msgstr "Table controls"
|
|
2127
|
+
|
|
2128
|
+
#. @context: Compose table menu button label
|
|
2129
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
2130
|
+
msgid "Table options"
|
|
2131
|
+
msgstr "Table options"
|
|
2132
|
+
|
|
1985
2133
|
#. @context: Label on failed upload overlay button, tells user tapping retries the upload
|
|
1986
2134
|
#: src/ui/compose/ComposeDialog.tsx
|
|
1987
2135
|
msgid "Tap to retry"
|
|
@@ -2060,8 +2208,8 @@ msgstr "This article is here to answer a specific question: does the default acc
|
|
|
2060
2208
|
|
|
2061
2209
|
#. @context: Empty state message
|
|
2062
2210
|
#: src/ui/pages/CollectionPage.tsx
|
|
2063
|
-
msgid "This collection is empty. Add
|
|
2064
|
-
msgstr "This collection is empty. Add
|
|
2211
|
+
msgid "This collection is empty. Add threads from the editor."
|
|
2212
|
+
msgstr "This collection is empty. Add threads from the editor."
|
|
2065
2213
|
|
|
2066
2214
|
#. @context: Collection link help text
|
|
2067
2215
|
#: src/ui/shared/collection-management-labels.ts
|
|
@@ -2094,6 +2242,11 @@ msgstr "This link is already in use. Choose something else."
|
|
|
2094
2242
|
msgid "This link is reserved. Choose something else."
|
|
2095
2243
|
msgstr "This link is reserved. Choose something else."
|
|
2096
2244
|
|
|
2245
|
+
#. @context: Explanation in the draft preview status bar
|
|
2246
|
+
#: src/ui/shared/DraftPreviewBar.tsx
|
|
2247
|
+
msgid "This post isn’t published."
|
|
2248
|
+
msgstr "This post isn’t published."
|
|
2249
|
+
|
|
2097
2250
|
#. @context: Sample link post body prefix on the theme sample page
|
|
2098
2251
|
#: src/ui/pages/ThemeSamplePage.tsx
|
|
2099
2252
|
msgid "This reference is useful because it treats links and citations as part of the reading rhythm. Keep that in mind while tuning the"
|
|
@@ -2123,10 +2276,14 @@ msgstr "This uses the real single-post detail rendering with a longer article, i
|
|
|
2123
2276
|
|
|
2124
2277
|
#. @context: Archive month header count unit for a single thread
|
|
2125
2278
|
#. @context: Archive page summary unit for a single matching thread
|
|
2279
|
+
#. @context: Singular thread count label
|
|
2280
|
+
#. @context: Singular thread count label
|
|
2126
2281
|
#. @context: Singular thread count label on collection detail page
|
|
2127
2282
|
#: src/ui/pages/ArchivePage.tsx
|
|
2128
2283
|
#: src/ui/pages/ArchivePage.tsx
|
|
2129
2284
|
#: src/ui/pages/CollectionPage.tsx
|
|
2285
|
+
#: src/ui/shared/CollectionDirectory.tsx
|
|
2286
|
+
#: src/ui/shared/CollectionsManager.tsx
|
|
2130
2287
|
msgid "thread"
|
|
2131
2288
|
msgstr "thread"
|
|
2132
2289
|
|
|
@@ -2143,11 +2300,15 @@ msgstr "Thread accents"
|
|
|
2143
2300
|
#. @context: Archive feed title segment for hasReplies=1 filter
|
|
2144
2301
|
#. @context: Archive month header count unit for multiple threads
|
|
2145
2302
|
#. @context: Archive page summary unit for multiple matching threads
|
|
2303
|
+
#. @context: Plural thread count label
|
|
2304
|
+
#. @context: Plural thread count label
|
|
2146
2305
|
#. @context: Plural thread count label on collection detail page
|
|
2147
2306
|
#: src/routes/pages/archive.tsx
|
|
2148
2307
|
#: src/ui/pages/ArchivePage.tsx
|
|
2149
2308
|
#: src/ui/pages/ArchivePage.tsx
|
|
2150
2309
|
#: src/ui/pages/CollectionPage.tsx
|
|
2310
|
+
#: src/ui/shared/CollectionDirectory.tsx
|
|
2311
|
+
#: src/ui/shared/CollectionsManager.tsx
|
|
2151
2312
|
msgid "threads"
|
|
2152
2313
|
msgstr "threads"
|
|
2153
2314
|
|
|
@@ -2162,11 +2323,9 @@ msgid "Threads can include up to {count} posts."
|
|
|
2162
2323
|
msgstr "Threads can include up to {count} posts."
|
|
2163
2324
|
|
|
2164
2325
|
#. @context: Collection form field
|
|
2165
|
-
#. @context: Compose
|
|
2166
|
-
#. @context: Compose toolbar - title tooltip
|
|
2326
|
+
#. @context: Compose toolbar - show or hide the title field
|
|
2167
2327
|
#. @context: Input label on sample page
|
|
2168
2328
|
#: src/ui/compose/ComposeDialog.tsx
|
|
2169
|
-
#: src/ui/compose/ComposeDialog.tsx
|
|
2170
2329
|
#: src/ui/pages/ThemeSamplePage.tsx
|
|
2171
2330
|
#: src/ui/shared/collection-management-labels.ts
|
|
2172
2331
|
msgid "Title"
|
|
@@ -2184,6 +2343,11 @@ msgstr "Titled"
|
|
|
2184
2343
|
msgid "to make sure both still feel like they belong to the same product."
|
|
2185
2344
|
msgstr "to make sure both still feel like they belong to the same product."
|
|
2186
2345
|
|
|
2346
|
+
#. @context: Compose table action
|
|
2347
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
2348
|
+
msgid "Toggle header row"
|
|
2349
|
+
msgstr "Toggle header row"
|
|
2350
|
+
|
|
2187
2351
|
#. @context: Usage label for the square logo PNG asset card
|
|
2188
2352
|
#: src/ui/pages/BrandPage.tsx
|
|
2189
2353
|
msgid "Transparent square"
|
|
@@ -2206,6 +2370,8 @@ msgstr "Type the quote..."
|
|
|
2206
2370
|
|
|
2207
2371
|
#. @context: Archive filter - notes without a title
|
|
2208
2372
|
#. @context: Archive filter - notes without a title
|
|
2373
|
+
#. @context: Compose note title placeholder. States what the note is while the field is empty rather than asking for a title — untitled notes are a normal kind of note here, and Archive files them under this same word.
|
|
2374
|
+
#: src/ui/compose/ComposeDialog.tsx
|
|
2209
2375
|
#: src/ui/pages/ArchivePage.tsx
|
|
2210
2376
|
#: src/ui/pages/ArchivePage.tsx
|
|
2211
2377
|
msgid "Untitled"
|
|
@@ -2288,6 +2454,11 @@ msgstr "View"
|
|
|
2288
2454
|
msgid "View earlier notes in this thread"
|
|
2289
2455
|
msgstr "View earlier notes in this thread"
|
|
2290
2456
|
|
|
2457
|
+
#. @context: Archive grid/list toggle group label
|
|
2458
|
+
#: src/ui/pages/ArchivePage.tsx
|
|
2459
|
+
msgid "View mode"
|
|
2460
|
+
msgstr "View mode"
|
|
2461
|
+
|
|
2291
2462
|
#. @context: Compose publish settings section label
|
|
2292
2463
|
#: src/ui/compose/ComposeDialog.tsx
|
|
2293
2464
|
msgid "Visibility"
|