@jant/core 0.3.25 → 0.3.27

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 (133) hide show
  1. package/dist/app.js +70 -563
  2. package/dist/auth.js +3 -0
  3. package/dist/client.js +1 -0
  4. package/dist/i18n/locales/en.js +1 -1
  5. package/dist/i18n/locales/zh-Hans.js +1 -1
  6. package/dist/i18n/locales/zh-Hant.js +1 -1
  7. package/dist/lib/avatar-upload.js +134 -0
  8. package/dist/lib/config.js +39 -0
  9. package/dist/lib/constants.js +10 -10
  10. package/dist/lib/favicon.js +102 -0
  11. package/dist/lib/image.js +13 -17
  12. package/dist/lib/media-helpers.js +2 -2
  13. package/dist/lib/navigation.js +23 -3
  14. package/dist/lib/render.js +10 -1
  15. package/dist/lib/schemas.js +31 -0
  16. package/dist/lib/timezones.js +388 -0
  17. package/dist/lib/view.js +1 -1
  18. package/dist/routes/api/posts.js +1 -1
  19. package/dist/routes/api/upload.js +3 -3
  20. package/dist/routes/auth/reset.js +221 -0
  21. package/dist/routes/auth/setup.js +194 -0
  22. package/dist/routes/auth/signin.js +176 -0
  23. package/dist/routes/dash/collections.js +23 -415
  24. package/dist/routes/dash/media.js +12 -392
  25. package/dist/routes/dash/pages.js +7 -330
  26. package/dist/routes/dash/redirects.js +18 -12
  27. package/dist/routes/dash/settings.js +198 -577
  28. package/dist/routes/feed/rss.js +2 -1
  29. package/dist/routes/feed/sitemap.js +4 -2
  30. package/dist/routes/pages/featured.js +5 -1
  31. package/dist/routes/pages/home.js +26 -1
  32. package/dist/routes/pages/latest.js +45 -0
  33. package/dist/services/post.js +30 -50
  34. package/dist/types/bindings.js +3 -0
  35. package/dist/types/config.js +147 -0
  36. package/dist/types/constants.js +27 -0
  37. package/dist/types/entities.js +3 -0
  38. package/dist/types/operations.js +3 -0
  39. package/dist/types/props.js +3 -0
  40. package/dist/types/views.js +5 -0
  41. package/dist/types.js +8 -111
  42. package/dist/ui/color-themes.js +33 -33
  43. package/dist/ui/compose/ComposeDialog.js +36 -21
  44. package/dist/ui/dash/PageForm.js +21 -15
  45. package/dist/ui/dash/PostForm.js +22 -16
  46. package/dist/ui/dash/collections/CollectionForm.js +152 -0
  47. package/dist/ui/dash/collections/CollectionsListContent.js +68 -0
  48. package/dist/ui/dash/collections/ViewCollectionContent.js +96 -0
  49. package/dist/ui/dash/media/MediaListContent.js +166 -0
  50. package/dist/ui/dash/media/ViewMediaContent.js +212 -0
  51. package/dist/ui/dash/pages/LinkFormContent.js +130 -0
  52. package/dist/ui/dash/pages/UnifiedPagesContent.js +193 -0
  53. package/dist/ui/dash/settings/AccountContent.js +209 -0
  54. package/dist/ui/dash/settings/AppearanceContent.js +259 -0
  55. package/dist/ui/dash/settings/GeneralContent.js +536 -0
  56. package/dist/ui/dash/settings/SettingsNav.js +41 -0
  57. package/dist/ui/font-themes.js +36 -0
  58. package/dist/ui/layouts/BaseLayout.js +24 -2
  59. package/dist/ui/layouts/SiteLayout.js +47 -19
  60. package/package.json +1 -1
  61. package/src/app.tsx +95 -553
  62. package/src/auth.ts +4 -1
  63. package/src/client.ts +1 -0
  64. package/src/i18n/locales/en.po +240 -175
  65. package/src/i18n/locales/en.ts +1 -1
  66. package/src/i18n/locales/zh-Hans.po +240 -175
  67. package/src/i18n/locales/zh-Hans.ts +1 -1
  68. package/src/i18n/locales/zh-Hant.po +240 -175
  69. package/src/i18n/locales/zh-Hant.ts +1 -1
  70. package/src/lib/__tests__/config.test.ts +192 -0
  71. package/src/lib/__tests__/favicon.test.ts +151 -0
  72. package/src/lib/__tests__/image.test.ts +2 -6
  73. package/src/lib/__tests__/timezones.test.ts +61 -0
  74. package/src/lib/__tests__/view.test.ts +2 -2
  75. package/src/lib/avatar-upload.ts +165 -0
  76. package/src/lib/config.ts +47 -0
  77. package/src/lib/constants.ts +19 -11
  78. package/src/lib/favicon.ts +115 -0
  79. package/src/lib/image.ts +13 -21
  80. package/src/lib/media-helpers.ts +2 -2
  81. package/src/lib/navigation.ts +33 -2
  82. package/src/lib/render.tsx +15 -1
  83. package/src/lib/schemas.ts +39 -0
  84. package/src/lib/timezones.ts +325 -0
  85. package/src/lib/view.ts +1 -1
  86. package/src/routes/api/posts.ts +1 -1
  87. package/src/routes/api/upload.ts +2 -3
  88. package/src/routes/auth/reset.tsx +239 -0
  89. package/src/routes/auth/setup.tsx +189 -0
  90. package/src/routes/auth/signin.tsx +163 -0
  91. package/src/routes/dash/__tests__/settings-avatar.test.ts +89 -0
  92. package/src/routes/dash/collections.tsx +17 -366
  93. package/src/routes/dash/media.tsx +12 -414
  94. package/src/routes/dash/pages.tsx +8 -348
  95. package/src/routes/dash/redirects.tsx +20 -14
  96. package/src/routes/dash/settings.tsx +243 -534
  97. package/src/routes/feed/__tests__/rss.test.ts +141 -0
  98. package/src/routes/feed/rss.ts +3 -1
  99. package/src/routes/feed/sitemap.ts +4 -2
  100. package/src/routes/pages/featured.tsx +7 -1
  101. package/src/routes/pages/home.tsx +25 -2
  102. package/src/routes/pages/latest.tsx +59 -0
  103. package/src/services/post.ts +34 -66
  104. package/src/styles/components.css +0 -65
  105. package/src/styles/tokens.css +1 -1
  106. package/src/styles/ui.css +24 -40
  107. package/src/types/bindings.ts +30 -0
  108. package/src/types/config.ts +183 -0
  109. package/src/types/constants.ts +26 -0
  110. package/src/types/entities.ts +109 -0
  111. package/src/types/operations.ts +88 -0
  112. package/src/types/props.ts +115 -0
  113. package/src/types/views.ts +172 -0
  114. package/src/types.ts +8 -644
  115. package/src/ui/__tests__/font-themes.test.ts +34 -0
  116. package/src/ui/color-themes.ts +34 -34
  117. package/src/ui/compose/ComposeDialog.tsx +40 -21
  118. package/src/ui/dash/PageForm.tsx +25 -19
  119. package/src/ui/dash/PostForm.tsx +26 -20
  120. package/src/ui/dash/collections/CollectionForm.tsx +153 -0
  121. package/src/ui/dash/collections/CollectionsListContent.tsx +85 -0
  122. package/src/ui/dash/collections/ViewCollectionContent.tsx +92 -0
  123. package/src/ui/dash/media/MediaListContent.tsx +201 -0
  124. package/src/ui/dash/media/ViewMediaContent.tsx +208 -0
  125. package/src/ui/dash/pages/LinkFormContent.tsx +119 -0
  126. package/src/ui/dash/pages/UnifiedPagesContent.tsx +203 -0
  127. package/src/ui/dash/settings/AccountContent.tsx +176 -0
  128. package/src/ui/dash/settings/AppearanceContent.tsx +254 -0
  129. package/src/ui/dash/settings/GeneralContent.tsx +533 -0
  130. package/src/ui/dash/settings/SettingsNav.tsx +56 -0
  131. package/src/ui/font-themes.ts +54 -0
  132. package/src/ui/layouts/BaseLayout.tsx +17 -0
  133. package/src/ui/layouts/SiteLayout.tsx +45 -31
@@ -19,12 +19,12 @@ msgstr ""
19
19
  #~ msgstr "{count} 條回覆"
20
20
 
21
21
  #. @context: Custom CSS textarea placeholder
22
- #: src/routes/dash/settings.tsx:364
22
+ #: src/ui/dash/settings/AppearanceContent.tsx:218
23
23
  msgid "/* Your custom CSS here */"
24
24
  msgstr ""
25
25
 
26
26
  #. @context: Navigation link
27
- #: src/routes/dash/collections.tsx:271
27
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:84
28
28
  msgid "← Back to Collections"
29
29
  msgstr "← 返回收藏夾"
30
30
 
@@ -43,18 +43,23 @@ msgstr "301(永久)"
43
43
  msgid "302 (Temporary)"
44
44
  msgstr "302(臨時)"
45
45
 
46
+ #. @context: Settings form field for site description
47
+ #: src/ui/dash/settings/GeneralContent.tsx:324
48
+ msgid "About this blog"
49
+ msgstr ""
50
+
46
51
  #. @context: Settings sub-navigation tab
47
- #: src/routes/dash/settings.tsx:63
52
+ #: src/ui/dash/settings/SettingsNav.tsx:31
48
53
  msgid "Account"
49
54
  msgstr "帳戶"
50
55
 
51
56
  #. @context: Custom CSS settings description
52
- #: src/routes/dash/settings.tsx:354
57
+ #: src/ui/dash/settings/AppearanceContent.tsx:208
53
58
  msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
54
59
  msgstr ""
55
60
 
56
61
  #. @context: Button to add a navigation link
57
- #: src/routes/dash/pages.tsx:50
62
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:28
58
63
  msgid "Add Link"
59
64
  msgstr ""
60
65
 
@@ -66,7 +71,7 @@ msgid "Add Media"
66
71
  msgstr "添加媒體"
67
72
 
68
73
  #. @context: Button to add page to navigation
69
- #: src/routes/dash/pages.tsx:185
74
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:163
70
75
  msgid "Add to nav"
71
76
  msgstr ""
72
77
 
@@ -76,12 +81,12 @@ msgid "All"
76
81
  msgstr "所有"
77
82
 
78
83
  #. @context: Empty state when all pages are in nav
79
- #: src/routes/dash/pages.tsx:168
84
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:146
80
85
  msgid "All pages are in your navigation."
81
86
  msgstr ""
82
87
 
83
88
  #. @context: Settings sub-navigation tab
84
- #: src/routes/dash/settings.tsx:55
89
+ #: src/ui/dash/settings/SettingsNav.tsx:23
85
90
  msgid "Appearance"
86
91
  msgstr "外觀"
87
92
 
@@ -115,34 +120,44 @@ msgstr ""
115
120
  #~ msgstr "至少需要 1 張圖片才能發佈圖片帖子。"
116
121
 
117
122
  #. @context: Button to go back to media list
118
- #: src/routes/dash/media.tsx:266
123
+ #: src/ui/dash/media/ViewMediaContent.tsx:57
119
124
  msgid "Back"
120
125
  msgstr "返回"
121
126
 
127
+ #. @context: Settings section heading for avatar
128
+ #: src/ui/dash/settings/GeneralContent.tsx:160
129
+ msgid "Blog Avatar"
130
+ msgstr ""
131
+
122
132
  #. @context: Button to cancel and go back
123
133
  #. @context: Button to cancel form
124
134
  #. @context: Button to cancel form
125
135
  #. @context: Button to cancel form
126
136
  #. @context: Button to cancel form
127
- #. @context: Button to cancel form
128
- #: src/routes/dash/collections.tsx:186
129
- #: src/routes/dash/collections.tsx:354
130
- #: src/routes/dash/pages.tsx:400
131
- #: src/routes/dash/redirects.tsx:177
132
- #: src/ui/dash/PageForm.tsx:171
133
- #: src/ui/dash/PostForm.tsx:312
137
+ #. @context: Button to cancel unsaved changes and revert to original values
138
+ #: src/routes/dash/redirects.tsx:183
139
+ #: src/ui/dash/collections/CollectionForm.tsx:144
140
+ #: src/ui/dash/PageForm.tsx:177
141
+ #: src/ui/dash/pages/LinkFormContent.tsx:110
142
+ #: src/ui/dash/PostForm.tsx:318
143
+ #: src/ui/dash/settings/GeneralContent.tsx:86
134
144
  msgid "Cancel"
135
145
  msgstr "取消"
136
146
 
137
147
  #. @context: Button to change password
138
148
  #. @context: Settings section heading
139
- #: src/routes/dash/settings.tsx:474
140
- #: src/routes/dash/settings.tsx:539
149
+ #: src/ui/dash/settings/AccountContent.tsx:88
150
+ #: src/ui/dash/settings/AccountContent.tsx:167
141
151
  msgid "Change Password"
142
152
  msgstr "更改密碼"
143
153
 
154
+ #. @context: Font theme settings description
155
+ #: src/ui/dash/settings/AppearanceContent.tsx:153
156
+ msgid "Choose a font for your site. All options use system fonts for fast loading."
157
+ msgstr ""
158
+
144
159
  #. @context: Hint to click image for lightbox
145
- #: src/routes/dash/media.tsx:299
160
+ #: src/ui/dash/media/ViewMediaContent.tsx:90
146
161
  msgid "Click image to view full size"
147
162
  msgstr "點擊圖片以查看完整大小"
148
163
 
@@ -161,7 +176,7 @@ msgstr ""
161
176
  #. @context: Collections page heading
162
177
  #. @context: Dashboard heading
163
178
  #. @context: Dashboard navigation - collections management
164
- #: src/routes/dash/collections.tsx:35
179
+ #: src/ui/dash/collections/CollectionsListContent.tsx:24
165
180
  #: src/ui/layouts/DashLayout.tsx:114
166
181
  #: src/ui/pages/CollectionsPage.tsx:18
167
182
  msgid "Collections"
@@ -173,22 +188,22 @@ msgstr "收藏夾"
173
188
  #~ msgstr "收藏(可選)"
174
189
 
175
190
  #. @context: Appearance settings heading
176
- #: src/routes/dash/settings.tsx:315
191
+ #: src/ui/dash/settings/AppearanceContent.tsx:112
177
192
  msgid "Color theme"
178
193
  msgstr "顏色主題"
179
194
 
180
195
  #. @context: Setup form submit button
181
- #: src/app.tsx:289
196
+ #: src/routes/auth/setup.tsx:108
182
197
  msgid "Complete Setup"
183
198
  msgstr "完成設置"
184
199
 
185
200
  #. @context: Password form field
186
- #: src/routes/dash/settings.tsx:516
201
+ #: src/ui/dash/settings/AccountContent.tsx:130
187
202
  msgid "Confirm New Password"
188
203
  msgstr "確認新密碼"
189
204
 
190
205
  #. @context: Password reset form field
191
- #: src/app.tsx:562
206
+ #: src/routes/auth/reset.tsx:70
192
207
  msgid "Confirm Password"
193
208
  msgstr "確認密碼"
194
209
 
@@ -201,33 +216,33 @@ msgstr "內容"
201
216
 
202
217
  #. @context: Button to copy Markdown to clipboard
203
218
  #. @context: Button to copy URL to clipboard
204
- #: src/routes/dash/media.tsx:337
205
- #: src/routes/dash/media.tsx:374
219
+ #: src/ui/dash/media/ViewMediaContent.tsx:128
220
+ #: src/ui/dash/media/ViewMediaContent.tsx:165
206
221
  msgid "Copy"
207
222
  msgstr "複製"
208
223
 
209
224
  #. @context: Button to save new collection
210
- #: src/routes/dash/collections.tsx:172
225
+ #: src/ui/dash/collections/CollectionForm.tsx:36
211
226
  msgid "Create Collection"
212
227
  msgstr "創建收藏夾"
213
228
 
214
229
  #. @context: Button to save new navigation link
215
- #: src/routes/dash/pages.tsx:386
230
+ #: src/ui/dash/pages/LinkFormContent.tsx:104
216
231
  msgid "Create Link"
217
232
  msgstr "建立連結"
218
233
 
219
234
  #. @context: Button to create new page
220
- #: src/ui/dash/PageForm.tsx:157
235
+ #: src/ui/dash/PageForm.tsx:171
221
236
  msgid "Create Page"
222
237
  msgstr "創建頁面"
223
238
 
224
239
  #. @context: Button to save new redirect
225
- #: src/routes/dash/redirects.tsx:163
240
+ #: src/routes/dash/redirects.tsx:177
226
241
  msgid "Create Redirect"
227
242
  msgstr "建立重定向"
228
243
 
229
244
  #. @context: Setup page description
230
- #: src/app.tsx:229
245
+ #: src/routes/auth/setup.tsx:33
231
246
  msgid "Create your admin account."
232
247
  msgstr "建立您的管理員帳戶。"
233
248
 
@@ -242,12 +257,12 @@ msgid "Create your first post"
242
257
  msgstr "創建你的第一篇帖子"
243
258
 
244
259
  #. @context: Password form field
245
- #: src/routes/dash/settings.tsx:483
260
+ #: src/ui/dash/settings/AccountContent.tsx:97
246
261
  msgid "Current Password"
247
262
  msgstr "當前密碼"
248
263
 
249
264
  #. @context: Appearance settings heading for custom CSS
250
- #: src/routes/dash/settings.tsx:348
265
+ #: src/ui/dash/settings/AppearanceContent.tsx:202
251
266
  msgid "Custom CSS"
252
267
  msgstr ""
253
268
 
@@ -278,56 +293,64 @@ msgstr "危險區域"
278
293
  msgid "Dashboard"
279
294
  msgstr "儀表板"
280
295
 
296
+ #. @context: Settings form field
297
+ #: src/ui/dash/settings/GeneralContent.tsx:374
298
+ msgid "Default Homepage View"
299
+ msgstr ""
300
+
281
301
  #. @context: Button to delete item
282
302
  #. @context: Button to delete link
283
303
  #. @context: Button to delete redirect
284
- #: src/routes/dash/pages.tsx:120
285
304
  #: src/routes/dash/redirects.tsx:60
286
305
  #: src/ui/dash/ActionButtons.tsx:80
306
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:98
287
307
  msgid "Delete"
288
308
  msgstr "刪除"
289
309
 
290
310
  #. @context: Button to delete collection
291
311
  #: src/routes/dash/collections.tsx:363
292
- msgid "Delete Collection"
293
- msgstr "刪除收藏夾"
312
+ #~ msgid "Delete Collection"
313
+ #~ msgstr "刪除收藏夾"
294
314
 
295
315
  #. @context: Button to delete media
296
- #: src/routes/dash/media.tsx:385
316
+ #: src/ui/dash/media/ViewMediaContent.tsx:176
297
317
  msgid "Delete Media"
298
318
  msgstr "刪除媒體"
299
319
 
300
320
  #. @context: Button to delete page
301
- #: src/routes/dash/pages.tsx:278
321
+ #: src/routes/dash/pages.tsx:77
302
322
  msgid "Delete Page"
303
323
  msgstr "刪除頁面"
304
324
 
305
325
  #. @context: Warning message before deleting media
306
- #: src/routes/dash/media.tsx:391
326
+ #: src/ui/dash/media/ViewMediaContent.tsx:182
307
327
  msgid "Deleting this media will remove it permanently from storage."
308
328
  msgstr "刪除此媒體將永久從存儲中移除它。"
309
329
 
310
330
  #. @context: Hint shown on signin page when demo credentials are pre-filled
311
- #: src/app.tsx:400
331
+ #: src/routes/auth/signin.tsx:40
312
332
  msgid "Demo account pre-filled. Just click Sign In."
313
333
  msgstr "示範帳戶已預填。只需點擊登入。"
314
334
 
315
335
  #. @context: Collection form field
316
- #. @context: Collection form field
317
- #: src/routes/dash/collections.tsx:153
318
- #: src/routes/dash/collections.tsx:327
336
+ #: src/ui/dash/collections/CollectionForm.tsx:102
319
337
  msgid "Description (optional)"
320
338
  msgstr "描述(可選)"
321
339
 
340
+ #. @context: Checkbox to show avatar in the site header
341
+ #: src/ui/dash/settings/GeneralContent.tsx:274
342
+ msgid "Display avatar in my site header"
343
+ msgstr ""
344
+
322
345
  #. @context: Navigation label help text
323
- #: src/routes/dash/pages.tsx:348
346
+ #: src/ui/dash/pages/LinkFormContent.tsx:52
324
347
  msgid "Display text for the link"
325
348
  msgstr "顯示連結的文字"
326
349
 
327
350
  #. @context: Close media picker button
328
351
  #. @context: Close media picker button
329
- #: src/ui/compose/ComposeDialog.tsx:375
330
- #: src/ui/dash/PostForm.tsx:334
352
+ #: src/ui/compose/ComposeDialog.tsx:394
353
+ #: src/ui/dash/PostForm.tsx:340
331
354
  msgid "Done"
332
355
  msgstr "完成"
333
356
 
@@ -335,7 +358,7 @@ msgstr "完成"
335
358
  #. @context: Page status option - draft
336
359
  #. @context: Post status badge - draft
337
360
  #. @context: Post status option
338
- #: src/ui/compose/ComposeDialog.tsx:326
361
+ #: src/ui/compose/ComposeDialog.tsx:340
339
362
  #: src/ui/dash/PageForm.tsx:133
340
363
  #: src/ui/dash/PostForm.tsx:234
341
364
  #: src/ui/dash/StatusBadge.tsx:34
@@ -361,30 +384,30 @@ msgstr "草稿"
361
384
  #. @context: Button to edit page
362
385
  #. @context: Button to edit post
363
386
  #. @context: Button to edit post
364
- #: src/routes/dash/collections.tsx:66
365
- #: src/routes/dash/collections.tsx:220
366
- #: src/routes/dash/pages.tsx:94
367
- #: src/routes/dash/pages.tsx:115
368
- #: src/routes/dash/pages.tsx:192
369
- #: src/routes/dash/pages.tsx:256
387
+ #: src/routes/dash/pages.tsx:55
370
388
  #: src/routes/dash/posts.tsx:140
371
389
  #: src/ui/dash/ActionButtons.tsx:72
390
+ #: src/ui/dash/collections/CollectionsListContent.tsx:55
391
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:33
392
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:72
393
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:93
394
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:170
372
395
  #: src/ui/dash/PostList.tsx:50
373
396
  msgid "Edit"
374
397
  msgstr "編輯"
375
398
 
376
399
  #. @context: Page heading
377
- #: src/routes/dash/collections.tsx:293
400
+ #: src/ui/dash/collections/CollectionForm.tsx:28
378
401
  msgid "Edit Collection"
379
402
  msgstr "編輯收藏集"
380
403
 
381
404
  #. @context: Page heading
382
- #: src/routes/dash/pages.tsx:313
405
+ #: src/ui/dash/pages/LinkFormContent.tsx:17
383
406
  msgid "Edit Link"
384
407
  msgstr "編輯連結"
385
408
 
386
409
  #. @context: Edit page main heading
387
- #: src/routes/dash/pages.tsx:294
410
+ #: src/routes/dash/pages.tsx:93
388
411
  msgid "Edit Page"
389
412
  msgstr "編輯頁面"
390
413
 
@@ -395,29 +418,36 @@ msgstr "編輯文章"
395
418
 
396
419
  #. @context: Setup/signin form field - email
397
420
  #. @context: Setup/signin form field - email
398
- #: src/app.tsx:259
399
- #: src/app.tsx:415
421
+ #: src/routes/auth/setup.tsx:64
422
+ #: src/routes/auth/signin.tsx:55
400
423
  msgid "Email"
401
424
  msgstr "電子郵件"
402
425
 
403
426
  #. @context: Password reset page description
404
- #: src/app.tsx:531
427
+ #: src/routes/auth/reset.tsx:39
405
428
  msgid "Enter your new password."
406
429
  msgstr "請輸入您的新密碼。"
407
430
 
408
431
  #. @context: Archive filter - featured posts
409
432
  #. @context: Browse filter for featured posts
410
433
  #. @context: Compose checkbox - mark as featured
434
+ #. @context: Homepage view option - show featured posts
411
435
  #. @context: Post badge - featured
412
436
  #. @context: Post form checkbox - mark as featured
413
437
  #: src/ui/compose/ComposeDialog.tsx:305
414
438
  #: src/ui/dash/PostForm.tsx:246
439
+ #: src/ui/dash/settings/GeneralContent.tsx:398
415
440
  #: src/ui/dash/StatusBadge.tsx:45
416
- #: src/ui/layouts/SiteLayout.tsx:49
441
+ #: src/ui/layouts/SiteLayout.tsx:55
417
442
  #: src/ui/pages/ArchivePage.tsx:92
418
443
  msgid "Featured"
419
444
  msgstr "精選"
420
445
 
446
+ #. @context: Appearance settings heading for font theme
447
+ #: src/ui/dash/settings/AppearanceContent.tsx:147
448
+ msgid "Font theme"
449
+ msgstr ""
450
+
421
451
  #. @context: Post form field - post format
422
452
  #: src/ui/dash/PostForm.tsx:64
423
453
  msgid "Format"
@@ -440,8 +470,8 @@ msgstr "來源路徑"
440
470
 
441
471
  #. @context: Settings section heading
442
472
  #. @context: Settings sub-navigation tab
443
- #: src/routes/dash/settings.tsx:47
444
- #: src/routes/dash/settings.tsx:131
473
+ #: src/ui/dash/settings/GeneralContent.tsx:299
474
+ #: src/ui/dash/settings/SettingsNav.tsx:15
445
475
  msgid "General"
446
476
  msgstr "一般設定"
447
477
 
@@ -460,32 +490,39 @@ msgstr "一般設定"
460
490
  #~ msgstr "圖片"
461
491
 
462
492
  #. @context: Media upload instructions - auto optimization
463
- #: src/routes/dash/media.tsx:171
493
+ #: src/ui/dash/media/MediaListContent.tsx:147
464
494
  msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
465
495
  msgstr "圖片會自動優化:調整大小至最大 1920 像素,轉換為 WebP 格式,並去除元數據。"
466
496
 
467
497
  #. @context: Password reset error heading
468
- #: src/app.tsx:606
498
+ #: src/routes/auth/reset.tsx:120
469
499
  msgid "Invalid or Expired Link"
470
500
  msgstr "無效或已過期的連結"
471
501
 
502
+ #. @context: Checkbox for allowing search engine indexing
503
+ #: src/ui/dash/settings/GeneralContent.tsx:515
504
+ msgid "It's OK for search engines to index my site"
505
+ msgstr ""
506
+
472
507
  #. @context: Navigation link form field
473
- #: src/routes/dash/pages.tsx:335
508
+ #: src/ui/dash/pages/LinkFormContent.tsx:39
474
509
  msgid "Label"
475
510
  msgstr "標籤"
476
511
 
477
512
  #. @context: Settings form field
478
- #: src/routes/dash/settings.tsx:172
513
+ #: src/ui/dash/settings/GeneralContent.tsx:350
479
514
  msgid "Language"
480
515
  msgstr "語言"
481
516
 
482
517
  #. @context: Browse filter for latest posts
483
- #: src/ui/layouts/SiteLayout.tsx:42
518
+ #. @context: Homepage view option - show latest posts
519
+ #: src/ui/dash/settings/GeneralContent.tsx:388
520
+ #: src/ui/layouts/SiteLayout.tsx:48
484
521
  msgid "Latest"
485
522
  msgstr ""
486
523
 
487
524
  #. @context: Nav item type badge
488
- #: src/routes/dash/pages.tsx:145
525
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:123
489
526
  msgid "link"
490
527
  msgstr ""
491
528
 
@@ -512,8 +549,8 @@ msgstr "載入更多"
512
549
 
513
550
  #. @context: Loading state for media picker
514
551
  #. @context: Loading state for media picker
515
- #: src/ui/compose/ComposeDialog.tsx:386
516
- #: src/ui/dash/PostForm.tsx:345
552
+ #: src/ui/compose/ComposeDialog.tsx:405
553
+ #: src/ui/dash/PostForm.tsx:351
517
554
  msgid "Loading..."
518
555
  msgstr "載入中..."
519
556
 
@@ -523,26 +560,31 @@ msgid "Lowercase letters, numbers, and hyphens only"
523
560
  msgstr "僅限小寫字母、數字和連字符"
524
561
 
525
562
  #. @context: Media detail section - Markdown snippet
526
- #: src/routes/dash/media.tsx:355
563
+ #: src/ui/dash/media/ViewMediaContent.tsx:146
527
564
  msgid "Markdown"
528
565
  msgstr "Markdown"
529
566
 
567
+ #. @context: Placeholder for footer textarea
568
+ #: src/ui/dash/settings/GeneralContent.tsx:466
569
+ msgid "Markdown supported"
570
+ msgstr ""
571
+
530
572
  #. @context: Dashboard navigation - media library
531
573
  #. @context: Media main heading
532
574
  #. @context: Post form field - media attachments
533
- #: src/routes/dash/media.tsx:151
575
+ #: src/ui/dash/media/MediaListContent.tsx:127
534
576
  #: src/ui/dash/PostForm.tsx:158
535
577
  #: src/ui/layouts/DashLayout.tsx:105
536
578
  msgid "Media"
537
579
  msgstr "媒體"
538
580
 
539
581
  #. @context: Collection title placeholder
540
- #: src/routes/dash/collections.tsx:124
582
+ #: src/ui/dash/collections/CollectionForm.tsx:70
541
583
  msgid "My Collection"
542
584
  msgstr "我的收藏"
543
585
 
544
586
  #. @context: Account settings form field
545
- #: src/routes/dash/settings.tsx:430
587
+ #: src/ui/dash/settings/AccountContent.tsx:38
546
588
  msgid "Name"
547
589
  msgstr "名稱"
548
590
 
@@ -561,28 +603,28 @@ msgstr "需要幫助嗎?請訪問<0>文檔</0>。"
561
603
  #. @context: Button to create new collection
562
604
  #. @context: Button to create new collection
563
605
  #. @context: Page heading
564
- #: src/routes/dash/collections.tsx:39
565
- #: src/routes/dash/collections.tsx:52
566
- #: src/routes/dash/collections.tsx:103
606
+ #: src/ui/dash/collections/CollectionForm.tsx:29
607
+ #: src/ui/dash/collections/CollectionsListContent.tsx:28
608
+ #: src/ui/dash/collections/CollectionsListContent.tsx:41
567
609
  msgid "New Collection"
568
610
  msgstr "新收藏集"
569
611
 
570
612
  #. @context: Page heading
571
- #: src/routes/dash/pages.tsx:314
613
+ #: src/ui/dash/pages/LinkFormContent.tsx:18
572
614
  msgid "New Link"
573
615
  msgstr "新連結"
574
616
 
575
617
  #. @context: Button to create new page
576
618
  #. @context: New page main heading
577
- #: src/routes/dash/pages.tsx:56
578
- #: src/routes/dash/pages.tsx:232
619
+ #: src/routes/dash/pages.tsx:31
620
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:34
579
621
  msgid "New Page"
580
622
  msgstr "新頁面"
581
623
 
582
624
  #. @context: Password form field
583
625
  #. @context: Password reset form field
584
- #: src/app.tsx:546
585
- #: src/routes/dash/settings.tsx:499
626
+ #: src/routes/auth/reset.tsx:54
627
+ #: src/ui/dash/settings/AccountContent.tsx:113
586
628
  msgid "New Password"
587
629
  msgstr "新密碼"
588
630
 
@@ -615,7 +657,7 @@ msgstr "下一頁"
615
657
 
616
658
  #. @context: Empty state message
617
659
  #. @context: Empty state message on collections page
618
- #: src/routes/dash/collections.tsx:48
660
+ #: src/ui/dash/collections/CollectionsListContent.tsx:37
619
661
  #: src/ui/pages/CollectionsPage.tsx:28
620
662
  msgid "No collections yet."
621
663
  msgstr "尚未有任何收藏。"
@@ -626,7 +668,7 @@ msgid "No featured posts yet."
626
668
  msgstr ""
627
669
 
628
670
  #. @context: Empty state message when no media exists
629
- #: src/routes/dash/media.tsx:186
671
+ #: src/ui/dash/media/MediaListContent.tsx:162
630
672
  msgid "No media uploaded yet."
631
673
  msgstr "尚未上傳任何媒體。"
632
674
 
@@ -636,7 +678,7 @@ msgstr "尚未上傳任何媒體。"
636
678
  #~ msgstr "未配置導航連結。"
637
679
 
638
680
  #. @context: Empty state for navigation section
639
- #: src/routes/dash/pages.tsx:74
681
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:52
640
682
  msgid "No navigation links yet. Add pages to navigation or create links."
641
683
  msgstr ""
642
684
 
@@ -652,7 +694,7 @@ msgstr "未找到任何帖子。"
652
694
 
653
695
  #. @context: Empty state message
654
696
  #. @context: Empty state message
655
- #: src/routes/dash/collections.tsx:243
697
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:56
656
698
  #: src/ui/pages/CollectionPage.tsx:29
657
699
  msgid "No posts in this collection."
658
700
  msgstr "此集合中沒有帖子。"
@@ -700,17 +742,17 @@ msgid "Notes"
700
742
  msgstr "筆記"
701
743
 
702
744
  #. @context: Section heading for pages not in navigation
703
- #: src/routes/dash/pages.tsx:161
745
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:139
704
746
  msgid "Other pages"
705
747
  msgstr ""
706
748
 
707
749
  #. @context: Nav item type badge
708
- #: src/routes/dash/pages.tsx:141
750
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:119
709
751
  msgid "page"
710
752
  msgstr ""
711
753
 
712
754
  #. @context: Default page heading when untitled
713
- #: src/routes/dash/pages.tsx:247
755
+ #: src/routes/dash/pages.tsx:46
714
756
  msgid "Page"
715
757
  msgstr "頁面"
716
758
 
@@ -731,15 +773,15 @@ msgstr "頁面標題..."
731
773
 
732
774
  #. @context: Dashboard navigation - pages management
733
775
  #. @context: Pages main heading
734
- #: src/routes/dash/pages.tsx:43
776
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:21
735
777
  #: src/ui/layouts/DashLayout.tsx:96
736
778
  msgid "Pages"
737
779
  msgstr "頁面"
738
780
 
739
781
  #. @context: Setup/signin form field - password
740
782
  #. @context: Setup/signin form field - password
741
- #: src/app.tsx:274
742
- #: src/app.tsx:424
783
+ #: src/routes/auth/setup.tsx:79
784
+ #: src/routes/auth/signin.tsx:64
743
785
  msgid "Password"
744
786
  msgstr "密碼"
745
787
 
@@ -749,7 +791,7 @@ msgstr "密碼"
749
791
  #~ msgstr "路徑"
750
792
 
751
793
  #. @context: Navigation URL help text
752
- #: src/routes/dash/pages.tsx:370
794
+ #: src/ui/dash/pages/LinkFormContent.tsx:74
753
795
  msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
754
796
  msgstr "路徑(例如 /archive)或完整網址(例如 https://example.com)"
755
797
 
@@ -778,7 +820,7 @@ msgstr ""
778
820
  #. @context: Compose prompt post button
779
821
  #. @context: Default post title
780
822
  #: src/routes/dash/posts.tsx:128
781
- #: src/ui/compose/ComposeDialog.tsx:339
823
+ #: src/ui/compose/ComposeDialog.tsx:365
782
824
  #: src/ui/compose/ComposePrompt.tsx:48
783
825
  msgid "Post"
784
826
  msgstr "文章"
@@ -790,8 +832,8 @@ msgstr "文章標題..."
790
832
 
791
833
  #. @context: Compose loading text while posting
792
834
  #: src/ui/compose/ComposeDialog.tsx:345
793
- msgid "Posting..."
794
- msgstr ""
835
+ #~ msgid "Posting..."
836
+ #~ msgstr ""
795
837
 
796
838
  #. @context: Plural post count label
797
839
  #: src/ui/pages/CollectionsPage.tsx:60
@@ -806,12 +848,12 @@ msgid "Posts"
806
848
  msgstr "文章"
807
849
 
808
850
  #. @context: Collection posts section heading
809
- #: src/routes/dash/collections.tsx:205
851
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:18
810
852
  msgid "Posts in Collection ({count})"
811
853
  msgstr "收藏中的帖子 ({count})"
812
854
 
813
855
  #. @context: Media detail section - preview
814
- #: src/routes/dash/media.tsx:278
856
+ #: src/ui/dash/media/ViewMediaContent.tsx:69
815
857
  msgid "Preview"
816
858
  msgstr "預覽"
817
859
 
@@ -822,44 +864,20 @@ msgstr "預覽"
822
864
  msgid "Previous"
823
865
  msgstr "上一頁"
824
866
 
825
- #. @context: Loading text shown on submit button while request is in progress
826
- #. @context: Loading text shown on submit button while request is in progress
827
- #. @context: Loading text shown on submit button while request is in progress
828
- #. @context: Loading text shown on submit button while request is in progress
829
- #. @context: Loading text shown on submit button while request is in progress
830
- #. @context: Loading text shown on submit button while request is in progress
831
- #. @context: Loading text shown on submit button while request is in progress
832
- #. @context: Loading text shown on submit button while request is in progress
833
- #. @context: Loading text shown on submit button while request is in progress
834
- #. @context: Loading text shown on submit button while request is in progress
835
- #. @context: Loading text shown on submit button while request is in progress
836
- #. @context: Loading text shown on submit button while request is in progress
837
- #. @context: Loading text shown on submit button while request is in progress
867
+ #. @context: Avatar upload button text while generating favicon variants
838
868
  #. @context: Upload status - processing
839
- #: src/app.tsx:295
840
- #: src/app.tsx:444
841
- #: src/app.tsx:584
842
- #: src/routes/dash/collections.tsx:178
843
- #: src/routes/dash/collections.tsx:346
844
- #: src/routes/dash/media.tsx:119
845
- #: src/routes/dash/pages.tsx:392
846
- #: src/routes/dash/redirects.tsx:169
847
- #: src/routes/dash/settings.tsx:200
848
- #: src/routes/dash/settings.tsx:384
849
- #: src/routes/dash/settings.tsx:457
850
- #: src/routes/dash/settings.tsx:545
851
- #: src/ui/dash/PageForm.tsx:163
852
- #: src/ui/dash/PostForm.tsx:304
869
+ #: src/ui/dash/media/MediaListContent.tsx:95
870
+ #: src/ui/dash/settings/GeneralContent.tsx:215
853
871
  msgid "Processing..."
854
872
  msgstr "處理中..."
855
873
 
856
874
  #. @context: Account settings section heading
857
- #: src/routes/dash/settings.tsx:421
875
+ #: src/ui/dash/settings/AccountContent.tsx:29
858
876
  msgid "Profile"
859
877
  msgstr "個人資料"
860
878
 
861
879
  #. @context: Button to publish new post
862
- #: src/ui/dash/PostForm.tsx:298
880
+ #: src/ui/dash/PostForm.tsx:312
863
881
  msgid "Publish"
864
882
  msgstr "發佈"
865
883
 
@@ -934,42 +952,49 @@ msgstr ""
934
952
  msgid "Redirects"
935
953
  msgstr "重定向"
936
954
 
955
+ #. @context: Button to remove the blog avatar
937
956
  #. @context: Remove media attachment button
938
957
  #: src/ui/dash/PostForm.tsx:194
958
+ #: src/ui/dash/settings/GeneralContent.tsx:243
939
959
  msgid "Remove"
940
960
  msgstr "移除"
941
961
 
942
962
  #. @context: Password reset form submit button
943
963
  #. @context: Password reset page heading
944
- #: src/app.tsx:525
945
- #: src/app.tsx:578
964
+ #: src/routes/auth/reset.tsx:33
965
+ #: src/routes/auth/reset.tsx:100
946
966
  msgid "Reset Password"
947
967
  msgstr "重設密碼"
948
968
 
969
+ #. @context: Button to save settings
970
+ #: src/ui/dash/settings/GeneralContent.tsx:74
971
+ msgid "Save"
972
+ msgstr ""
973
+
949
974
  #. @context: Button to save edited navigation link
950
- #: src/routes/dash/pages.tsx:382
975
+ #: src/ui/dash/pages/LinkFormContent.tsx:100
951
976
  msgid "Save Changes"
952
977
  msgstr "保存更改"
953
978
 
954
979
  #. @context: Button to save custom CSS
955
- #: src/routes/dash/settings.tsx:378
980
+ #: src/ui/dash/settings/AppearanceContent.tsx:246
956
981
  msgid "Save CSS"
957
982
  msgstr ""
958
983
 
959
984
  #. @context: Button to save profile
960
- #: src/routes/dash/settings.tsx:451
985
+ #: src/ui/dash/settings/AccountContent.tsx:73
961
986
  msgid "Save Profile"
962
987
  msgstr "保存個人資料"
963
988
 
964
989
  #. @context: Button to save settings
965
- #: src/routes/dash/settings.tsx:194
966
- msgid "Save Settings"
967
- msgstr "保存設定"
990
+ #: src/ui/dash/settings/GeneralContent.tsx:142
991
+ #~ msgid "Save Settings"
992
+ #~ msgstr "保存設定"
968
993
 
969
994
  #. @context: Search icon link in browse nav
970
995
  #. @context: Search page title
971
996
  #. @context: Search submit button
972
- #: src/ui/layouts/SiteLayout.tsx:70
997
+ #: src/ui/layouts/SiteLayout.tsx:67
973
998
  #: src/ui/pages/SearchPage.tsx:20
974
999
  #: src/ui/pages/SearchPage.tsx:44
975
1000
  msgid "Search"
@@ -982,18 +1007,23 @@ msgstr "搜尋帖子..."
982
1007
 
983
1008
  #. @context: Media picker dialog title
984
1009
  #. @context: Media picker dialog title
985
- #: src/ui/compose/ComposeDialog.tsx:365
986
- #: src/ui/dash/PostForm.tsx:324
1010
+ #: src/ui/compose/ComposeDialog.tsx:384
1011
+ #: src/ui/dash/PostForm.tsx:330
987
1012
  msgid "Select Media"
988
1013
  msgstr "選擇媒體"
989
1014
 
1015
+ #. @context: Settings section heading for SEO
1016
+ #: src/ui/dash/settings/GeneralContent.tsx:498
1017
+ msgid "SEO"
1018
+ msgstr ""
1019
+
990
1020
  #. @context: Dashboard heading
991
1021
  #. @context: Dashboard heading
992
1022
  #. @context: Dashboard heading
993
1023
  #. @context: Dashboard navigation - site settings
994
- #: src/routes/dash/settings.tsx:118
995
- #: src/routes/dash/settings.tsx:304
996
- #: src/routes/dash/settings.tsx:408
1024
+ #: src/ui/dash/settings/AccountContent.tsx:16
1025
+ #: src/ui/dash/settings/AppearanceContent.tsx:101
1026
+ #: src/ui/dash/settings/GeneralContent.tsx:151
997
1027
  #: src/ui/layouts/DashLayout.tsx:133
998
1028
  msgid "Settings"
999
1029
  msgstr "設定"
@@ -1006,8 +1036,8 @@ msgstr "顯示 {remainingCount} 個更多 {0}"
1006
1036
 
1007
1037
  #. @context: Sign in form submit button
1008
1038
  #. @context: Sign in page heading
1009
- #: src/app.tsx:391
1010
- #: src/app.tsx:438
1039
+ #: src/routes/auth/signin.tsx:31
1040
+ #: src/routes/auth/signin.tsx:92
1011
1041
  msgid "Sign In"
1012
1042
  msgstr "登入"
1013
1043
 
@@ -1017,20 +1047,23 @@ msgid "Sign Out"
1017
1047
  msgstr "登出"
1018
1048
 
1019
1049
  #. @context: Settings form field
1020
- #: src/routes/dash/settings.tsx:155
1021
- msgid "Site Description"
1022
- msgstr "網站描述"
1050
+ #: src/ui/dash/settings/GeneralContent.tsx:72
1051
+ #~ msgid "Site Description"
1052
+ #~ msgstr "網站描述"
1053
+
1054
+ #. @context: Settings section heading for site footer
1055
+ #: src/ui/dash/settings/GeneralContent.tsx:454
1056
+ msgid "Site Footer"
1057
+ msgstr ""
1023
1058
 
1024
1059
  #. @context: Settings form field
1025
- #: src/routes/dash/settings.tsx:140
1060
+ #: src/ui/dash/settings/GeneralContent.tsx:308
1026
1061
  msgid "Site Name"
1027
1062
  msgstr "網站名稱"
1028
1063
 
1029
- #. @context: Collection form field
1030
1064
  #. @context: Collection form field
1031
1065
  #. @context: Page form field label - URL slug
1032
- #: src/routes/dash/collections.tsx:133
1033
- #: src/routes/dash/collections.tsx:314
1066
+ #: src/ui/dash/collections/CollectionForm.tsx:80
1034
1067
  #: src/ui/dash/PageForm.tsx:64
1035
1068
  msgid "Slug"
1036
1069
  msgstr "縮略名"
@@ -1074,13 +1107,33 @@ msgstr ""
1074
1107
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1075
1108
  msgstr "此頁面的 URL 路徑。使用小寫字母、數字和連字符。"
1076
1109
 
1110
+ #. @context: Help text for site description field
1111
+ #: src/ui/dash/settings/GeneralContent.tsx:340
1112
+ 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."
1113
+ msgstr ""
1114
+
1115
+ #. @context: Help text for site footer field
1116
+ #: src/ui/dash/settings/GeneralContent.tsx:474
1117
+ msgid "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
1118
+ msgstr ""
1119
+
1120
+ #. @context: Help text for avatar upload
1121
+ #: src/ui/dash/settings/GeneralContent.tsx:253
1122
+ msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
1123
+ msgstr ""
1124
+
1125
+ #. @context: Help text for avatar upload
1126
+ #: src/ui/dash/settings/GeneralContent.tsx:238
1127
+ #~ msgid "This is used for your favicon."
1128
+ #~ msgstr ""
1129
+
1077
1130
  #. @context: Password reset error description
1078
- #: src/app.tsx:614
1131
+ #: src/routes/auth/reset.tsx:128
1079
1132
  msgid "This password reset link is invalid or has expired. Please generate a new one."
1080
1133
  msgstr "此密碼重設連結無效或已過期。請生成一個新的連結。"
1081
1134
 
1082
1135
  #. @context: Appearance settings description
1083
- #: src/routes/dash/settings.tsx:321
1136
+ #: src/ui/dash/settings/AppearanceContent.tsx:118
1084
1137
  msgid "This will theme both your site and your dashboard. All color themes support dark mode."
1085
1138
  msgstr "這將為您的網站和儀表板設置主題。所有顏色主題都支持深色模式。"
1086
1139
 
@@ -1099,11 +1152,14 @@ msgstr "包含 {count} 則帖子的主題"
1099
1152
  msgid "Thread with 1 post"
1100
1153
  msgstr "包含 1 則貼文的主題"
1101
1154
 
1102
- #. @context: Collection form field
1155
+ #. @context: Settings form field
1156
+ #: src/ui/dash/settings/GeneralContent.tsx:409
1157
+ msgid "Time Zone"
1158
+ msgstr ""
1159
+
1103
1160
  #. @context: Collection form field
1104
1161
  #. @context: Page form field label - title
1105
- #: src/routes/dash/collections.tsx:114
1106
- #: src/routes/dash/collections.tsx:304
1162
+ #: src/ui/dash/collections/CollectionForm.tsx:57
1107
1163
  #: src/ui/dash/PageForm.tsx:44
1108
1164
  msgid "Title"
1109
1165
  msgstr "標題"
@@ -1126,7 +1182,7 @@ msgid "Type"
1126
1182
  msgstr "類型"
1127
1183
 
1128
1184
  #. @context: Button to remove page from navigation
1129
- #: src/routes/dash/pages.tsx:104
1185
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:82
1130
1186
  msgid "Un-nav"
1131
1187
  msgstr ""
1132
1188
 
@@ -1139,45 +1195,54 @@ msgstr ""
1139
1195
 
1140
1196
  #. @context: Default title for untitled page
1141
1197
  #. @context: Default title for untitled post
1142
- #: src/routes/dash/pages.tsx:212
1198
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:190
1143
1199
  #: src/ui/dash/PostList.tsx:86
1144
1200
  msgid "Untitled"
1145
1201
  msgstr "無標題"
1146
1202
 
1147
1203
  #. @context: Button to update existing post
1148
- #: src/ui/dash/PostForm.tsx:294
1204
+ #: src/ui/dash/PostForm.tsx:308
1149
1205
  msgid "Update"
1150
1206
  msgstr "更新"
1151
1207
 
1152
1208
  #. @context: Button to save collection changes
1153
- #: src/routes/dash/collections.tsx:340
1209
+ #: src/ui/dash/collections/CollectionForm.tsx:32
1154
1210
  msgid "Update Collection"
1155
1211
  msgstr "更新收藏集"
1156
1212
 
1157
1213
  #. @context: Button to update existing page
1158
- #: src/ui/dash/PageForm.tsx:153
1214
+ #: src/ui/dash/PageForm.tsx:167
1159
1215
  msgid "Update Page"
1160
1216
  msgstr "更新頁面"
1161
1217
 
1162
1218
  #. @context: Button to upload media file
1163
- #: src/routes/dash/media.tsx:127
1219
+ #: src/ui/dash/media/MediaListContent.tsx:103
1164
1220
  msgid "Upload"
1165
1221
  msgstr "上傳"
1166
1222
 
1223
+ #. @context: Button to upload avatar image
1224
+ #: src/ui/dash/settings/GeneralContent.tsx:205
1225
+ msgid "Upload Avatar"
1226
+ msgstr ""
1227
+
1228
+ #. @context: Error message when avatar upload fails
1167
1229
  #. @context: Upload error message
1168
- #: src/routes/dash/media.tsx:131
1230
+ #: src/ui/dash/media/MediaListContent.tsx:107
1231
+ #: src/ui/dash/settings/GeneralContent.tsx:225
1169
1232
  msgid "Upload failed. Please try again."
1170
1233
  msgstr "上傳失敗。請再試一次。"
1171
1234
 
1235
+ #. @context: Avatar upload button text while uploading
1172
1236
  #. @context: Upload status - uploading
1173
- #: src/routes/dash/media.tsx:123
1237
+ #: src/ui/dash/media/MediaListContent.tsx:99
1238
+ #: src/ui/dash/settings/GeneralContent.tsx:220
1174
1239
  msgid "Uploading..."
1175
1240
  msgstr "上傳中..."
1176
1241
 
1177
1242
  #. @context: Media detail section - URL
1178
1243
  #. @context: Navigation link form field
1179
- #: src/routes/dash/media.tsx:318
1180
- #: src/routes/dash/pages.tsx:357
1244
+ #: src/ui/dash/media/ViewMediaContent.tsx:109
1245
+ #: src/ui/dash/pages/LinkFormContent.tsx:61
1181
1246
  msgid "URL"
1182
1247
  msgstr "網址"
1183
1248
 
@@ -1187,12 +1252,12 @@ msgid "URL (optional)"
1187
1252
  msgstr ""
1188
1253
 
1189
1254
  #. @context: Collection path help text
1190
- #: src/routes/dash/collections.tsx:144
1255
+ #: src/ui/dash/collections/CollectionForm.tsx:92
1191
1256
  msgid "URL-safe identifier (lowercase, numbers, hyphens)"
1192
1257
  msgstr "網址安全識別碼(小寫、數字、連字符)"
1193
1258
 
1194
1259
  #. @context: Media URL helper text
1195
- #: src/routes/dash/media.tsx:344
1260
+ #: src/ui/dash/media/ViewMediaContent.tsx:135
1196
1261
  msgid "Use this URL to embed the media in your posts."
1197
1262
  msgstr "使用此 URL 將媒體嵌入到您的帖子中。"
1198
1263
 
@@ -1203,12 +1268,12 @@ msgstr "使用此 URL 將媒體嵌入到您的帖子中。"
1203
1268
  #. @context: Button to view page on public site
1204
1269
  #. @context: Button to view post
1205
1270
  #. @context: Button to view post on public site
1206
- #: src/routes/dash/collections.tsx:71
1207
- #: src/routes/dash/collections.tsx:225
1208
- #: src/routes/dash/pages.tsx:199
1209
- #: src/routes/dash/pages.tsx:261
1271
+ #: src/routes/dash/pages.tsx:60
1210
1272
  #: src/routes/dash/posts.tsx:145
1211
1273
  #: src/ui/dash/ActionButtons.tsx:76
1274
+ #: src/ui/dash/collections/CollectionsListContent.tsx:60
1275
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:38
1276
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:177
1212
1277
  #: src/ui/dash/PostList.tsx:55
1213
1278
  msgid "View"
1214
1279
  msgstr "查看"
@@ -1224,7 +1289,7 @@ msgstr "查看網站"
1224
1289
  #~ msgstr "可見性"
1225
1290
 
1226
1291
  #. @context: Setup page welcome heading
1227
- #: src/app.tsx:223
1292
+ #: src/routes/auth/setup.tsx:27
1228
1293
  msgid "Welcome to Jant"
1229
1294
  msgstr "歡迎來到 Jant"
1230
1295
 
@@ -1241,16 +1306,16 @@ msgid "What's on your mind?"
1241
1306
  msgstr "你在想什麼?"
1242
1307
 
1243
1308
  #. @context: Collection description placeholder
1244
- #: src/routes/dash/collections.tsx:162
1309
+ #: src/ui/dash/collections/CollectionForm.tsx:114
1245
1310
  msgid "What's this collection about?"
1246
1311
  msgstr "這個收藏是關於什麼的?"
1247
1312
 
1248
1313
  #. @context: Setup form field - user name
1249
- #: src/app.tsx:244
1314
+ #: src/routes/auth/setup.tsx:49
1250
1315
  msgid "Your Name"
1251
1316
  msgstr "您的姓名"
1252
1317
 
1253
1318
  #. @context: Section heading for navigation items
1254
- #: src/routes/dash/pages.tsx:67
1319
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:45
1255
1320
  msgid "Your site navigation"
1256
1321
  msgstr ""