@jant/core 0.3.31 → 0.3.33

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 (95) hide show
  1. package/dist/client/client.css +1 -1
  2. package/dist/client/client.js +1442 -989
  3. package/dist/index.js +1429 -1055
  4. package/package.json +2 -2
  5. package/src/__tests__/helpers/app.ts +6 -3
  6. package/src/__tests__/helpers/db.ts +3 -0
  7. package/src/client.ts +2 -1
  8. package/src/db/migrations/0011_add_path_registry.sql +23 -0
  9. package/src/db/schema.ts +12 -1
  10. package/src/i18n/locales/en.po +225 -91
  11. package/src/i18n/locales/en.ts +1 -1
  12. package/src/i18n/locales/zh-Hans.po +201 -152
  13. package/src/i18n/locales/zh-Hans.ts +1 -1
  14. package/src/i18n/locales/zh-Hant.po +201 -152
  15. package/src/i18n/locales/zh-Hant.ts +1 -1
  16. package/src/lib/__tests__/excerpt.test.ts +25 -0
  17. package/src/lib/__tests__/resolve-config.test.ts +26 -2
  18. package/src/lib/__tests__/timeline.test.ts +2 -1
  19. package/src/lib/compose-bridge.ts +30 -1
  20. package/src/lib/excerpt.ts +16 -7
  21. package/src/lib/nav-manager-bridge.ts +54 -0
  22. package/src/lib/navigation.ts +7 -4
  23. package/src/lib/render.tsx +5 -2
  24. package/src/lib/resolve-config.ts +7 -0
  25. package/src/lib/view.ts +42 -10
  26. package/src/middleware/error-handler.ts +16 -0
  27. package/src/routes/api/__tests__/posts.test.ts +80 -0
  28. package/src/routes/api/__tests__/settings.test.ts +1 -1
  29. package/src/routes/api/posts.ts +6 -29
  30. package/src/routes/api/upload.ts +2 -14
  31. package/src/routes/auth/__tests__/setup.test.ts +2 -1
  32. package/src/routes/compose.tsx +13 -5
  33. package/src/routes/dash/__tests__/pages.test.ts +2 -1
  34. package/src/routes/dash/__tests__/settings-avatar.test.ts +151 -33
  35. package/src/routes/dash/appearance.tsx +71 -4
  36. package/src/routes/dash/collections.tsx +15 -21
  37. package/src/routes/dash/media.tsx +1 -13
  38. package/src/routes/dash/pages.tsx +5 -150
  39. package/src/routes/dash/posts.tsx +25 -32
  40. package/src/routes/dash/redirects.tsx +9 -11
  41. package/src/routes/dash/settings.tsx +29 -111
  42. package/src/routes/feed/__tests__/rss.test.ts +5 -1
  43. package/src/routes/pages/__tests__/collections.test.ts +2 -1
  44. package/src/routes/pages/__tests__/featured.test.ts +2 -1
  45. package/src/routes/pages/page.tsx +20 -25
  46. package/src/services/__tests__/collection.test.ts +2 -1
  47. package/src/services/__tests__/media.test.ts +78 -1
  48. package/src/services/__tests__/navigation.test.ts +2 -1
  49. package/src/services/__tests__/page.test.ts +78 -1
  50. package/src/services/__tests__/path-registry.test.ts +165 -0
  51. package/src/services/__tests__/post-timeline.test.ts +2 -1
  52. package/src/services/__tests__/post.test.ts +103 -1
  53. package/src/services/__tests__/redirect.test.ts +53 -4
  54. package/src/services/__tests__/search.test.ts +2 -1
  55. package/src/services/__tests__/settings.test.ts +153 -0
  56. package/src/services/index.ts +12 -4
  57. package/src/services/media.ts +72 -4
  58. package/src/services/page.ts +64 -17
  59. package/src/services/path-registry.ts +160 -0
  60. package/src/services/post.ts +119 -24
  61. package/src/services/redirect.ts +23 -3
  62. package/src/services/settings.ts +181 -0
  63. package/src/styles/components.css +135 -0
  64. package/src/styles/tokens.css +6 -1
  65. package/src/styles/ui.css +70 -26
  66. package/src/types/bindings.ts +1 -0
  67. package/src/types/config.ts +7 -2
  68. package/src/types/constants.ts +9 -1
  69. package/src/types/sortablejs.d.ts +8 -2
  70. package/src/types/views.ts +1 -1
  71. package/src/ui/color-themes.ts +31 -31
  72. package/src/ui/components/__tests__/jant-settings-avatar.test.ts +0 -3
  73. package/src/ui/components/__tests__/jant-settings-general.test.ts +2 -6
  74. package/src/ui/components/jant-compose-dialog.ts +3 -2
  75. package/src/ui/components/jant-compose-editor.ts +17 -2
  76. package/src/ui/components/jant-nav-manager.ts +1067 -0
  77. package/src/ui/components/jant-settings-general.ts +2 -35
  78. package/src/ui/components/nav-manager-types.ts +72 -0
  79. package/src/ui/components/settings-types.ts +0 -3
  80. package/src/ui/compose/ComposePrompt.tsx +3 -11
  81. package/src/ui/dash/appearance/AdvancedContent.tsx +0 -3
  82. package/src/ui/dash/appearance/AppearanceNav.tsx +12 -8
  83. package/src/ui/dash/appearance/ColorThemeContent.tsx +1 -4
  84. package/src/ui/dash/appearance/FontThemeContent.tsx +0 -3
  85. package/src/ui/dash/appearance/NavigationContent.tsx +302 -0
  86. package/src/ui/dash/pages/PagesContent.tsx +74 -0
  87. package/src/ui/dash/settings/AccountContent.tsx +0 -3
  88. package/src/ui/dash/settings/GeneralContent.tsx +1 -19
  89. package/src/ui/dash/settings/SettingsNav.tsx +2 -6
  90. package/src/ui/feed/NoteCard.tsx +2 -2
  91. package/src/ui/layouts/DashLayout.tsx +83 -86
  92. package/src/ui/layouts/SiteLayout.tsx +82 -21
  93. package/src/lib/nav-reorder.ts +0 -26
  94. package/src/ui/dash/pages/LinkFormContent.tsx +0 -119
  95. package/src/ui/dash/pages/UnifiedPagesContent.tsx +0 -203
@@ -26,7 +26,7 @@ msgstr "← 返回收藏夹"
26
26
  #. @context: Add alt text label under attachment thumbnail
27
27
  #: src/ui/compose/ComposeDialog.tsx
28
28
  msgid "+ ALT"
29
- msgstr ""
29
+ msgstr "+ ALT"
30
30
 
31
31
  #. @context: Redirect type option
32
32
  #: src/routes/dash/redirects.tsx
@@ -38,6 +38,11 @@ msgstr "301(永久)"
38
38
  msgid "302 (Temporary)"
39
39
  msgstr "302(临时)"
40
40
 
41
+ #. @context: Help text for site description field
42
+ #: src/ui/dash/settings/GeneralContent.tsx
43
+ msgid "A short intro for search engines and feed readers. Plain text only."
44
+ msgstr "搜索引擎和订阅阅读器的简短介绍。仅限纯文本。"
45
+
41
46
  #. @context: Settings form field for site description
42
47
  #: src/ui/dash/settings/GeneralContent.tsx
43
48
  msgid "About this blog"
@@ -51,20 +56,35 @@ msgstr "账户"
51
56
  #. @context: Add more attachments button
52
57
  #: src/ui/compose/ComposeDialog.tsx
53
58
  msgid "Add"
54
- msgstr ""
59
+ msgstr "添加"
60
+
61
+ #. @context: Description in link popover form
62
+ #: src/ui/dash/appearance/NavigationContent.tsx
63
+ msgid "Add a custom link to any URL"
64
+ msgstr "添加自定义链接到任何 URL"
55
65
 
56
66
  #. @context: Alt text panel title
57
67
  #: src/ui/compose/ComposeDialog.tsx
58
68
  msgid "Add alt text"
59
- msgstr ""
69
+ msgstr "添加替代文本"
70
+
71
+ #. @context: Card description for page picker
72
+ #: src/ui/dash/appearance/NavigationContent.tsx
73
+ #~ msgid "Add an existing page to your navigation"
74
+ #~ msgstr "将现有页面添加到您的导航中"
60
75
 
61
76
  #. @context: Custom CSS settings description
62
77
  #: src/ui/dash/appearance/AdvancedContent.tsx
63
78
  msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
64
79
  msgstr "添加自定义 CSS 以覆盖任何样式。使用数据属性,如 [data-page]、[data-post]、[data-format] 来定位特定元素。"
65
80
 
66
- #. @context: Button to add a navigation link
67
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
81
+ #. @context: Section heading for adding custom link to nav
82
+ #: src/ui/dash/appearance/NavigationContent.tsx
83
+ msgid "Add custom link to navigation"
84
+ msgstr ""
85
+
86
+ #. @context: Button and heading for adding custom link
87
+ #: src/ui/dash/appearance/NavigationContent.tsx
68
88
  msgid "Add Link"
69
89
  msgstr "添加链接"
70
90
 
@@ -73,38 +93,47 @@ msgstr "添加链接"
73
93
  msgid "Add Media"
74
94
  msgstr "添加媒体"
75
95
 
76
- #. @context: Button to add page to navigation
77
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
78
- msgid "Add to nav"
79
- msgstr "添加到导航"
96
+ #. @context: Card title for adding page to nav
97
+ #: src/ui/dash/appearance/NavigationContent.tsx
98
+ #~ msgid "Add Page"
99
+ #~ msgstr "添加页面"
100
+
101
+ #. @context: Section heading for adding page to nav
102
+ #: src/ui/dash/appearance/NavigationContent.tsx
103
+ msgid "Add page to navigation"
104
+ msgstr ""
105
+
106
+ #. @context: Section heading for adding nav items
107
+ #: src/ui/dash/appearance/NavigationContent.tsx
108
+ #~ msgid "Add to navigation"
109
+ #~ msgstr "添加到导航"
80
110
 
81
111
  #. @context: Appearance sub-navigation tab
82
112
  #: src/ui/dash/appearance/AppearanceNav.tsx
83
113
  msgid "Advanced"
84
- msgstr ""
114
+ msgstr "高级"
85
115
 
86
116
  #. @context: Archive filter - all formats
87
117
  #: src/ui/pages/ArchivePage.tsx
88
118
  msgid "All"
89
119
  msgstr "所有"
90
120
 
91
- #. @context: Empty state when all pages are in nav
92
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
93
- msgid "All pages are in your navigation."
94
- msgstr "所有页面都在您的导航中。"
121
+ #. @context: Message when no pages available to add
122
+ #: src/ui/dash/appearance/NavigationContent.tsx
123
+ msgid "All pages are already in navigation."
124
+ msgstr ""
125
+
126
+ #. @context: Message when no pages available to add
127
+ #: src/ui/dash/appearance/NavigationContent.tsx
128
+ #~ msgid "All pages are in navigation"
129
+ #~ msgstr "所有页面都在导航中"
95
130
 
96
131
  #. @context: Hint text in alt text panel
97
132
  #: src/ui/compose/ComposeDialog.tsx
98
133
  msgid "Alt text improves accessibility"
99
- msgstr ""
134
+ msgstr "替代文本提高可访问性"
100
135
 
101
- #. @context: Dashboard heading
102
- #. @context: Dashboard heading
103
- #. @context: Dashboard heading
104
136
  #. @context: Dashboard navigation - appearance settings
105
- #: src/ui/dash/appearance/AdvancedContent.tsx
106
- #: src/ui/dash/appearance/ColorThemeContent.tsx
107
- #: src/ui/dash/appearance/FontThemeContent.tsx
108
137
  #: src/ui/layouts/DashLayout.tsx
109
138
  msgid "Appearance"
110
139
  msgstr "外观"
@@ -160,14 +189,12 @@ msgstr "博客头像"
160
189
  #. @context: Button to cancel form
161
190
  #. @context: Button to cancel form
162
191
  #. @context: Button to cancel form
163
- #. @context: Button to cancel form
164
192
  #. @context: Button to cancel unsaved changes and revert to original values
165
193
  #. @context: Close compose dialog
166
194
  #: src/routes/dash/redirects.tsx
167
195
  #: src/ui/compose/ComposeDialog.tsx
168
196
  #: src/ui/dash/collections/CollectionForm.tsx
169
197
  #: src/ui/dash/PageForm.tsx
170
- #: src/ui/dash/pages/LinkFormContent.tsx
171
198
  #: src/ui/dash/posts/PostForm.tsx
172
199
  #: src/ui/dash/settings/GeneralContent.tsx
173
200
  msgid "Cancel"
@@ -185,6 +212,11 @@ msgstr "更改密码"
185
212
  msgid "Choose a font pairing for your site. All options use system fonts for fast loading."
186
213
  msgstr "选择一个字体搭配用于您的网站。所有选项都使用系统字体以实现快速加载。"
187
214
 
215
+ #. @context: Placeholder for page select combobox trigger
216
+ #: src/ui/dash/appearance/NavigationContent.tsx
217
+ msgid "Choose a page…"
218
+ msgstr ""
219
+
188
220
  #. @context: Button to open icon picker
189
221
  #. @context: Icon picker dialog title
190
222
  #: src/ui/dash/collections/CollectionForm.tsx
@@ -209,10 +241,8 @@ msgstr "集合"
209
241
 
210
242
  #. @context: Collections page heading
211
243
  #. @context: Dashboard heading
212
- #. @context: Dashboard navigation - collections management
213
244
  #. @context: Sidebar heading for collections nav
214
245
  #: src/ui/dash/collections/CollectionsListContent.tsx
215
- #: src/ui/layouts/DashLayout.tsx
216
246
  #: src/ui/pages/CollectionsPage.tsx
217
247
  #: src/ui/shared/CollectionsSidebar.tsx
218
248
  msgid "Collections"
@@ -231,7 +261,7 @@ msgstr "颜色主题"
231
261
  #. @context: Appearance sub-navigation tab
232
262
  #: src/ui/dash/appearance/AppearanceNav.tsx
233
263
  msgid "Color Theme"
234
- msgstr ""
264
+ msgstr "颜色主题"
235
265
 
236
266
  #. @context: Setup form submit button
237
267
  #: src/routes/auth/setup.tsx
@@ -267,11 +297,6 @@ msgstr "复制"
267
297
  msgid "Create Collection"
268
298
  msgstr "创建集合"
269
299
 
270
- #. @context: Button to save new navigation link
271
- #: src/ui/dash/pages/LinkFormContent.tsx
272
- msgid "Create Link"
273
- msgstr "创建链接"
274
-
275
300
  #. @context: Button to create new page
276
301
  #: src/ui/dash/PageForm.tsx
277
302
  msgid "Create Page"
@@ -318,23 +343,21 @@ msgid "Danger Zone"
318
343
  msgstr "危险区域"
319
344
 
320
345
  #. @context: Dashboard main heading
321
- #. @context: Dashboard navigation - main dashboard page
322
346
  #: src/routes/dash/index.tsx
323
- #: src/ui/layouts/DashLayout.tsx
324
347
  msgid "Dashboard"
325
348
  msgstr "仪表板"
326
349
 
327
350
  #. @context: Settings form field
328
351
  #: src/ui/dash/settings/GeneralContent.tsx
329
- msgid "Default Homepage View"
330
- msgstr "默认主页视图"
352
+ #~ msgid "Default Homepage View"
353
+ #~ msgstr "默认主页视图"
331
354
 
332
355
  #. @context: Button to delete item
333
- #. @context: Button to delete link
334
356
  #. @context: Button to delete redirect
357
+ #. @context: Delete nav item
335
358
  #: src/routes/dash/redirects.tsx
336
359
  #: src/ui/dash/ActionButtons.tsx
337
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
360
+ #: src/ui/dash/appearance/NavigationContent.tsx
338
361
  msgid "Delete"
339
362
  msgstr "删除"
340
363
 
@@ -361,7 +384,7 @@ msgstr "演示账户已预填。只需点击登录。"
361
384
  #. @context: Alt text textarea placeholder
362
385
  #: src/ui/compose/ComposeDialog.tsx
363
386
  msgid "Describe this for people with visual impairments..."
364
- msgstr ""
387
+ msgstr "为视力障碍人士描述这一内容..."
365
388
 
366
389
  #. @context: Collection form field
367
390
  #: src/ui/dash/collections/CollectionForm.tsx
@@ -378,20 +401,10 @@ msgstr "丢弃"
378
401
  msgid "Display avatar in my site header"
379
402
  msgstr "在我的网站头部显示头像"
380
403
 
381
- #. @context: Navigation label help text
382
- #: src/ui/dash/pages/LinkFormContent.tsx
383
- msgid "Display text for the link"
384
- msgstr "链接的显示文本"
385
-
386
- #. @context: Help text for site description field
387
- #: src/ui/dash/settings/GeneralContent.tsx
388
- msgid "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
389
- msgstr ""
390
-
391
404
  #. @context: Help text for site footer field
392
405
  #: src/ui/dash/settings/GeneralContent.tsx
393
406
  msgid "Displayed at the bottom of all posts and pages. Markdown supported."
394
- msgstr ""
407
+ msgstr "显示在所有帖子和页面的底部。支持Markdown。"
395
408
 
396
409
  #. @context: Close attached text panel
397
410
  #. @context: Close media picker button
@@ -424,8 +437,6 @@ msgstr "草稿"
424
437
  #. @context: Button to edit collection
425
438
  #. @context: Button to edit collection
426
439
  #. @context: Button to edit item
427
- #. @context: Button to edit link
428
- #. @context: Button to edit page
429
440
  #. @context: Button to edit page
430
441
  #. @context: Button to edit page
431
442
  #. @context: Button to edit post
@@ -435,9 +446,7 @@ msgstr "草稿"
435
446
  #: src/ui/dash/ActionButtons.tsx
436
447
  #: src/ui/dash/collections/CollectionsListContent.tsx
437
448
  #: src/ui/dash/collections/ViewCollectionContent.tsx
438
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
439
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
440
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
449
+ #: src/ui/dash/pages/PagesContent.tsx
441
450
  #: src/ui/dash/PostList.tsx
442
451
  msgid "Edit"
443
452
  msgstr "编辑"
@@ -447,13 +456,10 @@ msgstr "编辑"
447
456
  msgid "Edit Collection"
448
457
  msgstr "编辑集合"
449
458
 
450
- #. @context: Page heading
451
- #: src/ui/dash/pages/LinkFormContent.tsx
452
- msgid "Edit Link"
453
- msgstr "编辑链接"
454
-
455
459
  #. @context: Edit page main heading
460
+ #. @context: Link to edit the page
456
461
  #: src/routes/dash/pages.tsx
462
+ #: src/ui/dash/appearance/NavigationContent.tsx
457
463
  msgid "Edit Page"
458
464
  msgstr "编辑页面"
459
465
 
@@ -491,11 +497,21 @@ msgstr "条目"
491
497
  msgid "Failed to create account"
492
498
  msgstr "创建账户失败"
493
499
 
500
+ #. @context: Error toast when nav delete fails
501
+ #: src/ui/dash/appearance/NavigationContent.tsx
502
+ msgid "Failed to delete. Please try again."
503
+ msgstr "删除失败。请再试一次。"
504
+
494
505
  #. @context: Toast when post save fails
495
506
  #: src/ui/dash/posts/PostForm.tsx
496
507
  msgid "Failed to save post. Please try again."
497
508
  msgstr "保存帖子失败。请再试一次。"
498
509
 
510
+ #. @context: Error toast when nav save fails
511
+ #: src/ui/dash/appearance/NavigationContent.tsx
512
+ msgid "Failed to save. Please try again."
513
+ msgstr "保存失败。请再试一次。"
514
+
499
515
  #. @context: Error toast when profile update fails
500
516
  #: src/routes/dash/settings.tsx
501
517
  msgid "Failed to update profile."
@@ -503,11 +519,15 @@ msgstr "更新个人资料失败。"
503
519
 
504
520
  #. @context: Archive filter - featured posts
505
521
  #. @context: Browse filter for featured posts
506
- #. @context: Homepage view option - show featured posts
522
+ #. @context: Browse filter label
523
+ #. @context: Browse filter label
524
+ #. @context: Browse filter label for featured posts
507
525
  #. @context: Post badge - featured
508
526
  #. @context: Post form checkbox - mark as featured
527
+ #: src/ui/dash/appearance/NavigationContent.tsx
528
+ #: src/ui/dash/appearance/NavigationContent.tsx
529
+ #: src/ui/dash/appearance/NavigationContent.tsx
509
530
  #: src/ui/dash/posts/PostForm.tsx
510
- #: src/ui/dash/settings/GeneralContent.tsx
511
531
  #: src/ui/dash/StatusBadge.tsx
512
532
  #: src/ui/layouts/SiteLayout.tsx
513
533
  #: src/ui/pages/ArchivePage.tsx
@@ -522,14 +542,7 @@ msgstr "字体主题"
522
542
  #. @context: Appearance sub-navigation tab
523
543
  #: src/ui/dash/appearance/AppearanceNav.tsx
524
544
  msgid "Font Theme"
525
- msgstr ""
526
-
527
- #. @context: Toast after saving site footer
528
- #. @context: Toast after saving site footer
529
- #: src/routes/dash/settings.tsx
530
- #: src/routes/dash/settings.tsx
531
- #~ msgid "Footer saved successfully."
532
- #~ msgstr "页脚保存成功。"
545
+ msgstr "字体主题"
533
546
 
534
547
  #. @context: Post form field - post format
535
548
  #: src/ui/dash/posts/PostForm.tsx
@@ -569,6 +582,11 @@ msgstr "给它一个标题..."
569
582
  msgid "Highest rated"
570
583
  msgstr "最高评分"
571
584
 
585
+ #. @context: Toast after saving home default view setting
586
+ #: src/ui/dash/appearance/NavigationContent.tsx
587
+ msgid "Home view saved"
588
+ msgstr ""
589
+
572
590
  #. @context: Collection form field
573
591
  #: src/ui/dash/collections/CollectionForm.tsx
574
592
  msgid "Icon (optional)"
@@ -609,11 +627,6 @@ msgstr "无效输入"
609
627
  msgid "Invalid or Expired Link"
610
628
  msgstr "无效或过期的链接"
611
629
 
612
- #. @context: Error toast when reorder request is malformed
613
- #: src/routes/dash/pages.tsx
614
- msgid "Invalid request"
615
- msgstr "无效的请求"
616
-
617
630
  #. @context: Error toast when selected theme is not valid
618
631
  #: src/routes/dash/appearance.tsx
619
632
  msgid "Invalid theme selected."
@@ -624,32 +637,39 @@ msgstr "所选主题无效。"
624
637
  msgid "It's OK for search engines to index my site"
625
638
  msgstr "允许搜索引擎索引我的网站是可以的"
626
639
 
627
- #. @context: Navigation link form field
628
- #: src/ui/dash/pages/LinkFormContent.tsx
640
+ #. @context: Nav item label field
641
+ #: src/ui/dash/appearance/NavigationContent.tsx
629
642
  msgid "Label"
630
643
  msgstr "标签"
631
644
 
632
645
  #. @context: Error toast when nav link fields are empty
633
- #. @context: Error toast when nav link fields are empty
634
- #: src/routes/dash/pages.tsx
635
- #: src/routes/dash/pages.tsx
646
+ #: src/ui/dash/appearance/NavigationContent.tsx
636
647
  msgid "Label and URL are required"
637
648
  msgstr "标签和 URL 是必填项"
638
649
 
650
+ #. @context: Error toast when nav label is empty
651
+ #: src/ui/dash/appearance/NavigationContent.tsx
652
+ msgid "Label is required"
653
+ msgstr "标签是必需的"
654
+
639
655
  #. @context: Settings form field
640
656
  #: src/ui/dash/settings/GeneralContent.tsx
641
657
  msgid "Language"
642
658
  msgstr "语言"
643
659
 
644
660
  #. @context: Browse filter for latest posts
645
- #. @context: Homepage view option - show latest posts
646
- #: src/ui/dash/settings/GeneralContent.tsx
661
+ #. @context: Browse filter label
662
+ #. @context: Browse filter label
663
+ #. @context: Browse filter label for latest posts
664
+ #: src/ui/dash/appearance/NavigationContent.tsx
665
+ #: src/ui/dash/appearance/NavigationContent.tsx
666
+ #: src/ui/dash/appearance/NavigationContent.tsx
647
667
  #: src/ui/layouts/SiteLayout.tsx
648
668
  msgid "Latest"
649
669
  msgstr "最新"
650
670
 
651
671
  #. @context: Nav item type badge
652
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
672
+ #: src/ui/dash/appearance/NavigationContent.tsx
653
673
  msgid "link"
654
674
  msgstr "链接"
655
675
 
@@ -699,17 +719,40 @@ msgstr "Markdown"
699
719
  msgid "Markdown supported"
700
720
  msgstr "支持Markdown"
701
721
 
722
+ #. @context: Label for max visible nav links number input
723
+ #: src/ui/dash/appearance/NavigationContent.tsx
724
+ msgid "Max visible links"
725
+ msgstr ""
726
+
727
+ #. @context: Toast after saving max visible nav links setting
728
+ #: src/ui/dash/appearance/NavigationContent.tsx
729
+ msgid "Max visible links saved"
730
+ msgstr ""
731
+
732
+ #. @context: Settings form field for max visible nav links in header before overflow menu
733
+ #: src/ui/dash/settings/GeneralContent.tsx
734
+ #~ msgid "Max Visible Nav Links"
735
+ #~ msgstr "最大可见导航链接"
736
+
702
737
  #. @context: Compose toolbar - media tooltip
703
- #. @context: Dashboard navigation - media library
704
738
  #. @context: Media main heading
705
739
  #. @context: Post form field - media attachments
706
740
  #: src/ui/compose/ComposeDialog.tsx
707
741
  #: src/ui/dash/media/MediaListContent.tsx
708
742
  #: src/ui/dash/posts/PostForm.tsx
709
- #: src/ui/layouts/DashLayout.tsx
710
743
  msgid "Media"
711
744
  msgstr "媒体"
712
745
 
746
+ #. @context: Dashboard header menu button
747
+ #: src/ui/layouts/DashLayout.tsx
748
+ msgid "Menu"
749
+ msgstr "菜单"
750
+
751
+ #. @context: Button to show overflow nav links
752
+ #: src/ui/layouts/SiteLayout.tsx
753
+ msgid "More links"
754
+ msgstr "更多链接"
755
+
713
756
  #. @context: Collection title placeholder
714
757
  #: src/ui/dash/collections/CollectionForm.tsx
715
758
  msgid "My Collection"
@@ -725,6 +768,16 @@ msgstr "姓名"
725
768
  msgid "Name is required."
726
769
  msgstr "名称是必需的。"
727
770
 
771
+ #. @context: Appearance sub-navigation tab
772
+ #: src/ui/dash/appearance/AppearanceNav.tsx
773
+ msgid "Navigation"
774
+ msgstr "导航"
775
+
776
+ #. @context: Section heading for nav items
777
+ #: src/ui/dash/appearance/NavigationContent.tsx
778
+ msgid "Navigation items"
779
+ msgstr "导航项"
780
+
728
781
  #. @context: Help text with link
729
782
  #: src/routes/dash/index.tsx
730
783
  msgid "Need help? Visit the <0>documentation</0>"
@@ -744,15 +797,10 @@ msgstr "新收藏"
744
797
  msgid "New Divider"
745
798
  msgstr "新分隔符"
746
799
 
747
- #. @context: Page heading
748
- #: src/ui/dash/pages/LinkFormContent.tsx
749
- msgid "New Link"
750
- msgstr "新链接"
751
-
752
800
  #. @context: Button to create new page
753
801
  #. @context: New page main heading
754
802
  #: src/routes/dash/pages.tsx
755
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
803
+ #: src/ui/dash/pages/PagesContent.tsx
756
804
  msgid "New Page"
757
805
  msgstr "新页面"
758
806
 
@@ -796,7 +844,7 @@ msgstr "下一页"
796
844
  #. @context: Compose collection combobox empty state
797
845
  #: src/ui/compose/ComposeDialog.tsx
798
846
  msgid "No collections found."
799
- msgstr ""
847
+ msgstr "未找到任何收藏。"
800
848
 
801
849
  #. @context: Empty state message
802
850
  #. @context: Empty state message on collections page
@@ -830,10 +878,20 @@ msgstr "尚未选择任何媒体。"
830
878
  msgid "No media uploaded yet."
831
879
  msgstr "尚未上传任何媒体。"
832
880
 
833
- #. @context: Empty state for navigation section
834
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
835
- msgid "No navigation links yet. Add pages to navigation or create links."
836
- msgstr "尚未有导航链接。请将页面添加到导航或创建链接。"
881
+ #. @context: Empty state for navigation items
882
+ #: src/ui/dash/appearance/NavigationContent.tsx
883
+ msgid "No navigation items yet. Add pages, links, or enable system items below."
884
+ msgstr "尚未有导航项。请在下面添加页面、链接或启用系统项。"
885
+
886
+ #. @context: Empty state when page search has no results
887
+ #: src/ui/dash/appearance/NavigationContent.tsx
888
+ msgid "No pages found."
889
+ msgstr ""
890
+
891
+ #. @context: Empty state for pages list
892
+ #: src/ui/dash/pages/PagesContent.tsx
893
+ msgid "No pages yet. Create your first page to get started."
894
+ msgstr "还没有页面。创建您的第一个页面以开始。"
837
895
 
838
896
  #. @context: Archive empty state
839
897
  #: src/ui/pages/ArchivePage.tsx
@@ -886,17 +944,12 @@ msgid "Oldest first"
886
944
  msgstr "最旧的在前"
887
945
 
888
946
  #. @context: Toast after saving navigation item order
889
- #: src/routes/dash/pages.tsx
947
+ #: src/ui/dash/appearance/NavigationContent.tsx
890
948
  msgid "Order saved"
891
949
  msgstr "已保存顺序"
892
950
 
893
- #. @context: Section heading for pages not in navigation
894
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
895
- msgid "Other pages"
896
- msgstr "其他页面"
897
-
898
951
  #. @context: Nav item type badge
899
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
952
+ #: src/ui/dash/appearance/NavigationContent.tsx
900
953
  msgid "page"
901
954
  msgstr "页面"
902
955
 
@@ -922,7 +975,7 @@ msgstr "页面标题..."
922
975
 
923
976
  #. @context: Dashboard navigation - pages management
924
977
  #. @context: Pages main heading
925
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
978
+ #: src/ui/dash/pages/PagesContent.tsx
926
979
  #: src/ui/layouts/DashLayout.tsx
927
980
  msgid "Pages"
928
981
  msgstr "页面"
@@ -960,11 +1013,6 @@ msgstr ""
960
1013
  msgid "Paste a URL..."
961
1014
  msgstr "粘贴一个网址..."
962
1015
 
963
- #. @context: Navigation URL help text
964
- #: src/ui/dash/pages/LinkFormContent.tsx
965
- msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
966
- msgstr "路径(例如 /archive)或完整 URL(例如 https://example.com)"
967
-
968
1016
  #. @context: Link to individual post in thread
969
1017
  #. @context: Link to permanent URL of post
970
1018
  #: src/ui/pages/PostPage.tsx
@@ -980,11 +1028,9 @@ msgid "Pinned"
980
1028
  msgstr "已固定"
981
1029
 
982
1030
  #. @context: Compose button - publish post
983
- #. @context: Compose prompt post button
984
1031
  #. @context: Default post title
985
1032
  #: src/routes/dash/posts.tsx
986
1033
  #: src/ui/compose/ComposeDialog.tsx
987
- #: src/ui/compose/ComposePrompt.tsx
988
1034
  msgid "Post"
989
1035
  msgstr "帖子"
990
1036
 
@@ -1004,9 +1050,7 @@ msgid "Post updated successfully."
1004
1050
  msgstr "帖子更新成功。"
1005
1051
 
1006
1052
  #. @context: Dashboard heading
1007
- #. @context: Dashboard navigation - posts management
1008
1053
  #: src/routes/dash/posts.tsx
1009
- #: src/ui/layouts/DashLayout.tsx
1010
1054
  msgid "Posts"
1011
1055
  msgstr "帖子"
1012
1056
 
@@ -1015,7 +1059,11 @@ msgstr "帖子"
1015
1059
  msgid "Posts in Collection ({count})"
1016
1060
  msgstr "集合中的帖子 ({count})"
1017
1061
 
1062
+ #. @context: Label for nav preview section
1063
+ #. @context: Label for nav preview section
1018
1064
  #. @context: Media detail section - preview
1065
+ #: src/ui/dash/appearance/NavigationContent.tsx
1066
+ #: src/ui/dash/appearance/NavigationContent.tsx
1019
1067
  #: src/ui/dash/media/ViewMediaContent.tsx
1020
1068
  msgid "Preview"
1021
1069
  msgstr "预览"
@@ -1068,7 +1116,7 @@ msgstr "已发布的页面可以通过其别名访问。草稿不可见。"
1068
1116
  #. @context: Toast shown after successful deferred publish
1069
1117
  #: src/ui/compose/ComposeDialog.tsx
1070
1118
  msgid "Published!"
1071
- msgstr ""
1119
+ msgstr "已发布!"
1072
1120
 
1073
1121
  #. @context: Dashboard section title
1074
1122
  #: src/routes/dash/index.tsx
@@ -1106,6 +1154,8 @@ msgstr "重定向"
1106
1154
  #. @context: Button to remove icon
1107
1155
  #. @context: Button to remove the blog avatar
1108
1156
  #. @context: Remove media attachment button
1157
+ #. @context: Remove page from navigation
1158
+ #: src/ui/dash/appearance/NavigationContent.tsx
1109
1159
  #: src/ui/dash/collections/CollectionForm.tsx
1110
1160
  #: src/ui/dash/posts/PostForm.tsx
1111
1161
  #: src/ui/dash/settings/GeneralContent.tsx
@@ -1125,6 +1175,8 @@ msgid "Reset Password"
1125
1175
  msgstr "重置密码"
1126
1176
 
1127
1177
  #. @context: Button to save settings
1178
+ #. @context: Save nav item changes
1179
+ #: src/ui/dash/appearance/NavigationContent.tsx
1128
1180
  #: src/ui/dash/settings/GeneralContent.tsx
1129
1181
  msgid "Save"
1130
1182
  msgstr "保存"
@@ -1139,11 +1191,6 @@ msgstr "保存为草稿"
1139
1191
  msgid "Save as Draft"
1140
1192
  msgstr "保存为草稿"
1141
1193
 
1142
- #. @context: Button to save edited navigation link
1143
- #: src/ui/dash/pages/LinkFormContent.tsx
1144
- msgid "Save Changes"
1145
- msgstr "保存更改"
1146
-
1147
1194
  #. @context: Button to save custom CSS
1148
1195
  #: src/ui/dash/appearance/AdvancedContent.tsx
1149
1196
  msgid "Save CSS"
@@ -1173,6 +1220,11 @@ msgstr "搜索"
1173
1220
  msgid "Search icons..."
1174
1221
  msgstr "搜索图标..."
1175
1222
 
1223
+ #. @context: Placeholder for page search input in combobox
1224
+ #: src/ui/dash/appearance/NavigationContent.tsx
1225
+ msgid "Search pages…"
1226
+ msgstr ""
1227
+
1176
1228
  #. @context: Search input placeholder
1177
1229
  #: src/ui/pages/SearchPage.tsx
1178
1230
  msgid "Search posts..."
@@ -1181,7 +1233,7 @@ msgstr "搜索帖子..."
1181
1233
  #. @context: Compose collection combobox search placeholder
1182
1234
  #: src/ui/compose/ComposeDialog.tsx
1183
1235
  msgid "Search..."
1184
- msgstr ""
1236
+ msgstr "搜索..."
1185
1237
 
1186
1238
  #. @context: Media picker dialog title
1187
1239
  #: src/ui/dash/posts/PostForm.tsx
@@ -1200,15 +1252,7 @@ msgstr "搜索引擎优化"
1200
1252
  msgid "SEO settings saved successfully."
1201
1253
  msgstr "SEO设置已成功保存。"
1202
1254
 
1203
- #. @context: Dashboard heading
1204
- #. @context: Dashboard heading
1205
- #. @context: Dashboard heading
1206
- #. @context: Dashboard heading
1207
1255
  #. @context: Dashboard navigation - site settings
1208
- #: src/routes/dash/redirects.tsx
1209
- #: src/routes/dash/redirects.tsx
1210
- #: src/ui/dash/settings/AccountContent.tsx
1211
- #: src/ui/dash/settings/GeneralContent.tsx
1212
1256
  #: src/ui/layouts/DashLayout.tsx
1213
1257
  msgid "Settings"
1214
1258
  msgstr "设置"
@@ -1233,7 +1277,7 @@ msgstr "显示 {remainingCount} 个更多 {0}"
1233
1277
  msgid "Sign In"
1234
1278
  msgstr "登录"
1235
1279
 
1236
- #. @context: Dashboard header link to sign out
1280
+ #. @context: Dashboard menu item to sign out
1237
1281
  #: src/ui/layouts/DashLayout.tsx
1238
1282
  msgid "Sign Out"
1239
1283
  msgstr "登出"
@@ -1287,6 +1331,16 @@ msgstr "存储未配置。"
1287
1331
  msgid "Supplementary content attached to your post"
1288
1332
  msgstr "附加在您帖子上的补充内容"
1289
1333
 
1334
+ #. @context: Nav item type badge
1335
+ #: src/ui/dash/appearance/NavigationContent.tsx
1336
+ msgid "system"
1337
+ msgstr "系统"
1338
+
1339
+ #. @context: Section heading for system nav items
1340
+ #: src/ui/dash/appearance/NavigationContent.tsx
1341
+ msgid "System links"
1342
+ msgstr "系统链接"
1343
+
1290
1344
  #. @context: Redirect to path help text
1291
1345
  #: src/routes/dash/redirects.tsx
1292
1346
  msgid "The destination path or URL"
@@ -1314,16 +1368,6 @@ msgstr "被引用的文本..."
1314
1368
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1315
1369
  msgstr "此页面的 URL 路径。使用小写字母、数字和连字符。"
1316
1370
 
1317
- #. @context: Help text for site description field
1318
- #: src/ui/dash/settings/GeneralContent.tsx
1319
- #~ msgid "This is displayed above your blog posts on your default home page. This is also used for the meta description on your home page."
1320
- #~ msgstr "这将在您的默认主页上显示在博客文章上方。这也用于您主页上的元描述。"
1321
-
1322
- #. @context: Help text for site footer field
1323
- #: src/ui/dash/settings/GeneralContent.tsx
1324
- #~ msgid "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
1325
- #~ msgstr "这将在您所有的帖子和页面底部显示。支持Markdown。"
1326
-
1327
1371
  #. @context: Help text for avatar upload
1328
1372
  #: src/ui/dash/settings/GeneralContent.tsx
1329
1373
  msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
@@ -1380,6 +1424,16 @@ msgstr "标题(可选)"
1380
1424
  msgid "To Path"
1381
1425
  msgstr "到路径"
1382
1426
 
1427
+ #. @context: Description for system nav toggles
1428
+ #: src/ui/dash/appearance/NavigationContent.tsx
1429
+ msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside pages and links."
1430
+ msgstr "切换内置导航项。启用的项会与页面和链接一起出现在您的导航中。"
1431
+
1432
+ #. @context: Button to expand/collapse nav item edit
1433
+ #: src/ui/dash/appearance/NavigationContent.tsx
1434
+ msgid "Toggle edit panel"
1435
+ msgstr "切换编辑面板"
1436
+
1383
1437
  #. @context: Redirect form field
1384
1438
  #: src/routes/dash/redirects.tsx
1385
1439
  msgid "Type"
@@ -1390,14 +1444,9 @@ msgstr "类型"
1390
1444
  msgid "Type the quote..."
1391
1445
  msgstr "输入引用..."
1392
1446
 
1393
- #. @context: Button to remove page from navigation
1394
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1395
- msgid "Un-nav"
1396
- msgstr "取消导航"
1397
-
1398
1447
  #. @context: Default title for untitled page
1399
1448
  #. @context: Default title for untitled post
1400
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1449
+ #: src/ui/dash/pages/PagesContent.tsx
1401
1450
  #: src/ui/dash/PostList.tsx
1402
1451
  msgid "Untitled"
1403
1452
  msgstr "无标题"
@@ -1453,9 +1502,9 @@ msgid "Uploading..."
1453
1502
  msgstr "上传中..."
1454
1503
 
1455
1504
  #. @context: Media detail section - URL
1456
- #. @context: Navigation link form field
1505
+ #. @context: Nav item URL field
1506
+ #: src/ui/dash/appearance/NavigationContent.tsx
1457
1507
  #: src/ui/dash/media/ViewMediaContent.tsx
1458
- #: src/ui/dash/pages/LinkFormContent.tsx
1459
1508
  msgid "URL"
1460
1509
  msgstr "网址"
1461
1510
 
@@ -1469,6 +1518,11 @@ msgstr "网址(可选)"
1469
1518
  msgid "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
1470
1519
  msgstr "URL安全标识符(小写字母、数字、连字符)。对于CJK标题,slug将在服务器上自动生成。"
1471
1520
 
1521
+ #. @context: Switch label for setting featured posts as default homepage
1522
+ #: src/ui/dash/appearance/NavigationContent.tsx
1523
+ msgid "Use Featured as default home view"
1524
+ msgstr ""
1525
+
1472
1526
  #. @context: Media URL helper text
1473
1527
  #: src/ui/dash/media/ViewMediaContent.tsx
1474
1528
  msgid "Use this URL to embed the media in your posts."
@@ -1484,7 +1538,7 @@ msgstr "使用此 URL 将媒体嵌入到您的帖子中。"
1484
1538
  #: src/routes/dash/posts.tsx
1485
1539
  #: src/ui/dash/ActionButtons.tsx
1486
1540
  #: src/ui/dash/collections/ViewCollectionContent.tsx
1487
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1541
+ #: src/ui/dash/pages/PagesContent.tsx
1488
1542
  #: src/ui/dash/PostList.tsx
1489
1543
  msgid "View"
1490
1544
  msgstr "查看"
@@ -1521,11 +1575,6 @@ msgstr "这个系列是关于什么的?"
1521
1575
  msgid "Your Name"
1522
1576
  msgstr "您的姓名"
1523
1577
 
1524
- #. @context: Section heading for navigation items
1525
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1526
- msgid "Your site navigation"
1527
- msgstr "您的网站导航"
1528
-
1529
1578
  #. @context: Compose thoughts placeholder
1530
1579
  #: src/ui/compose/ComposeDialog.tsx
1531
1580
  msgid "Your thoughts (optional)"