@jant/core 0.6.14 → 0.6.15

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.
Files changed (311) hide show
  1. package/bin/commands/import-site.js +81 -13
  2. package/bin/commands/migrate.js +55 -0
  3. package/bin/commands/posts/rebuild-html.js +184 -0
  4. package/bin/commands/site/snapshot/import.js +14 -10
  5. package/bin/lib/d1-query.js +23 -5
  6. package/bin/lib/migration-runner.js +29 -7
  7. package/bin/lib/node-database.js +32 -0
  8. package/bin/lib/site-snapshot.js +347 -46
  9. package/bin/lib/sql-export.js +1 -1
  10. package/bin/lib/thread-collection-migration.js +326 -0
  11. package/dist/app-BxCOR3Uc.js +6 -0
  12. package/dist/{app-2i7-WQHg.js → app-C-oi_t8W.js} +7408 -6343
  13. package/dist/client/.vite/manifest.json +3 -3
  14. package/dist/client/_assets/client-B_eGKN5p.css +2 -0
  15. package/dist/client/_assets/{client-BvID5ucz.js → client-DxY5BFe8.js} +58 -37
  16. package/dist/client/_assets/client-auth-CakPESv9.js +5533 -0
  17. package/dist/{export-DWn149b7.js → export-CsFx6F_M.js} +1259 -125
  18. package/dist/{github-sync-Ckk0sJxK.js → github-sync-Cq1pzzOI.js} +1 -1
  19. package/dist/{github-sync-C0zyF6XS.js → github-sync-ppWXN3jb.js} +2 -2
  20. package/dist/index.js +3 -3
  21. package/dist/node.js +5 -5
  22. package/package.json +11 -10
  23. package/src/__tests__/bin/posts-rebuild-html.test.ts +137 -0
  24. package/src/__tests__/dev-navigation-defaults.test.ts +22 -0
  25. package/src/__tests__/export-hugo-build.test.ts +63 -4
  26. package/src/__tests__/export-import-roundtrip.test.ts +6 -4
  27. package/src/__tests__/export-service.test.ts +142 -9
  28. package/src/__tests__/helpers/app.ts +3 -0
  29. package/src/__tests__/helpers/export-fixtures.ts +2 -0
  30. package/src/__tests__/import-site-command.test.ts +65 -0
  31. package/src/__tests__/vite-config.test.ts +45 -0
  32. package/src/app.tsx +16 -3
  33. package/src/client/__tests__/collection-created-notice.test.ts +36 -0
  34. package/src/client/__tests__/collection-form-bridge.test.ts +10 -1
  35. package/src/client/__tests__/collection-page-actions.test.ts +71 -2
  36. package/src/client/__tests__/compose-bridge.test.ts +64 -0
  37. package/src/client/__tests__/feed-video-player.test.ts +16 -1
  38. package/src/client/__tests__/footnote-rail.test.ts +472 -0
  39. package/src/client/__tests__/hydrate-partial.test.ts +3 -0
  40. package/src/client/__tests__/toast.test.ts +18 -1
  41. package/src/client/collection-created-notice.ts +66 -0
  42. package/src/client/collection-form-bridge.ts +17 -0
  43. package/src/client/collection-navigation.ts +44 -0
  44. package/src/client/collection-page-actions.ts +57 -1
  45. package/src/client/components/__tests__/jant-collection-directory.test.ts +155 -6
  46. package/src/client/components/__tests__/jant-compose-dialog.test.ts +370 -5
  47. package/src/client/components/__tests__/jant-compose-editor.test.ts +97 -0
  48. package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +104 -0
  49. package/src/client/components/__tests__/jant-config-editor.test.ts +405 -0
  50. package/src/client/components/__tests__/jant-media-lightbox.test.ts +121 -0
  51. package/src/client/components/__tests__/jant-nav-manager.test.ts +538 -2
  52. package/src/client/components/__tests__/jant-post-form.test.ts +2 -2
  53. package/src/client/components/__tests__/jant-post-menu.test.ts +47 -5
  54. package/src/client/components/__tests__/jant-settings-avatar.test.ts +2 -2
  55. package/src/client/components/__tests__/jant-settings-general.test.ts +3 -3
  56. package/src/client/components/collection-manager-types.ts +9 -3
  57. package/src/client/components/compose-types.ts +8 -0
  58. package/src/client/components/jant-collection-directory.ts +165 -30
  59. package/src/client/components/jant-command-palette.ts +2 -1
  60. package/src/client/components/jant-compose-dialog.ts +85 -21
  61. package/src/client/components/jant-compose-editor.ts +13 -7
  62. package/src/client/components/jant-compose-fullscreen.ts +24 -4
  63. package/src/client/components/jant-config-editor.ts +722 -0
  64. package/src/client/components/jant-media-lightbox.ts +100 -18
  65. package/src/client/components/jant-nav-manager.ts +1283 -54
  66. package/src/client/components/jant-post-form.ts +3 -3
  67. package/src/client/components/jant-post-menu.ts +86 -74
  68. package/src/client/components/nav-manager-types.ts +51 -2
  69. package/src/client/components/post-form-types.ts +1 -1
  70. package/src/client/compose-bridge.ts +4 -1
  71. package/src/client/feed-video-player.ts +62 -2
  72. package/src/client/footnote-rail.ts +478 -0
  73. package/src/client/hydrate-partial.ts +2 -0
  74. package/src/client/media-lightbox-events.ts +63 -0
  75. package/src/client/site-header-fragment.ts +38 -0
  76. package/src/client/tiptap/__tests__/blockquote-editing.test.ts +201 -0
  77. package/src/client/tiptap/__tests__/clear-formatting.test.ts +168 -0
  78. package/src/client/tiptap/__tests__/list-editing.test.ts +447 -0
  79. package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +727 -4
  80. package/src/client/tiptap/__tests__/table-controls.test.ts +263 -0
  81. package/src/client/tiptap/__tests__/table-size-picker.test.ts +179 -0
  82. package/src/client/tiptap/bubble-menu.ts +88 -10
  83. package/src/client/tiptap/continuous-lists.ts +102 -0
  84. package/src/client/tiptap/create-editor.ts +3 -0
  85. package/src/client/tiptap/extensions.ts +14 -5
  86. package/src/client/tiptap/markdown-clipboard.ts +608 -11
  87. package/src/client/tiptap/slash-commands.ts +8 -1
  88. package/src/client/tiptap/structural-keymap.ts +211 -0
  89. package/src/client/tiptap/tab-indent.ts +8 -22
  90. package/src/client/tiptap/table-control-labels.ts +30 -0
  91. package/src/client/tiptap/table-controls.ts +537 -0
  92. package/src/client/tiptap/table-size-picker.ts +254 -0
  93. package/src/client/toast.ts +8 -6
  94. package/src/client-auth.ts +1 -0
  95. package/src/client.ts +1 -0
  96. package/src/db/__tests__/d1-query.test.ts +43 -1
  97. package/src/db/__tests__/migration-runner.test.ts +63 -0
  98. package/src/db/__tests__/migrations.test.ts +469 -0
  99. package/src/db/__tests__/thread-collection-migration.test.ts +364 -0
  100. package/src/db/migrations/0027_old_blue_blade.sql +39 -0
  101. package/src/db/migrations/0028_superb_post.sql +2 -0
  102. package/src/db/migrations/0029_boring_magma.sql +1 -0
  103. package/src/db/migrations/0030_typical_vivisector.sql +50 -0
  104. package/src/db/migrations/meta/0027_snapshot.json +2511 -0
  105. package/src/db/migrations/meta/0028_snapshot.json +2511 -0
  106. package/src/db/migrations/meta/0029_snapshot.json +2519 -0
  107. package/src/db/migrations/meta/0030_snapshot.json +2541 -0
  108. package/src/db/migrations/meta/_journal.json +28 -0
  109. package/src/db/migrations/pg/0025_moaning_epoch.sql +39 -0
  110. package/src/db/migrations/pg/0026_talented_killer_shrike.sql +2 -0
  111. package/src/db/migrations/pg/0027_short_cannonball.sql +1 -0
  112. package/src/db/migrations/pg/0028_perfect_sharon_carter.sql +27 -0
  113. package/src/db/migrations/pg/meta/0025_snapshot.json +3204 -0
  114. package/src/db/migrations/pg/meta/0026_snapshot.json +3204 -0
  115. package/src/db/migrations/pg/meta/0027_snapshot.json +3211 -0
  116. package/src/db/migrations/pg/meta/0028_snapshot.json +3248 -0
  117. package/src/db/migrations/pg/meta/_journal.json +28 -0
  118. package/src/db/pg/schema.ts +28 -20
  119. package/src/db/rehearsal-fixtures/demo-current.json +39 -4
  120. package/src/db/rehearsal-fixtures/demo-current.sql +121 -6
  121. package/src/db/schema.ts +28 -20
  122. package/src/i18n/__tests__/detect.test.ts +8 -2
  123. package/src/i18n/detect.ts +14 -5
  124. package/src/i18n/locales/public/en.po +133 -30
  125. package/src/i18n/locales/public/en.ts +1 -1
  126. package/src/i18n/locales/public/zh-Hans.po +128 -25
  127. package/src/i18n/locales/public/zh-Hans.ts +1 -1
  128. package/src/i18n/locales/public/zh-Hant.po +128 -25
  129. package/src/i18n/locales/public/zh-Hant.ts +1 -1
  130. package/src/i18n/locales/settings/en.po +513 -10
  131. package/src/i18n/locales/settings/en.ts +1 -1
  132. package/src/i18n/locales/settings/zh-Hans.po +515 -12
  133. package/src/i18n/locales/settings/zh-Hans.ts +1 -1
  134. package/src/i18n/locales/settings/zh-Hant.po +515 -12
  135. package/src/i18n/locales/settings/zh-Hant.ts +1 -1
  136. package/src/lib/__tests__/api-settings.test.ts +299 -0
  137. package/src/lib/__tests__/constants.test.ts +5 -0
  138. package/src/lib/__tests__/feed-policy.test.ts +25 -0
  139. package/src/lib/__tests__/footnotes-upgrade.test.ts +181 -0
  140. package/src/lib/__tests__/markdown-roundtrip-embed.test.ts +61 -0
  141. package/src/lib/__tests__/markdown-to-tiptap.test.ts +32 -4
  142. package/src/lib/__tests__/markdown.test.ts +8 -6
  143. package/src/lib/__tests__/navigation.test.ts +59 -2
  144. package/src/lib/__tests__/post-body-html.test.ts +176 -0
  145. package/src/lib/__tests__/post-display.test.ts +64 -0
  146. package/src/lib/__tests__/resolve-config.test.ts +113 -1
  147. package/src/lib/__tests__/summary.test.ts +82 -0
  148. package/src/lib/__tests__/timeline.test.ts +109 -70
  149. package/src/lib/__tests__/timezones.test.ts +31 -3
  150. package/src/lib/__tests__/tiptap-render.test.ts +268 -9
  151. package/src/lib/__tests__/tiptap-to-markdown.test.ts +6 -0
  152. package/src/lib/__tests__/view.test.ts +53 -0
  153. package/src/lib/__tests__/worker-response-cache.test.ts +18 -1
  154. package/src/lib/api-settings.ts +239 -12
  155. package/src/lib/collection-sort.ts +7 -5
  156. package/src/lib/constants.ts +2 -0
  157. package/src/lib/feed-path.ts +25 -0
  158. package/src/lib/feed-policy.ts +64 -0
  159. package/src/lib/footnotes.ts +264 -0
  160. package/src/lib/github-sync-site-config.ts +2 -0
  161. package/src/lib/hugo-markdown.ts +10 -3
  162. package/src/lib/jant-branding.ts +1 -0
  163. package/src/lib/markdown-manager.ts +188 -5
  164. package/src/lib/markdown.ts +10 -3
  165. package/src/lib/navigation.ts +16 -3
  166. package/src/lib/post-body-html.ts +131 -0
  167. package/src/lib/post-display.ts +7 -1
  168. package/src/lib/render.tsx +9 -2
  169. package/src/lib/resolve-config.ts +100 -16
  170. package/src/lib/schemas.ts +133 -1
  171. package/src/lib/settings-paths.ts +5 -0
  172. package/src/lib/site-skill.ts +78 -0
  173. package/src/lib/summary.ts +16 -5
  174. package/src/lib/timeline.ts +98 -122
  175. package/src/lib/timezones.ts +54 -14
  176. package/src/lib/tiptap-render.ts +355 -81
  177. package/src/lib/view.ts +30 -20
  178. package/src/lib/worker-response-cache.ts +11 -18
  179. package/src/middleware/__tests__/public-content-access.test.ts +91 -0
  180. package/src/middleware/config.ts +2 -2
  181. package/src/middleware/public-content-access.ts +87 -0
  182. package/src/node/__tests__/cli-export.test.ts +14 -0
  183. package/src/node/__tests__/cli-migrate.test.ts +6 -0
  184. package/src/node/__tests__/cli-site-snapshot.test.ts +205 -2
  185. package/src/node/__tests__/cli-snapshot-meta.test.ts +100 -0
  186. package/src/node/index.ts +2 -1
  187. package/src/preset.css +16 -2
  188. package/src/routes/__tests__/compose.test.ts +51 -0
  189. package/src/routes/__tests__/site-skill.test.ts +112 -0
  190. package/src/routes/api/__tests__/collections.test.ts +91 -19
  191. package/src/routes/api/__tests__/mcp.test.ts +65 -1
  192. package/src/routes/api/__tests__/nav-items.test.ts +91 -0
  193. package/src/routes/api/__tests__/public-access.test.ts +81 -0
  194. package/src/routes/api/__tests__/settings.test.ts +217 -0
  195. package/src/routes/api/collections.ts +22 -26
  196. package/src/routes/api/export.ts +2 -0
  197. package/src/routes/api/internal/__tests__/post-body-html.test.ts +163 -0
  198. package/src/routes/api/internal/__tests__/sites.test.ts +35 -2
  199. package/src/routes/api/internal/post-body-html.ts +43 -0
  200. package/src/routes/api/internal/sites.ts +24 -0
  201. package/src/routes/api/nav-items.ts +24 -1
  202. package/src/routes/api/posts.ts +2 -2
  203. package/src/routes/api/public/__tests__/archive.test.ts +35 -0
  204. package/src/routes/api/public/__tests__/posts.test.ts +208 -0
  205. package/src/routes/api/public/archive.ts +4 -0
  206. package/src/routes/api/public/posts.ts +41 -24
  207. package/src/routes/api/search.ts +3 -0
  208. package/src/routes/api/settings.ts +33 -0
  209. package/src/routes/auth/__tests__/setup.test.ts +7 -4
  210. package/src/routes/compose.tsx +2 -1
  211. package/src/routes/dash/settings.tsx +45 -2
  212. package/src/routes/feed/__tests__/feed.test.ts +210 -6
  213. package/src/routes/feed/feed.ts +23 -14
  214. package/src/routes/pages/__tests__/archive-params.test.ts +92 -3
  215. package/src/routes/pages/__tests__/collection-routing.test.ts +63 -5
  216. package/src/routes/pages/__tests__/collections.test.ts +9 -9
  217. package/src/routes/pages/__tests__/preview.test.ts +174 -0
  218. package/src/routes/pages/__tests__/search.test.ts +69 -0
  219. package/src/routes/pages/archive.tsx +27 -7
  220. package/src/routes/pages/collection.tsx +32 -19
  221. package/src/routes/pages/collections.tsx +6 -1
  222. package/src/routes/pages/page.tsx +83 -11
  223. package/src/routes/site-skill.ts +18 -0
  224. package/src/services/__tests__/auth.test.ts +7 -5
  225. package/src/services/__tests__/collection.test.ts +159 -44
  226. package/src/services/__tests__/navigation.test.ts +229 -21
  227. package/src/services/__tests__/post-timeline.test.ts +109 -30
  228. package/src/services/__tests__/post.test.ts +567 -5
  229. package/src/services/__tests__/search.test.ts +48 -1
  230. package/src/services/__tests__/settings.test.ts +8 -0
  231. package/src/services/__tests__/site-admin.test.ts +121 -1
  232. package/src/services/auth.ts +2 -2
  233. package/src/services/bootstrap.ts +3 -2
  234. package/src/services/collection.ts +226 -167
  235. package/src/services/export-theme/assets/client-site.css +1 -1
  236. package/src/services/export-theme/assets/client-site.js +46 -25
  237. package/src/services/export-theme/layouts/_default/list.html +18 -4
  238. package/src/services/export-theme/layouts/_default/rss.xml +8 -12
  239. package/src/services/export-theme/layouts/featured/list.html +5 -4
  240. package/src/services/export-theme/layouts/partials/featured-thread.html +56 -0
  241. package/src/services/export-theme/layouts/partials/footer.html +1 -1
  242. package/src/services/export-theme/layouts/partials/media-gallery.html +1 -0
  243. package/src/services/export-theme/styles/main.css +30 -2
  244. package/src/services/export.ts +91 -80
  245. package/src/services/mcp.ts +37 -27
  246. package/src/services/media.ts +1 -1
  247. package/src/services/navigation.ts +185 -46
  248. package/src/services/post.ts +874 -271
  249. package/src/services/search.ts +8 -2
  250. package/src/services/settings.ts +2 -10
  251. package/src/services/site-admin.ts +63 -43
  252. package/src/style-cjk-jp.css +1 -1
  253. package/src/style-cjk-kr.css +1 -1
  254. package/src/style-cjk-tc.css +1 -1
  255. package/src/style-cjk.css +1 -1
  256. package/src/styles/components.css +540 -0
  257. package/src/styles/site-media.css +111 -19
  258. package/src/styles/tokens.css +14 -9
  259. package/src/styles/ui.css +829 -29
  260. package/src/types/bindings.ts +3 -0
  261. package/src/types/config.ts +243 -12
  262. package/src/types/constants.ts +22 -1
  263. package/src/types/entities.ts +9 -8
  264. package/src/types/operations.ts +18 -10
  265. package/src/types/props.ts +8 -2
  266. package/src/types/raw-assets.d.ts +5 -0
  267. package/src/types/views.ts +16 -4
  268. package/src/ui/__tests__/font-themes.test.ts +42 -30
  269. package/src/ui/compose/ComposeDialog.tsx +92 -2
  270. package/src/ui/dash/appearance/NavigationContent.tsx +332 -4
  271. package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +23 -0
  272. package/src/ui/dash/settings/ConfigEditorContent.tsx +578 -0
  273. package/src/ui/dash/settings/GeneralContent.tsx +15 -5
  274. package/src/ui/dash/settings/SettingsRootContent.tsx +21 -1
  275. package/src/ui/dash/settings/__tests__/ConfigEditorContent.test.tsx +98 -0
  276. package/src/ui/dash/settings/__tests__/SettingsRootContent.test.tsx +15 -0
  277. package/src/ui/feed/CuratedThreadPreview.tsx +16 -4
  278. package/src/ui/feed/LinkCard.tsx +2 -12
  279. package/src/ui/feed/NoteCard.tsx +10 -20
  280. package/src/ui/feed/QuoteCard.tsx +2 -12
  281. package/src/ui/feed/ThreadPreview.tsx +26 -34
  282. package/src/ui/feed/TimelineFeed.tsx +2 -2
  283. package/src/ui/feed/__tests__/thread-preview.test.ts +197 -56
  284. package/src/ui/feed/__tests__/timeline-cards.test.ts +178 -3
  285. package/src/ui/feed/thread-preview-state.ts +5 -7
  286. package/src/ui/font-themes.ts +74 -26
  287. package/src/ui/layouts/BaseLayout.tsx +22 -8
  288. package/src/ui/layouts/__tests__/BaseLayout.test.tsx +64 -1
  289. package/src/ui/pages/CollectionPage.tsx +101 -22
  290. package/src/ui/pages/CollectionsPage.tsx +3 -1
  291. package/src/ui/pages/PostPage.tsx +39 -12
  292. package/src/ui/pages/SearchPage.tsx +6 -14
  293. package/src/ui/pages/__tests__/ArchivePage.test.tsx +7 -0
  294. package/src/ui/pages/__tests__/PostPage.test.tsx +88 -0
  295. package/src/ui/shared/CollectionDirectory.tsx +13 -9
  296. package/src/ui/shared/CollectionsManager.tsx +17 -7
  297. package/src/ui/shared/DraftPreviewBar.tsx +33 -0
  298. package/src/ui/shared/HomePageBranding.tsx +2 -2
  299. package/src/ui/shared/MediaGallery.tsx +1 -0
  300. package/src/ui/shared/PostFooter.tsx +3 -1
  301. package/src/ui/shared/__tests__/home-page-branding.test.tsx +1 -1
  302. package/src/ui/shared/__tests__/media-gallery.test.ts +1 -0
  303. package/src/ui/shared/__tests__/navigation-labels.test.ts +2 -2
  304. package/src/ui/shared/__tests__/post-footer.test.ts +15 -0
  305. package/src/ui/shared/collection-management-labels.ts +33 -2
  306. package/src/ui/shared/navigation-labels.ts +2 -4
  307. package/src/ui/shared/post-article-attributes.ts +46 -0
  308. package/dist/app-DZDlmh7C.js +0 -6
  309. package/dist/client/_assets/client-Cevfpm8H.css +0 -2
  310. package/dist/client/_assets/client-auth-v3yvhbgZ.js +0 -4736
  311. package/src/client/tiptap/wrapping-input-rules.ts +0 -102
@@ -13,6 +13,11 @@ msgstr ""
13
13
  "Language-Team: \n"
14
14
  "Plural-Forms: \n"
15
15
 
16
+ #. @context: Config Editor live search result count
17
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
18
+ msgid "{count} settings shown"
19
+ msgstr "{count} 個設定已顯示"
20
+
16
21
  #. @context: Custom CSS textarea placeholder
17
22
  #: src/ui/dash/appearance/AdvancedContent.tsx
18
23
  msgid "/* Your custom CSS here */"
@@ -134,11 +139,51 @@ msgstr "新增自訂 CSS 以覆寫任何樣式。使用像 [data-page]、[data-p
134
139
  msgid "Add custom link to navigation"
135
140
  msgstr "新增自訂連結到導覽"
136
141
 
142
+ #. @context: Description after quick page creation
143
+ #: src/ui/dash/appearance/NavigationContent.tsx
144
+ msgid "Add it to navigation now or open the editor to add content."
145
+ msgstr "立即加入導覽,或開啟編輯器補充內容。"
146
+
147
+ #. @context: Description after quick collection creation in Navigation settings
148
+ #: src/ui/dash/appearance/NavigationContent.tsx
149
+ msgid "Add it to navigation now or open the editor to add details."
150
+ msgstr "立即加入導覽,或開啟編輯器補充詳細資料。"
151
+
137
152
  #. @context: Button and heading for adding custom link
138
153
  #: src/ui/dash/appearance/NavigationContent.tsx
139
154
  msgid "Add Link"
140
155
  msgstr "新增連結"
141
156
 
157
+ #. @context: Button that opens the navigation page picker
158
+ #: src/ui/dash/appearance/NavigationContent.tsx
159
+ msgid "Add Page"
160
+ msgstr "加入頁面"
161
+
162
+ #. @context: Section heading for adding a page to navigation
163
+ #: src/ui/dash/appearance/NavigationContent.tsx
164
+ msgid "Add page to navigation"
165
+ msgstr "將頁面加入導覽"
166
+
167
+ #. @context: Config Editor linked setting description
168
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
169
+ msgid "Add site-wide CSS in the dedicated code editor."
170
+ msgstr "在專用程式碼編輯器中新增全站 CSS。"
171
+
172
+ #. @context: Config Editor linked setting description
173
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
174
+ msgid "Add site-wide HTML before the closing body tag."
175
+ msgstr "在 </body> 結束標籤之前新增全站 HTML。"
176
+
177
+ #. @context: Config Editor linked setting description
178
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
179
+ msgid "Add site-wide HTML before the closing head tag."
180
+ msgstr "在 head 標籤的閉合標記之前加入全站 HTML。"
181
+
182
+ #. @context: Button that adds a created page to navigation
183
+ #: src/ui/dash/appearance/NavigationContent.tsx
184
+ msgid "Add to Navigation"
185
+ msgstr "加入導覽"
186
+
142
187
  #. @context: Settings group label for advanced settings
143
188
  #: src/ui/dash/settings/SettingsRootContent.tsx
144
189
  msgid "Advanced"
@@ -154,6 +199,11 @@ msgstr "所有可用的端點與請求格式。"
154
199
  msgid "All collections are already in your navigation."
155
200
  msgstr "所有選集已經在您的導覽中。"
156
201
 
202
+ #. @context: Config Editor setting description
203
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
204
+ msgid "Allow published content to be read without an API token."
205
+ msgstr "允許不使用 API 權杖讀取已發佈內容。"
206
+
157
207
  #. @context: Checkbox for allowing search engine indexing
158
208
  #: src/ui/dash/settings/GeneralContent.tsx
159
209
  msgid "Allow search engines to index my site"
@@ -222,6 +272,11 @@ msgstr "封存 RSS 來源"
222
272
  msgid "Archive filter parameters (e.g. format=note&view=list)"
223
273
  msgstr "封存篩選參數 (例如 format=note&view=list)"
224
274
 
275
+ #. @context: Config Editor setting description
276
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
277
+ msgid "Ask search engines not to index public pages or include them in results."
278
+ msgstr "要求搜尋引擎不要索引公開頁面或將它們包含在搜尋結果中。"
279
+
225
280
  #. @context: Theme mode option label
226
281
  #: src/ui/dash/appearance/ColorThemeContent.tsx
227
282
  msgid "Auto"
@@ -246,6 +301,11 @@ msgstr "頭像"
246
301
  msgid "Avatar display updated."
247
302
  msgstr "頭像顯示已更新."
248
303
 
304
+ #. @context: Button returning from page creation to page search
305
+ #: src/ui/dash/appearance/NavigationContent.tsx
306
+ msgid "Back"
307
+ msgstr "返回"
308
+
249
309
  #. @context: Settings item description for GitHub sync
250
310
  #: src/ui/dash/settings/SettingsRootContent.tsx
251
311
  msgid "Back up and sync content with a GitHub repository"
@@ -339,25 +399,60 @@ msgstr "變更密碼"
339
399
  msgid "Changing this updates what subscribers get from /feed."
340
400
  msgstr "變更此設定會更新訂閱者從 /feed 取得的內容。"
341
401
 
402
+ #. @context: Loading text while checking page slug availability
403
+ #: src/ui/dash/appearance/NavigationContent.tsx
404
+ msgid "Checking address…"
405
+ msgstr "正在檢查網址…"
406
+
342
407
  #. @context: GitHub sync picker — status text while classifying the picked repo
343
408
  #: src/routes/dash/settings.tsx
344
409
  msgid "Checking repository…"
345
410
  msgstr "正在檢查儲存庫…"
346
411
 
412
+ #. @context: Description for adding a page to navigation
413
+ #: src/ui/dash/appearance/NavigationContent.tsx
414
+ msgid "Choose a titled note that isn't already in navigation, or create a new page."
415
+ msgstr "選擇一則尚未加入導覽的有標題筆記,或建立新頁面。"
416
+
347
417
  #. @context: Font theme settings description
348
418
  #: src/ui/dash/appearance/FontThemeContent.tsx
349
419
  msgid "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
350
420
  msgstr "為您的網站選擇一種排版風格。每個主題會同時改變字體配對與閱讀節奏。"
351
421
 
422
+ #. @context: Config Editor linked setting description
423
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
424
+ msgid "Choose the color palette used across Jant."
425
+ msgstr "選擇 Jant 全域使用的配色方案。"
426
+
427
+ #. @context: Config Editor setting description
428
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
429
+ msgid "Choose the content language announced to readers and search engines."
430
+ msgstr "選擇要向讀者與搜尋引擎宣告的內容語言。"
431
+
352
432
  #. @context: GitHub sync picker — page subtitle
353
433
  #: src/routes/dash/settings.tsx
354
434
  msgid "Choose the GitHub account and repository to sync with this site."
355
435
  msgstr "選擇要與此網站同步的 GitHub 帳號和儲存庫."
356
436
 
357
- #. @context: Settings form field for CJK serif font selection
437
+ #. @context: Config Editor linked setting description
438
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
439
+ msgid "Choose the repository used for content backups."
440
+ msgstr "選擇用於內容備份的儲存庫。"
441
+
442
+ #. @context: Config Editor setting description
443
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
444
+ msgid "Choose the time zone used to display dates and times."
445
+ msgstr "選擇用於顯示日期和時間的時區。"
446
+
447
+ #. @context: Config Editor linked setting description
448
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
449
+ msgid "Choose the typography used across Jant."
450
+ msgstr "選擇 Jant 全域使用的字體。"
451
+
452
+ #. @context: Settings field for a manual Chinese, Japanese, or Korean font fallback
358
453
  #: src/ui/dash/settings/GeneralContent.tsx
359
- msgid "CJK Font"
360
- msgstr "CJK 字體"
454
+ msgid "CJK fallback"
455
+ msgstr "CJK 字型備援"
361
456
 
362
457
  #. @context: Paper color theme preview help line
363
458
  #: src/ui/dash/appearance/ColorThemeContent.tsx
@@ -390,6 +485,21 @@ msgstr "選集"
390
485
  msgid "Collection"
391
486
  msgstr "選集"
392
487
 
488
+ #. @context: Confirmation after adding a collection to navigation
489
+ #: src/ui/dash/appearance/NavigationContent.tsx
490
+ msgid "Collection added to navigation."
491
+ msgstr "選集已加入導覽。"
492
+
493
+ #. @context: Heading after quick collection creation in Navigation settings
494
+ #: src/ui/dash/appearance/NavigationContent.tsx
495
+ msgid "Collection created."
496
+ msgstr "選集已建立。"
497
+
498
+ #. @context: Collection slug field in Navigation settings
499
+ #: src/ui/dash/appearance/NavigationContent.tsx
500
+ msgid "Collection link"
501
+ msgstr "選集連結"
502
+
393
503
  #. @context: Appearance settings heading
394
504
  #: src/ui/dash/appearance/ColorThemeContent.tsx
395
505
  msgid "Color theme"
@@ -402,6 +512,22 @@ msgstr "色彩主題"
402
512
  msgid "Color Theme"
403
513
  msgstr "色彩主題"
404
514
 
515
+ #. @context: Breadcrumb label
516
+ #. @context: Config Editor page title
517
+ #. @context: Settings item — Config Editor
518
+ #: src/routes/dash/settings.tsx
519
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
520
+ #: src/ui/dash/settings/SettingsRootContent.tsx
521
+ msgid "Config Editor"
522
+ msgstr "設定編輯器"
523
+
524
+ #. @context: Config Editor linked setting status
525
+ #. @context: Config Editor linked setting status
526
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
527
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
528
+ msgid "Configured"
529
+ msgstr "已設定"
530
+
405
531
  #. @context: Step 2 heading — user must type confirmation phrase
406
532
  #: src/ui/dash/settings/DeleteAccountContent.tsx
407
533
  msgid "Confirm account deletion"
@@ -434,6 +560,16 @@ msgstr "連接一個 Telegram 機器人,之後你傳給它的任何訊息都
434
560
  msgid "Connect manually"
435
561
  msgstr "手動連接"
436
562
 
563
+ #. @context: Config Editor linked setting description
564
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
565
+ msgid "Connect or manage automatic content backups to GitHub."
566
+ msgstr "連接或管理 GitHub 內容自動備份。"
567
+
568
+ #. @context: Config Editor linked setting description
569
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
570
+ msgid "Connect or manage the bot used to post from Telegram."
571
+ msgstr "連接或管理用於從 Telegram 發文的 Bot。"
572
+
437
573
  #. @context: Heading on the Telegram settings page when ready to connect
438
574
  #: src/ui/dash/settings/TelegramContent.tsx
439
575
  msgid "Connect Telegram"
@@ -524,11 +660,26 @@ msgstr "無法複製. 請再試一次."
524
660
  msgid "Couldn't connect. Check the error and try again."
525
661
  msgstr "無法連線。請檢查錯誤並再試一次。"
526
662
 
663
+ #. @context: Error when quick collection creation fails in Navigation settings
664
+ #: src/ui/dash/appearance/NavigationContent.tsx
665
+ msgid "Couldn't create the collection. Check the details and try again."
666
+ msgstr "無法建立選集。請檢查資料後再試一次。"
667
+
668
+ #. @context: Error when quick page creation fails
669
+ #: src/ui/dash/appearance/NavigationContent.tsx
670
+ msgid "Couldn't create the page. Check the details and try again."
671
+ msgstr "無法建立頁面。請檢查資料後再試一次。"
672
+
527
673
  #. @context: Error toast when nav delete fails
528
674
  #: src/ui/dash/appearance/NavigationContent.tsx
529
675
  msgid "Couldn't delete. Try again in a moment."
530
676
  msgstr "無法刪除。請稍後再試。"
531
677
 
678
+ #. @context: Error shown when navigation page search fails
679
+ #: src/ui/dash/appearance/NavigationContent.tsx
680
+ msgid "Couldn't load pages. Try again in a moment."
681
+ msgstr "無法載入頁面。請稍後再試。"
682
+
532
683
  #. @context: Error toast when nav save fails
533
684
  #: src/ui/dash/appearance/NavigationContent.tsx
534
685
  msgid "Couldn't save. Try again in a moment."
@@ -564,21 +715,46 @@ msgstr "在 GitHub 建立新儲存庫"
564
715
  msgid "Create a post with curl:"
565
716
  msgstr "使用 curl 建立貼文:"
566
717
 
718
+ #. @context: Description in the quick-create page dialog
719
+ #: src/ui/dash/appearance/NavigationContent.tsx
720
+ msgid "Create a public page that won't appear in Latest."
721
+ msgstr "建立一個不會出現在 Latest 的公開頁面。"
722
+
567
723
  #. @context: Button to create the standard About page
568
724
  #: src/ui/dash/settings/GeneralContent.tsx
569
725
  msgid "Create About page"
570
726
  msgstr "建立 About 頁面"
571
727
 
728
+ #. @context: Button and dialog title for quick collection creation in Navigation settings
729
+ #: src/ui/dash/appearance/NavigationContent.tsx
730
+ msgid "Create Collection"
731
+ msgstr "建立選集"
732
+
572
733
  #. @context: Button to save new custom URL
573
734
  #: src/routes/dash/custom-urls.tsx
574
735
  msgid "Create Custom URL"
575
736
  msgstr "建立自訂網址"
576
737
 
738
+ #. @context: Action at the bottom of the Navigation collection picker
739
+ #: src/ui/dash/appearance/NavigationContent.tsx
740
+ msgid "Create new collection"
741
+ msgstr "建立新選集"
742
+
743
+ #. @context: Action at the bottom of the navigation page picker
744
+ #: src/ui/dash/appearance/NavigationContent.tsx
745
+ msgid "Create new page"
746
+ msgstr "建立新頁面"
747
+
577
748
  #. @context: Link text pointing to GitHub's fine-grained PAT creation page
578
749
  #: src/ui/dash/settings/GitHubSyncContent.tsx
579
750
  msgid "Create one on GitHub"
580
751
  msgstr "在 GitHub 上建立一個"
581
752
 
753
+ #. @context: Button and dialog title for quick page creation
754
+ #: src/ui/dash/appearance/NavigationContent.tsx
755
+ msgid "Create Page"
756
+ msgstr "建立頁面"
757
+
582
758
  #. @context: Help text for GitHub repository input on GitHub Sync settings, telling users they must create the repo themselves
583
759
  #: src/ui/dash/settings/GitHubSyncContent.tsx
584
760
  msgid "Create the repository on GitHub first — it can be empty."
@@ -589,6 +765,16 @@ msgstr "先在 GitHub 上建立儲存庫 — 可以是空的。"
589
765
  msgid "Created {date}"
590
766
  msgstr "建立於 {date}"
591
767
 
768
+ #. @context: Loading label while creating a collection in Navigation settings
769
+ #: src/ui/dash/appearance/NavigationContent.tsx
770
+ msgid "Creating collection…"
771
+ msgstr "正在建立選集…"
772
+
773
+ #. @context: Loading label while creating a page
774
+ #: src/ui/dash/appearance/NavigationContent.tsx
775
+ msgid "Creating page…"
776
+ msgstr "正在建立頁面…"
777
+
592
778
  #. @context: Badge indicating the current active session
593
779
  #: src/ui/dash/settings/SessionsContent.tsx
594
780
  msgid "Current"
@@ -649,6 +835,11 @@ msgstr "後台語言"
649
835
  msgid "Data"
650
836
  msgstr "資料"
651
837
 
838
+ #. @context: Config Editor setting description
839
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
840
+ msgid "Delay new posts and replies before they appear in feeds. Use 0 to turn this off."
841
+ msgstr "延遲新貼文和回覆進入訂閱源的時間。設為 0 可關閉延遲。"
842
+
652
843
  #. @context: Button to delete custom URL
653
844
  #. @context: Button to delete item
654
845
  #. @context: Delete nav item
@@ -791,11 +982,41 @@ msgstr "編輯"
791
982
  msgid "Edit About page"
792
983
  msgstr "編輯 About 頁面"
793
984
 
985
+ #. @context: Button that opens a newly created collection for editing
986
+ #: src/ui/dash/appearance/NavigationContent.tsx
987
+ msgid "Edit Collection"
988
+ msgstr "編輯選集"
989
+
990
+ #. @context: Button to edit the generated collection slug in Navigation settings
991
+ #: src/ui/dash/appearance/NavigationContent.tsx
992
+ msgid "Edit link"
993
+ msgstr "編輯連結"
994
+
995
+ #. @context: Button that opens a page for editing
996
+ #: src/ui/dash/appearance/NavigationContent.tsx
997
+ msgid "Edit Page"
998
+ msgstr "編輯頁面"
999
+
1000
+ #. @context: Config Editor linked setting description
1001
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1002
+ msgid "Edit the multi-line footer rendered at the bottom of public pages."
1003
+ msgstr "在完整表單中編輯顯示在公開頁面底部的多行頁尾。"
1004
+
1005
+ #. @context: Config Editor linked setting description
1006
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1007
+ msgid "Edit the multi-line introduction used on your home page and in metadata."
1008
+ msgstr "在完整表單中編輯首頁和中繼資料使用的多行簡介。"
1009
+
794
1010
  #. @context: GitHub sync picker — shown when the selected repo has no commits
795
1011
  #: src/routes/dash/settings.tsx
796
1012
  msgid "Empty repository. Ready to connect."
797
1013
  msgstr "倉庫為空。準備連線。"
798
1014
 
1015
+ #. @context: Validation error for an empty quick page title
1016
+ #: src/ui/dash/appearance/NavigationContent.tsx
1017
+ msgid "Enter a page title."
1018
+ msgstr "請輸入頁面標題。"
1019
+
799
1020
  #. @context: Help text under the archive feed URL, explaining it is the complete feed
800
1021
  #: src/ui/dash/settings/GeneralContent.tsx
801
1022
  msgid "Every published post, including ones hidden from Latest."
@@ -835,6 +1056,11 @@ msgstr "精選"
835
1056
  msgid "Featured feed"
836
1057
  msgstr "精選 RSS 來源"
837
1058
 
1059
+ #. @context: Config Editor RSS feed enum option
1060
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1061
+ msgid "Featured posts"
1062
+ msgstr "精選文章"
1063
+
838
1064
  #. @context: Toast after saving feed settings
839
1065
  #: src/routes/dash/settings.tsx
840
1066
  msgid "Feed settings updated."
@@ -865,11 +1091,25 @@ msgstr "細緻的樣式覆寫"
865
1091
  msgid "Fixed feed URLs"
866
1092
  msgstr "固定的 RSS 檔案網址"
867
1093
 
1094
+ #. @context: CJK font fallback option that uses the configured content language
1095
+ #. @context: Config Editor enum option for automatic CJK font fallback
1096
+ #. @context: Config Editor enum option for no explicit dashboard language
1097
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1098
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1099
+ #: src/ui/dash/settings/GeneralContent.tsx
1100
+ msgid "Follow content language"
1101
+ msgstr "跟隨內容語言"
1102
+
868
1103
  #. @context: Theme mode option description
869
1104
  #: src/ui/dash/appearance/ColorThemeContent.tsx
870
1105
  msgid "Follow each visitor's system preference."
871
1106
  msgstr "依照每位訪客的系統偏好。"
872
1107
 
1108
+ #. @context: Config Editor linked setting description
1109
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1110
+ msgid "Follow the device appearance or force a light or dark theme."
1111
+ msgstr "跟隨裝置外觀或強制使用淺色或深色主題。"
1112
+
873
1113
  #. @context: Appearance settings heading for font theme
874
1114
  #: src/ui/dash/appearance/FontThemeContent.tsx
875
1115
  msgid "Font theme"
@@ -982,6 +1222,16 @@ msgstr "安裝 GitHub App,以授予存取權而無需管理個人權杖。權
982
1222
  msgid "Integrations"
983
1223
  msgstr "第三方整合"
984
1224
 
1225
+ #. @context: Validation error for a long page slug
1226
+ #: src/ui/dash/appearance/NavigationContent.tsx
1227
+ msgid "Keep the page address under 200 characters."
1228
+ msgstr "頁面網址不能超過 200 個字元。"
1229
+
1230
+ #. @context: Long collection slug error in Navigation settings
1231
+ #: src/ui/dash/appearance/NavigationContent.tsx
1232
+ msgid "Keep this link under 200 characters."
1233
+ msgstr "連結不能超過 200 個字元。"
1234
+
985
1235
  #. @context: Nav item label field
986
1236
  #: src/ui/dash/appearance/NavigationContent.tsx
987
1237
  msgid "Label"
@@ -1039,6 +1289,11 @@ msgstr "最新"
1039
1289
  msgid "Latest feed"
1040
1290
  msgstr "最新 RSS 來源"
1041
1291
 
1292
+ #. @context: Config Editor RSS feed enum option
1293
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1294
+ msgid "Latest posts"
1295
+ msgstr "最新文章"
1296
+
1042
1297
  #. @context: Suffix after Custom CSS link on color theme page
1043
1298
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1044
1299
  msgid "lets you override any theme variable."
@@ -1059,6 +1314,21 @@ msgstr "淺藍灰底,冷靜而均勻。"
1059
1314
  msgid "Light sage-green with a matching green accent."
1060
1315
  msgstr "淺鼠尾草綠底,配同色系的綠。"
1061
1316
 
1317
+ #. @context: Config Editor setting description
1318
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1319
+ msgid "Limit characters used in automatically generated summaries."
1320
+ msgstr "限制自動產生摘要所使用的字元數。"
1321
+
1322
+ #. @context: Config Editor setting description
1323
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1324
+ msgid "Limit paragraphs used in automatically generated summaries."
1325
+ msgstr "限制自動產生摘要所使用的段落數。"
1326
+
1327
+ #. @context: Config Editor setting description
1328
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1329
+ msgid "Limit posts included in each RSS feed."
1330
+ msgstr "限制每個 RSS feed 中包含的貼文數。"
1331
+
1062
1332
  #. @context: Nav item type badge
1063
1333
  #: src/ui/dash/appearance/NavigationContent.tsx
1064
1334
  msgid "link"
@@ -1079,16 +1349,16 @@ msgstr "連結已新增到導覽。"
1079
1349
  msgid "List posts:"
1080
1350
  msgstr "列出貼文:"
1081
1351
 
1082
- #. @context: Help text for CJK serif font selection
1083
- #: src/ui/dash/settings/GeneralContent.tsx
1084
- msgid "Load a serif font optimized for Chinese, Japanese, or Korean content."
1085
- msgstr "載入為中文、日文或韓文內容最佳化的襯線字型。"
1086
-
1087
1352
  #. @context: GitHub sync picker — loading state
1088
1353
  #: src/routes/dash/settings.tsx
1089
1354
  msgid "Loading…"
1090
1355
  msgstr "載入中…"
1091
1356
 
1357
+ #. @context: Config Editor badge for a setting locked by the runtime
1358
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1359
+ msgid "Locked"
1360
+ msgstr "已鎖定"
1361
+
1092
1362
  #. @context: Label for the canonical /feed URL
1093
1363
  #: src/ui/dash/settings/GeneralContent.tsx
1094
1364
  msgid "Main feed"
@@ -1149,6 +1419,11 @@ msgstr "傳送任何文字給機器人,該文字會作為筆記已發佈。"
1149
1419
  msgid "Minimal color, low distraction."
1150
1420
  msgstr "色彩極少,干擾最小。"
1151
1421
 
1422
+ #. @context: Config Editor badge for a database override
1423
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1424
+ msgid "Modified"
1425
+ msgstr "已修改"
1426
+
1152
1427
  #. @context: Section label for nav items hidden under More dropdown
1153
1428
  #: src/ui/dash/appearance/NavigationContent.tsx
1154
1429
  msgid "More"
@@ -1159,11 +1434,21 @@ msgstr "更多"
1159
1434
  msgid "More actions"
1160
1435
  msgstr "更多操作"
1161
1436
 
1437
+ #. @context: Helper text in quick collection creation in Navigation settings
1438
+ #: src/ui/dash/appearance/NavigationContent.tsx
1439
+ msgid "More options are available after you create it."
1440
+ msgstr "建立後可以設定更多選項。"
1441
+
1162
1442
  #. @context: Clay color theme preview body
1163
1443
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1164
1444
  msgid "Muted red-brown background, earthy and warm."
1165
1445
  msgstr "低飽和的紅棕底,溫暖、有泥土感。"
1166
1446
 
1447
+ #. @context: Collection title placeholder in Navigation settings
1448
+ #: src/ui/dash/appearance/NavigationContent.tsx
1449
+ msgid "My Collection"
1450
+ msgstr "我的選集"
1451
+
1167
1452
  #. @context: Settings item description for general
1168
1453
  #: src/ui/dash/settings/SettingsRootContent.tsx
1169
1454
  msgid "Name, metadata, language, and search defaults"
@@ -1174,7 +1459,7 @@ msgstr "名稱, 中繼資料, 語言, 和 搜尋預設值"
1174
1459
  #: src/routes/dash/settings.tsx
1175
1460
  #: src/ui/dash/settings/SettingsRootContent.tsx
1176
1461
  msgid "Navigation"
1177
- msgstr "導覽"
1462
+ msgstr "導覽列"
1178
1463
 
1179
1464
  #. @context: Section heading for nav items
1180
1465
  #: src/ui/dash/appearance/NavigationContent.tsx
@@ -1194,7 +1479,7 @@ msgstr "導覽位置已更新。"
1194
1479
  #. @context: Label for nav preview section
1195
1480
  #: src/ui/dash/appearance/NavigationContent.tsx
1196
1481
  msgid "Navigation Preview"
1197
- msgstr "導覽預覽"
1482
+ msgstr "導覽列預覽"
1198
1483
 
1199
1484
  #. @context: Ink color theme preview body
1200
1485
  #: src/ui/dash/appearance/ColorThemeContent.tsx
@@ -1242,8 +1527,8 @@ msgstr "目前沒有任何活動中的工作階段。已登入的裝置會顯示
1242
1527
 
1243
1528
  #. @context: Empty state when no collections exist for nav picker
1244
1529
  #: src/ui/dash/appearance/NavigationContent.tsx
1245
- msgid "No collections yet. Create one first, then add it to your navigation."
1246
- msgstr "目前還沒有選集。請先建立一個,然後將它加入您的導覽。"
1530
+ msgid "No collections yet. Create one here to add it to navigation."
1531
+ msgstr "目前還沒有選集。在這裡建立一個並加入導覽。"
1247
1532
 
1248
1533
  #. @context: Empty state message
1249
1534
  #: src/routes/dash/custom-urls.tsx
@@ -1260,16 +1545,33 @@ msgstr "未選取檔案。請選擇要上傳的檔案。"
1260
1545
  msgid "No matches."
1261
1546
  msgstr "無相符結果。"
1262
1547
 
1548
+ #. @context: Empty search results in the page picker
1549
+ #: src/ui/dash/appearance/NavigationContent.tsx
1550
+ msgid "No matching pages available to add. Try another title or create a new page."
1551
+ msgstr "找不到可加入的相符頁面。換個標題搜尋,或建立新頁面。"
1552
+
1263
1553
  #. @context: Empty state for navigation items
1264
1554
  #: src/ui/dash/appearance/NavigationContent.tsx
1265
1555
  msgid "No navigation items yet. Add links or enable system items below."
1266
1556
  msgstr "目前尚無導覽項目。請新增連結或在下方啟用系統項目。"
1267
1557
 
1558
+ #. @context: Empty state in the navigation page picker
1559
+ #: src/ui/dash/appearance/NavigationContent.tsx
1560
+ msgid "No pages available. Create one to add it to navigation."
1561
+ msgstr "沒有可加入的頁面。建立頁面後即可加入導覽。"
1562
+
1268
1563
  #. @context: GitHub sync picker — empty state when search returns nothing
1269
1564
  #: src/routes/dash/settings.tsx
1270
1565
  msgid "No repositories match."
1271
1566
  msgstr "沒有符合的儲存庫."
1272
1567
 
1568
+ #. @context: Config Editor linked setting status
1569
+ #. @context: Config Editor linked setting status
1570
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1571
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1572
+ msgid "Not configured"
1573
+ msgstr "未設定"
1574
+
1273
1575
  #. @context: Shown when no sync has happened yet on GitHub Sync status
1274
1576
  #: src/ui/dash/settings/GitHubSyncContent.tsx
1275
1577
  msgid "Not synced yet"
@@ -1282,6 +1584,11 @@ msgstr "尚未同步"
1282
1584
  msgid "Note"
1283
1585
  msgstr "筆記"
1284
1586
 
1587
+ #. @context: Config Editor empty search state
1588
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1589
+ msgid "Nothing matches this search. Try a different name or description."
1590
+ msgstr "沒有任何項目符合此搜尋。請嘗試不同的名稱或描述。"
1591
+
1285
1592
  #. @context: Tufte color theme preview body
1286
1593
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1287
1594
  msgid "Off-white paper with a deep forest-green accent."
@@ -1292,6 +1599,13 @@ msgstr "米白紙底,配深森綠。"
1292
1599
  msgid "Open {linkOpen}@{botUsername}{linkClose} and send:"
1293
1600
  msgstr "開啟 {linkOpen}@{botUsername}{linkClose} 並傳送:"
1294
1601
 
1602
+ #. @context: Config Editor link to a dedicated settings page
1603
+ #. @context: Config Editor link to a dedicated settings page
1604
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1605
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1606
+ msgid "Open setting"
1607
+ msgstr "開啟設定"
1608
+
1295
1609
  #. @context: Button that opens the Telegram bot via a deep link
1296
1610
  #: src/ui/dash/settings/TelegramContent.tsx
1297
1611
  msgid "Open Telegram to connect"
@@ -1317,11 +1631,31 @@ msgstr "帶橘調的底色。最暖的一套。"
1317
1631
  msgid "owner/repo"
1318
1632
  msgstr "owner/repo"
1319
1633
 
1634
+ #. @context: Nav item type badge for page items
1635
+ #: src/ui/dash/appearance/NavigationContent.tsx
1636
+ msgid "page"
1637
+ msgstr "頁面"
1638
+
1320
1639
  #. @context: Suggested navigation link target type
1321
1640
  #: src/ui/dash/appearance/NavigationContent.tsx
1322
1641
  msgid "Page"
1323
1642
  msgstr "頁面"
1324
1643
 
1644
+ #. @context: Confirmation after adding a page to navigation
1645
+ #: src/ui/dash/appearance/NavigationContent.tsx
1646
+ msgid "Page added to navigation."
1647
+ msgstr "頁面已加入導覽。"
1648
+
1649
+ #. @context: Slug field label in quick page creation
1650
+ #: src/ui/dash/appearance/NavigationContent.tsx
1651
+ msgid "Page address"
1652
+ msgstr "頁面網址"
1653
+
1654
+ #. @context: Heading after quick page creation
1655
+ #: src/ui/dash/appearance/NavigationContent.tsx
1656
+ msgid "Page created."
1657
+ msgstr "頁面已建立。"
1658
+
1325
1659
  #. @context: Bone color theme preview body
1326
1660
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1327
1661
  msgid "Pale bone-white with a muted green accent."
@@ -1421,6 +1755,11 @@ msgstr "私有"
1421
1755
  msgid "Processing..."
1422
1756
  msgstr "處理中..."
1423
1757
 
1758
+ #. @context: Config Editor setting description
1759
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1760
+ msgid "Publish Atom feeds for the site, archive, and collections."
1761
+ msgstr "發佈網站、封存與選集的 Atom feeds。"
1762
+
1424
1763
  #. @context: Post status badge - published
1425
1764
  #: src/ui/dash/StatusBadge.tsx
1426
1765
  msgid "Published"
@@ -1461,6 +1800,11 @@ msgstr "引用"
1461
1800
  msgid "Readers and search engines see"
1462
1801
  msgstr "讀者和搜尋引擎看到的是"
1463
1802
 
1803
+ #. @context: Heading above recent pages in the page picker
1804
+ #: src/ui/dash/appearance/NavigationContent.tsx
1805
+ msgid "Recently updated"
1806
+ msgstr "最近更新"
1807
+
1464
1808
  #. @context: Custom URL target type badge for a redirect
1465
1809
  #. @context: Custom URL type option
1466
1810
  #: src/routes/dash/custom-urls.tsx
@@ -1515,6 +1859,11 @@ msgstr "移除這個頭像?您的 favicon 與頁首圖示會回復為預設。
1515
1859
  msgid "Remove this collection from navigation? The collection itself won't be deleted."
1516
1860
  msgstr "要從導覽移除這個選集嗎?選集本身不會被刪除。"
1517
1861
 
1862
+ #. @context: Confirm dialog for removing a page from navigation
1863
+ #: src/ui/dash/appearance/NavigationContent.tsx
1864
+ msgid "Remove this page from navigation? The page itself won't be deleted."
1865
+ msgstr "從導覽中移除此頁面?頁面本身不會被刪除。"
1866
+
1518
1867
  #. @context: GitHub sync picker — repo dropdown label
1519
1868
  #. @context: Label for GitHub repository input on GitHub Sync settings
1520
1869
  #. @context: Label for connected repository on GitHub Sync status
@@ -1524,6 +1873,16 @@ msgstr "要從導覽移除這個選集嗎?選集本身不會被刪除。"
1524
1873
  msgid "Repository"
1525
1874
  msgstr "儲存庫"
1526
1875
 
1876
+ #. @context: Button to reset the collection slug in Navigation settings
1877
+ #: src/ui/dash/appearance/NavigationContent.tsx
1878
+ msgid "Reset link"
1879
+ msgstr "重設連結"
1880
+
1881
+ #. @context: Config Editor row action
1882
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1883
+ msgid "Reset to default"
1884
+ msgstr "還原為預設值"
1885
+
1527
1886
  #. @context: Button to revoke API token
1528
1887
  #. @context: Button to revoke a session
1529
1888
  #: src/ui/dash/settings/ApiTokensContent.tsx
@@ -1572,16 +1931,48 @@ msgstr "儲存機器人權杖"
1572
1931
  msgid "Save CSS"
1573
1932
  msgstr "儲存 CSS"
1574
1933
 
1934
+ #. @context: Config Editor row save status
1935
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1936
+ msgid "Saved"
1937
+ msgstr "已儲存"
1938
+
1939
+ #. @context: Config Editor row save status
1940
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1941
+ msgid "Saving…"
1942
+ msgstr "儲存中…"
1943
+
1575
1944
  #. @context: Settings section heading for search engine indexing settings
1576
1945
  #: src/ui/dash/settings/GeneralContent.tsx
1577
1946
  msgid "Search"
1578
1947
  msgstr "搜尋"
1579
1948
 
1949
+ #. @context: Config Editor page description
1950
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1951
+ msgid "Search and edit runtime settings. Changes apply immediately; reset restores the environment or built-in default."
1952
+ msgstr "搜尋和編輯執行階段設定。變更會立即生效;重設會恢復環境變數或內建預設值。"
1953
+
1954
+ #. @context: Placeholder for the navigation page search
1955
+ #: src/ui/dash/appearance/NavigationContent.tsx
1956
+ msgid "Search pages"
1957
+ msgstr "搜尋頁面"
1958
+
1580
1959
  #. @context: GitHub sync picker — search input placeholder
1581
1960
  #: src/routes/dash/settings.tsx
1582
1961
  msgid "Search repositories"
1583
1962
  msgstr "搜尋儲存庫"
1584
1963
 
1964
+ #. @context: Settings item description for Config Editor
1965
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1966
+ msgid "Search runtime settings and open advanced configuration"
1967
+ msgstr "搜尋執行階段設定並開啟進階設定"
1968
+
1969
+ #. @context: Config Editor search input placeholder
1970
+ #. @context: Config Editor search input placeholder
1971
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1972
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1973
+ msgid "Search settings"
1974
+ msgstr "搜尋設定"
1975
+
1585
1976
  #. @context: Toast after saving search settings
1586
1977
  #. @context: Toast after saving search settings
1587
1978
  #: src/routes/dash/settings.tsx
@@ -1594,6 +1985,11 @@ msgstr "搜尋設定已更新。"
1594
1985
  msgid "Search…"
1595
1986
  msgstr "搜尋…"
1596
1987
 
1988
+ #. @context: Loading state in the navigation page picker
1989
+ #: src/ui/dash/appearance/NavigationContent.tsx
1990
+ msgid "Searching pages…"
1991
+ msgstr "正在搜尋頁面…"
1992
+
1597
1993
  #. @context: Settings group label for account security settings
1598
1994
  #: src/ui/dash/settings/AccountMenuContent.tsx
1599
1995
  msgid "Security"
@@ -1636,6 +2032,21 @@ msgstr "在示範模式中已停用工作階段管理。請改用共用示範工
1636
2032
  msgid "Sessions"
1637
2033
  msgstr "工作階段"
1638
2034
 
2035
+ #. @context: Config Editor setting description
2036
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2037
+ msgid "Set posts per archive page; reset to inherit the main page size."
2038
+ msgstr "設定每頁封存貼文數;重設後繼承預設分頁大小。"
2039
+
2040
+ #. @context: Config Editor setting description
2041
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2042
+ msgid "Set results per search page; reset to inherit the main page size."
2043
+ msgstr "設定每頁搜尋結果數;重設後繼承預設分頁大小。"
2044
+
2045
+ #. @context: Config Editor setting description
2046
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2047
+ msgid "Set the default number of items shown per page."
2048
+ msgstr "設定預設每頁顯示的項目數。"
2049
+
1639
2050
  #. @context: Breadcrumb label
1640
2051
  #. @context: Page title for the settings home page
1641
2052
  #: src/routes/dash/settings.tsx
@@ -1648,11 +2059,26 @@ msgstr "設定"
1648
2059
  msgid "Show \"Build with Jant\" at the bottom of the home page"
1649
2060
  msgstr "在首頁底部顯示「Build with Jant」"
1650
2061
 
2062
+ #. @context: Config Editor filter checkbox
2063
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2064
+ msgid "Show only modified"
2065
+ msgstr "僅顯示已修改項目"
2066
+
1651
2067
  #. @context: Description for built-in nav toggles
1652
2068
  #: src/ui/dash/appearance/NavigationContent.tsx
1653
2069
  msgid "Show or hide built-in destinations in the header and More menu."
1654
2070
  msgstr "在頁首和更多選單中顯示或隱藏內建目的地。"
1655
2071
 
2072
+ #. @context: Config Editor setting description
2073
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2074
+ msgid "Show the Jant credit on the home page."
2075
+ msgstr "在首頁顯示 Jant 的署名。"
2076
+
2077
+ #. @context: Config Editor linked setting description
2078
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2079
+ msgid "Show the site avatar in the public header."
2080
+ msgstr "在公開標頭顯示網站頭像。"
2081
+
1656
2082
  #. @context: GitHub sync picker — paginated repo count hint. Placeholders {shown} and {total} are integers.
1657
2083
  #: src/routes/dash/settings.tsx
1658
2084
  msgid "Showing {shown} of {total}"
@@ -1768,6 +2194,16 @@ msgstr "Telegram"
1768
2194
  msgid "Telegram is set up, but the bot couldn't be reached. Check the bot token and try again."
1769
2195
  msgstr "已設定 Telegram,但無法連線到機器人。請檢查機器人權杖並再試一次。"
1770
2196
 
2197
+ #. @context: Validation error for an unavailable page slug
2198
+ #: src/ui/dash/appearance/NavigationContent.tsx
2199
+ msgid "That address is already in use. Choose another one."
2200
+ msgstr "此網址已被使用。請選擇其他網址。"
2201
+
2202
+ #. @context: Validation error for a reserved page slug
2203
+ #: src/ui/dash/appearance/NavigationContent.tsx
2204
+ msgid "That address is reserved. Choose another one."
2205
+ msgstr "此網址為保留網址。請選擇其他網址。"
2206
+
1771
2207
  #. @context: Error toast when selected font theme is not valid
1772
2208
  #: src/routes/dash/settings.tsx
1773
2209
  msgid "That font theme isn't available. Pick another one."
@@ -1793,6 +2229,11 @@ msgstr "預設主題。沉靜,適合長時間閱讀。"
1793
2229
  msgid "The language this admin dashboard shows in. Available in English, 简体中文, and 繁體中文."
1794
2230
  msgstr "後台介面顯示的語言。可選 English、简体中文 和 繁體中文。"
1795
2231
 
2232
+ #. @context: Config Editor setting description
2233
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2234
+ msgid "The language used by the private Jant dashboard."
2235
+ msgstr "私人 Jant 儀表板使用的語言。"
2236
+
1796
2237
  #. @context: Help text under the content language picker
1797
2238
  #: src/ui/dash/settings/GeneralContent.tsx
1798
2239
  msgid "The language your posts are written in. Announced to readers and search engines through HTML lang and your RSS feed. Any BCP 47 tag works."
@@ -1803,11 +2244,26 @@ msgstr "你撰寫內容所用的語言。透過 HTML lang 和 RSS 向讀者與
1803
2244
  msgid "The original Jant palette, and a solid everyday pick."
1804
2245
  msgstr "Jant 最初的配色,日常穩妥之選。"
1805
2246
 
2247
+ #. @context: Visibility note in quick page creation
2248
+ #: src/ui/dash/appearance/NavigationContent.tsx
2249
+ msgid "The page is public but stays out of Latest."
2250
+ msgstr "頁面是公開的,但不會出現在 Latest。"
2251
+
2252
+ #. @context: Config Editor setting description
2253
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2254
+ msgid "The serif fallback used when the content language has no built-in profile."
2255
+ msgstr "當內容語言沒有內建設定檔時使用的襯線備援字型。"
2256
+
1806
2257
  #. @context: Custom URL target slug help text
1807
2258
  #: src/routes/dash/custom-urls.tsx
1808
2259
  msgid "The slug of the target post or collection"
1809
2260
  msgstr "目標文章或選集的 slug"
1810
2261
 
2262
+ #. @context: Config Editor setting description
2263
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2264
+ msgid "The title used across your site, browser tabs, and feeds."
2265
+ msgstr "此標題會用於整個網站、瀏覽器分頁與訂閱來源。"
2266
+
1811
2267
  #. @context: Link to theming documentation on Custom CSS page
1812
2268
  #: src/ui/dash/appearance/AdvancedContent.tsx
1813
2269
  msgid "Theming guide"
@@ -1838,11 +2294,21 @@ msgstr "這會控制 /feed 回傳的內容。"
1838
2294
  msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
1839
2295
  msgstr "此託管網站透過 {providerLabel} 登入。請在該處管理密碼與託管存取權限。"
1840
2296
 
2297
+ #. @context: Collection slug help text in Navigation settings
2298
+ #: src/ui/dash/appearance/NavigationContent.tsx
2299
+ msgid "This is the last part of the collection link."
2300
+ msgstr "這是選集連結的最後一部分。"
2301
+
1841
2302
  #. @context: Help text for avatar upload
1842
2303
  #: src/ui/dash/settings/AvatarContent.tsx
1843
2304
  msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels."
1844
2305
  msgstr "此圖會用於您的 favicon 和 apple-touch-icon。為達最佳效果,請上傳至少 512x512 像素、背景為純色的正方形 PNG。"
1845
2306
 
2307
+ #. @context: Reserved collection slug error in Navigation settings
2308
+ #: src/ui/dash/appearance/NavigationContent.tsx
2309
+ msgid "This link is reserved. Choose something else."
2310
+ msgstr "此連結為保留連結。請選擇其他連結。"
2311
+
1846
2312
  #. @context: Fallback color theme preview title
1847
2313
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1848
2314
  msgid "This palette"
@@ -1868,6 +2334,11 @@ msgstr "此儲存庫已在備份另一個 Jant 網站 ({host}). 請選擇其他
1868
2334
  msgid "This repository is already backing up this site."
1869
2335
  msgstr "此儲存庫已在備份本網站。"
1870
2336
 
2337
+ #. @context: Config Editor fallback error message
2338
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2339
+ msgid "This setting wasn't saved. Check the value and try again."
2340
+ msgstr "此設定未儲存。請檢查設定值並再試一次。"
2341
+
1871
2342
  #. @context: Warning text on account deletion page
1872
2343
  #: src/ui/dash/settings/DeleteAccountContent.tsx
1873
2344
  msgid "This will permanently delete all your data — posts, media, collections, settings, and your account. Your blog will be reset to its initial setup state. This cannot be undone."
@@ -1878,6 +2349,13 @@ msgstr "這會永久刪除您所有的資料 — 文章、媒體、選集、設
1878
2349
  msgid "Time Zone"
1879
2350
  msgstr "時區"
1880
2351
 
2352
+ #. @context: Collection title field in Navigation settings
2353
+ #. @context: Title field label in quick page creation
2354
+ #: src/ui/dash/appearance/NavigationContent.tsx
2355
+ #: src/ui/dash/appearance/NavigationContent.tsx
2356
+ msgid "Title"
2357
+ msgstr "標題"
2358
+
1881
2359
  #. @context: Button to expand/collapse nav item edit
1882
2360
  #: src/ui/dash/appearance/NavigationContent.tsx
1883
2361
  msgid "Toggle edit panel"
@@ -1953,6 +2431,11 @@ msgstr "上傳未成功. 請稍後再試."
1953
2431
  msgid "Upload failed. Please try again."
1954
2432
  msgstr "上傳失敗。請再試一次。"
1955
2433
 
2434
+ #. @context: Config Editor linked setting description
2435
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2436
+ msgid "Upload the profile image and generated site icons."
2437
+ msgstr "上傳個人資料圖片與產生的網站圖示。"
2438
+
1956
2439
  #. @context: Avatar upload button text while uploading
1957
2440
  #: src/ui/dash/settings/AvatarContent.tsx
1958
2441
  msgid "Uploading..."
@@ -1968,11 +2451,26 @@ msgstr "URL"
1968
2451
  msgid "Usage"
1969
2452
  msgstr "用法"
1970
2453
 
2454
+ #. @context: Collection slug validation error in Navigation settings
2455
+ #: src/ui/dash/appearance/NavigationContent.tsx
2456
+ msgid "Use lowercase letters, numbers, and hyphens only."
2457
+ msgstr "只能使用小寫字母、數字和連字號。"
2458
+
2459
+ #. @context: Validation error for an invalid page slug
2460
+ #: src/ui/dash/appearance/NavigationContent.tsx
2461
+ msgid "Use lowercase letters, numbers, and hyphens."
2462
+ msgstr "使用小寫字母、數字和連字號。"
2463
+
1971
2464
  #. @context: Help text for the explicit latest and featured feed URLs
1972
2465
  #: src/ui/dash/settings/GeneralContent.tsx
1973
2466
  msgid "Use these when you want a feed URL that never changes."
1974
2467
  msgstr "當你想要一個永遠不會改變的 feed URL 時,請使用這些。"
1975
2468
 
2469
+ #. @context: Help text for the manual CJK font fallback setting
2470
+ #: src/ui/dash/settings/GeneralContent.tsx
2471
+ msgid "Used when the content language has no built-in font profile. Your font theme still controls serif and sans styling."
2472
+ msgstr "當內容語言沒有內建字型設定時使用。字型主題仍會決定襯線與無襯線樣式。"
2473
+
1976
2474
  #. @context: Description for choosing featured posts as the main RSS feed
1977
2475
  #: src/ui/dash/settings/GeneralContent.tsx
1978
2476
  msgid "Uses featured posts for /feed."
@@ -2073,6 +2571,11 @@ msgstr "何時使用網站匯出、資料庫備份與復原演練。"
2073
2571
  msgid "When you want a cooler, sharper look."
2074
2572
  msgstr "想要更冷、更利落的觀感時。"
2075
2573
 
2574
+ #. @context: Config Editor setting description
2575
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2576
+ msgid "Which post stream the canonical /feed URL returns."
2577
+ msgstr "正規的 /feed URL 會回傳哪個文章串流。"
2578
+
2076
2579
  #. @context: Parchment color theme preview body
2077
2580
  #: src/ui/dash/appearance/ColorThemeContent.tsx
2078
2581
  msgid "Yellow-tinted paper with an olive-green accent."