@jant/core 0.3.32 → 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 +1 -1
  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 "標籤和網址是必填的"
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)或完整網址(例如 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 "SEO"
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 "這會顯示在您預設首頁的部落格文章上方。這也用於您首頁的 meta 描述。"
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)"