@jant/core 0.3.34 → 0.3.36

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 (156) hide show
  1. package/dist/client/assets/module-RjUF93sV.js +716 -0
  2. package/dist/client/assets/native-48B9X9Wg.js +1 -0
  3. package/dist/client/assets/url-8Dj-5CLW.js +1 -0
  4. package/dist/client/client.css +1 -1
  5. package/dist/client/client.js +3109 -2294
  6. package/dist/index.js +3327 -3031
  7. package/package.json +13 -4
  8. package/src/__tests__/helpers/app.ts +1 -1
  9. package/src/__tests__/helpers/db.ts +6 -0
  10. package/src/app.tsx +1 -5
  11. package/src/{lib → client}/avatar-upload.ts +1 -1
  12. package/src/{lib → client}/collection-form-bridge.ts +2 -2
  13. package/src/{ui → client}/components/__tests__/jant-collection-form.test.ts +26 -9
  14. package/src/{ui → client}/components/__tests__/jant-compose-dialog.test.ts +46 -14
  15. package/src/{ui → client}/components/__tests__/jant-compose-editor.test.ts +64 -24
  16. package/src/{ui → client}/components/__tests__/jant-post-form.test.ts +24 -14
  17. package/src/{ui → client}/components/__tests__/jant-settings-general.test.ts +3 -3
  18. package/src/client/components/collection-sidebar-types.ts +45 -0
  19. package/src/{ui → client}/components/collection-types.ts +3 -4
  20. package/src/{ui → client}/components/compose-types.ts +3 -1
  21. package/src/{ui → client}/components/jant-collection-form.ts +301 -182
  22. package/src/client/components/jant-collection-sidebar.ts +801 -0
  23. package/src/{ui → client}/components/jant-compose-dialog.ts +231 -1
  24. package/src/client/components/jant-compose-editor.ts +1249 -0
  25. package/src/client/components/jant-compose-fullscreen.ts +338 -0
  26. package/src/client/components/jant-media-lightbox.ts +257 -0
  27. package/src/{ui → client}/components/jant-nav-manager.ts +143 -84
  28. package/src/{ui → client}/components/jant-post-form.ts +57 -8
  29. package/src/{ui → client}/components/jant-settings-general.ts +2 -2
  30. package/src/{ui → client}/components/nav-manager-types.ts +3 -0
  31. package/src/{ui → client}/components/post-form-template.ts +35 -31
  32. package/src/{ui → client}/components/post-form-types.ts +7 -3
  33. package/src/{lib → client}/compose-bridge.ts +9 -7
  34. package/src/client/lazy-slugify.ts +51 -0
  35. package/src/{lib → client}/media-upload.ts +16 -3
  36. package/src/{lib → client}/nav-manager-bridge.ts +1 -1
  37. package/src/client/page-slug-bridge.ts +42 -0
  38. package/src/{lib → client}/post-form-bridge.ts +2 -2
  39. package/src/{lib → client}/settings-bridge.ts +3 -3
  40. package/src/client/tiptap/bubble-menu.ts +205 -0
  41. package/src/client/tiptap/create-editor.ts +40 -0
  42. package/src/client/tiptap/exitable-marks.ts +73 -0
  43. package/src/client/tiptap/extensions.ts +60 -0
  44. package/src/client/tiptap/image-node.ts +488 -0
  45. package/src/client/tiptap/link-toolbar.ts +371 -0
  46. package/src/client/tiptap/more-break.ts +50 -0
  47. package/src/client/tiptap/paste-image.ts +140 -0
  48. package/src/client/tiptap/slash-commands.ts +328 -0
  49. package/src/{types → client/types}/sortablejs.d.ts +1 -1
  50. package/src/client.ts +24 -17
  51. package/src/db/migrations/0012_add_tiptap_columns.sql +2 -0
  52. package/src/db/migrations/0013_replace_featured_with_visibility.sql +8 -0
  53. package/src/db/schema.ts +6 -1
  54. package/src/i18n/locales/en.po +641 -215
  55. package/src/i18n/locales/en.ts +1 -1
  56. package/src/i18n/locales/zh-Hans.po +642 -204
  57. package/src/i18n/locales/zh-Hans.ts +1 -1
  58. package/src/i18n/locales/zh-Hant.po +642 -204
  59. package/src/i18n/locales/zh-Hant.ts +1 -1
  60. package/src/lib/__tests__/resolve-config.test.ts +2 -2
  61. package/src/lib/__tests__/schemas.test.ts +9 -6
  62. package/src/lib/__tests__/url.test.ts +2 -2
  63. package/src/lib/__tests__/view.test.ts +9 -9
  64. package/src/lib/emoji-catalog.ts +146 -0
  65. package/src/lib/feed.ts +1 -1
  66. package/src/lib/media-helpers.ts +10 -9
  67. package/src/lib/render.tsx +4 -3
  68. package/src/lib/resolve-config.ts +8 -1
  69. package/src/lib/schemas.ts +2 -3
  70. package/src/lib/summary.ts +92 -0
  71. package/src/lib/timeline.ts +2 -0
  72. package/src/lib/tiptap-render.ts +196 -0
  73. package/src/lib/upload.ts +97 -9
  74. package/src/lib/url.ts +7 -23
  75. package/src/lib/view.ts +33 -19
  76. package/src/middleware/error-handler.ts +3 -3
  77. package/src/preset.css +38 -0
  78. package/src/routes/api/collections.ts +20 -3
  79. package/src/routes/api/posts.ts +48 -33
  80. package/src/routes/api/upload.ts +7 -5
  81. package/src/routes/auth/reset.tsx +5 -4
  82. package/src/routes/auth/setup.tsx +26 -11
  83. package/src/routes/auth/signin.tsx +10 -7
  84. package/src/routes/compose.tsx +20 -11
  85. package/src/routes/dash/__tests__/settings-avatar.test.ts +43 -8
  86. package/src/routes/dash/index.tsx +7 -1
  87. package/src/routes/dash/media.tsx +3 -0
  88. package/src/routes/dash/pages.tsx +8 -2
  89. package/src/routes/dash/posts.tsx +6 -2
  90. package/src/routes/dash/redirects.tsx +15 -9
  91. package/src/routes/dash/settings.tsx +336 -32
  92. package/src/routes/feed/__tests__/rss.test.ts +245 -6
  93. package/src/routes/feed/rss.ts +70 -6
  94. package/src/routes/pages/__tests__/featured.test.ts +6 -7
  95. package/src/routes/pages/archive.tsx +11 -7
  96. package/src/routes/pages/collection.tsx +32 -15
  97. package/src/routes/pages/collections.tsx +11 -2
  98. package/src/routes/pages/featured.tsx +1 -1
  99. package/src/routes/pages/home.tsx +1 -1
  100. package/src/services/__tests__/post.test.ts +124 -33
  101. package/src/services/__tests__/settings.test.ts +3 -3
  102. package/src/services/page.ts +16 -3
  103. package/src/services/post.ts +96 -37
  104. package/src/services/search.ts +4 -2
  105. package/src/services/settings.ts +6 -2
  106. package/src/styles/components.css +240 -60
  107. package/src/styles/tokens.css +10 -0
  108. package/src/styles/ui.css +1157 -81
  109. package/src/types/bindings.ts +5 -0
  110. package/src/types/config.ts +23 -1
  111. package/src/types/constants.ts +3 -0
  112. package/src/types/entities.ts +9 -2
  113. package/src/types/operations.ts +9 -3
  114. package/src/types/props.ts +3 -3
  115. package/src/types/views.ts +3 -2
  116. package/src/ui/compose/ComposeDialog.tsx +24 -7
  117. package/src/ui/dash/PageForm.tsx +2 -0
  118. package/src/ui/dash/PostList.tsx +5 -5
  119. package/src/ui/dash/StatusBadge.tsx +13 -5
  120. package/src/ui/dash/appearance/AdvancedContent.tsx +52 -61
  121. package/src/ui/dash/appearance/ColorThemeContent.tsx +30 -35
  122. package/src/ui/dash/appearance/FontThemeContent.tsx +65 -73
  123. package/src/ui/dash/appearance/NavigationContent.tsx +107 -96
  124. package/src/ui/dash/media/MediaListContent.tsx +9 -4
  125. package/src/ui/dash/media/ViewMediaContent.tsx +2 -2
  126. package/src/ui/dash/pages/PagesContent.tsx +2 -1
  127. package/src/ui/dash/posts/PostForm.tsx +19 -7
  128. package/src/ui/dash/settings/AccountContent.tsx +133 -138
  129. package/src/ui/dash/settings/AvatarContent.tsx +70 -0
  130. package/src/ui/dash/settings/GeneralContent.tsx +3 -62
  131. package/src/ui/dash/settings/SettingsRootContent.tsx +236 -0
  132. package/src/ui/layouts/DashLayout.tsx +157 -75
  133. package/src/ui/layouts/SiteLayout.tsx +13 -13
  134. package/src/ui/pages/ArchivePage.tsx +10 -7
  135. package/src/ui/pages/CollectionPage.tsx +6 -35
  136. package/src/ui/pages/CollectionsPage.tsx +2 -1
  137. package/src/ui/pages/FeaturedPage.tsx +2 -1
  138. package/src/ui/pages/HomePage.tsx +1 -1
  139. package/src/ui/pages/SearchPage.tsx +1 -1
  140. package/src/ui/shared/CollectionsSidebar.tsx +228 -3
  141. package/src/ui/shared/MediaGallery.tsx +179 -41
  142. package/src/lib/collections-reorder.ts +0 -28
  143. package/src/routes/dash/appearance.tsx +0 -240
  144. package/src/routes/dash/collections.tsx +0 -211
  145. package/src/ui/components/jant-compose-editor.ts +0 -814
  146. package/src/ui/dash/appearance/AppearanceNav.tsx +0 -60
  147. package/src/ui/dash/collections/CollectionForm.tsx +0 -166
  148. package/src/ui/dash/collections/CollectionsListContent.tsx +0 -146
  149. package/src/ui/dash/collections/IconPickerGrid.tsx +0 -50
  150. package/src/ui/dash/collections/ViewCollectionContent.tsx +0 -103
  151. package/src/ui/dash/settings/SettingsNav.tsx +0 -52
  152. /package/src/{ui → client}/components/__tests__/jant-settings-avatar.test.ts +0 -0
  153. /package/src/{ui → client}/components/jant-settings-avatar.ts +0 -0
  154. /package/src/{ui → client}/components/settings-types.ts +0 -0
  155. /package/src/{lib → client}/image-processor.ts +0 -0
  156. /package/src/{lib → client}/toast.ts +0 -0
@@ -25,8 +25,8 @@ msgstr "/* Your custom CSS here */"
25
25
 
26
26
  #. @context: Navigation link
27
27
  #: src/ui/dash/collections/ViewCollectionContent.tsx
28
- msgid "← Back to Collections"
29
- msgstr "← Back to Collections"
28
+ #~ msgid "← Back to Collections"
29
+ #~ msgstr "← Back to Collections"
30
30
 
31
31
  #. @context: Navigation link
32
32
  #. @context: Navigation link
@@ -55,6 +55,11 @@ msgstr "301 (Permanent)"
55
55
  msgid "302 (Temporary)"
56
56
  msgstr "302 (Temporary)"
57
57
 
58
+ #. @context: Error toast when display name is empty
59
+ #: src/routes/dash/settings.tsx
60
+ msgid "A display name is required."
61
+ msgstr "A display name is required."
62
+
58
63
  #. @context: Help text for site description field
59
64
  #: src/ui/dash/settings/GeneralContent.tsx
60
65
  msgid "A short intro for search engines and feed readers. Plain text only."
@@ -65,8 +70,10 @@ msgstr "A short intro for search engines and feed readers. Plain text only."
65
70
  msgid "About this blog"
66
71
  msgstr "About this blog"
67
72
 
68
- #. @context: Settings sub-navigation tab
69
- #: src/ui/dash/settings/SettingsNav.tsx
73
+ #. @context: Settings group label for account settings
74
+ #. @context: Settings item — account settings
75
+ #: src/ui/dash/settings/SettingsRootContent.tsx
76
+ #: src/ui/dash/settings/SettingsRootContent.tsx
70
77
  msgid "Account"
71
78
  msgstr "Account"
72
79
 
@@ -100,6 +107,11 @@ msgstr "Add custom CSS to override any styles. Use data attributes like [data-pa
100
107
  msgid "Add custom link to navigation"
101
108
  msgstr "Add custom link to navigation"
102
109
 
110
+ #. @context: Menu action to add a divider
111
+ #: src/ui/shared/CollectionsSidebar.tsx
112
+ msgid "Add Divider"
113
+ msgstr "Add Divider"
114
+
103
115
  #. @context: Button and heading for adding custom link
104
116
  #: src/ui/dash/appearance/NavigationContent.tsx
105
117
  msgid "Add Link"
@@ -110,6 +122,11 @@ msgstr "Add Link"
110
122
  msgid "Add Media"
111
123
  msgstr "Add Media"
112
124
 
125
+ #. @context: Add more attachments button
126
+ #: src/ui/compose/ComposeDialog.tsx
127
+ #~ msgid "Add More"
128
+ #~ msgstr "Add More"
129
+
113
130
  #. @context: Card title for adding page to nav
114
131
  #: src/ui/dash/appearance/NavigationContent.tsx
115
132
  #~ msgid "Add Page"
@@ -130,8 +147,8 @@ msgstr "Add page to navigation"
130
147
  #~ msgid "Add to navigation"
131
148
  #~ msgstr "Add to navigation"
132
149
 
133
- #. @context: Appearance sub-navigation tab
134
- #: src/ui/dash/appearance/AppearanceNav.tsx
150
+ #. @context: Settings group label for advanced settings
151
+ #: src/ui/dash/settings/SettingsRootContent.tsx
135
152
  msgid "Advanced"
136
153
  msgstr "Advanced"
137
154
 
@@ -157,23 +174,28 @@ msgstr "All pages are already in navigation."
157
174
 
158
175
  #. @context: Hint text in alt text panel
159
176
  #: src/ui/compose/ComposeDialog.tsx
160
- msgid "Alt text improves accessibility"
161
- msgstr "Alt text improves accessibility"
177
+ #~ msgid "Alt text improves accessibility"
178
+ #~ msgstr "Alt text improves accessibility"
162
179
 
163
180
  #. @context: Dashboard navigation - appearance settings
164
181
  #: src/ui/layouts/DashLayout.tsx
165
- msgid "Appearance"
166
- msgstr "Appearance"
182
+ #~ msgid "Appearance"
183
+ #~ msgstr "Appearance"
167
184
 
168
185
  #. @context: Archive page title
169
186
  #: src/ui/pages/ArchivePage.tsx
170
187
  msgid "Archive"
171
188
  msgstr "Archive"
172
189
 
190
+ #. @context: Confirm dialog for deleting a collection
191
+ #: src/ui/shared/CollectionsSidebar.tsx
192
+ #~ msgid "Are you sure you want to delete this collection?"
193
+ #~ msgstr "Are you sure you want to delete this collection?"
194
+
173
195
  #. @context: Confirmation dialog when deleting a post from the list
174
196
  #: src/ui/dash/PostList.tsx
175
- msgid "Are you sure you want to delete this post? This cannot be undone."
176
- msgstr "Are you sure you want to delete this post? This cannot be undone."
197
+ #~ msgid "Are you sure you want to delete this post? This cannot be undone."
198
+ #~ msgstr "Are you sure you want to delete this post? This cannot be undone."
177
199
 
178
200
  #. @context: Post type badge - article
179
201
  #. @context: Post type label - article
@@ -206,25 +228,47 @@ msgstr "Attached Text"
206
228
 
207
229
  #. @context: Error toast when authentication system is unavailable
208
230
  #: src/routes/auth/signin.tsx
209
- msgid "Auth not configured"
210
- msgstr "Auth not configured"
231
+ #~ msgid "Auth not configured"
232
+ #~ msgstr "Auth not configured"
211
233
 
212
234
  #. @context: Error toast when authentication secret is missing from server config
213
235
  #: src/routes/auth/setup.tsx
214
- msgid "AUTH_SECRET not configured"
215
- msgstr "AUTH_SECRET not configured"
236
+ msgid "Auth secret is missing. Check your environment variables."
237
+ msgstr "Auth secret is missing. Check your environment variables."
238
+
239
+ #. @context: Error toast when authentication secret is missing from server config
240
+ #: src/routes/auth/setup.tsx
241
+ #~ msgid "AUTH_SECRET not configured"
242
+ #~ msgstr "AUTH_SECRET not configured"
243
+
244
+ #. @context: Error toast when authentication system is unavailable
245
+ #: src/routes/auth/signin.tsx
246
+ msgid "Authentication isn't set up. Check your server config."
247
+ msgstr "Authentication isn't set up. Check your server config."
216
248
 
217
249
  #. @context: Compose quote author placeholder
218
250
  #: src/ui/compose/ComposeDialog.tsx
219
251
  msgid "Author (optional)"
220
252
  msgstr "Author (optional)"
221
253
 
254
+ #. @context: Settings item — avatar settings
255
+ #: src/ui/dash/settings/SettingsRootContent.tsx
256
+ msgid "Avatar"
257
+ msgstr "Avatar"
258
+
222
259
  #. @context: Toast after saving avatar display preference
223
260
  #. @context: Toast after saving avatar display preference
224
261
  #: src/routes/dash/settings.tsx
225
262
  #: src/routes/dash/settings.tsx
226
- msgid "Avatar display setting saved successfully."
227
- msgstr "Avatar display setting saved successfully."
263
+ #~ msgid "Avatar display setting saved successfully."
264
+ #~ msgstr "Avatar display setting saved successfully."
265
+
266
+ #. @context: Toast after saving avatar display preference
267
+ #. @context: Toast after saving avatar display preference
268
+ #: src/routes/dash/settings.tsx
269
+ #: src/routes/dash/settings.tsx
270
+ msgid "Avatar display updated."
271
+ msgstr "Avatar display updated."
228
272
 
229
273
  #. @context: Button to go back to media list
230
274
  #: src/ui/dash/media/ViewMediaContent.tsx
@@ -240,8 +284,13 @@ msgstr "Back"
240
284
  #~ msgid "Back to home"
241
285
  #~ msgstr "Back to home"
242
286
 
287
+ #. @context: Dashboard header link to go back to the public site
288
+ #: src/ui/layouts/DashLayout.tsx
289
+ #~ msgid "Back to site"
290
+ #~ msgstr "Back to site"
291
+
243
292
  #. @context: Settings section heading for avatar
244
- #: src/ui/dash/settings/GeneralContent.tsx
293
+ #: src/ui/dash/settings/AvatarContent.tsx
245
294
  msgid "Blog Avatar"
246
295
  msgstr "Blog Avatar"
247
296
 
@@ -253,10 +302,10 @@ msgstr "Blog Avatar"
253
302
  #. @context: Close compose dialog
254
303
  #: src/routes/dash/redirects.tsx
255
304
  #: src/ui/compose/ComposeDialog.tsx
256
- #: src/ui/dash/collections/CollectionForm.tsx
257
305
  #: src/ui/dash/PageForm.tsx
258
306
  #: src/ui/dash/posts/PostForm.tsx
259
307
  #: src/ui/dash/settings/GeneralContent.tsx
308
+ #: src/ui/shared/CollectionsSidebar.tsx
260
309
  msgid "Cancel"
261
310
  msgstr "Cancel"
262
311
 
@@ -277,6 +326,11 @@ msgstr "Change Password"
277
326
  msgid "Choose a font pairing for your site. All options use system fonts for fast loading."
278
327
  msgstr "Choose a font pairing for your site. All options use system fonts for fast loading."
279
328
 
329
+ #. @context: Password reset page description
330
+ #: src/routes/auth/reset.tsx
331
+ msgid "Choose a new password."
332
+ msgstr "Choose a new password."
333
+
280
334
  #. @context: Placeholder for page select combobox trigger
281
335
  #: src/ui/dash/appearance/NavigationContent.tsx
282
336
  msgid "Choose a page…"
@@ -284,20 +338,25 @@ msgstr "Choose a page…"
284
338
 
285
339
  #. @context: Button to open icon picker
286
340
  #. @context: Icon picker dialog title
287
- #: src/ui/dash/collections/CollectionForm.tsx
288
- #: src/ui/dash/collections/CollectionForm.tsx
289
- msgid "Choose Icon"
290
- msgstr "Choose Icon"
341
+ #: src/ui/shared/CollectionsSidebar.tsx
342
+ #: src/ui/shared/CollectionsSidebar.tsx
343
+ #~ msgid "Choose Icon"
344
+ #~ msgstr "Choose Icon"
291
345
 
292
346
  #. @context: Hint to click image for lightbox
293
347
  #: src/ui/dash/media/ViewMediaContent.tsx
294
348
  msgid "Click image to view full size"
295
349
  msgstr "Click image to view full size"
296
350
 
351
+ #. @context: Tooltip hint on failed upload overlay, tells user clicking retries all failed uploads
352
+ #: src/ui/compose/ComposeDialog.tsx
353
+ msgid "Click to retry all"
354
+ msgstr "Click to retry all"
355
+
297
356
  #. @context: Button to close icon picker
298
- #: src/ui/dash/collections/CollectionForm.tsx
299
- msgid "Close"
300
- msgstr "Close"
357
+ #: src/ui/shared/CollectionsSidebar.tsx
358
+ #~ msgid "Close"
359
+ #~ msgstr "Close"
301
360
 
302
361
  #. @context: Compose collection selector trigger label
303
362
  #: src/ui/compose/ComposeDialog.tsx
@@ -310,11 +369,11 @@ msgstr "Collection"
310
369
  #~ msgstr "Collection (optional)"
311
370
 
312
371
  #. @context: Collections page heading
313
- #. @context: Dashboard heading
314
372
  #. @context: Sidebar heading for collections nav
315
- #: src/ui/dash/collections/CollectionsListContent.tsx
373
+ #. @context: Sidebar heading for collections nav
316
374
  #: src/ui/pages/CollectionsPage.tsx
317
375
  #: src/ui/shared/CollectionsSidebar.tsx
376
+ #: src/ui/shared/CollectionsSidebar.tsx
318
377
  msgid "Collections"
319
378
  msgstr "Collections"
320
379
 
@@ -324,12 +383,14 @@ msgid "Collections (optional)"
324
383
  msgstr "Collections (optional)"
325
384
 
326
385
  #. @context: Appearance settings heading
386
+ #. @context: Settings item description for color theme
327
387
  #: src/ui/dash/appearance/ColorThemeContent.tsx
388
+ #: src/ui/dash/settings/SettingsRootContent.tsx
328
389
  msgid "Color theme"
329
390
  msgstr "Color theme"
330
391
 
331
- #. @context: Appearance sub-navigation tab
332
- #: src/ui/dash/appearance/AppearanceNav.tsx
392
+ #. @context: Settings item — color theme settings
393
+ #: src/ui/dash/settings/SettingsRootContent.tsx
333
394
  msgid "Color Theme"
334
395
  msgstr "Color Theme"
335
396
 
@@ -362,16 +423,50 @@ msgstr "Content"
362
423
  msgid "Copy"
363
424
  msgstr "Copy"
364
425
 
426
+ #. @context: Error toast when account creation fails
427
+ #. @context: Error toast when account creation fails
428
+ #: src/routes/auth/setup.tsx
429
+ #: src/routes/auth/setup.tsx
430
+ msgid "Couldn't create your account. Check the details and try again."
431
+ msgstr "Couldn't create your account. Check the details and try again."
432
+
433
+ #. @context: Error toast when nav delete fails
434
+ #: src/ui/dash/appearance/NavigationContent.tsx
435
+ msgid "Couldn't delete. Try again in a moment."
436
+ msgstr "Couldn't delete. Try again in a moment."
437
+
438
+ #. @context: Toast when post save fails
439
+ #: src/ui/dash/posts/PostForm.tsx
440
+ msgid "Couldn't save your post. Try again in a moment."
441
+ msgstr "Couldn't save your post. Try again in a moment."
442
+
443
+ #. @context: Error toast when nav save fails
444
+ #. @context: Toast when save fails
445
+ #: src/ui/dash/appearance/NavigationContent.tsx
446
+ #: src/ui/shared/CollectionsSidebar.tsx
447
+ msgid "Couldn't save. Try again in a moment."
448
+ msgstr "Couldn't save. Try again in a moment."
449
+
450
+ #. @context: Error toast when profile update fails
451
+ #: src/routes/dash/settings.tsx
452
+ msgid "Couldn't update your profile. Try again in a moment."
453
+ msgstr "Couldn't update your profile. Try again in a moment."
454
+
365
455
  #. @context: Button to save new collection
366
456
  #: src/ui/dash/collections/CollectionForm.tsx
367
- msgid "Create Collection"
368
- msgstr "Create Collection"
457
+ #~ msgid "Create Collection"
458
+ #~ msgstr "Create Collection"
369
459
 
370
460
  #. @context: Button to save new navigation link
371
461
  #: src/ui/dash/pages/LinkFormContent.tsx
372
462
  #~ msgid "Create Link"
373
463
  #~ msgstr "Create Link"
374
464
 
465
+ #. @context: Link at bottom of page combobox to create a new page
466
+ #: src/ui/dash/appearance/NavigationContent.tsx
467
+ msgid "Create page"
468
+ msgstr "Create page"
469
+
375
470
  #. @context: Button to create new page
376
471
  #: src/ui/dash/PageForm.tsx
377
472
  msgid "Create Page"
@@ -394,8 +489,8 @@ msgstr "Create your admin account."
394
489
 
395
490
  #. @context: Button in empty state to create first post
396
491
  #: src/ui/dash/PostList.tsx
397
- msgid "Create your first post"
398
- msgstr "Create your first post"
492
+ #~ msgid "Create your first post"
493
+ #~ msgstr "Create your first post"
399
494
 
400
495
  #. @context: Password form field
401
496
  #: src/ui/dash/settings/AccountContent.tsx
@@ -404,18 +499,30 @@ msgstr "Current Password"
404
499
 
405
500
  #. @context: Error toast when current password verification fails
406
501
  #: src/routes/dash/settings.tsx
407
- msgid "Current password is incorrect."
408
- msgstr "Current password is incorrect."
502
+ msgid "Current password doesn't match. Try again."
503
+ msgstr "Current password doesn't match. Try again."
504
+
505
+ #. @context: Error toast when current password verification fails
506
+ #: src/routes/dash/settings.tsx
507
+ #~ msgid "Current password is incorrect."
508
+ #~ msgstr "Current password is incorrect."
409
509
 
410
510
  #. @context: Appearance settings heading for custom CSS
511
+ #. @context: Settings item — custom CSS settings
411
512
  #: src/ui/dash/appearance/AdvancedContent.tsx
513
+ #: src/ui/dash/settings/SettingsRootContent.tsx
412
514
  msgid "Custom CSS"
413
515
  msgstr "Custom CSS"
414
516
 
415
517
  #. @context: Toast after saving custom CSS
416
- #: src/routes/dash/appearance.tsx
417
- msgid "Custom CSS saved successfully."
418
- msgstr "Custom CSS saved successfully."
518
+ #: src/routes/dash/settings.tsx
519
+ #~ msgid "Custom CSS saved successfully."
520
+ #~ msgstr "Custom CSS saved successfully."
521
+
522
+ #. @context: Toast after saving custom CSS
523
+ #: src/routes/dash/settings.tsx
524
+ msgid "Custom CSS updated."
525
+ msgstr "Custom CSS updated."
419
526
 
420
527
  #. @context: Post form field
421
528
  #: src/theme/components/PostForm.tsx
@@ -427,6 +534,11 @@ msgstr "Custom CSS saved successfully."
427
534
  #~ msgid "Custom Slug (optional)"
428
535
  #~ msgstr "Custom Slug (optional)"
429
536
 
537
+ #. @context: Settings item description for custom CSS
538
+ #: src/ui/dash/settings/SettingsRootContent.tsx
539
+ msgid "Custom styling"
540
+ msgstr "Custom styling"
541
+
430
542
  #. @context: Slug help text
431
543
  #: src/theme/components/PostForm.tsx
432
544
  #~ msgid "Custom URL path. Leave empty to use default /p/ID format."
@@ -438,7 +550,9 @@ msgid "Danger Zone"
438
550
  msgstr "Danger Zone"
439
551
 
440
552
  #. @context: Dashboard main heading
553
+ #. @context: Dashboard navigation - dashboard home
441
554
  #: src/routes/dash/index.tsx
555
+ #: src/ui/layouts/DashLayout.tsx
442
556
  msgid "Dashboard"
443
557
  msgstr "Dashboard"
444
558
 
@@ -449,10 +563,12 @@ msgstr "Dashboard"
449
563
 
450
564
  #. @context: Button to delete item
451
565
  #. @context: Button to delete redirect
566
+ #. @context: Delete collection action
452
567
  #. @context: Delete nav item
453
568
  #: src/routes/dash/redirects.tsx
454
569
  #: src/ui/dash/ActionButtons.tsx
455
570
  #: src/ui/dash/appearance/NavigationContent.tsx
571
+ #: src/ui/shared/CollectionsSidebar.tsx
456
572
  msgid "Delete"
457
573
  msgstr "Delete"
458
574
 
@@ -471,15 +587,35 @@ msgstr "Delete Media"
471
587
  msgid "Delete Page"
472
588
  msgstr "Delete Page"
473
589
 
590
+ #. @context: Confirm dialog for deleting a collection
591
+ #: src/ui/shared/CollectionsSidebar.tsx
592
+ msgid "Delete this collection permanently? Posts inside won't be removed."
593
+ msgstr "Delete this collection permanently? Posts inside won't be removed."
594
+
595
+ #. @context: Confirmation dialog when deleting a post from the list
596
+ #: src/ui/dash/PostList.tsx
597
+ msgid "Delete this post permanently? This can't be undone."
598
+ msgstr "Delete this post permanently? This can't be undone."
599
+
600
+ #. @context: Toast after deleting a collection
601
+ #: src/ui/shared/CollectionsSidebar.tsx
602
+ msgid "Deleted"
603
+ msgstr "Deleted"
604
+
474
605
  #. @context: Warning message before deleting media
475
606
  #: src/ui/dash/media/ViewMediaContent.tsx
476
- msgid "Deleting this media will remove it permanently from storage."
477
- msgstr "Deleting this media will remove it permanently from storage."
607
+ #~ msgid "Deleting this media will remove it permanently from storage."
608
+ #~ msgstr "Deleting this media will remove it permanently from storage."
609
+
610
+ #. @context: Hint shown on signin page when demo credentials are pre-filled
611
+ #: src/routes/auth/signin.tsx
612
+ #~ msgid "Demo account pre-filled. Just click Sign In."
613
+ #~ msgstr "Demo account pre-filled. Just click Sign In."
478
614
 
479
615
  #. @context: Hint shown on signin page when demo credentials are pre-filled
480
616
  #: src/routes/auth/signin.tsx
481
- msgid "Demo account pre-filled. Just click Sign In."
482
- msgstr "Demo account pre-filled. Just click Sign In."
617
+ msgid "Demo credentials are pre-filled hit Sign In to continue."
618
+ msgstr "Demo credentials are pre-filled hit Sign In to continue."
483
619
 
484
620
  #. @context: Alt text textarea placeholder
485
621
  #: src/ui/compose/ComposeDialog.tsx
@@ -487,17 +623,22 @@ msgid "Describe this for people with visual impairments..."
487
623
  msgstr "Describe this for people with visual impairments..."
488
624
 
489
625
  #. @context: Collection form field
490
- #: src/ui/dash/collections/CollectionForm.tsx
626
+ #: src/ui/shared/CollectionsSidebar.tsx
491
627
  msgid "Description (optional)"
492
628
  msgstr "Description (optional)"
493
629
 
630
+ #. @context: Settings group label for design settings
631
+ #: src/ui/dash/settings/SettingsRootContent.tsx
632
+ msgid "Design"
633
+ msgstr "Design"
634
+
494
635
  #. @context: More menu - discard post
495
636
  #: src/ui/compose/ComposeDialog.tsx
496
637
  msgid "Discard"
497
638
  msgstr "Discard"
498
639
 
499
640
  #. @context: Checkbox to show avatar in the site header
500
- #: src/ui/dash/settings/GeneralContent.tsx
641
+ #: src/ui/dash/settings/AvatarContent.tsx
501
642
  msgid "Display avatar in my site header"
502
643
  msgstr "Display avatar in my site header"
503
644
 
@@ -516,10 +657,12 @@ msgstr "Display avatar in my site header"
516
657
  msgid "Displayed at the bottom of all posts and pages. Markdown supported."
517
658
  msgstr "Displayed at the bottom of all posts and pages. Markdown supported."
518
659
 
660
+ #. @context: Button to exit reorder mode
519
661
  #. @context: Close attached text panel
520
662
  #. @context: Close media picker button
521
663
  #: src/ui/compose/ComposeDialog.tsx
522
664
  #: src/ui/dash/posts/PostForm.tsx
665
+ #: src/ui/shared/CollectionsSidebar.tsx
523
666
  msgid "Done"
524
667
  msgstr "Done"
525
668
 
@@ -549,27 +692,25 @@ msgstr "Drafts"
549
692
  #~ msgid "e.g. The Verge, John Doe"
550
693
  #~ msgstr "e.g. The Verge, John Doe"
551
694
 
552
- #. @context: Button to edit collection
553
- #. @context: Button to edit collection
554
695
  #. @context: Button to edit item
555
696
  #. @context: Button to edit page
556
697
  #. @context: Button to edit page
557
698
  #. @context: Button to edit post
558
699
  #. @context: Button to edit post
700
+ #. @context: Per-collection edit action
559
701
  #: src/routes/dash/pages.tsx
560
702
  #: src/routes/dash/posts.tsx
561
703
  #: src/ui/dash/ActionButtons.tsx
562
- #: src/ui/dash/collections/CollectionsListContent.tsx
563
- #: src/ui/dash/collections/ViewCollectionContent.tsx
564
704
  #: src/ui/dash/pages/PagesContent.tsx
565
705
  #: src/ui/dash/PostList.tsx
706
+ #: src/ui/shared/CollectionsSidebar.tsx
566
707
  msgid "Edit"
567
708
  msgstr "Edit"
568
709
 
569
710
  #. @context: Page heading
570
711
  #: src/ui/dash/collections/CollectionForm.tsx
571
- msgid "Edit Collection"
572
- msgstr "Edit Collection"
712
+ #~ msgid "Edit Collection"
713
+ #~ msgstr "Edit Collection"
573
714
 
574
715
  #. @context: Page heading
575
716
  #: src/ui/dash/pages/LinkFormContent.tsx
@@ -604,15 +745,25 @@ msgstr "Edit Post"
604
745
  msgid "Email"
605
746
  msgstr "Email"
606
747
 
748
+ #. @context: Compose toolbar - emoji picker tooltip
749
+ #: src/ui/compose/ComposeDialog.tsx
750
+ msgid "Emoji"
751
+ msgstr "Emoji"
752
+
607
753
  #. @context: Collection icon placeholder
608
754
  #: src/ui/dash/collections/CollectionForm.tsx
609
755
  #~ msgid "Emoji or icon name"
610
756
  #~ msgstr "Emoji or icon name"
611
757
 
758
+ #. @context: Emoji picker tab label
759
+ #: src/ui/shared/CollectionsSidebar.tsx
760
+ msgid "Emojis"
761
+ msgstr "Emojis"
762
+
612
763
  #. @context: Password reset page description
613
764
  #: src/routes/auth/reset.tsx
614
- msgid "Enter your new password."
615
- msgstr "Enter your new password."
765
+ #~ msgid "Enter your new password."
766
+ #~ msgstr "Enter your new password."
616
767
 
617
768
  #. @context: Plural entry count label
618
769
  #: src/ui/pages/CollectionsPage.tsx
@@ -628,28 +779,33 @@ msgstr "entry"
628
779
  #. @context: Error toast when account creation fails
629
780
  #: src/routes/auth/setup.tsx
630
781
  #: src/routes/auth/setup.tsx
631
- msgid "Failed to create account"
632
- msgstr "Failed to create account"
782
+ #~ msgid "Failed to create account"
783
+ #~ msgstr "Failed to create account"
633
784
 
634
785
  #. @context: Error toast when nav delete fails
635
786
  #: src/ui/dash/appearance/NavigationContent.tsx
636
- msgid "Failed to delete. Please try again."
637
- msgstr "Failed to delete. Please try again."
787
+ #~ msgid "Failed to delete. Please try again."
788
+ #~ msgstr "Failed to delete. Please try again."
638
789
 
639
790
  #. @context: Toast when post save fails
640
791
  #: src/ui/dash/posts/PostForm.tsx
641
- msgid "Failed to save post. Please try again."
642
- msgstr "Failed to save post. Please try again."
792
+ #~ msgid "Failed to save post. Please try again."
793
+ #~ msgstr "Failed to save post. Please try again."
643
794
 
644
795
  #. @context: Error toast when nav save fails
645
796
  #: src/ui/dash/appearance/NavigationContent.tsx
646
- msgid "Failed to save. Please try again."
647
- msgstr "Failed to save. Please try again."
797
+ #~ msgid "Failed to save. Please try again."
798
+ #~ msgstr "Failed to save. Please try again."
648
799
 
649
800
  #. @context: Error toast when profile update fails
650
801
  #: src/routes/dash/settings.tsx
651
- msgid "Failed to update profile."
652
- msgstr "Failed to update profile."
802
+ #~ msgid "Failed to update profile."
803
+ #~ msgstr "Failed to update profile."
804
+
805
+ #. @context: Settings item description for avatar
806
+ #: src/ui/dash/settings/SettingsRootContent.tsx
807
+ msgid "Favicon and header icon"
808
+ msgstr "Favicon and header icon"
653
809
 
654
810
  #. @context: Archive filter - featured posts
655
811
  #. @context: Browse filter for featured posts
@@ -657,7 +813,7 @@ msgstr "Failed to update profile."
657
813
  #. @context: Browse filter label
658
814
  #. @context: Browse filter label for featured posts
659
815
  #. @context: Post badge - featured
660
- #. @context: Post form checkbox - mark as featured
816
+ #. @context: Visibility option - highlighted on featured page
661
817
  #: src/ui/dash/appearance/NavigationContent.tsx
662
818
  #: src/ui/dash/appearance/NavigationContent.tsx
663
819
  #: src/ui/dash/appearance/NavigationContent.tsx
@@ -668,13 +824,25 @@ msgstr "Failed to update profile."
668
824
  msgid "Featured"
669
825
  msgstr "Featured"
670
826
 
827
+ #. @context: Error toast when file storage is not set up
828
+ #. @context: Error when file storage is not set up
829
+ #: src/routes/api/upload.ts
830
+ #: src/routes/dash/settings.tsx
831
+ msgid "File storage isn't set up. Check your server config."
832
+ msgstr "File storage isn't set up. Check your server config."
833
+
834
+ #. @context: Toast after successful file upload
835
+ #: src/routes/api/upload.ts
836
+ msgid "File uploaded."
837
+ msgstr "File uploaded."
838
+
671
839
  #. @context: Appearance settings heading for font theme
672
840
  #: src/ui/dash/appearance/FontThemeContent.tsx
673
841
  msgid "Font theme"
674
842
  msgstr "Font theme"
675
843
 
676
- #. @context: Appearance sub-navigation tab
677
- #: src/ui/dash/appearance/AppearanceNav.tsx
844
+ #. @context: Settings item — font theme settings
845
+ #: src/ui/dash/settings/SettingsRootContent.tsx
678
846
  msgid "Font Theme"
679
847
  msgstr "Font Theme"
680
848
 
@@ -711,10 +879,10 @@ msgstr "Found 1 result"
711
879
  msgid "From Path"
712
880
  msgstr "From Path"
713
881
 
882
+ #. @context: Settings item — general settings
714
883
  #. @context: Settings section heading
715
- #. @context: Settings sub-navigation tab
716
884
  #: src/ui/dash/settings/GeneralContent.tsx
717
- #: src/ui/dash/settings/SettingsNav.tsx
885
+ #: src/ui/dash/settings/SettingsRootContent.tsx
718
886
  msgid "General"
719
887
  msgstr "General"
720
888
 
@@ -723,13 +891,23 @@ msgstr "General"
723
891
  msgid "Give it a title..."
724
892
  msgstr "Give it a title..."
725
893
 
894
+ #. @context: Settings item description for navigation
895
+ #: src/ui/dash/settings/SettingsRootContent.tsx
896
+ msgid "Header links, featured"
897
+ msgstr "Header links, featured"
898
+
726
899
  #. @context: Settings form field for max visible nav links in header
727
900
  #: src/ui/dash/settings/GeneralContent.tsx
728
901
  #~ msgid "Header Nav Links"
729
902
  #~ msgstr "Header Nav Links"
730
903
 
904
+ #. @context: Hint text in alt text panel
905
+ #: src/ui/compose/ComposeDialog.tsx
906
+ msgid "Helps screen readers describe the image"
907
+ msgstr "Helps screen readers describe the image"
908
+
731
909
  #. @context: Collection sort order option
732
- #: src/ui/dash/collections/CollectionForm.tsx
910
+ #: src/ui/shared/CollectionsSidebar.tsx
733
911
  msgid "Highest rated"
734
912
  msgstr "Highest rated"
735
913
 
@@ -739,9 +917,14 @@ msgid "Home view saved"
739
917
  msgstr "Home view saved"
740
918
 
741
919
  #. @context: Collection form field
742
- #: src/ui/dash/collections/CollectionForm.tsx
743
- msgid "Icon (optional)"
744
- msgstr "Icon (optional)"
920
+ #: src/ui/shared/CollectionsSidebar.tsx
921
+ #~ msgid "Icon (optional)"
922
+ #~ msgstr "Icon (optional)"
923
+
924
+ #. @context: Icon picker tab label
925
+ #: src/ui/shared/CollectionsSidebar.tsx
926
+ msgid "Icons"
927
+ msgstr "Icons"
745
928
 
746
929
  #. @context: Post type badge - image
747
930
  #. @context: Post type label - image
@@ -759,38 +942,35 @@ msgstr "Icon (optional)"
759
942
 
760
943
  #. @context: Media upload instructions - auto optimization
761
944
  #: src/ui/dash/media/MediaListContent.tsx
762
- msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
763
- msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
945
+ msgid "Images are automatically optimized (resized, converted to WebP). Video, audio, and PDF files are uploaded as-is (max 200MB)."
946
+ msgstr "Images are automatically optimized (resized, converted to WebP). Video, audio, and PDF files are uploaded as-is (max 200MB)."
947
+
948
+ #. @context: Media upload instructions - auto optimization
949
+ #: src/ui/dash/media/MediaListContent.tsx
950
+ #~ msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
951
+ #~ msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
764
952
 
765
953
  #. @context: Error toast when sign-in credentials are wrong
766
954
  #: src/routes/auth/signin.tsx
767
- msgid "Invalid email or password"
768
- msgstr "Invalid email or password"
955
+ #~ msgid "Invalid email or password"
956
+ #~ msgstr "Invalid email or password"
769
957
 
770
958
  #. @context: Error toast when selected font theme is not valid
771
- #: src/routes/dash/appearance.tsx
772
- msgid "Invalid font theme selected."
773
- msgstr "Invalid font theme selected."
959
+ #: src/routes/dash/settings.tsx
960
+ #~ msgid "Invalid font theme selected."
961
+ #~ msgstr "Invalid font theme selected."
774
962
 
775
- #. @context: Fallback validation error for compose form
776
963
  #. @context: Fallback validation error for page form
777
964
  #. @context: Fallback validation error for page form
778
- #. @context: Fallback validation error for password reset form
779
- #. @context: Fallback validation error for setup form
780
- #. @context: Fallback validation error for sign-in form
781
- #: src/routes/auth/reset.tsx
782
- #: src/routes/auth/setup.tsx
783
- #: src/routes/auth/signin.tsx
784
- #: src/routes/compose.tsx
785
965
  #: src/routes/dash/pages.tsx
786
966
  #: src/routes/dash/pages.tsx
787
- msgid "Invalid input"
788
- msgstr "Invalid input"
967
+ #~ msgid "Invalid input"
968
+ #~ msgstr "Invalid input"
789
969
 
790
970
  #. @context: Password reset error heading
791
971
  #: src/routes/auth/reset.tsx
792
- msgid "Invalid or Expired Link"
793
- msgstr "Invalid or Expired Link"
972
+ #~ msgid "Invalid or Expired Link"
973
+ #~ msgstr "Invalid or Expired Link"
794
974
 
795
975
  #. @context: Error toast when reorder request is malformed
796
976
  #: src/routes/dash/appearance.tsx
@@ -798,9 +978,9 @@ msgstr "Invalid or Expired Link"
798
978
  #~ msgstr "Invalid request"
799
979
 
800
980
  #. @context: Error toast when selected theme is not valid
801
- #: src/routes/dash/appearance.tsx
802
- msgid "Invalid theme selected."
803
- msgstr "Invalid theme selected."
981
+ #: src/routes/dash/settings.tsx
982
+ #~ msgid "Invalid theme selected."
983
+ #~ msgstr "Invalid theme selected."
804
984
 
805
985
  #. @context: Checkbox for allowing search engine indexing
806
986
  #: src/ui/dash/settings/GeneralContent.tsx
@@ -864,6 +1044,16 @@ msgstr "Link"
864
1044
  msgid "Links"
865
1045
  msgstr "Links"
866
1046
 
1047
+ #. @context: Label for max visible nav links number input
1048
+ #: src/ui/dash/appearance/NavigationContent.tsx
1049
+ msgid "Links shown in header"
1050
+ msgstr "Links shown in header"
1051
+
1052
+ #. @context: Visibility option - appears everywhere
1053
+ #: src/ui/dash/posts/PostForm.tsx
1054
+ msgid "Listed"
1055
+ msgstr "Listed"
1056
+
867
1057
  #. @context: Pagination button - load more items
868
1058
  #: src/ui/shared/Pagination.tsx
869
1059
  msgid "Load more"
@@ -880,7 +1070,7 @@ msgid "Lowercase letters, numbers, and hyphens only"
880
1070
  msgstr "Lowercase letters, numbers, and hyphens only"
881
1071
 
882
1072
  #. @context: Collection sort order option
883
- #: src/ui/dash/collections/CollectionForm.tsx
1073
+ #: src/ui/shared/CollectionsSidebar.tsx
884
1074
  msgid "Lowest rated"
885
1075
  msgstr "Lowest rated"
886
1076
 
@@ -896,8 +1086,8 @@ msgstr "Markdown supported"
896
1086
 
897
1087
  #. @context: Label for max visible nav links number input
898
1088
  #: src/ui/dash/appearance/NavigationContent.tsx
899
- msgid "Max visible links"
900
- msgstr "Max visible links"
1089
+ #~ msgid "Max visible links"
1090
+ #~ msgstr "Max visible links"
901
1091
 
902
1092
  #. @context: Toast after saving max visible nav links setting
903
1093
  #: src/ui/dash/appearance/NavigationContent.tsx
@@ -923,6 +1113,11 @@ msgstr "Media"
923
1113
  msgid "Menu"
924
1114
  msgstr "Menu"
925
1115
 
1116
+ #. @context: Aria-label for more button
1117
+ #: src/ui/shared/CollectionsSidebar.tsx
1118
+ msgid "More actions"
1119
+ msgstr "More actions"
1120
+
926
1121
  #. @context: Button to show overflow nav links
927
1122
  #: src/ui/layouts/SiteLayout.tsx
928
1123
  msgid "More links"
@@ -939,7 +1134,7 @@ msgstr "More links"
939
1134
  #~ msgstr "My Blog"
940
1135
 
941
1136
  #. @context: Collection title placeholder
942
- #: src/ui/dash/collections/CollectionForm.tsx
1137
+ #: src/ui/shared/CollectionsSidebar.tsx
943
1138
  msgid "My Collection"
944
1139
  msgstr "My Collection"
945
1140
 
@@ -950,11 +1145,16 @@ msgstr "Name"
950
1145
 
951
1146
  #. @context: Error toast when display name is empty
952
1147
  #: src/routes/dash/settings.tsx
953
- msgid "Name is required."
954
- msgstr "Name is required."
1148
+ #~ msgid "Name is required."
1149
+ #~ msgstr "Name is required."
1150
+
1151
+ #. @context: Settings item description for general
1152
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1153
+ msgid "Name, description, language"
1154
+ msgstr "Name, description, language"
955
1155
 
956
- #. @context: Appearance sub-navigation tab
957
- #: src/ui/dash/appearance/AppearanceNav.tsx
1156
+ #. @context: Settings item — navigation settings
1157
+ #: src/ui/dash/settings/SettingsRootContent.tsx
958
1158
  msgid "Navigation"
959
1159
  msgstr "Navigation"
960
1160
 
@@ -963,24 +1163,27 @@ msgstr "Navigation"
963
1163
  msgid "Navigation items"
964
1164
  msgstr "Navigation items"
965
1165
 
1166
+ #. @context: Label for nav preview section
1167
+ #. @context: Label for nav preview section
1168
+ #: src/ui/dash/appearance/NavigationContent.tsx
1169
+ #: src/ui/dash/appearance/NavigationContent.tsx
1170
+ msgid "Navigation Preview"
1171
+ msgstr "Navigation Preview"
1172
+
966
1173
  #. @context: Help text with link
967
1174
  #: src/routes/dash/index.tsx
968
1175
  msgid "Need help? Visit the <0>documentation</0>"
969
1176
  msgstr "Need help? Visit the <0>documentation</0>"
970
1177
 
971
- #. @context: Button to create new collection
972
- #. @context: Button to create new collection
973
- #. @context: Page heading
974
- #: src/ui/dash/collections/CollectionForm.tsx
975
- #: src/ui/dash/collections/CollectionsListContent.tsx
976
- #: src/ui/dash/collections/CollectionsListContent.tsx
1178
+ #. @context: Tooltip/aria for add collection button
1179
+ #: src/ui/shared/CollectionsSidebar.tsx
977
1180
  msgid "New Collection"
978
1181
  msgstr "New Collection"
979
1182
 
980
1183
  #. @context: Button to add divider between collections
981
1184
  #: src/ui/dash/collections/CollectionsListContent.tsx
982
- msgid "New Divider"
983
- msgstr "New Divider"
1185
+ #~ msgid "New Divider"
1186
+ #~ msgstr "New Divider"
984
1187
 
985
1188
  #. @context: Page heading
986
1189
  #: src/ui/dash/pages/LinkFormContent.tsx
@@ -1020,7 +1223,7 @@ msgid "New Redirect"
1020
1223
  msgstr "New Redirect"
1021
1224
 
1022
1225
  #. @context: Collection sort order option
1023
- #: src/ui/dash/collections/CollectionForm.tsx
1226
+ #: src/ui/shared/CollectionsSidebar.tsx
1024
1227
  msgid "Newest first"
1025
1228
  msgstr "Newest first"
1026
1229
 
@@ -1033,40 +1236,70 @@ msgstr "Next"
1033
1236
 
1034
1237
  #. @context: Compose collection combobox empty state
1035
1238
  #: src/ui/compose/ComposeDialog.tsx
1036
- msgid "No collections found."
1037
- msgstr "No collections found."
1239
+ #~ msgid "No collections found."
1240
+ #~ msgstr "No collections found."
1038
1241
 
1039
- #. @context: Empty state message
1040
1242
  #. @context: Empty state message on collections page
1041
- #: src/ui/dash/collections/CollectionsListContent.tsx
1042
1243
  #: src/ui/pages/CollectionsPage.tsx
1043
- msgid "No collections yet."
1044
- msgstr "No collections yet."
1244
+ #~ msgid "No collections yet."
1245
+ #~ msgstr "No collections yet."
1246
+
1247
+ #. @context: Empty state message on collections page
1248
+ #: src/ui/pages/CollectionsPage.tsx
1249
+ msgid "No collections yet. Start one to organize posts by topic."
1250
+ msgstr "No collections yet. Start one to organize posts by topic."
1251
+
1252
+ #. @context: Empty state message on featured page
1253
+ #: src/ui/pages/FeaturedPage.tsx
1254
+ #~ msgid "No featured posts yet."
1255
+ #~ msgstr "No featured posts yet."
1045
1256
 
1046
1257
  #. @context: Empty state message on featured page
1047
1258
  #: src/ui/pages/FeaturedPage.tsx
1048
- msgid "No featured posts yet."
1049
- msgstr "No featured posts yet."
1259
+ msgid "No featured posts. Mark a post as featured to highlight it here."
1260
+ msgstr "No featured posts. Mark a post as featured to highlight it here."
1050
1261
 
1051
1262
  #. @context: Error when no file was selected for upload
1052
1263
  #: src/routes/api/upload.ts
1053
- msgid "No file provided"
1054
- msgstr "No file provided"
1264
+ #~ msgid "No file provided"
1265
+ #~ msgstr "No file provided"
1055
1266
 
1056
1267
  #. @context: Error toast when no file was selected for upload
1057
1268
  #: src/routes/dash/settings.tsx
1058
- msgid "No file provided."
1059
- msgstr "No file provided."
1269
+ #~ msgid "No file provided."
1270
+ #~ msgstr "No file provided."
1271
+
1272
+ #. @context: Error toast when no file was selected for upload
1273
+ #. @context: Error when no file was selected for upload
1274
+ #: src/routes/api/upload.ts
1275
+ #: src/routes/dash/settings.tsx
1276
+ msgid "No file selected. Choose a file to upload."
1277
+ msgstr "No file selected. Choose a file to upload."
1278
+
1279
+ #. @context: Compose collection combobox empty state
1280
+ #: src/ui/compose/ComposeDialog.tsx
1281
+ msgid "No matching collections."
1282
+ msgstr "No matching collections."
1283
+
1284
+ #. @context: Empty state when page search has no results
1285
+ #: src/ui/dash/appearance/NavigationContent.tsx
1286
+ msgid "No matching pages."
1287
+ msgstr "No matching pages."
1288
+
1289
+ #. @context: Post form media empty state
1290
+ #: src/ui/dash/posts/PostForm.tsx
1291
+ msgid "No media attached."
1292
+ msgstr "No media attached."
1060
1293
 
1061
1294
  #. @context: Post form media empty state
1062
1295
  #: src/ui/dash/posts/PostForm.tsx
1063
- msgid "No media selected yet."
1064
- msgstr "No media selected yet."
1296
+ #~ msgid "No media selected yet."
1297
+ #~ msgstr "No media selected yet."
1065
1298
 
1066
1299
  #. @context: Empty state message when no media exists
1067
1300
  #: src/ui/dash/media/MediaListContent.tsx
1068
- msgid "No media uploaded yet."
1069
- msgstr "No media uploaded yet."
1301
+ #~ msgid "No media uploaded yet."
1302
+ #~ msgstr "No media uploaded yet."
1070
1303
 
1071
1304
  #. @context: Empty state for navigation items
1072
1305
  #: src/ui/dash/appearance/NavigationContent.tsx
@@ -1085,8 +1318,8 @@ msgstr "No navigation items yet. Add pages, links, or enable system items below.
1085
1318
 
1086
1319
  #. @context: Empty state when page search has no results
1087
1320
  #: src/ui/dash/appearance/NavigationContent.tsx
1088
- msgid "No pages found."
1089
- msgstr "No pages found."
1321
+ #~ msgid "No pages found."
1322
+ #~ msgstr "No pages found."
1090
1323
 
1091
1324
  #. @context: Empty state message when no pages exist
1092
1325
  #: src/routes/dash/pages.tsx
@@ -1095,37 +1328,53 @@ msgstr "No pages found."
1095
1328
 
1096
1329
  #. @context: Empty state for pages list
1097
1330
  #: src/ui/dash/pages/PagesContent.tsx
1098
- msgid "No pages yet. Create your first page to get started."
1099
- msgstr "No pages yet. Create your first page to get started."
1331
+ msgid "No pages yet. Create one to add static content to your site."
1332
+ msgstr "No pages yet. Create one to add static content to your site."
1333
+
1334
+ #. @context: Empty state for pages list
1335
+ #: src/ui/dash/pages/PagesContent.tsx
1336
+ #~ msgid "No pages yet. Create your first page to get started."
1337
+ #~ msgstr "No pages yet. Create your first page to get started."
1100
1338
 
1101
1339
  #. @context: Archive empty state
1102
1340
  #: src/ui/pages/ArchivePage.tsx
1103
- msgid "No posts found."
1104
- msgstr "No posts found."
1341
+ #~ msgid "No posts found."
1342
+ #~ msgstr "No posts found."
1105
1343
 
1106
1344
  #. @context: Empty state message
1107
- #. @context: Empty state message
1108
- #: src/ui/dash/collections/ViewCollectionContent.tsx
1109
1345
  #: src/ui/pages/CollectionPage.tsx
1110
- msgid "No posts in this collection."
1111
- msgstr "No posts in this collection."
1346
+ #~ msgid "No posts in this collection."
1347
+ #~ msgstr "No posts in this collection."
1348
+
1349
+ #. @context: Archive empty state
1350
+ #: src/ui/pages/ArchivePage.tsx
1351
+ msgid "No posts match this filter."
1352
+ msgstr "No posts match this filter."
1112
1353
 
1113
1354
  #. @context: Empty state message on home page
1114
- #. @context: Empty state message when no posts exist
1115
- #: src/ui/dash/PostList.tsx
1116
1355
  #: src/ui/pages/HomePage.tsx
1117
- msgid "No posts yet."
1118
- msgstr "No posts yet."
1356
+ #~ msgid "No posts yet."
1357
+ #~ msgstr "No posts yet."
1119
1358
 
1120
1359
  #. @context: Empty state message
1121
1360
  #: src/routes/dash/redirects.tsx
1122
- msgid "No redirects configured."
1123
- msgstr "No redirects configured."
1361
+ #~ msgid "No redirects configured."
1362
+ #~ msgstr "No redirects configured."
1363
+
1364
+ #. @context: Empty state message
1365
+ #: src/routes/dash/redirects.tsx
1366
+ msgid "No redirects yet. Create one to forward traffic from old URLs."
1367
+ msgstr "No redirects yet. Create one to forward traffic from old URLs."
1368
+
1369
+ #. @context: Search empty results
1370
+ #: src/ui/pages/SearchPage.tsx
1371
+ #~ msgid "No results found."
1372
+ #~ msgstr "No results found."
1124
1373
 
1125
1374
  #. @context: Search empty results
1126
1375
  #: src/ui/pages/SearchPage.tsx
1127
- msgid "No results found."
1128
- msgstr "No results found."
1376
+ msgid "No results. Try different keywords."
1377
+ msgstr "No results. Try different keywords."
1129
1378
 
1130
1379
  #. @context: No rating selected
1131
1380
  #: src/ui/compose/ComposeDialog.tsx
@@ -1148,13 +1397,30 @@ msgstr "Note"
1148
1397
  msgid "Notes"
1149
1398
  msgstr "Notes"
1150
1399
 
1400
+ #. @context: Empty state message on home page
1401
+ #: src/ui/pages/HomePage.tsx
1402
+ msgid "Nothing here yet."
1403
+ msgstr "Nothing here yet."
1404
+
1405
+ #. @context: Empty state message when no posts exist
1406
+ #: src/ui/dash/PostList.tsx
1407
+ msgid "Nothing published yet. Write your first post to get started."
1408
+ msgstr "Nothing published yet. Write your first post to get started."
1409
+
1151
1410
  #. @context: Collection sort order option
1152
- #: src/ui/dash/collections/CollectionForm.tsx
1411
+ #: src/ui/shared/CollectionsSidebar.tsx
1153
1412
  msgid "Oldest first"
1154
1413
  msgstr "Oldest first"
1155
1414
 
1415
+ #. @context: Switch label for setting featured posts as default homepage
1416
+ #: src/ui/dash/appearance/NavigationContent.tsx
1417
+ msgid "Open with Featured posts"
1418
+ msgstr "Open with Featured posts"
1419
+
1420
+ #. @context: Toast after reordering collections
1156
1421
  #. @context: Toast after saving navigation item order
1157
1422
  #: src/ui/dash/appearance/NavigationContent.tsx
1423
+ #: src/ui/shared/CollectionsSidebar.tsx
1158
1424
  msgid "Order saved"
1159
1425
  msgstr "Order saved"
1160
1426
 
@@ -1204,13 +1470,23 @@ msgstr "Password"
1204
1470
 
1205
1471
  #. @context: Toast after changing account password
1206
1472
  #: src/routes/dash/settings.tsx
1207
- msgid "Password changed successfully."
1208
- msgstr "Password changed successfully."
1473
+ #~ msgid "Password changed successfully."
1474
+ #~ msgstr "Password changed successfully."
1475
+
1476
+ #. @context: Toast after changing account password
1477
+ #: src/routes/dash/settings.tsx
1478
+ msgid "Password changed."
1479
+ msgstr "Password changed."
1480
+
1481
+ #. @context: Error toast when new password and confirmation differ
1482
+ #: src/routes/dash/settings.tsx
1483
+ #~ msgid "Passwords do not match."
1484
+ #~ msgstr "Passwords do not match."
1209
1485
 
1210
1486
  #. @context: Error toast when new password and confirmation differ
1211
1487
  #: src/routes/dash/settings.tsx
1212
- msgid "Passwords do not match."
1213
- msgstr "Passwords do not match."
1488
+ msgid "Passwords don't match. Make sure both fields are identical."
1489
+ msgstr "Passwords don't match. Make sure both fields are identical."
1214
1490
 
1215
1491
  #. @context: Attached text placeholder
1216
1492
  #: src/ui/compose/ComposeDialog.tsx
@@ -1266,8 +1542,13 @@ msgstr "Post"
1266
1542
 
1267
1543
  #. @context: Toast after creating post
1268
1544
  #: src/ui/dash/posts/PostForm.tsx
1269
- msgid "Post published successfully."
1270
- msgstr "Post published successfully."
1545
+ #~ msgid "Post published successfully."
1546
+ #~ msgstr "Post published successfully."
1547
+
1548
+ #. @context: Toast after creating post
1549
+ #: src/ui/dash/posts/PostForm.tsx
1550
+ msgid "Post published."
1551
+ msgstr "Post published."
1271
1552
 
1272
1553
  #. @context: Post title placeholder
1273
1554
  #: src/ui/dash/posts/PostForm.tsx
@@ -1276,8 +1557,13 @@ msgstr "Post title..."
1276
1557
 
1277
1558
  #. @context: Toast after editing post
1278
1559
  #: src/ui/dash/posts/PostForm.tsx
1279
- msgid "Post updated successfully."
1280
- msgstr "Post updated successfully."
1560
+ #~ msgid "Post updated successfully."
1561
+ #~ msgstr "Post updated successfully."
1562
+
1563
+ #. @context: Toast after editing post
1564
+ #: src/ui/dash/posts/PostForm.tsx
1565
+ msgid "Post updated."
1566
+ msgstr "Post updated."
1281
1567
 
1282
1568
  #. @context: Compose loading text while posting
1283
1569
  #: src/ui/compose/ComposeDialog.tsx
@@ -1296,14 +1582,10 @@ msgstr "Posts"
1296
1582
 
1297
1583
  #. @context: Collection posts section heading
1298
1584
  #: src/ui/dash/collections/ViewCollectionContent.tsx
1299
- msgid "Posts in Collection ({count})"
1300
- msgstr "Posts in Collection ({count})"
1585
+ #~ msgid "Posts in Collection ({count})"
1586
+ #~ msgstr "Posts in Collection ({count})"
1301
1587
 
1302
- #. @context: Label for nav preview section
1303
- #. @context: Label for nav preview section
1304
1588
  #. @context: Media detail section - preview
1305
- #: src/ui/dash/appearance/NavigationContent.tsx
1306
- #: src/ui/dash/appearance/NavigationContent.tsx
1307
1589
  #: src/ui/dash/media/ViewMediaContent.tsx
1308
1590
  msgid "Preview"
1309
1591
  msgstr "Preview"
@@ -1318,7 +1600,7 @@ msgstr "Previous"
1318
1600
  #. @context: Avatar upload button text while generating favicon variants
1319
1601
  #. @context: Upload status - processing
1320
1602
  #: src/ui/dash/media/MediaListContent.tsx
1321
- #: src/ui/dash/settings/GeneralContent.tsx
1603
+ #: src/ui/dash/settings/AvatarContent.tsx
1322
1604
  msgid "Processing..."
1323
1605
  msgstr "Processing..."
1324
1606
 
@@ -1329,8 +1611,18 @@ msgstr "Profile"
1329
1611
 
1330
1612
  #. @context: Toast after saving user profile
1331
1613
  #: src/routes/dash/settings.tsx
1332
- msgid "Profile saved successfully."
1333
- msgstr "Profile saved successfully."
1614
+ #~ msgid "Profile saved successfully."
1615
+ #~ msgstr "Profile saved successfully."
1616
+
1617
+ #. @context: Toast after saving user profile
1618
+ #: src/routes/dash/settings.tsx
1619
+ msgid "Profile updated."
1620
+ msgstr "Profile updated."
1621
+
1622
+ #. @context: Settings item description for account
1623
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1624
+ msgid "Profile, password"
1625
+ msgstr "Profile, password"
1334
1626
 
1335
1627
  #. @context: Button to publish new post
1336
1628
  #: src/ui/dash/posts/PostForm.tsx
@@ -1399,6 +1691,11 @@ msgstr "Quote Text"
1399
1691
  msgid "Quotes"
1400
1692
  msgstr "Quotes"
1401
1693
 
1694
+ #. @context: Compose toolbar - rate tooltip
1695
+ #: src/ui/compose/ComposeDialog.tsx
1696
+ msgid "Rate"
1697
+ msgstr "Rate"
1698
+
1402
1699
  #. @context: Compose rating field
1403
1700
  #. @context: Compose toolbar - toggle rating
1404
1701
  #: src/ui/compose/ComposeDialog.tsx
@@ -1406,10 +1703,10 @@ msgstr "Quotes"
1406
1703
  #~ msgid "Rating"
1407
1704
  #~ msgstr "Rating"
1408
1705
 
1706
+ #. @context: Settings item — redirects settings
1409
1707
  #. @context: Settings section heading
1410
- #. @context: Settings sub-navigation tab
1411
1708
  #: src/routes/dash/redirects.tsx
1412
- #: src/ui/dash/settings/SettingsNav.tsx
1709
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1413
1710
  msgid "Redirects"
1414
1711
  msgstr "Redirects"
1415
1712
 
@@ -1418,16 +1715,26 @@ msgstr "Redirects"
1418
1715
  #. @context: Remove media attachment button
1419
1716
  #. @context: Remove page from navigation
1420
1717
  #: src/ui/dash/appearance/NavigationContent.tsx
1421
- #: src/ui/dash/collections/CollectionForm.tsx
1422
1718
  #: src/ui/dash/posts/PostForm.tsx
1423
- #: src/ui/dash/settings/GeneralContent.tsx
1719
+ #: src/ui/dash/settings/AvatarContent.tsx
1720
+ #: src/ui/shared/CollectionsSidebar.tsx
1424
1721
  msgid "Remove"
1425
1722
  msgstr "Remove"
1426
1723
 
1427
1724
  #. @context: Button to delete a divider
1428
1725
  #: src/ui/dash/collections/CollectionsListContent.tsx
1429
- msgid "Remove divider"
1430
- msgstr "Remove divider"
1726
+ #~ msgid "Remove divider"
1727
+ #~ msgstr "Remove divider"
1728
+
1729
+ #. @context: Tooltip for divider delete button
1730
+ #: src/ui/shared/CollectionsSidebar.tsx
1731
+ msgid "Remove Divider"
1732
+ msgstr "Remove Divider"
1733
+
1734
+ #. @context: Menu action to reorder collections
1735
+ #: src/ui/shared/CollectionsSidebar.tsx
1736
+ msgid "Reorder"
1737
+ msgstr "Reorder"
1431
1738
 
1432
1739
  #. @context: Password reset form submit button
1433
1740
  #. @context: Password reset page heading
@@ -1436,10 +1743,12 @@ msgstr "Remove divider"
1436
1743
  msgid "Reset Password"
1437
1744
  msgstr "Reset Password"
1438
1745
 
1746
+ #. @context: Button to save collection
1439
1747
  #. @context: Button to save settings
1440
1748
  #. @context: Save nav item changes
1441
1749
  #: src/ui/dash/appearance/NavigationContent.tsx
1442
1750
  #: src/ui/dash/settings/GeneralContent.tsx
1751
+ #: src/ui/shared/CollectionsSidebar.tsx
1443
1752
  msgid "Save"
1444
1753
  msgstr "Save"
1445
1754
 
@@ -1473,10 +1782,10 @@ msgstr "Save Profile"
1473
1782
  #~ msgid "Save Settings"
1474
1783
  #~ msgstr "Save Settings"
1475
1784
 
1476
- #. @context: Compose toolbar - score tooltip
1477
- #: src/ui/compose/ComposeDialog.tsx
1478
- msgid "Score"
1479
- msgstr "Score"
1785
+ #. @context: Toast after saving a collection
1786
+ #: src/ui/shared/CollectionsSidebar.tsx
1787
+ msgid "Saved"
1788
+ msgstr "Saved"
1480
1789
 
1481
1790
  #. @context: Search icon link in browse nav
1482
1791
  #. @context: Search page title
@@ -1487,13 +1796,18 @@ msgstr "Score"
1487
1796
  msgid "Search"
1488
1797
  msgstr "Search"
1489
1798
 
1799
+ #. @context: Emoji picker search placeholder
1800
+ #: src/ui/shared/CollectionsSidebar.tsx
1801
+ msgid "Search emojis..."
1802
+ msgstr "Search emojis..."
1803
+
1490
1804
  #. @context: Search error message
1491
1805
  #: src/routes/pages/search.tsx
1492
1806
  #~ msgid "Search failed. Please try again."
1493
1807
  #~ msgstr "Search failed. Please try again."
1494
1808
 
1495
1809
  #. @context: Icon picker search placeholder
1496
- #: src/ui/dash/collections/CollectionForm.tsx
1810
+ #: src/ui/shared/CollectionsSidebar.tsx
1497
1811
  msgid "Search icons..."
1498
1812
  msgstr "Search icons..."
1499
1813
 
@@ -1526,20 +1840,32 @@ msgstr "SEO"
1526
1840
  #. @context: Toast after saving SEO settings
1527
1841
  #: src/routes/dash/settings.tsx
1528
1842
  #: src/routes/dash/settings.tsx
1529
- msgid "SEO settings saved successfully."
1530
- msgstr "SEO settings saved successfully."
1843
+ #~ msgid "SEO settings saved successfully."
1844
+ #~ msgstr "SEO settings saved successfully."
1845
+
1846
+ #. @context: Toast after saving SEO settings
1847
+ #. @context: Toast after saving SEO settings
1848
+ #: src/routes/dash/settings.tsx
1849
+ #: src/routes/dash/settings.tsx
1850
+ msgid "SEO settings updated."
1851
+ msgstr "SEO settings updated."
1531
1852
 
1532
1853
  #. @context: Dashboard navigation - site settings
1533
1854
  #: src/ui/layouts/DashLayout.tsx
1534
1855
  msgid "Settings"
1535
1856
  msgstr "Settings"
1536
1857
 
1858
+ #. @context: Toast after saving general settings
1859
+ #: src/routes/dash/settings.tsx
1860
+ #~ msgid "Settings saved successfully."
1861
+ #~ msgstr "Settings saved successfully."
1862
+
1537
1863
  #. @context: Toast after saving general settings
1538
1864
  #. @context: Toast after saving general settings
1539
1865
  #: src/routes/dash/settings.tsx
1540
1866
  #: src/routes/dash/settings.tsx
1541
- msgid "Settings saved successfully."
1542
- msgstr "Settings saved successfully."
1867
+ msgid "Settings updated."
1868
+ msgstr "Settings updated."
1543
1869
 
1544
1870
  #. @context: Setup page title
1545
1871
  #: src/app.tsx
@@ -1564,6 +1890,11 @@ msgstr "Sign In"
1564
1890
  msgid "Sign Out"
1565
1891
  msgstr "Sign Out"
1566
1892
 
1893
+ #. @context: Settings group label for site settings
1894
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1895
+ msgid "Site"
1896
+ msgstr "Site"
1897
+
1567
1898
  #. @context: Settings form field
1568
1899
  #: src/ui/dash/settings/GeneralContent.tsx
1569
1900
  #~ msgid "Site Description"
@@ -1581,13 +1912,28 @@ msgstr "Site Name"
1581
1912
 
1582
1913
  #. @context: Collection form field
1583
1914
  #. @context: Page form field label - URL slug
1584
- #: src/ui/dash/collections/CollectionForm.tsx
1585
1915
  #: src/ui/dash/PageForm.tsx
1916
+ #: src/ui/shared/CollectionsSidebar.tsx
1586
1917
  msgid "Slug"
1587
1918
  msgstr "Slug"
1588
1919
 
1920
+ #. @context: Fallback validation error for compose form
1921
+ #. @context: Fallback validation error for page form
1922
+ #. @context: Fallback validation error for page form
1923
+ #. @context: Fallback validation error for password reset form
1924
+ #. @context: Fallback validation error for setup form
1925
+ #. @context: Fallback validation error for sign-in form
1926
+ #: src/routes/auth/reset.tsx
1927
+ #: src/routes/auth/setup.tsx
1928
+ #: src/routes/auth/signin.tsx
1929
+ #: src/routes/compose.tsx
1930
+ #: src/routes/dash/pages.tsx
1931
+ #: src/routes/dash/pages.tsx
1932
+ msgid "Something doesn't look right. Check the form and try again."
1933
+ msgstr "Something doesn't look right. Check the form and try again."
1934
+
1589
1935
  #. @context: Collection form field
1590
- #: src/ui/dash/collections/CollectionForm.tsx
1936
+ #: src/ui/shared/CollectionsSidebar.tsx
1591
1937
  msgid "Sort Order"
1592
1938
  msgstr "Sort Order"
1593
1939
 
@@ -1615,13 +1961,13 @@ msgstr "Status"
1615
1961
 
1616
1962
  #. @context: Error when file storage is not set up
1617
1963
  #: src/routes/api/upload.ts
1618
- msgid "Storage not configured"
1619
- msgstr "Storage not configured"
1964
+ #~ msgid "Storage not configured"
1965
+ #~ msgstr "Storage not configured"
1620
1966
 
1621
1967
  #. @context: Error toast when file storage is not set up
1622
1968
  #: src/routes/dash/settings.tsx
1623
- msgid "Storage not configured."
1624
- msgstr "Storage not configured."
1969
+ #~ msgid "Storage not configured."
1970
+ #~ msgstr "Storage not configured."
1625
1971
 
1626
1972
  #. @context: Attached text panel hint
1627
1973
  #: src/ui/compose/ComposeDialog.tsx
@@ -1643,6 +1989,16 @@ msgstr "system"
1643
1989
  msgid "System links"
1644
1990
  msgstr "System links"
1645
1991
 
1992
+ #. @context: Error toast when selected font theme is not valid
1993
+ #: src/routes/dash/settings.tsx
1994
+ msgid "That font theme isn't available. Pick another one."
1995
+ msgstr "That font theme isn't available. Pick another one."
1996
+
1997
+ #. @context: Error toast when selected theme is not valid
1998
+ #: src/routes/dash/settings.tsx
1999
+ msgid "That theme isn't available. Pick another one."
2000
+ msgstr "That theme isn't available. Pick another one."
2001
+
1646
2002
  #. @context: Redirect to path help text
1647
2003
  #: src/routes/dash/redirects.tsx
1648
2004
  msgid "The destination path or URL"
@@ -1660,6 +2016,11 @@ msgstr "The path to redirect from"
1660
2016
  msgid "The quick brown fox jumps over the lazy dog."
1661
2017
  msgstr "The quick brown fox jumps over the lazy dog."
1662
2018
 
2019
+ #. @context: Description for max visible nav links, explains overflow behavior
2020
+ #: src/ui/dash/appearance/NavigationContent.tsx
2021
+ msgid "The rest will be tucked into a ··· menu"
2022
+ msgstr "The rest will be tucked into a ··· menu"
2023
+
1663
2024
  #. @context: Quote text placeholder
1664
2025
  #: src/ui/dash/posts/PostForm.tsx
1665
2026
  msgid "The text being quoted..."
@@ -1670,6 +2031,16 @@ msgstr "The text being quoted..."
1670
2031
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1671
2032
  msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1672
2033
 
2034
+ #. @context: Empty state message
2035
+ #: src/ui/pages/CollectionPage.tsx
2036
+ msgid "This collection is empty. Add posts from the editor."
2037
+ msgstr "This collection is empty. Add posts from the editor."
2038
+
2039
+ #. @context: Warning message before deleting media
2040
+ #: src/ui/dash/media/ViewMediaContent.tsx
2041
+ msgid "This file will be permanently removed from storage. Posts using it will show a broken link."
2042
+ msgstr "This file will be permanently removed from storage. Posts using it will show a broken link."
2043
+
1673
2044
  #. @context: Help text for site description field
1674
2045
  #: src/ui/dash/settings/GeneralContent.tsx
1675
2046
  #~ 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."
@@ -1681,7 +2052,7 @@ msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens.
1681
2052
  #~ msgstr "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
1682
2053
 
1683
2054
  #. @context: Help text for avatar upload
1684
- #: src/ui/dash/settings/GeneralContent.tsx
2055
+ #: src/ui/dash/settings/AvatarContent.tsx
1685
2056
  msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
1686
2057
  msgstr "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
1687
2058
 
@@ -1690,10 +2061,20 @@ msgstr "This is used for your favicon and apple-touch-icon. For best results, up
1690
2061
  #~ msgid "This is used for your favicon."
1691
2062
  #~ msgstr "This is used for your favicon."
1692
2063
 
2064
+ #. @context: Password reset error heading
2065
+ #: src/routes/auth/reset.tsx
2066
+ msgid "This Link Has Expired"
2067
+ msgstr "This Link Has Expired"
2068
+
2069
+ #. @context: Password reset error description
2070
+ #: src/routes/auth/reset.tsx
2071
+ #~ msgid "This password reset link is invalid or has expired. Please generate a new one."
2072
+ #~ msgstr "This password reset link is invalid or has expired. Please generate a new one."
2073
+
1693
2074
  #. @context: Password reset error description
1694
2075
  #: src/routes/auth/reset.tsx
1695
- msgid "This password reset link is invalid or has expired. Please generate a new one."
1696
- msgstr "This password reset link is invalid or has expired. Please generate a new one."
2076
+ msgid "This reset link is no longer valid. Request a new one to continue."
2077
+ msgstr "This reset link is no longer valid. Request a new one to continue."
1697
2078
 
1698
2079
  #. @context: Appearance settings description
1699
2080
  #: src/ui/dash/appearance/ColorThemeContent.tsx
@@ -1726,8 +2107,8 @@ msgstr "Time Zone"
1726
2107
  #. @context: Page form field label - title
1727
2108
  #: src/ui/compose/ComposeDialog.tsx
1728
2109
  #: src/ui/compose/ComposeDialog.tsx
1729
- #: src/ui/dash/collections/CollectionForm.tsx
1730
2110
  #: src/ui/dash/PageForm.tsx
2111
+ #: src/ui/shared/CollectionsSidebar.tsx
1731
2112
  msgid "Title"
1732
2113
  msgstr "Title"
1733
2114
 
@@ -1761,17 +2142,22 @@ msgstr "Type"
1761
2142
  msgid "Type the quote..."
1762
2143
  msgstr "Type the quote..."
1763
2144
 
2145
+ #. @context: Settings item description for font theme
2146
+ #: src/ui/dash/settings/SettingsRootContent.tsx
2147
+ msgid "Typography"
2148
+ msgstr "Typography"
2149
+
1764
2150
  #. @context: Button to remove page from navigation
1765
2151
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
1766
2152
  #~ msgid "Un-nav"
1767
2153
  #~ msgstr "Un-nav"
1768
2154
 
1769
- #. @context: Post visibility badge - unlisted
1770
- #. @context: Post visibility option
1771
- #: src/theme/components/PostForm.tsx
1772
- #: src/theme/components/VisibilityBadge.tsx
1773
- #~ msgid "Unlisted"
1774
- #~ msgstr "Unlisted"
2155
+ #. @context: Post badge - unlisted
2156
+ #. @context: Visibility option - hidden from feeds
2157
+ #: src/ui/dash/posts/PostForm.tsx
2158
+ #: src/ui/dash/StatusBadge.tsx
2159
+ msgid "Unlisted"
2160
+ msgstr "Unlisted"
1775
2161
 
1776
2162
  #. @context: Default title for untitled page
1777
2163
  #. @context: Default title for untitled post
@@ -1787,8 +2173,8 @@ msgstr "Update"
1787
2173
 
1788
2174
  #. @context: Button to save collection changes
1789
2175
  #: src/ui/dash/collections/CollectionForm.tsx
1790
- msgid "Update Collection"
1791
- msgstr "Update Collection"
2176
+ #~ msgid "Update Collection"
2177
+ #~ msgstr "Update Collection"
1792
2178
 
1793
2179
  #. @context: Button to update existing page
1794
2180
  #: src/ui/dash/PageForm.tsx
@@ -1801,18 +2187,21 @@ msgid "Upload"
1801
2187
  msgstr "Upload"
1802
2188
 
1803
2189
  #. @context: Button to upload avatar image
1804
- #: src/ui/dash/settings/GeneralContent.tsx
2190
+ #: src/ui/dash/settings/AvatarContent.tsx
1805
2191
  msgid "Upload Avatar"
1806
2192
  msgstr "Upload Avatar"
1807
2193
 
1808
- #. @context: Error message when avatar upload fails
1809
2194
  #. @context: Error toast when avatar upload fails
1810
2195
  #. @context: Error when file upload fails
1811
2196
  #. @context: Upload error message
1812
2197
  #: src/routes/api/upload.ts
1813
2198
  #: src/routes/dash/settings.tsx
1814
2199
  #: src/ui/dash/media/MediaListContent.tsx
1815
- #: src/ui/dash/settings/GeneralContent.tsx
2200
+ msgid "Upload didn't go through. Try again in a moment."
2201
+ msgstr "Upload didn't go through. Try again in a moment."
2202
+
2203
+ #. @context: Error message when avatar upload fails
2204
+ #: src/ui/dash/settings/AvatarContent.tsx
1816
2205
  msgid "Upload failed. Please try again."
1817
2206
  msgstr "Upload failed. Please try again."
1818
2207
 
@@ -1823,15 +2212,15 @@ msgstr "Upload failed. Please try again."
1823
2212
 
1824
2213
  #. @context: Toast after successful file upload
1825
2214
  #: src/routes/api/upload.ts
1826
- msgid "Upload successful!"
1827
- msgstr "Upload successful!"
2215
+ #~ msgid "Upload successful!"
2216
+ #~ msgstr "Upload successful!"
1828
2217
 
1829
2218
  #. @context: Avatar upload button text while uploading
1830
2219
  #. @context: Toast shown during background upload
1831
2220
  #. @context: Upload status - uploading
1832
2221
  #: src/ui/compose/ComposeDialog.tsx
1833
2222
  #: src/ui/dash/media/MediaListContent.tsx
1834
- #: src/ui/dash/settings/GeneralContent.tsx
2223
+ #: src/ui/dash/settings/AvatarContent.tsx
1835
2224
  msgid "Uploading..."
1836
2225
  msgstr "Uploading..."
1837
2226
 
@@ -1847,27 +2236,31 @@ msgstr "URL"
1847
2236
  msgid "URL (optional)"
1848
2237
  msgstr "URL (optional)"
1849
2238
 
2239
+ #. @context: Settings item description for redirects
2240
+ #: src/ui/dash/settings/SettingsRootContent.tsx
2241
+ msgid "URL redirects"
2242
+ msgstr "URL redirects"
2243
+
1850
2244
  #. @context: Collection path help text
1851
2245
  #: src/ui/dash/collections/CollectionForm.tsx
1852
2246
  #~ msgid "URL-safe identifier (lowercase, numbers, hyphens)"
1853
2247
  #~ msgstr "URL-safe identifier (lowercase, numbers, hyphens)"
1854
2248
 
1855
2249
  #. @context: Collection path help text
1856
- #: src/ui/dash/collections/CollectionForm.tsx
2250
+ #: src/ui/shared/CollectionsSidebar.tsx
1857
2251
  msgid "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
1858
2252
  msgstr "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
1859
2253
 
1860
2254
  #. @context: Switch label for setting featured posts as default homepage
1861
2255
  #: src/ui/dash/appearance/NavigationContent.tsx
1862
- msgid "Use Featured as default home view"
1863
- msgstr "Use Featured as default home view"
2256
+ #~ msgid "Use Featured as default home view"
2257
+ #~ msgstr "Use Featured as default home view"
1864
2258
 
1865
2259
  #. @context: Media URL helper text
1866
2260
  #: src/ui/dash/media/ViewMediaContent.tsx
1867
2261
  msgid "Use this URL to embed the media in your posts."
1868
2262
  msgstr "Use this URL to embed the media in your posts."
1869
2263
 
1870
- #. @context: Button to view collection
1871
2264
  #. @context: Button to view item on public site
1872
2265
  #. @context: Button to view page on public site
1873
2266
  #. @context: Button to view page on public site
@@ -1876,7 +2269,6 @@ msgstr "Use this URL to embed the media in your posts."
1876
2269
  #: src/routes/dash/pages.tsx
1877
2270
  #: src/routes/dash/posts.tsx
1878
2271
  #: src/ui/dash/ActionButtons.tsx
1879
- #: src/ui/dash/collections/ViewCollectionContent.tsx
1880
2272
  #: src/ui/dash/pages/PagesContent.tsx
1881
2273
  #: src/ui/dash/PostList.tsx
1882
2274
  msgid "View"
@@ -1889,13 +2281,27 @@ msgstr "View"
1889
2281
 
1890
2282
  #. @context: Dashboard header link to view the public site
1891
2283
  #: src/ui/layouts/DashLayout.tsx
1892
- msgid "View Site"
1893
- msgstr "View Site"
2284
+ #~ msgid "View Site"
2285
+ #~ msgstr "View Site"
1894
2286
 
1895
- #. @context: Post form field
1896
- #: src/theme/components/PostForm.tsx
1897
- #~ msgid "Visibility"
1898
- #~ msgstr "Visibility"
2287
+ #. @context: Post form field - post visibility
2288
+ #: src/ui/dash/posts/PostForm.tsx
2289
+ msgid "Visibility"
2290
+ msgstr "Visibility"
2291
+
2292
+ #. @context: Dashboard header link text to visit the public blog
2293
+ #. @context: Dashboard header link to visit the public blog
2294
+ #. @context: Dashboard header tooltip for visit blog icon on mobile
2295
+ #: src/ui/layouts/DashLayout.tsx
2296
+ #: src/ui/layouts/DashLayout.tsx
2297
+ #: src/ui/layouts/DashLayout.tsx
2298
+ msgid "Visit Blog"
2299
+ msgstr "Visit Blog"
2300
+
2301
+ #. @context: Dashboard menu item to visit the public site
2302
+ #: src/ui/layouts/DashLayout.tsx
2303
+ #~ msgid "Visit Site"
2304
+ #~ msgstr "Visit Site"
1899
2305
 
1900
2306
  #. @context: Setup page welcome heading
1901
2307
  #: src/routes/auth/setup.tsx
@@ -1920,10 +2326,30 @@ msgid "What's on your mind..."
1920
2326
  msgstr "What's on your mind..."
1921
2327
 
1922
2328
  #. @context: Collection description placeholder
1923
- #: src/ui/dash/collections/CollectionForm.tsx
2329
+ #: src/ui/shared/CollectionsSidebar.tsx
1924
2330
  msgid "What's this collection about?"
1925
2331
  msgstr "What's this collection about?"
1926
2332
 
2333
+ #. @context: Description for featured default toggle, explains what happens when off
2334
+ #: src/ui/dash/appearance/NavigationContent.tsx
2335
+ msgid "When off, visitors see your latest posts first"
2336
+ msgstr "When off, visitors see your latest posts first"
2337
+
2338
+ #. @context: Button in empty state to create first post
2339
+ #: src/ui/dash/PostList.tsx
2340
+ msgid "Write your first post"
2341
+ msgstr "Write your first post"
2342
+
2343
+ #. @context: Error toast when sign-in credentials are wrong
2344
+ #: src/routes/auth/signin.tsx
2345
+ msgid "Wrong email or password. Check your credentials and try again."
2346
+ msgstr "Wrong email or password. Check your credentials and try again."
2347
+
2348
+ #. @context: Empty state message when no media exists
2349
+ #: src/ui/dash/media/MediaListContent.tsx
2350
+ msgid "Your media library is empty. Upload your first file to get started."
2351
+ msgstr "Your media library is empty. Upload your first file to get started."
2352
+
1927
2353
  #. @context: Setup form field - user name
1928
2354
  #: src/routes/auth/setup.tsx
1929
2355
  msgid "Your Name"