@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-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 "归档订阅源"
222
272
  msgid "Archive filter parameters (e.g. format=note&view=list)"
223
273
  msgstr "归档 筛选参数 (例如 format=笔记&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 "创建自定义 URL"
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 "精选订阅源"
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 "固定订阅源 URL"
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 "最新订阅源"
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 "移除此头像?你的网站图标和站点顶部图标将恢复为默
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。为获得最佳效果,请上传至少 512×512 像素、纯色背景的方形 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 "网址"
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 "当你想要一个永远不变的订阅源 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."