@jant/core 0.3.36 → 0.3.37

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 (271) hide show
  1. package/bin/commands/export.js +1 -1
  2. package/bin/commands/import-site.js +529 -0
  3. package/bin/commands/reset-password.js +3 -2
  4. package/dist/client/assets/heic-to-DIRPI3VF.js +1 -0
  5. package/dist/client/assets/url-FWFqPJPb.js +1 -0
  6. package/dist/client/client.css +1 -1
  7. package/dist/client/client.js +4012 -3276
  8. package/dist/index.js +10285 -5809
  9. package/package.json +11 -3
  10. package/src/__tests__/helpers/app.ts +9 -9
  11. package/src/__tests__/helpers/db.ts +91 -93
  12. package/src/app.tsx +157 -27
  13. package/src/auth.ts +20 -2
  14. package/src/client/archive-nav.js +187 -0
  15. package/src/client/audio-player.ts +478 -0
  16. package/src/client/audio-processor.ts +84 -0
  17. package/src/client/avatar-upload.ts +3 -2
  18. package/src/client/components/__tests__/jant-compose-dialog.test.ts +645 -49
  19. package/src/client/components/__tests__/jant-compose-editor.test.ts +208 -16
  20. package/src/client/components/__tests__/jant-post-form.test.ts +19 -9
  21. package/src/client/components/__tests__/jant-settings-avatar.test.ts +2 -2
  22. package/src/client/components/__tests__/jant-settings-general.test.ts +3 -3
  23. package/src/client/components/collection-sidebar-types.ts +7 -9
  24. package/src/client/components/compose-types.ts +101 -4
  25. package/src/client/components/jant-collection-form.ts +43 -7
  26. package/src/client/components/jant-collection-sidebar.ts +88 -84
  27. package/src/client/components/jant-compose-dialog.ts +1655 -219
  28. package/src/client/components/jant-compose-editor.ts +732 -168
  29. package/src/client/components/jant-compose-fullscreen.ts +23 -78
  30. package/src/client/components/jant-media-lightbox.ts +2 -0
  31. package/src/client/components/jant-nav-manager.ts +24 -284
  32. package/src/client/components/jant-post-form.ts +89 -9
  33. package/src/client/components/jant-post-menu.ts +1019 -0
  34. package/src/client/components/jant-settings-avatar.ts +3 -3
  35. package/src/client/components/jant-settings-general.ts +38 -4
  36. package/src/client/components/jant-text-preview.ts +232 -0
  37. package/src/client/components/nav-manager-types.ts +4 -19
  38. package/src/client/components/post-form-template.ts +107 -12
  39. package/src/client/components/post-form-types.ts +11 -4
  40. package/src/client/compose-bridge.ts +410 -109
  41. package/src/client/image-processor.ts +26 -8
  42. package/src/client/media-metadata.ts +247 -0
  43. package/src/client/multipart-upload.ts +160 -0
  44. package/src/client/post-form-bridge.ts +52 -1
  45. package/src/client/settings-bridge.ts +0 -12
  46. package/src/client/thread-context.ts +140 -0
  47. package/src/client/tiptap/create-editor.ts +46 -0
  48. package/src/client/tiptap/extensions.ts +5 -0
  49. package/src/client/tiptap/image-node.ts +2 -8
  50. package/src/client/tiptap/paste-image.ts +2 -13
  51. package/src/client/tiptap/slash-commands.ts +173 -63
  52. package/src/client/toast.ts +101 -3
  53. package/src/client/types/sortablejs.d.ts +15 -0
  54. package/src/client/upload-with-metadata.ts +54 -0
  55. package/src/client/video-processor.ts +207 -0
  56. package/src/client.ts +5 -2
  57. package/src/db/__tests__/migrations.test.ts +118 -0
  58. package/src/db/index.ts +52 -0
  59. package/src/db/migrations/0000_baseline.sql +269 -0
  60. package/src/db/migrations/0001_fts_setup.sql +31 -0
  61. package/src/db/migrations/meta/0000_snapshot.json +703 -119
  62. package/src/db/migrations/meta/0001_snapshot.json +1337 -0
  63. package/src/db/migrations/meta/_journal.json +4 -39
  64. package/src/db/schema.ts +409 -145
  65. package/src/i18n/__tests__/detect.test.ts +115 -0
  66. package/src/i18n/context.tsx +2 -2
  67. package/src/i18n/detect.ts +85 -1
  68. package/src/i18n/i18n.ts +1 -1
  69. package/src/i18n/index.ts +2 -1
  70. package/src/i18n/locales/en.po +487 -1217
  71. package/src/i18n/locales/en.ts +1 -1
  72. package/src/i18n/locales/zh-Hans.po +613 -996
  73. package/src/i18n/locales/zh-Hans.ts +1 -1
  74. package/src/i18n/locales/zh-Hant.po +624 -1007
  75. package/src/i18n/locales/zh-Hant.ts +1 -1
  76. package/src/i18n/middleware.ts +6 -0
  77. package/src/index.ts +5 -7
  78. package/src/lib/__tests__/blurhash-placeholder.test.ts +75 -0
  79. package/src/lib/__tests__/constants.test.ts +0 -1
  80. package/src/lib/__tests__/markdown-to-tiptap.test.ts +358 -0
  81. package/src/lib/__tests__/nanoid.test.ts +26 -0
  82. package/src/lib/__tests__/schemas.test.ts +181 -63
  83. package/src/lib/__tests__/slug.test.ts +126 -0
  84. package/src/lib/__tests__/sse.test.ts +6 -6
  85. package/src/lib/__tests__/summary.test.ts +264 -0
  86. package/src/lib/__tests__/theme.test.ts +1 -1
  87. package/src/lib/__tests__/timeline.test.ts +33 -30
  88. package/src/lib/__tests__/tiptap-to-markdown.test.ts +346 -0
  89. package/src/lib/__tests__/view.test.ts +141 -66
  90. package/src/lib/blurhash-placeholder.ts +102 -0
  91. package/src/lib/constants.ts +3 -1
  92. package/src/lib/emoji-catalog.ts +885 -68
  93. package/src/lib/errors.ts +11 -8
  94. package/src/lib/feed.ts +78 -32
  95. package/src/lib/html.ts +2 -1
  96. package/src/lib/icon-catalog.ts +5033 -1
  97. package/src/lib/icons.ts +3 -2
  98. package/src/lib/index.ts +0 -1
  99. package/src/lib/markdown-to-tiptap.ts +286 -0
  100. package/src/lib/media-helpers.ts +12 -3
  101. package/src/lib/nanoid.ts +29 -0
  102. package/src/lib/navigation.ts +1 -1
  103. package/src/lib/render.tsx +20 -2
  104. package/src/lib/resolve-config.ts +6 -2
  105. package/src/lib/schemas.ts +224 -55
  106. package/src/lib/search-snippet.ts +34 -0
  107. package/src/lib/slug.ts +96 -0
  108. package/src/lib/sse.ts +6 -6
  109. package/src/lib/storage.ts +115 -7
  110. package/src/lib/summary.ts +66 -0
  111. package/src/lib/theme.ts +11 -8
  112. package/src/lib/timeline.ts +74 -34
  113. package/src/lib/tiptap-render.ts +5 -10
  114. package/src/lib/tiptap-to-markdown.ts +305 -0
  115. package/src/lib/upload.ts +190 -29
  116. package/src/lib/url.ts +31 -0
  117. package/src/lib/view.ts +204 -37
  118. package/src/middleware/__tests__/auth.test.ts +191 -11
  119. package/src/middleware/__tests__/onboarding.test.ts +12 -10
  120. package/src/middleware/auth.ts +63 -9
  121. package/src/middleware/onboarding.ts +1 -1
  122. package/src/middleware/secure-headers.ts +40 -0
  123. package/src/preset.css +45 -2
  124. package/src/routes/__tests__/compose.test.ts +17 -24
  125. package/src/routes/api/__tests__/collections.test.ts +109 -61
  126. package/src/routes/api/__tests__/nav-items.test.ts +46 -29
  127. package/src/routes/api/__tests__/posts.test.ts +132 -68
  128. package/src/routes/api/__tests__/search.test.ts +15 -2
  129. package/src/routes/api/__tests__/upload-multipart.test.ts +534 -0
  130. package/src/routes/api/collections.ts +51 -42
  131. package/src/routes/api/custom-urls.ts +80 -0
  132. package/src/routes/api/export.ts +31 -0
  133. package/src/routes/api/nav-items.ts +23 -19
  134. package/src/routes/api/posts.ts +43 -39
  135. package/src/routes/api/search.ts +3 -4
  136. package/src/routes/api/upload-multipart.ts +245 -0
  137. package/src/routes/api/upload.ts +85 -19
  138. package/src/routes/auth/__tests__/setup.test.ts +20 -60
  139. package/src/routes/auth/setup.tsx +26 -33
  140. package/src/routes/auth/signin.tsx +3 -7
  141. package/src/routes/compose.tsx +10 -55
  142. package/src/routes/dash/__tests__/settings-avatar.test.ts +1 -1
  143. package/src/routes/dash/custom-urls.tsx +414 -0
  144. package/src/routes/dash/settings.tsx +304 -232
  145. package/src/routes/feed/__tests__/rss.test.ts +27 -28
  146. package/src/routes/feed/rss.ts +6 -4
  147. package/src/routes/feed/sitemap.ts +2 -12
  148. package/src/routes/pages/__tests__/collections.test.ts +5 -6
  149. package/src/routes/pages/__tests__/featured.test.ts +41 -22
  150. package/src/routes/pages/archive.tsx +175 -39
  151. package/src/routes/pages/collection.tsx +22 -10
  152. package/src/routes/pages/collections.tsx +3 -3
  153. package/src/routes/pages/featured.tsx +28 -4
  154. package/src/routes/pages/home.tsx +16 -15
  155. package/src/routes/pages/latest.tsx +1 -11
  156. package/src/routes/pages/new.tsx +39 -0
  157. package/src/routes/pages/page.tsx +95 -49
  158. package/src/routes/pages/search.tsx +1 -1
  159. package/src/services/__tests__/api-token.test.ts +135 -0
  160. package/src/services/__tests__/collection.test.ts +275 -227
  161. package/src/services/__tests__/custom-url.test.ts +213 -0
  162. package/src/services/__tests__/media.test.ts +162 -22
  163. package/src/services/__tests__/navigation.test.ts +109 -68
  164. package/src/services/__tests__/post-timeline.test.ts +205 -32
  165. package/src/services/__tests__/post.test.ts +713 -234
  166. package/src/services/__tests__/search.test.ts +67 -10
  167. package/src/services/api-token.ts +166 -0
  168. package/src/services/auth.ts +17 -2
  169. package/src/services/collection.ts +397 -131
  170. package/src/services/custom-url.ts +188 -0
  171. package/src/services/export.ts +802 -0
  172. package/src/services/index.ts +26 -19
  173. package/src/services/media.ts +100 -22
  174. package/src/services/navigation.ts +158 -47
  175. package/src/services/path.ts +339 -0
  176. package/src/services/post.ts +687 -154
  177. package/src/services/search.ts +160 -75
  178. package/src/styles/components.css +58 -7
  179. package/src/styles/tokens.css +84 -6
  180. package/src/styles/ui.css +2964 -457
  181. package/src/types/bindings.ts +4 -1
  182. package/src/types/config.ts +12 -4
  183. package/src/types/constants.ts +15 -3
  184. package/src/types/entities.ts +74 -35
  185. package/src/types/operations.ts +11 -24
  186. package/src/types/props.ts +51 -16
  187. package/src/types/views.ts +45 -22
  188. package/src/ui/color-themes.ts +133 -23
  189. package/src/ui/compose/ComposeDialog.tsx +239 -17
  190. package/src/ui/compose/ComposePrompt.tsx +1 -1
  191. package/src/ui/dash/CrudPageHeader.tsx +1 -1
  192. package/src/ui/dash/ListItemRow.tsx +1 -1
  193. package/src/ui/dash/StatusBadge.tsx +3 -1
  194. package/src/ui/dash/appearance/AdvancedContent.tsx +22 -1
  195. package/src/ui/dash/appearance/ColorThemeContent.tsx +22 -2
  196. package/src/ui/dash/appearance/FontThemeContent.tsx +1 -1
  197. package/src/ui/dash/appearance/NavigationContent.tsx +5 -45
  198. package/src/ui/dash/index.ts +0 -3
  199. package/src/ui/dash/settings/AccountContent.tsx +3 -57
  200. package/src/ui/dash/settings/AccountMenuContent.tsx +147 -0
  201. package/src/ui/dash/settings/ApiTokensContent.tsx +232 -0
  202. package/src/ui/dash/settings/AvatarContent.tsx +8 -0
  203. package/src/ui/dash/settings/SessionsContent.tsx +159 -0
  204. package/src/ui/dash/settings/SettingsRootContent.tsx +45 -15
  205. package/src/ui/feed/LinkCard.tsx +89 -40
  206. package/src/ui/feed/NoteCard.tsx +39 -25
  207. package/src/ui/feed/PostStatusBadges.tsx +67 -0
  208. package/src/ui/feed/QuoteCard.tsx +38 -23
  209. package/src/ui/feed/ThreadPreview.tsx +90 -26
  210. package/src/ui/feed/TimelineFeed.tsx +3 -2
  211. package/src/ui/feed/TimelineItem.tsx +15 -6
  212. package/src/ui/feed/__tests__/thread-preview.test.ts +107 -0
  213. package/src/ui/feed/thread-preview-state.ts +61 -0
  214. package/src/ui/font-themes.ts +2 -2
  215. package/src/ui/layouts/BaseLayout.tsx +2 -2
  216. package/src/ui/layouts/SiteLayout.tsx +105 -92
  217. package/src/ui/pages/ArchivePage.tsx +923 -98
  218. package/src/ui/pages/ComposePage.tsx +54 -0
  219. package/src/ui/pages/PostPage.tsx +30 -45
  220. package/src/ui/pages/SearchPage.tsx +181 -37
  221. package/src/ui/shared/AdminBreadcrumb.tsx +29 -0
  222. package/src/ui/shared/CollectionsSidebar.tsx +47 -37
  223. package/src/ui/shared/MediaGallery.tsx +445 -149
  224. package/src/ui/shared/PostFooter.tsx +204 -0
  225. package/src/ui/shared/StarRating.tsx +27 -0
  226. package/src/ui/shared/__tests__/format-chars.test.ts +35 -0
  227. package/src/ui/shared/index.ts +0 -1
  228. package/dist/client/assets/url-8Dj-5CLW.js +0 -1
  229. package/src/client/media-upload.ts +0 -161
  230. package/src/client/page-slug-bridge.ts +0 -42
  231. package/src/db/migrations/0000_square_wallflower.sql +0 -118
  232. package/src/db/migrations/0001_add_search_fts.sql +0 -34
  233. package/src/db/migrations/0002_add_media_attachments.sql +0 -3
  234. package/src/db/migrations/0003_add_navigation_links.sql +0 -8
  235. package/src/db/migrations/0004_add_storage_provider.sql +0 -3
  236. package/src/db/migrations/0005_v2_schema_migration.sql +0 -268
  237. package/src/db/migrations/0006_rename_slug_to_path.sql +0 -5
  238. package/src/db/migrations/0007_post_collections_m2m.sql +0 -94
  239. package/src/db/migrations/0008_add_collection_dividers.sql +0 -8
  240. package/src/db/migrations/0009_drop_collection_show_divider.sql +0 -2
  241. package/src/db/migrations/0010_add_performance_indexes.sql +0 -16
  242. package/src/db/migrations/0011_add_path_registry.sql +0 -23
  243. package/src/db/migrations/0012_add_tiptap_columns.sql +0 -2
  244. package/src/db/migrations/0013_replace_featured_with_visibility.sql +0 -8
  245. package/src/db/migrations/meta/0003_snapshot.json +0 -821
  246. package/src/lib/__tests__/sqid.test.ts +0 -65
  247. package/src/lib/sqid.ts +0 -79
  248. package/src/routes/api/__tests__/pages.test.ts +0 -218
  249. package/src/routes/api/pages.ts +0 -73
  250. package/src/routes/dash/__tests__/pages.test.ts +0 -226
  251. package/src/routes/dash/index.tsx +0 -109
  252. package/src/routes/dash/media.tsx +0 -135
  253. package/src/routes/dash/pages.tsx +0 -245
  254. package/src/routes/dash/posts.tsx +0 -338
  255. package/src/routes/dash/redirects.tsx +0 -263
  256. package/src/routes/pages/post.tsx +0 -59
  257. package/src/services/__tests__/page.test.ts +0 -298
  258. package/src/services/__tests__/path-registry.test.ts +0 -165
  259. package/src/services/__tests__/redirect.test.ts +0 -159
  260. package/src/services/page.ts +0 -216
  261. package/src/services/path-registry.ts +0 -160
  262. package/src/services/redirect.ts +0 -97
  263. package/src/ui/dash/PageForm.tsx +0 -187
  264. package/src/ui/dash/PostList.tsx +0 -95
  265. package/src/ui/dash/media/MediaListContent.tsx +0 -206
  266. package/src/ui/dash/media/ViewMediaContent.tsx +0 -208
  267. package/src/ui/dash/pages/PagesContent.tsx +0 -75
  268. package/src/ui/dash/posts/PostForm.tsx +0 -260
  269. package/src/ui/layouts/DashLayout.tsx +0 -247
  270. package/src/ui/pages/SinglePage.tsx +0 -23
  271. package/src/ui/shared/ThreadView.tsx +0 -136
@@ -13,53 +13,37 @@ msgstr ""
13
13
  "Language-Team: \n"
14
14
  "Plural-Forms: \n"
15
15
 
16
- #. @context: Archive post reply indicator - plural
17
- #: src/theme/pages/ArchivePage.tsx
18
- #~ msgid "{count} replies"
19
- #~ msgstr "{count} replies"
16
+ #. @context: Link showing count of hidden thread posts between root and latest
17
+ #. placeholder {0}: hiddenCount === 1 ? "post" : "posts"
18
+ #: src/ui/feed/ThreadPreview.tsx
19
+ msgid "{hiddenCount} more {0}"
20
+ msgstr "{hiddenCount} more {0}"
20
21
 
21
22
  #. @context: Custom CSS textarea placeholder
22
23
  #: src/ui/dash/appearance/AdvancedContent.tsx
23
24
  msgid "/* Your custom CSS here */"
24
25
  msgstr "/* Your custom CSS here */"
25
26
 
26
- #. @context: Navigation link
27
- #: src/ui/dash/collections/ViewCollectionContent.tsx
28
- #~ msgid " Back to Collections"
29
- #~ msgstr " Back to Collections"
30
-
31
- #. @context: Navigation link
32
- #. @context: Navigation link
33
- #: src/routes/pages/collection.tsx
34
- #: src/routes/pages/post.tsx
35
- #~ msgid "← Back to home"
36
- #~ msgstr "← Back to home"
27
+ #. @context: Compose collection trigger label when multiple collections selected. %name% is the first collection name, %count% is how many more
28
+ #: src/ui/compose/ComposeDialog.tsx
29
+ msgid "%name% + %count% more"
30
+ msgstr "%name% + %count% more"
37
31
 
38
32
  #. @context: Add alt text label under attachment thumbnail
39
33
  #: src/ui/compose/ComposeDialog.tsx
40
34
  msgid "+ ALT"
41
35
  msgstr "+ ALT"
42
36
 
43
- #. @context: Archive post reply indicator - single
44
- #: src/theme/pages/ArchivePage.tsx
45
- #~ msgid "1 reply"
46
- #~ msgstr "1 reply"
47
-
48
37
  #. @context: Redirect type option
49
- #: src/routes/dash/redirects.tsx
38
+ #: src/routes/dash/custom-urls.tsx
50
39
  msgid "301 (Permanent)"
51
40
  msgstr "301 (Permanent)"
52
41
 
53
42
  #. @context: Redirect type option
54
- #: src/routes/dash/redirects.tsx
43
+ #: src/routes/dash/custom-urls.tsx
55
44
  msgid "302 (Temporary)"
56
45
  msgstr "302 (Temporary)"
57
46
 
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
-
63
47
  #. @context: Help text for site description field
64
48
  #: src/ui/dash/settings/GeneralContent.tsx
65
49
  msgid "A short intro for search engines and feed readers. Plain text only."
@@ -77,6 +61,16 @@ msgstr "About this blog"
77
61
  msgid "Account"
78
62
  msgstr "Account"
79
63
 
64
+ #. @context: Settings section heading for active sessions
65
+ #: src/ui/dash/settings/SessionsContent.tsx
66
+ msgid "Active Sessions"
67
+ msgstr "Active Sessions"
68
+
69
+ #. @context: Heading for list of active API tokens
70
+ #: src/ui/dash/settings/ApiTokensContent.tsx
71
+ msgid "Active Tokens"
72
+ msgstr "Active Tokens"
73
+
80
74
  #. @context: Add more attachments button
81
75
  #: src/ui/compose/ComposeDialog.tsx
82
76
  msgid "Add"
@@ -92,10 +86,10 @@ msgstr "Add a custom link to any URL"
92
86
  msgid "Add alt text"
93
87
  msgstr "Add alt text"
94
88
 
95
- #. @context: Card description for page picker
96
- #: src/ui/dash/appearance/NavigationContent.tsx
97
- #~ msgid "Add an existing page to your navigation"
98
- #~ msgstr "Add an existing page to your navigation"
89
+ #. @context: Action to create a new collection from compose
90
+ #: src/ui/compose/ComposeDialog.tsx
91
+ msgid "Add Collection"
92
+ msgstr "Add Collection"
99
93
 
100
94
  #. @context: Custom CSS settings description
101
95
  #: src/ui/dash/appearance/AdvancedContent.tsx
@@ -117,130 +111,68 @@ msgstr "Add Divider"
117
111
  msgid "Add Link"
118
112
  msgstr "Add Link"
119
113
 
120
- #. @context: Button to open media picker
121
- #: src/ui/dash/posts/PostForm.tsx
122
- msgid "Add Media"
123
- msgstr "Add Media"
124
-
125
- #. @context: Add more attachments button
126
- #: src/ui/compose/ComposeDialog.tsx
127
- #~ msgid "Add More"
128
- #~ msgstr "Add More"
129
-
130
- #. @context: Card title for adding page to nav
131
- #: src/ui/dash/appearance/NavigationContent.tsx
132
- #~ msgid "Add Page"
133
- #~ msgstr "Add Page"
134
-
135
- #. @context: Section heading for adding page to nav
136
- #: src/ui/dash/appearance/NavigationContent.tsx
137
- msgid "Add page to navigation"
138
- msgstr "Add page to navigation"
139
-
140
- #. @context: Button to add page to navigation
141
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
142
- #~ msgid "Add to nav"
143
- #~ msgstr "Add to nav"
144
-
145
- #. @context: Section heading for adding nav items
146
- #: src/ui/dash/appearance/NavigationContent.tsx
147
- #~ msgid "Add to navigation"
148
- #~ msgstr "Add to navigation"
149
-
150
114
  #. @context: Settings group label for advanced settings
151
115
  #: src/ui/dash/settings/SettingsRootContent.tsx
152
116
  msgid "Advanced"
153
117
  msgstr "Advanced"
154
118
 
155
- #. @context: Archive filter - all formats
119
+ #. @context: Description after API reference link
120
+ #: src/ui/dash/settings/ApiTokensContent.tsx
121
+ msgid "all available endpoints and request formats."
122
+ msgstr "all available endpoints and request formats."
123
+
124
+ #. @context: Archive filter - collection dropdown default
156
125
  #: src/ui/pages/ArchivePage.tsx
157
- msgid "All"
158
- msgstr "All"
126
+ msgid "All collections"
127
+ msgstr "All collections"
159
128
 
160
- #. @context: Message when no pages available to add
161
- #: src/ui/dash/appearance/NavigationContent.tsx
162
- msgid "All pages are already in navigation."
163
- msgstr "All pages are already in navigation."
129
+ #. @context: Archive filter - all formats select option
130
+ #: src/ui/pages/ArchivePage.tsx
131
+ msgid "All formats"
132
+ msgstr "All formats"
164
133
 
165
- #. @context: Message when no pages available to add
166
- #: src/ui/dash/appearance/NavigationContent.tsx
167
- #~ msgid "All pages are in navigation"
168
- #~ msgstr "All pages are in navigation"
134
+ #. @context: Archive filter - all visibility select option
135
+ #: src/ui/pages/ArchivePage.tsx
136
+ msgid "All visibility"
137
+ msgstr "All visibility"
169
138
 
170
- #. @context: Empty state when all pages are in nav
171
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
172
- #~ msgid "All pages are in your navigation."
173
- #~ msgstr "All pages are in your navigation."
139
+ #. @context: Archive filter - year dropdown default
140
+ #: src/ui/pages/ArchivePage.tsx
141
+ msgid "All years"
142
+ msgstr "All years"
174
143
 
175
- #. @context: Hint text in alt text panel
176
- #: src/ui/compose/ComposeDialog.tsx
177
- #~ msgid "Alt text improves accessibility"
178
- #~ msgstr "Alt text improves accessibility"
144
+ #. @context: Link to API documentation
145
+ #: src/ui/dash/settings/ApiTokensContent.tsx
146
+ msgid "API reference"
147
+ msgstr "API reference"
179
148
 
180
- #. @context: Dashboard navigation - appearance settings
181
- #: src/ui/layouts/DashLayout.tsx
182
- #~ msgid "Appearance"
183
- #~ msgstr "Appearance"
149
+ #. @context: Settings item API token settings
150
+ #. @context: Settings section heading
151
+ #: src/ui/dash/settings/ApiTokensContent.tsx
152
+ #: src/ui/dash/settings/SettingsRootContent.tsx
153
+ msgid "API Tokens"
154
+ msgstr "API Tokens"
155
+
156
+ #. @context: Appearance settings description
157
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
158
+ msgid "Applies to your entire site, including admin pages. All themes support dark mode."
159
+ msgstr "Applies to your entire site, including admin pages. All themes support dark mode."
184
160
 
185
161
  #. @context: Archive page title
186
162
  #: src/ui/pages/ArchivePage.tsx
187
163
  msgid "Archive"
188
164
  msgstr "Archive"
189
165
 
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
-
195
- #. @context: Confirmation dialog when deleting a post from the list
196
- #: src/ui/dash/PostList.tsx
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."
199
-
200
- #. @context: Post type badge - article
201
- #. @context: Post type label - article
202
- #. @context: Post type option
203
- #: src/theme/components/PostForm.tsx
204
- #: src/theme/components/TypeBadge.tsx
205
- #: src/themes/threads/pages/ArchivePage.tsx
206
- #~ msgid "Article"
207
- #~ msgstr "Article"
208
-
209
- #. @context: Post type label plural - articles
210
- #: src/themes/threads/pages/ArchivePage.tsx
211
- #~ msgid "Articles"
212
- #~ msgstr "Articles"
213
-
214
- #. @context: Hint for image post type media requirement
215
- #: src/theme/components/PostForm.tsx
216
- #~ msgid "At least 1 image required for image posts."
217
- #~ msgstr "At least 1 image required for image posts."
218
-
219
- #. @context: Attached text badge label
220
- #: src/ui/compose/ComposeDialog.tsx
221
- #~ msgid "Attached text"
222
- #~ msgstr "Attached text"
223
-
224
- #. @context: Attached text panel title
225
- #: src/ui/compose/ComposeDialog.tsx
226
- msgid "Attached Text"
227
- msgstr "Attached Text"
228
-
229
- #. @context: Error toast when authentication system is unavailable
230
- #: src/routes/auth/signin.tsx
231
- #~ msgid "Auth not configured"
232
- #~ msgstr "Auth not configured"
166
+ #. @context: Archive media filter - audio
167
+ #: src/ui/pages/ArchivePage.tsx
168
+ msgid "Audio"
169
+ msgstr "Audio"
233
170
 
234
171
  #. @context: Error toast when authentication secret is missing from server config
235
172
  #: src/routes/auth/setup.tsx
236
173
  msgid "Auth secret is missing. Check your environment variables."
237
174
  msgstr "Auth secret is missing. Check your environment variables."
238
175
 
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
176
  #. @context: Error toast when authentication system is unavailable
245
177
  #: src/routes/auth/signin.tsx
246
178
  msgid "Authentication isn't set up. Check your server config."
@@ -251,18 +183,16 @@ msgstr "Authentication isn't set up. Check your server config."
251
183
  msgid "Author (optional)"
252
184
  msgstr "Author (optional)"
253
185
 
186
+ #. @context: Description after theming guide link on Custom CSS page
187
+ #: src/ui/dash/appearance/AdvancedContent.tsx
188
+ msgid "available CSS variables, data attributes, and examples."
189
+ msgstr "available CSS variables, data attributes, and examples."
190
+
254
191
  #. @context: Settings item — avatar settings
255
192
  #: src/ui/dash/settings/SettingsRootContent.tsx
256
193
  msgid "Avatar"
257
194
  msgstr "Avatar"
258
195
 
259
- #. @context: Toast after saving avatar display preference
260
- #. @context: Toast after saving avatar display preference
261
- #: src/routes/dash/settings.tsx
262
- #: src/routes/dash/settings.tsx
263
- #~ msgid "Avatar display setting saved successfully."
264
- #~ msgstr "Avatar display setting saved successfully."
265
-
266
196
  #. @context: Toast after saving avatar display preference
267
197
  #. @context: Toast after saving avatar display preference
268
198
  #: src/routes/dash/settings.tsx
@@ -270,40 +200,33 @@ msgstr "Avatar"
270
200
  msgid "Avatar display updated."
271
201
  msgstr "Avatar display updated."
272
202
 
273
- #. @context: Button to go back to media list
274
- #: src/ui/dash/media/ViewMediaContent.tsx
203
+ #. @context: Link back from the new post page
204
+ #: src/ui/pages/ComposePage.tsx
275
205
  msgid "Back"
276
206
  msgstr "Back"
277
207
 
278
- #. @context: Navigation link back to home page
279
- #. @context: Navigation link back to home page
280
- #. @context: Navigation link back to home page
281
- #: src/routes/pages/archive.tsx
282
- #: src/routes/pages/page.tsx
283
- #: src/routes/pages/search.tsx
284
- #~ msgid "Back to home"
285
- #~ msgstr "Back to home"
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"
208
+ #. @context: Settings item description for API tokens
209
+ #: src/ui/dash/settings/SettingsRootContent.tsx
210
+ msgid "Bearer tokens for scripts and automation"
211
+ msgstr "Bearer tokens for scripts and automation"
291
212
 
292
213
  #. @context: Settings section heading for avatar
293
214
  #: src/ui/dash/settings/AvatarContent.tsx
294
215
  msgid "Blog Avatar"
295
216
  msgstr "Blog Avatar"
296
217
 
297
- #. @context: Button to cancel and go back
298
218
  #. @context: Button to cancel form
299
219
  #. @context: Button to cancel form
300
220
  #. @context: Button to cancel form
221
+ #. @context: Button to cancel settings changes
301
222
  #. @context: Button to cancel unsaved changes and revert to original values
302
223
  #. @context: Close compose dialog
303
- #: src/routes/dash/redirects.tsx
224
+ #. @context: Confirm close action sheet - cancel and return to editor
225
+ #: src/routes/dash/custom-urls.tsx
304
226
  #: src/ui/compose/ComposeDialog.tsx
305
- #: src/ui/dash/PageForm.tsx
306
- #: src/ui/dash/posts/PostForm.tsx
227
+ #: src/ui/compose/ComposeDialog.tsx
228
+ #: src/ui/compose/ComposeDialog.tsx
229
+ #: src/ui/dash/settings/AvatarContent.tsx
307
230
  #: src/ui/dash/settings/GeneralContent.tsx
308
231
  #: src/ui/shared/CollectionsSidebar.tsx
309
232
  msgid "Cancel"
@@ -316,10 +239,10 @@ msgstr "Cancel"
316
239
  msgid "Change Password"
317
240
  msgstr "Change Password"
318
241
 
319
- #. @context: Font theme settings description
320
- #: src/ui/dash/settings/AppearanceContent.tsx
321
- #~ msgid "Choose a font for your site. All options use system fonts for fast loading."
322
- #~ msgstr "Choose a font for your site. All options use system fonts for fast loading."
242
+ #. @context: Settings item description for password change
243
+ #: src/ui/dash/settings/AccountMenuContent.tsx
244
+ msgid "Change your sign-in password"
245
+ msgstr "Change your sign-in password"
323
246
 
324
247
  #. @context: Font theme settings description
325
248
  #: src/ui/dash/appearance/FontThemeContent.tsx
@@ -331,43 +254,13 @@ msgstr "Choose a font pairing for your site. All options use system fonts for fa
331
254
  msgid "Choose a new password."
332
255
  msgstr "Choose a new password."
333
256
 
334
- #. @context: Placeholder for page select combobox trigger
335
- #: src/ui/dash/appearance/NavigationContent.tsx
336
- msgid "Choose a page…"
337
- msgstr "Choose a page…"
338
-
339
- #. @context: Button to open icon picker
340
- #. @context: Icon picker dialog title
341
- #: src/ui/shared/CollectionsSidebar.tsx
342
- #: src/ui/shared/CollectionsSidebar.tsx
343
- #~ msgid "Choose Icon"
344
- #~ msgstr "Choose Icon"
345
-
346
- #. @context: Hint to click image for lightbox
347
- #: src/ui/dash/media/ViewMediaContent.tsx
348
- msgid "Click image to view full size"
349
- msgstr "Click image to view full size"
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
-
356
- #. @context: Button to close icon picker
357
- #: src/ui/shared/CollectionsSidebar.tsx
358
- #~ msgid "Close"
359
- #~ msgstr "Close"
360
-
361
257
  #. @context: Compose collection selector trigger label
258
+ #. @context: Custom URL type option
259
+ #: src/routes/dash/custom-urls.tsx
362
260
  #: src/ui/compose/ComposeDialog.tsx
363
261
  msgid "Collection"
364
262
  msgstr "Collection"
365
263
 
366
- #. @context: Post form field - assign to collection
367
- #: src/ui/dash/PostForm.tsx
368
- #~ msgid "Collection (optional)"
369
- #~ msgstr "Collection (optional)"
370
-
371
264
  #. @context: Collections page heading
372
265
  #. @context: Sidebar heading for collections nav
373
266
  #. @context: Sidebar heading for collections nav
@@ -377,11 +270,6 @@ msgstr "Collection"
377
270
  msgid "Collections"
378
271
  msgstr "Collections"
379
272
 
380
- #. @context: Post form field - assign to collections
381
- #: src/ui/dash/posts/PostForm.tsx
382
- msgid "Collections (optional)"
383
- msgstr "Collections (optional)"
384
-
385
273
  #. @context: Appearance settings heading
386
274
  #. @context: Settings item description for color theme
387
275
  #: src/ui/dash/appearance/ColorThemeContent.tsx
@@ -409,19 +297,22 @@ msgstr "Confirm New Password"
409
297
  msgid "Confirm Password"
410
298
  msgstr "Confirm Password"
411
299
 
412
- #. @context: Page form field label - content
413
- #. @context: Post form field
414
- #: src/ui/dash/PageForm.tsx
415
- #: src/ui/dash/posts/PostForm.tsx
416
- msgid "Content"
417
- msgstr "Content"
300
+ #. @context: Feedback after copying API token
301
+ #: src/ui/dash/settings/ApiTokensContent.tsx
302
+ msgid "Copied"
303
+ msgstr "Copied"
418
304
 
419
- #. @context: Button to copy Markdown to clipboard
420
- #. @context: Button to copy URL to clipboard
421
- #: src/ui/dash/media/ViewMediaContent.tsx
422
- #: src/ui/dash/media/ViewMediaContent.tsx
423
- msgid "Copy"
424
- msgstr "Copy"
305
+ #. @context: Button to copy API token to clipboard
306
+ #. @context: Button to copy API token to clipboard
307
+ #: src/ui/dash/settings/ApiTokensContent.tsx
308
+ #: src/ui/dash/settings/ApiTokensContent.tsx
309
+ msgid "Copy Token"
310
+ msgstr "Copy Token"
311
+
312
+ #. @context: Warning to copy newly created API token
313
+ #: src/ui/dash/settings/ApiTokensContent.tsx
314
+ msgid "Copy your token now — it won't be shown again."
315
+ msgstr "Copy your token now — it won't be shown again."
425
316
 
426
317
  #. @context: Error toast when account creation fails
427
318
  #. @context: Error toast when account creation fails
@@ -435,10 +326,10 @@ msgstr "Couldn't create your account. Check the details and try again."
435
326
  msgid "Couldn't delete. Try again in a moment."
436
327
  msgstr "Couldn't delete. Try again in a moment."
437
328
 
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."
329
+ #. @context: Toast when publish fails and post is auto-saved as draft
330
+ #: src/ui/compose/ComposeDialog.tsx
331
+ msgid "Couldn't publish. Saved as draft."
332
+ msgstr "Couldn't publish. Saved as draft."
442
333
 
443
334
  #. @context: Error toast when nav save fails
444
335
  #. @context: Toast when save fails
@@ -447,50 +338,36 @@ msgstr "Couldn't save your post. Try again in a moment."
447
338
  msgid "Couldn't save. Try again in a moment."
448
339
  msgstr "Couldn't save. Try again in a moment."
449
340
 
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
-
455
- #. @context: Button to save new collection
456
- #: src/ui/dash/collections/CollectionForm.tsx
457
- #~ msgid "Create Collection"
458
- #~ msgstr "Create Collection"
459
-
460
- #. @context: Button to save new navigation link
461
- #: src/ui/dash/pages/LinkFormContent.tsx
462
- #~ msgid "Create Link"
463
- #~ msgstr "Create Link"
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"
341
+ #. @context: Compose collection combobox empty state when no collections exist
342
+ #: src/ui/compose/ComposeDialog.tsx
343
+ msgid "Create a collection to get started."
344
+ msgstr "Create a collection to get started."
469
345
 
470
- #. @context: Button to create new page
471
- #: src/ui/dash/PageForm.tsx
472
- msgid "Create Page"
473
- msgstr "Create Page"
346
+ #. @context: Label for curl example
347
+ #: src/ui/dash/settings/ApiTokensContent.tsx
348
+ msgid "Create a post with curl:"
349
+ msgstr "Create a post with curl:"
474
350
 
475
- #. @context: Button to save new redirect
476
- #: src/routes/dash/redirects.tsx
477
- msgid "Create Redirect"
478
- msgstr "Create Redirect"
351
+ #. @context: Button to save new custom URL
352
+ #: src/routes/dash/custom-urls.tsx
353
+ msgid "Create Custom URL"
354
+ msgstr "Create Custom URL"
479
355
 
480
356
  #. @context: Setup page description
481
357
  #: src/routes/auth/setup.tsx
482
358
  msgid "Create your admin account."
483
359
  msgstr "Create your admin account."
484
360
 
485
- #. @context: Button in empty state to create first page
486
- #: src/routes/dash/pages.tsx
487
- #~ msgid "Create your first page"
488
- #~ msgstr "Create your first page"
361
+ #. @context: Token creation date
362
+ #. placeholder {0}: formatDate(token.createdAt)
363
+ #: src/ui/dash/settings/ApiTokensContent.tsx
364
+ msgid "Created {0}"
365
+ msgstr "Created {0}"
489
366
 
490
- #. @context: Button in empty state to create first post
491
- #: src/ui/dash/PostList.tsx
492
- #~ msgid "Create your first post"
493
- #~ msgstr "Create your first post"
367
+ #. @context: Badge indicating the current active session
368
+ #: src/ui/dash/settings/SessionsContent.tsx
369
+ msgid "Current"
370
+ msgstr "Current"
494
371
 
495
372
  #. @context: Password form field
496
373
  #: src/ui/dash/settings/AccountContent.tsx
@@ -502,116 +379,68 @@ msgstr "Current Password"
502
379
  msgid "Current password doesn't match. Try again."
503
380
  msgstr "Current password doesn't match. Try again."
504
381
 
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."
509
-
510
382
  #. @context: Appearance settings heading for custom CSS
383
+ #. @context: Link to Custom CSS settings from color theme page
511
384
  #. @context: Settings item — custom CSS settings
512
385
  #: src/ui/dash/appearance/AdvancedContent.tsx
386
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
513
387
  #: src/ui/dash/settings/SettingsRootContent.tsx
514
388
  msgid "Custom CSS"
515
389
  msgstr "Custom CSS"
516
390
 
517
- #. @context: Toast after saving custom CSS
518
- #: src/routes/dash/settings.tsx
519
- #~ msgid "Custom CSS saved successfully."
520
- #~ msgstr "Custom CSS saved successfully."
521
-
522
391
  #. @context: Toast after saving custom CSS
523
392
  #: src/routes/dash/settings.tsx
524
393
  msgid "Custom CSS updated."
525
394
  msgstr "Custom CSS updated."
526
395
 
527
- #. @context: Post form field
528
- #: src/theme/components/PostForm.tsx
529
- #~ msgid "Custom Path (optional)"
530
- #~ msgstr "Custom Path (optional)"
531
-
532
- #. @context: Post form field
533
- #: src/theme/components/PostForm.tsx
534
- #~ msgid "Custom Slug (optional)"
535
- #~ msgstr "Custom Slug (optional)"
536
-
537
396
  #. @context: Settings item description for custom CSS
538
397
  #: src/ui/dash/settings/SettingsRootContent.tsx
539
398
  msgid "Custom styling"
540
399
  msgstr "Custom styling"
541
400
 
542
- #. @context: Slug help text
543
- #: src/theme/components/PostForm.tsx
544
- #~ msgid "Custom URL path. Leave empty to use default /p/ID format."
545
- #~ msgstr "Custom URL path. Leave empty to use default /p/ID format."
401
+ #. @context: Settings item — custom URL settings
402
+ #. @context: Settings section heading
403
+ #: src/routes/dash/custom-urls.tsx
404
+ #: src/ui/dash/settings/SettingsRootContent.tsx
405
+ msgid "Custom URLs"
406
+ msgstr "Custom URLs"
546
407
 
547
408
  #. @context: Section heading for dangerous/destructive actions
548
409
  #: src/ui/dash/DangerZone.tsx
549
410
  msgid "Danger Zone"
550
411
  msgstr "Danger Zone"
551
412
 
552
- #. @context: Dashboard main heading
553
- #. @context: Dashboard navigation - dashboard home
554
- #: src/routes/dash/index.tsx
555
- #: src/ui/layouts/DashLayout.tsx
556
- msgid "Dashboard"
557
- msgstr "Dashboard"
558
-
559
- #. @context: Settings form field
560
- #: src/ui/dash/settings/GeneralContent.tsx
561
- #~ msgid "Default Homepage View"
562
- #~ msgstr "Default Homepage View"
413
+ #. @context: Settings group label for data export/import
414
+ #: src/ui/dash/settings/AccountMenuContent.tsx
415
+ msgid "Data"
416
+ msgstr "Data"
563
417
 
418
+ #. @context: Button to delete custom URL
564
419
  #. @context: Button to delete item
565
- #. @context: Button to delete redirect
566
420
  #. @context: Delete collection action
567
421
  #. @context: Delete nav item
568
- #: src/routes/dash/redirects.tsx
422
+ #: src/routes/dash/custom-urls.tsx
569
423
  #: src/ui/dash/ActionButtons.tsx
570
424
  #: src/ui/dash/appearance/NavigationContent.tsx
571
425
  #: src/ui/shared/CollectionsSidebar.tsx
572
426
  msgid "Delete"
573
427
  msgstr "Delete"
574
428
 
575
- #. @context: Button to delete collection
576
- #: src/routes/dash/collections.tsx
577
- #~ msgid "Delete Collection"
578
- #~ msgstr "Delete Collection"
579
-
580
- #. @context: Button to delete media
581
- #: src/ui/dash/media/ViewMediaContent.tsx
582
- msgid "Delete Media"
583
- msgstr "Delete Media"
584
-
585
- #. @context: Button to delete page
586
- #: src/routes/dash/pages.tsx
587
- msgid "Delete Page"
588
- msgstr "Delete Page"
429
+ #. @context: Draft item action
430
+ #: src/ui/compose/ComposeDialog.tsx
431
+ msgid "Delete Draft"
432
+ msgstr "Delete Draft"
589
433
 
590
434
  #. @context: Confirm dialog for deleting a collection
591
435
  #: src/ui/shared/CollectionsSidebar.tsx
592
436
  msgid "Delete this collection permanently? Posts inside won't be removed."
593
437
  msgstr "Delete this collection permanently? Posts inside won't be removed."
594
438
 
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
439
  #. @context: Toast after deleting a collection
601
440
  #: src/ui/shared/CollectionsSidebar.tsx
602
441
  msgid "Deleted"
603
442
  msgstr "Deleted"
604
443
 
605
- #. @context: Warning message before deleting media
606
- #: src/ui/dash/media/ViewMediaContent.tsx
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."
614
-
615
444
  #. @context: Hint shown on signin page when demo credentials are pre-filled
616
445
  #: src/routes/auth/signin.tsx
617
446
  msgid "Demo credentials are pre-filled — hit Sign In to continue."
@@ -623,6 +452,8 @@ msgid "Describe this for people with visual impairments..."
623
452
  msgstr "Describe this for people with visual impairments..."
624
453
 
625
454
  #. @context: Collection form field
455
+ #. @context: Collection form field
456
+ #: src/ui/compose/ComposeDialog.tsx
626
457
  #: src/ui/shared/CollectionsSidebar.tsx
627
458
  msgid "Description (optional)"
628
459
  msgstr "Description (optional)"
@@ -632,8 +463,15 @@ msgstr "Description (optional)"
632
463
  msgid "Design"
633
464
  msgstr "Design"
634
465
 
466
+ #. @context: Redirect destination field
467
+ #: src/routes/dash/custom-urls.tsx
468
+ msgid "Destination"
469
+ msgstr "Destination"
470
+
471
+ #. @context: Confirm close action sheet - discard changes button for editing published post
635
472
  #. @context: More menu - discard post
636
473
  #: src/ui/compose/ComposeDialog.tsx
474
+ #: src/ui/compose/ComposeDialog.tsx
637
475
  msgid "Discard"
638
476
  msgstr "Discard"
639
477
 
@@ -642,39 +480,50 @@ msgstr "Discard"
642
480
  msgid "Display avatar in my site header"
643
481
  msgstr "Display avatar in my site header"
644
482
 
645
- #. @context: Navigation label help text
646
- #: src/ui/dash/pages/LinkFormContent.tsx
647
- #~ msgid "Display text for the link"
648
- #~ msgstr "Display text for the link"
649
-
650
- #. @context: Help text for site description field
651
- #: src/ui/dash/settings/GeneralContent.tsx
652
- #~ msgid "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
653
- #~ msgstr "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
654
-
655
483
  #. @context: Help text for site footer field
656
484
  #: src/ui/dash/settings/GeneralContent.tsx
657
485
  msgid "Displayed at the bottom of all posts and pages. Markdown supported."
658
486
  msgstr "Displayed at the bottom of all posts and pages. Markdown supported."
659
487
 
488
+ #. @context: Confirm close action sheet subtitle when editing a published post
489
+ #: src/ui/compose/ComposeDialog.tsx
490
+ msgid "Do you want to publish your changes or discard them?"
491
+ msgstr "Do you want to publish your changes or discard them?"
492
+
493
+ #. @context: Confirm close action sheet - discard button
494
+ #: src/ui/compose/ComposeDialog.tsx
495
+ msgid "Don't save"
496
+ msgstr "Don't save"
497
+
660
498
  #. @context: Button to exit reorder mode
661
499
  #. @context: Close attached text panel
662
- #. @context: Close media picker button
500
+ #. @context: Compose button - update existing post
501
+ #: src/ui/compose/ComposeDialog.tsx
663
502
  #: src/ui/compose/ComposeDialog.tsx
664
- #: src/ui/dash/posts/PostForm.tsx
665
503
  #: src/ui/shared/CollectionsSidebar.tsx
666
504
  msgid "Done"
667
505
  msgstr "Done"
668
506
 
669
- #. @context: Page status option - draft
507
+ #. @context: Settings item description for site export
508
+ #: src/ui/dash/settings/AccountMenuContent.tsx
509
+ msgid "Download as a Zola static site (.zip)"
510
+ msgstr "Download as a Zola static site (.zip)"
511
+
670
512
  #. @context: Post status badge - draft
671
- #. @context: Post status option
672
- #: src/ui/dash/PageForm.tsx
673
- #: src/ui/dash/posts/PostForm.tsx
674
513
  #: src/ui/dash/StatusBadge.tsx
675
514
  msgid "Draft"
676
515
  msgstr "Draft"
677
516
 
517
+ #. @context: Toast after draft deletion
518
+ #: src/ui/compose/ComposeDialog.tsx
519
+ msgid "Draft deleted."
520
+ msgstr "Draft deleted."
521
+
522
+ #. @context: Toast shown when a local draft is restored on compose open
523
+ #: src/ui/compose/ComposeDialog.tsx
524
+ msgid "Draft restored."
525
+ msgstr "Draft restored."
526
+
678
527
  #. @context: Toast after saving a draft post
679
528
  #. @context: Toast after saving a draft post
680
529
  #: src/routes/compose.tsx
@@ -682,61 +531,27 @@ msgstr "Draft"
682
531
  msgid "Draft saved."
683
532
  msgstr "Draft saved."
684
533
 
685
- #. @context: Post status label
686
- #: src/routes/dash/index.tsx
534
+ #. @context: Drafts panel title
535
+ #: src/ui/compose/ComposeDialog.tsx
687
536
  msgid "Drafts"
688
537
  msgstr "Drafts"
689
538
 
690
- #. @context: Source name placeholder
691
- #: src/theme/components/PostForm.tsx
692
- #~ msgid "e.g. The Verge, John Doe"
693
- #~ msgstr "e.g. The Verge, John Doe"
539
+ #. @context: Placeholder for API token name input
540
+ #: src/ui/dash/settings/ApiTokensContent.tsx
541
+ msgid "e.g. iOS Shortcuts"
542
+ msgstr "e.g. iOS Shortcuts"
694
543
 
695
544
  #. @context: Button to edit item
696
- #. @context: Button to edit page
697
- #. @context: Button to edit page
698
- #. @context: Button to edit post
699
- #. @context: Button to edit post
700
545
  #. @context: Per-collection edit action
701
- #: src/routes/dash/pages.tsx
702
- #: src/routes/dash/posts.tsx
703
546
  #: src/ui/dash/ActionButtons.tsx
704
- #: src/ui/dash/pages/PagesContent.tsx
705
- #: src/ui/dash/PostList.tsx
706
547
  #: src/ui/shared/CollectionsSidebar.tsx
707
548
  msgid "Edit"
708
549
  msgstr "Edit"
709
550
 
710
- #. @context: Page heading
711
- #: src/ui/dash/collections/CollectionForm.tsx
712
- #~ msgid "Edit Collection"
713
- #~ msgstr "Edit Collection"
714
-
715
- #. @context: Page heading
716
- #: src/ui/dash/pages/LinkFormContent.tsx
717
- #~ msgid "Edit Link"
718
- #~ msgstr "Edit Link"
719
-
720
- #. @context: Edit page main heading
721
- #. @context: Link to edit the page
722
- #: src/routes/dash/pages.tsx
723
- #: src/ui/dash/appearance/NavigationContent.tsx
724
- msgid "Edit Page"
725
- msgstr "Edit Page"
726
-
727
- #. @context: Page heading
728
- #: src/routes/dash/posts.tsx
729
- msgid "Edit Post"
730
- msgstr "Edit Post"
731
-
732
- #. @context: Edit page page title
733
- #. @context: Page title for editing collection
734
- #. @context: Page title for editing post
735
- #: src/routes/dash/collections.tsx
736
- #: src/routes/dash/pages.tsx
737
- #: src/routes/dash/posts.tsx
738
- #~ msgid "Edit: {title}"
739
- #~ msgstr "Edit: {title}"
551
+ #. @context: Compose dialog header title in edit mode
552
+ #: src/ui/compose/ComposeDialog.tsx
553
+ msgid "Edit post"
554
+ msgstr "Edit post"
740
555
 
741
556
  #. @context: Setup/signin form field - email
742
557
  #. @context: Setup/signin form field - email
@@ -750,21 +565,13 @@ msgstr "Email"
750
565
  msgid "Emoji"
751
566
  msgstr "Emoji"
752
567
 
753
- #. @context: Collection icon placeholder
754
- #: src/ui/dash/collections/CollectionForm.tsx
755
- #~ msgid "Emoji or icon name"
756
- #~ msgstr "Emoji or icon name"
757
-
758
568
  #. @context: Emoji picker tab label
569
+ #. @context: Emoji picker tab label
570
+ #: src/ui/compose/ComposeDialog.tsx
759
571
  #: src/ui/shared/CollectionsSidebar.tsx
760
572
  msgid "Emojis"
761
573
  msgstr "Emojis"
762
574
 
763
- #. @context: Password reset page description
764
- #: src/routes/auth/reset.tsx
765
- #~ msgid "Enter your new password."
766
- #~ msgstr "Enter your new password."
767
-
768
575
  #. @context: Plural entry count label
769
576
  #: src/ui/pages/CollectionsPage.tsx
770
577
  msgid "entries"
@@ -775,49 +582,25 @@ msgstr "entries"
775
582
  msgid "entry"
776
583
  msgstr "entry"
777
584
 
778
- #. @context: Error toast when account creation fails
779
- #. @context: Error toast when account creation fails
780
- #: src/routes/auth/setup.tsx
781
- #: src/routes/auth/setup.tsx
782
- #~ msgid "Failed to create account"
783
- #~ msgstr "Failed to create account"
784
-
785
- #. @context: Error toast when nav delete fails
786
- #: src/ui/dash/appearance/NavigationContent.tsx
787
- #~ msgid "Failed to delete. Please try again."
788
- #~ msgstr "Failed to delete. Please try again."
789
-
790
- #. @context: Toast when post save fails
791
- #: src/ui/dash/posts/PostForm.tsx
792
- #~ msgid "Failed to save post. Please try again."
793
- #~ msgstr "Failed to save post. Please try again."
794
-
795
- #. @context: Error toast when nav save fails
796
- #: src/ui/dash/appearance/NavigationContent.tsx
797
- #~ msgid "Failed to save. Please try again."
798
- #~ msgstr "Failed to save. Please try again."
799
-
800
- #. @context: Error toast when profile update fails
801
- #: src/routes/dash/settings.tsx
802
- #~ msgid "Failed to update profile."
803
- #~ msgstr "Failed to update profile."
585
+ #. @context: Settings item export site as Zola ZIP
586
+ #: src/ui/dash/settings/AccountMenuContent.tsx
587
+ msgid "Export Site"
588
+ msgstr "Export Site"
804
589
 
805
590
  #. @context: Settings item description for avatar
806
591
  #: src/ui/dash/settings/SettingsRootContent.tsx
807
592
  msgid "Favicon and header icon"
808
593
  msgstr "Favicon and header icon"
809
594
 
810
- #. @context: Archive filter - featured posts
595
+ #. @context: Archive visibility filter - featured posts
811
596
  #. @context: Browse filter for featured posts
812
597
  #. @context: Browse filter label
813
598
  #. @context: Browse filter label
814
599
  #. @context: Browse filter label for featured posts
815
600
  #. @context: Post badge - featured
816
- #. @context: Visibility option - highlighted on featured page
817
601
  #: src/ui/dash/appearance/NavigationContent.tsx
818
602
  #: src/ui/dash/appearance/NavigationContent.tsx
819
603
  #: src/ui/dash/appearance/NavigationContent.tsx
820
- #: src/ui/dash/posts/PostForm.tsx
821
604
  #: src/ui/dash/StatusBadge.tsx
822
605
  #: src/ui/layouts/SiteLayout.tsx
823
606
  #: src/ui/pages/ArchivePage.tsx
@@ -836,6 +619,11 @@ msgstr "File storage isn't set up. Check your server config."
836
619
  msgid "File uploaded."
837
620
  msgstr "File uploaded."
838
621
 
622
+ #. @context: Archive media filter - files/documents
623
+ #: src/ui/pages/ArchivePage.tsx
624
+ msgid "Files"
625
+ msgstr "Files"
626
+
839
627
  #. @context: Appearance settings heading for font theme
840
628
  #: src/ui/dash/appearance/FontThemeContent.tsx
841
629
  msgid "Font theme"
@@ -846,39 +634,17 @@ msgstr "Font theme"
846
634
  msgid "Font Theme"
847
635
  msgstr "Font Theme"
848
636
 
849
- #. @context: Toast after saving site footer
850
- #. @context: Toast after saving site footer
851
- #: src/routes/dash/settings.tsx
852
- #: src/routes/dash/settings.tsx
853
- #~ msgid "Footer saved successfully."
854
- #~ msgstr "Footer saved successfully."
855
-
856
- #. @context: Post form field - post format
857
- #: src/ui/dash/posts/PostForm.tsx
858
- msgid "Format"
859
- msgstr "Format"
860
-
861
637
  #. @context: Search results count - multiple
862
638
  #. placeholder {0}: String(results.length)
863
639
  #: src/ui/pages/SearchPage.tsx
864
640
  msgid "Found {0} results"
865
641
  msgstr "Found {0} results"
866
642
 
867
- #. @context: Search results count - multiple
868
- #: src/ui/pages/SearchPage.tsx
869
- #~ msgid "Found {count} results"
870
- #~ msgstr "Found {count} results"
871
-
872
643
  #. @context: Search results count - single
873
644
  #: src/ui/pages/SearchPage.tsx
874
645
  msgid "Found 1 result"
875
646
  msgstr "Found 1 result"
876
647
 
877
- #. @context: Redirect form field
878
- #: src/routes/dash/redirects.tsx
879
- msgid "From Path"
880
- msgstr "From Path"
881
-
882
648
  #. @context: Settings item — general settings
883
649
  #. @context: Settings section heading
884
650
  #: src/ui/dash/settings/GeneralContent.tsx
@@ -886,6 +652,11 @@ msgstr "From Path"
886
652
  msgid "General"
887
653
  msgstr "General"
888
654
 
655
+ #. @context: Button to create new API token
656
+ #: src/ui/dash/settings/ApiTokensContent.tsx
657
+ msgid "Generate Token"
658
+ msgstr "Generate Token"
659
+
889
660
  #. @context: Compose link title placeholder
890
661
  #: src/ui/compose/ComposeDialog.tsx
891
662
  msgid "Give it a title..."
@@ -896,17 +667,14 @@ msgstr "Give it a title..."
896
667
  msgid "Header links, featured"
897
668
  msgstr "Header links, featured"
898
669
 
899
- #. @context: Settings form field for max visible nav links in header
900
- #: src/ui/dash/settings/GeneralContent.tsx
901
- #~ msgid "Header Nav Links"
902
- #~ msgstr "Header Nav Links"
903
-
904
670
  #. @context: Hint text in alt text panel
905
671
  #: src/ui/compose/ComposeDialog.tsx
906
672
  msgid "Helps screen readers describe the image"
907
673
  msgstr "Helps screen readers describe the image"
908
674
 
909
675
  #. @context: Collection sort order option
676
+ #. @context: Collection sort order option
677
+ #: src/ui/compose/ComposeDialog.tsx
910
678
  #: src/ui/shared/CollectionsSidebar.tsx
911
679
  msgid "Highest rated"
912
680
  msgstr "Highest rated"
@@ -916,71 +684,17 @@ msgstr "Highest rated"
916
684
  msgid "Home view saved"
917
685
  msgstr "Home view saved"
918
686
 
919
- #. @context: Collection form field
920
- #: src/ui/shared/CollectionsSidebar.tsx
921
- #~ msgid "Icon (optional)"
922
- #~ msgstr "Icon (optional)"
923
-
924
687
  #. @context: Icon picker tab label
688
+ #. @context: Icon picker tab label
689
+ #: src/ui/compose/ComposeDialog.tsx
925
690
  #: src/ui/shared/CollectionsSidebar.tsx
926
691
  msgid "Icons"
927
692
  msgstr "Icons"
928
693
 
929
- #. @context: Post type badge - image
930
- #. @context: Post type label - image
931
- #. @context: Post type option
932
- #: src/theme/components/PostForm.tsx
933
- #: src/theme/components/TypeBadge.tsx
934
- #: src/themes/threads/pages/ArchivePage.tsx
935
- #~ msgid "Image"
936
- #~ msgstr "Image"
937
-
938
- #. @context: Post type label plural - images
939
- #: src/themes/threads/pages/ArchivePage.tsx
940
- #~ msgid "Images"
941
- #~ msgstr "Images"
942
-
943
- #. @context: Media upload instructions - auto optimization
944
- #: src/ui/dash/media/MediaListContent.tsx
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."
952
-
953
- #. @context: Error toast when sign-in credentials are wrong
954
- #: src/routes/auth/signin.tsx
955
- #~ msgid "Invalid email or password"
956
- #~ msgstr "Invalid email or password"
957
-
958
- #. @context: Error toast when selected font theme is not valid
959
- #: src/routes/dash/settings.tsx
960
- #~ msgid "Invalid font theme selected."
961
- #~ msgstr "Invalid font theme selected."
962
-
963
- #. @context: Fallback validation error for page form
964
- #. @context: Fallback validation error for page form
965
- #: src/routes/dash/pages.tsx
966
- #: src/routes/dash/pages.tsx
967
- #~ msgid "Invalid input"
968
- #~ msgstr "Invalid input"
969
-
970
- #. @context: Password reset error heading
971
- #: src/routes/auth/reset.tsx
972
- #~ msgid "Invalid or Expired Link"
973
- #~ msgstr "Invalid or Expired Link"
974
-
975
- #. @context: Error toast when reorder request is malformed
976
- #: src/routes/dash/appearance.tsx
977
- #~ msgid "Invalid request"
978
- #~ msgstr "Invalid request"
979
-
980
- #. @context: Error toast when selected theme is not valid
981
- #: src/routes/dash/settings.tsx
982
- #~ msgid "Invalid theme selected."
983
- #~ msgstr "Invalid theme selected."
694
+ #. @context: Archive media filter - images
695
+ #: src/ui/pages/ArchivePage.tsx
696
+ msgid "Images"
697
+ msgstr "Images"
984
698
 
985
699
  #. @context: Checkbox for allowing search engine indexing
986
700
  #: src/ui/dash/settings/GeneralContent.tsx
@@ -1007,6 +721,12 @@ msgstr "Label is required"
1007
721
  msgid "Language"
1008
722
  msgstr "Language"
1009
723
 
724
+ #. @context: Token last used date
725
+ #. placeholder {0}: formatDate(token.lastUsedAt)
726
+ #: src/ui/dash/settings/ApiTokensContent.tsx
727
+ msgid "Last used {0}"
728
+ msgstr "Last used {0}"
729
+
1010
730
  #. @context: Browse filter for latest posts
1011
731
  #. @context: Browse filter label
1012
732
  #. @context: Browse filter label
@@ -1018,10 +738,10 @@ msgstr "Language"
1018
738
  msgid "Latest"
1019
739
  msgstr "Latest"
1020
740
 
1021
- #. @context: Setup page description
1022
- #: src/app.tsx
1023
- #~ msgid "Let's set up your site."
1024
- #~ msgstr "Let's set up your site."
741
+ #. @context: Suffix after Custom CSS link on color theme page
742
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
743
+ msgid "lets you override any theme variable."
744
+ msgstr "lets you override any theme variable."
1025
745
 
1026
746
  #. @context: Nav item type badge
1027
747
  #: src/ui/dash/appearance/NavigationContent.tsx
@@ -1031,10 +751,8 @@ msgstr "link"
1031
751
  #. @context: Compose format tab
1032
752
  #. @context: Post format badge - link
1033
753
  #. @context: Post format label - link
1034
- #. @context: Post format option
1035
754
  #: src/ui/compose/ComposeDialog.tsx
1036
755
  #: src/ui/dash/FormatBadge.tsx
1037
- #: src/ui/dash/posts/PostForm.tsx
1038
756
  #: src/ui/pages/ArchivePage.tsx
1039
757
  msgid "Link"
1040
758
  msgstr "Link"
@@ -1049,70 +767,43 @@ msgstr "Links"
1049
767
  msgid "Links shown in header"
1050
768
  msgstr "Links shown in header"
1051
769
 
1052
- #. @context: Visibility option - appears everywhere
1053
- #: src/ui/dash/posts/PostForm.tsx
1054
- msgid "Listed"
1055
- msgstr "Listed"
770
+ #. @context: Label for list posts curl example
771
+ #: src/ui/dash/settings/ApiTokensContent.tsx
772
+ msgid "List posts:"
773
+ msgstr "List posts:"
1056
774
 
1057
775
  #. @context: Pagination button - load more items
1058
776
  #: src/ui/shared/Pagination.tsx
1059
777
  msgid "Load more"
1060
778
  msgstr "Load more"
1061
779
 
1062
- #. @context: Loading state for media picker
1063
- #: src/ui/dash/posts/PostForm.tsx
1064
- msgid "Loading..."
1065
- msgstr "Loading..."
1066
-
1067
- #. @context: Page slug validation message
1068
- #: src/ui/dash/PageForm.tsx
1069
- msgid "Lowercase letters, numbers, and hyphens only"
1070
- msgstr "Lowercase letters, numbers, and hyphens only"
1071
-
1072
780
  #. @context: Collection sort order option
781
+ #. @context: Collection sort order option
782
+ #: src/ui/compose/ComposeDialog.tsx
1073
783
  #: src/ui/shared/CollectionsSidebar.tsx
1074
784
  msgid "Lowest rated"
1075
785
  msgstr "Lowest rated"
1076
786
 
1077
- #. @context: Media detail section - Markdown snippet
1078
- #: src/ui/dash/media/ViewMediaContent.tsx
1079
- msgid "Markdown"
1080
- msgstr "Markdown"
787
+ #. @context: Settings item description for sessions
788
+ #: src/ui/dash/settings/AccountMenuContent.tsx
789
+ msgid "Manage active sign-in sessions"
790
+ msgstr "Manage active sign-in sessions"
1081
791
 
1082
792
  #. @context: Placeholder hint for markdown-enabled textareas
1083
793
  #: src/ui/dash/settings/GeneralContent.tsx
1084
794
  msgid "Markdown supported"
1085
795
  msgstr "Markdown supported"
1086
796
 
1087
- #. @context: Label for max visible nav links number input
1088
- #: src/ui/dash/appearance/NavigationContent.tsx
1089
- #~ msgid "Max visible links"
1090
- #~ msgstr "Max visible links"
1091
-
1092
797
  #. @context: Toast after saving max visible nav links setting
1093
798
  #: src/ui/dash/appearance/NavigationContent.tsx
1094
799
  msgid "Max visible links saved"
1095
800
  msgstr "Max visible links saved"
1096
801
 
1097
- #. @context: Settings form field for max visible nav links in header before overflow menu
1098
- #: src/ui/dash/settings/GeneralContent.tsx
1099
- #~ msgid "Max Visible Nav Links"
1100
- #~ msgstr "Max Visible Nav Links"
1101
-
1102
802
  #. @context: Compose toolbar - media tooltip
1103
- #. @context: Media main heading
1104
- #. @context: Post form field - media attachments
1105
803
  #: src/ui/compose/ComposeDialog.tsx
1106
- #: src/ui/dash/media/MediaListContent.tsx
1107
- #: src/ui/dash/posts/PostForm.tsx
1108
804
  msgid "Media"
1109
805
  msgstr "Media"
1110
806
 
1111
- #. @context: Dashboard header menu button
1112
- #: src/ui/layouts/DashLayout.tsx
1113
- msgid "Menu"
1114
- msgstr "Menu"
1115
-
1116
807
  #. @context: Aria-label for more button
1117
808
  #: src/ui/shared/CollectionsSidebar.tsx
1118
809
  msgid "More actions"
@@ -1123,31 +814,13 @@ msgstr "More actions"
1123
814
  msgid "More links"
1124
815
  msgstr "More links"
1125
816
 
1126
- #. @context: Header more button tooltip
1127
- #: src/ui/compose/ComposeDialog.tsx
1128
- #~ msgid "More options"
1129
- #~ msgstr "More options"
1130
-
1131
- #. @context: Setup site name placeholder
1132
- #: src/app.tsx
1133
- #~ msgid "My Blog"
1134
- #~ msgstr "My Blog"
1135
-
1136
817
  #. @context: Collection title placeholder
818
+ #. @context: Collection title placeholder
819
+ #: src/ui/compose/ComposeDialog.tsx
1137
820
  #: src/ui/shared/CollectionsSidebar.tsx
1138
821
  msgid "My Collection"
1139
822
  msgstr "My Collection"
1140
823
 
1141
- #. @context: Account settings form field
1142
- #: src/ui/dash/settings/AccountContent.tsx
1143
- msgid "Name"
1144
- msgstr "Name"
1145
-
1146
- #. @context: Error toast when display name is empty
1147
- #: src/routes/dash/settings.tsx
1148
- #~ msgid "Name is required."
1149
- #~ msgstr "Name is required."
1150
-
1151
824
  #. @context: Settings item description for general
1152
825
  #: src/ui/dash/settings/SettingsRootContent.tsx
1153
826
  msgid "Name, description, language"
@@ -1170,32 +843,19 @@ msgstr "Navigation items"
1170
843
  msgid "Navigation Preview"
1171
844
  msgstr "Navigation Preview"
1172
845
 
1173
- #. @context: Help text with link
1174
- #: src/routes/dash/index.tsx
1175
- msgid "Need help? Visit the <0>documentation</0>"
1176
- msgstr "Need help? Visit the <0>documentation</0>"
1177
-
1178
846
  #. @context: Tooltip/aria for add collection button
1179
847
  #: src/ui/shared/CollectionsSidebar.tsx
1180
848
  msgid "New Collection"
1181
849
  msgstr "New Collection"
1182
850
 
1183
- #. @context: Button to add divider between collections
1184
- #: src/ui/dash/collections/CollectionsListContent.tsx
1185
- #~ msgid "New Divider"
1186
- #~ msgstr "New Divider"
1187
-
851
+ #. @context: Button to create new custom URL
852
+ #. @context: Button to create new custom URL
1188
853
  #. @context: Page heading
1189
- #: src/ui/dash/pages/LinkFormContent.tsx
1190
- #~ msgid "New Link"
1191
- #~ msgstr "New Link"
1192
-
1193
- #. @context: Button to create new page
1194
- #. @context: New page main heading
1195
- #: src/routes/dash/pages.tsx
1196
- #: src/ui/dash/pages/PagesContent.tsx
1197
- msgid "New Page"
1198
- msgstr "New Page"
854
+ #: src/routes/dash/custom-urls.tsx
855
+ #: src/routes/dash/custom-urls.tsx
856
+ #: src/routes/dash/custom-urls.tsx
857
+ msgid "New Custom URL"
858
+ msgstr "New Custom URL"
1199
859
 
1200
860
  #. @context: Password form field
1201
861
  #. @context: Password reset form field
@@ -1204,25 +864,16 @@ msgstr "New Page"
1204
864
  msgid "New Password"
1205
865
  msgstr "New Password"
1206
866
 
1207
- #. @context: Button to create new post
1208
- #. @context: Button to create new post
1209
- #. @context: Page heading
1210
- #: src/routes/dash/index.tsx
1211
- #: src/routes/dash/posts.tsx
1212
- #: src/routes/dash/posts.tsx
1213
- msgid "New Post"
1214
- msgstr "New Post"
1215
-
1216
- #. @context: Button to create new redirect
1217
- #. @context: Button to create new redirect
1218
- #. @context: Page heading
1219
- #: src/routes/dash/redirects.tsx
1220
- #: src/routes/dash/redirects.tsx
1221
- #: src/routes/dash/redirects.tsx
1222
- msgid "New Redirect"
1223
- msgstr "New Redirect"
867
+ #. @context: Browser page title for the new post page
868
+ #. @context: Page title for the new post page
869
+ #: src/routes/pages/new.tsx
870
+ #: src/ui/pages/ComposePage.tsx
871
+ msgid "New post"
872
+ msgstr "New post"
1224
873
 
1225
874
  #. @context: Collection sort order option
875
+ #. @context: Collection sort order option
876
+ #: src/ui/compose/ComposeDialog.tsx
1226
877
  #: src/ui/shared/CollectionsSidebar.tsx
1227
878
  msgid "Newest first"
1228
879
  msgstr "Newest first"
@@ -1234,41 +885,31 @@ msgstr "Newest first"
1234
885
  msgid "Next"
1235
886
  msgstr "Next"
1236
887
 
1237
- #. @context: Compose collection combobox empty state
1238
- #: src/ui/compose/ComposeDialog.tsx
1239
- #~ msgid "No collections found."
1240
- #~ msgstr "No collections found."
1241
-
1242
- #. @context: Empty state message on collections page
1243
- #: src/ui/pages/CollectionsPage.tsx
1244
- #~ msgid "No collections yet."
1245
- #~ msgstr "No collections yet."
888
+ #. @context: Empty state when no sessions exist (shouldn't normally appear)
889
+ #: src/ui/dash/settings/SessionsContent.tsx
890
+ msgid "No active sessions found."
891
+ msgstr "No active sessions found."
1246
892
 
1247
893
  #. @context: Empty state message on collections page
1248
894
  #: src/ui/pages/CollectionsPage.tsx
1249
895
  msgid "No collections yet. Start one to organize posts by topic."
1250
896
  msgstr "No collections yet. Start one to organize posts by topic."
1251
897
 
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."
898
+ #. @context: Empty state message
899
+ #: src/routes/dash/custom-urls.tsx
900
+ msgid "No custom URLs yet. Create one to add redirects or custom paths for posts."
901
+ msgstr "No custom URLs yet. Create one to add redirects or custom paths for posts."
902
+
903
+ #. @context: Drafts panel empty state
904
+ #: src/ui/compose/ComposeDialog.tsx
905
+ msgid "No drafts yet. Save a draft to find it here."
906
+ msgstr "No drafts yet. Save a draft to find it here."
1256
907
 
1257
908
  #. @context: Empty state message on featured page
1258
909
  #: src/ui/pages/FeaturedPage.tsx
1259
910
  msgid "No featured posts. Mark a post as featured to highlight it here."
1260
911
  msgstr "No featured posts. Mark a post as featured to highlight it here."
1261
912
 
1262
- #. @context: Error when no file was selected for upload
1263
- #: src/routes/api/upload.ts
1264
- #~ msgid "No file provided"
1265
- #~ msgstr "No file provided"
1266
-
1267
- #. @context: Error toast when no file was selected for upload
1268
- #: src/routes/dash/settings.tsx
1269
- #~ msgid "No file provided."
1270
- #~ msgstr "No file provided."
1271
-
1272
913
  #. @context: Error toast when no file was selected for upload
1273
914
  #. @context: Error when no file was selected for upload
1274
915
  #: src/routes/api/upload.ts
@@ -1276,118 +917,31 @@ msgstr "No featured posts. Mark a post as featured to highlight it here."
1276
917
  msgid "No file selected. Choose a file to upload."
1277
918
  msgstr "No file selected. Choose a file to upload."
1278
919
 
1279
- #. @context: Compose collection combobox empty state
920
+ #. @context: Compose collection combobox empty state when search has no results
1280
921
  #: src/ui/compose/ComposeDialog.tsx
1281
922
  msgid "No matching collections."
1282
923
  msgstr "No matching collections."
1283
924
 
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."
1293
-
1294
- #. @context: Post form media empty state
1295
- #: src/ui/dash/posts/PostForm.tsx
1296
- #~ msgid "No media selected yet."
1297
- #~ msgstr "No media selected yet."
1298
-
1299
- #. @context: Empty state message when no media exists
1300
- #: src/ui/dash/media/MediaListContent.tsx
1301
- #~ msgid "No media uploaded yet."
1302
- #~ msgstr "No media uploaded yet."
1303
-
1304
925
  #. @context: Empty state for navigation items
1305
926
  #: src/ui/dash/appearance/NavigationContent.tsx
1306
- msgid "No navigation items yet. Add pages, links, or enable system items below."
1307
- msgstr "No navigation items yet. Add pages, links, or enable system items below."
1308
-
1309
- #. @context: Empty state message
1310
- #: src/routes/dash/navigation.tsx
1311
- #~ msgid "No navigation links configured."
1312
- #~ msgstr "No navigation links configured."
1313
-
1314
- #. @context: Empty state for navigation section
1315
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1316
- #~ msgid "No navigation links yet. Add pages to navigation or create links."
1317
- #~ msgstr "No navigation links yet. Add pages to navigation or create links."
1318
-
1319
- #. @context: Empty state when page search has no results
1320
- #: src/ui/dash/appearance/NavigationContent.tsx
1321
- #~ msgid "No pages found."
1322
- #~ msgstr "No pages found."
1323
-
1324
- #. @context: Empty state message when no pages exist
1325
- #: src/routes/dash/pages.tsx
1326
- #~ msgid "No pages yet."
1327
- #~ msgstr "No pages yet."
1328
-
1329
- #. @context: Empty state for pages list
1330
- #: src/ui/dash/pages/PagesContent.tsx
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."
1338
-
1339
- #. @context: Archive empty state
1340
- #: src/ui/pages/ArchivePage.tsx
1341
- #~ msgid "No posts found."
1342
- #~ msgstr "No posts found."
927
+ msgid "No navigation items yet. Add links or enable system items below."
928
+ msgstr "No navigation items yet. Add links or enable system items below."
1343
929
 
1344
- #. @context: Empty state message
1345
- #: src/ui/pages/CollectionPage.tsx
1346
- #~ msgid "No posts in this collection."
1347
- #~ msgstr "No posts in this collection."
1348
-
1349
- #. @context: Archive empty state
930
+ #. @context: Archive empty state with filters
1350
931
  #: src/ui/pages/ArchivePage.tsx
1351
- msgid "No posts match this filter."
1352
- msgstr "No posts match this filter."
1353
-
1354
- #. @context: Empty state message on home page
1355
- #: src/ui/pages/HomePage.tsx
1356
- #~ msgid "No posts yet."
1357
- #~ msgstr "No posts yet."
1358
-
1359
- #. @context: Empty state message
1360
- #: src/routes/dash/redirects.tsx
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."
932
+ msgid "No posts match these filters. Try adjusting your selection or clear all filters."
933
+ msgstr "No posts match these filters. Try adjusting your selection or clear all filters."
1373
934
 
1374
935
  #. @context: Search empty results
1375
936
  #: src/ui/pages/SearchPage.tsx
1376
937
  msgid "No results. Try different keywords."
1377
938
  msgstr "No results. Try different keywords."
1378
939
 
1379
- #. @context: No rating selected
1380
- #: src/ui/compose/ComposeDialog.tsx
1381
- #~ msgid "None"
1382
- #~ msgstr "None"
1383
-
1384
940
  #. @context: Compose format tab
1385
941
  #. @context: Post format badge - note
1386
942
  #. @context: Post format label - note
1387
- #. @context: Post format option
1388
943
  #: src/ui/compose/ComposeDialog.tsx
1389
944
  #: src/ui/dash/FormatBadge.tsx
1390
- #: src/ui/dash/posts/PostForm.tsx
1391
945
  #: src/ui/pages/ArchivePage.tsx
1392
946
  msgid "Note"
1393
947
  msgstr "Note"
@@ -1402,12 +956,9 @@ msgstr "Notes"
1402
956
  msgid "Nothing here yet."
1403
957
  msgstr "Nothing here yet."
1404
958
 
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
-
1410
959
  #. @context: Collection sort order option
960
+ #. @context: Collection sort order option
961
+ #: src/ui/compose/ComposeDialog.tsx
1411
962
  #: src/ui/shared/CollectionsSidebar.tsx
1412
963
  msgid "Oldest first"
1413
964
  msgstr "Oldest first"
@@ -1424,65 +975,25 @@ msgstr "Open with Featured posts"
1424
975
  msgid "Order saved"
1425
976
  msgstr "Order saved"
1426
977
 
1427
- #. @context: Section heading for pages not in navigation
1428
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1429
- #~ msgid "Other pages"
1430
- #~ msgstr "Other pages"
1431
-
1432
- #. @context: Nav item type badge
1433
- #: src/ui/dash/appearance/NavigationContent.tsx
1434
- msgid "page"
1435
- msgstr "page"
1436
-
1437
- #. @context: Default page heading when untitled
1438
- #: src/routes/dash/pages.tsx
1439
- msgid "Page"
1440
- msgstr "Page"
1441
-
1442
978
  #. @context: Pagination - current page indicator
1443
979
  #: src/ui/shared/Pagination.tsx
1444
980
  msgid "Page {page}"
1445
981
  msgstr "Page {page}"
1446
982
 
1447
- #. @context: Page content placeholder
1448
- #: src/ui/dash/PageForm.tsx
1449
- msgid "Page content (Markdown supported)..."
1450
- msgstr "Page content (Markdown supported)..."
1451
-
1452
- #. @context: Page title placeholder
1453
- #: src/ui/dash/PageForm.tsx
1454
- msgid "Page title..."
1455
- msgstr "Page title..."
1456
-
1457
- #. @context: Dashboard navigation - pages management
1458
- #. @context: Pages main heading
1459
- #: src/ui/dash/pages/PagesContent.tsx
1460
- #: src/ui/layouts/DashLayout.tsx
1461
- msgid "Pages"
1462
- msgstr "Pages"
1463
-
983
+ #. @context: Settings item — password settings
1464
984
  #. @context: Setup/signin form field - password
1465
985
  #. @context: Setup/signin form field - password
1466
986
  #: src/routes/auth/setup.tsx
1467
987
  #: src/routes/auth/signin.tsx
988
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1468
989
  msgid "Password"
1469
990
  msgstr "Password"
1470
991
 
1471
- #. @context: Toast after changing account password
1472
- #: src/routes/dash/settings.tsx
1473
- #~ msgid "Password changed successfully."
1474
- #~ msgstr "Password changed successfully."
1475
-
1476
992
  #. @context: Toast after changing account password
1477
993
  #: src/routes/dash/settings.tsx
1478
994
  msgid "Password changed."
1479
995
  msgstr "Password changed."
1480
996
 
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."
1485
-
1486
997
  #. @context: Error toast when new password and confirmation differ
1487
998
  #: src/routes/dash/settings.tsx
1488
999
  msgid "Passwords don't match. Make sure both fields are identical."
@@ -1504,91 +1015,42 @@ msgstr ""
1504
1015
  msgid "Paste a URL..."
1505
1016
  msgstr "Paste a URL..."
1506
1017
 
1507
- #. @context: Page form field label - URL path
1508
- #: src/theme/components/PageForm.tsx
1509
- #~ msgid "Path"
1510
- #~ msgstr "Path"
1511
-
1512
- #. @context: Navigation URL help text
1513
- #: src/ui/dash/pages/LinkFormContent.tsx
1514
- #~ msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
1515
- #~ msgstr "Path (e.g. /archive) or full URL (e.g. https://example.com)"
1018
+ #. @context: Custom URL form field
1019
+ #: src/routes/dash/custom-urls.tsx
1020
+ msgid "Path"
1021
+ msgstr "Path"
1516
1022
 
1517
- #. @context: Link to individual post in thread
1518
1023
  #. @context: Link to permanent URL of post
1519
- #: src/ui/pages/PostPage.tsx
1520
- #: src/ui/shared/ThreadView.tsx
1024
+ #: src/ui/shared/PostFooter.tsx
1521
1025
  msgid "Permalink"
1522
1026
  msgstr "Permalink"
1523
1027
 
1524
1028
  #. @context: Post badge - pinned
1525
- #. @context: Post form checkbox - pin to top
1526
- #: src/ui/dash/posts/PostForm.tsx
1527
1029
  #: src/ui/dash/StatusBadge.tsx
1528
1030
  msgid "Pinned"
1529
1031
  msgstr "Pinned"
1530
1032
 
1531
- #. @context: Singular post count label
1532
- #: src/ui/pages/CollectionsPage.tsx
1533
- #~ msgid "post"
1534
- #~ msgstr "post"
1535
-
1536
1033
  #. @context: Compose button - publish post
1537
- #. @context: Default post title
1538
- #: src/routes/dash/posts.tsx
1034
+ #. @context: Custom URL type option
1035
+ #: src/routes/dash/custom-urls.tsx
1539
1036
  #: src/ui/compose/ComposeDialog.tsx
1540
1037
  msgid "Post"
1541
1038
  msgstr "Post"
1542
1039
 
1543
- #. @context: Toast after creating post
1544
- #: src/ui/dash/posts/PostForm.tsx
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."
1552
-
1553
- #. @context: Post title placeholder
1554
- #: src/ui/dash/posts/PostForm.tsx
1555
- msgid "Post title..."
1556
- msgstr "Post title..."
1557
-
1558
- #. @context: Toast after editing post
1559
- #: src/ui/dash/posts/PostForm.tsx
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."
1567
-
1568
- #. @context: Compose loading text while posting
1040
+ #. @context: Compose dropdown option - publish post and mark it as featured
1569
1041
  #: src/ui/compose/ComposeDialog.tsx
1570
- #~ msgid "Posting..."
1571
- #~ msgstr "Posting..."
1572
-
1573
- #. @context: Plural post count label
1574
- #: src/ui/pages/CollectionsPage.tsx
1575
- #~ msgid "posts"
1576
- #~ msgstr "posts"
1577
-
1578
- #. @context: Dashboard heading
1579
- #: src/routes/dash/posts.tsx
1580
- msgid "Posts"
1581
- msgstr "Posts"
1042
+ msgid "Post as Featured"
1043
+ msgstr "Post as Featured"
1582
1044
 
1583
- #. @context: Collection posts section heading
1584
- #: src/ui/dash/collections/ViewCollectionContent.tsx
1585
- #~ msgid "Posts in Collection ({count})"
1586
- #~ msgstr "Posts in Collection ({count})"
1045
+ #. @context: Compose dropdown option - publish post visible only when logged in
1046
+ #: src/ui/compose/ComposeDialog.tsx
1047
+ msgid "Post as Private"
1048
+ msgstr "Post as Private"
1587
1049
 
1588
- #. @context: Media detail section - preview
1589
- #: src/ui/dash/media/ViewMediaContent.tsx
1590
- msgid "Preview"
1591
- msgstr "Preview"
1050
+ #. @context: Compose dropdown option - publish post with unlisted visibility, hidden from main feed
1051
+ #: src/ui/compose/ComposeDialog.tsx
1052
+ msgid "Post Unlisted"
1053
+ msgstr "Post Unlisted"
1592
1054
 
1593
1055
  #. @context: Pagination button - previous page
1594
1056
  #. @context: Pagination button - previous page
@@ -1597,95 +1059,45 @@ msgstr "Preview"
1597
1059
  msgid "Previous"
1598
1060
  msgstr "Previous"
1599
1061
 
1062
+ #. @context: Archive visibility filter - private posts
1063
+ #: src/ui/pages/ArchivePage.tsx
1064
+ msgid "Private"
1065
+ msgstr "Private"
1066
+
1600
1067
  #. @context: Avatar upload button text while generating favicon variants
1601
- #. @context: Upload status - processing
1602
- #: src/ui/dash/media/MediaListContent.tsx
1603
1068
  #: src/ui/dash/settings/AvatarContent.tsx
1604
1069
  msgid "Processing..."
1605
1070
  msgstr "Processing..."
1606
1071
 
1607
- #. @context: Account settings section heading
1608
- #: src/ui/dash/settings/AccountContent.tsx
1609
- msgid "Profile"
1610
- msgstr "Profile"
1611
-
1612
- #. @context: Toast after saving user profile
1613
- #: src/routes/dash/settings.tsx
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"
1072
+ #. @context: Archive visibility filter - public posts
1073
+ #: src/ui/pages/ArchivePage.tsx
1074
+ msgid "Public"
1075
+ msgstr "Public"
1626
1076
 
1627
- #. @context: Button to publish new post
1628
- #: src/ui/dash/posts/PostForm.tsx
1077
+ #. @context: Confirm close action sheet - publish update button for editing published post
1078
+ #: src/ui/compose/ComposeDialog.tsx
1629
1079
  msgid "Publish"
1630
1080
  msgstr "Publish"
1631
1081
 
1632
- #. @context: Page status option - published
1633
1082
  #. @context: Post status badge - published
1634
- #. @context: Post status label
1635
- #. @context: Post status option
1636
- #: src/routes/dash/index.tsx
1637
- #: src/ui/dash/PageForm.tsx
1638
- #: src/ui/dash/posts/PostForm.tsx
1639
1083
  #: src/ui/dash/StatusBadge.tsx
1640
1084
  msgid "Published"
1641
1085
  msgstr "Published"
1642
1086
 
1643
- #. @context: Page status helper text
1644
- #: src/theme/components/PageForm.tsx
1645
- #~ msgid "Published pages are accessible via their path. Drafts are not visible."
1646
- #~ msgstr "Published pages are accessible via their path. Drafts are not visible."
1647
-
1648
- #. @context: Page status helper text
1649
- #: src/ui/dash/PageForm.tsx
1650
- msgid "Published pages are accessible via their slug. Drafts are not visible."
1651
- msgstr "Published pages are accessible via their slug. Drafts are not visible."
1652
-
1653
1087
  #. @context: Toast shown after successful deferred publish
1654
1088
  #: src/ui/compose/ComposeDialog.tsx
1655
1089
  msgid "Published!"
1656
1090
  msgstr "Published!"
1657
1091
 
1658
- #. @context: Dashboard section title
1659
- #: src/routes/dash/index.tsx
1660
- msgid "Quick Actions"
1661
- msgstr "Quick Actions"
1662
-
1663
- #. @context: Post visibility badge - normal
1664
- #: src/theme/components/VisibilityBadge.tsx
1665
- #~ msgid "Quiet"
1666
- #~ msgstr "Quiet"
1667
-
1668
- #. @context: Post visibility option
1669
- #: src/theme/components/PostForm.tsx
1670
- #~ msgid "Quiet (normal)"
1671
- #~ msgstr "Quiet (normal)"
1672
-
1673
1092
  #. @context: Compose format tab
1674
1093
  #. @context: Post format badge - quote
1675
1094
  #. @context: Post format label - quote
1676
- #. @context: Post format option
1677
1095
  #: src/ui/compose/ComposeDialog.tsx
1678
1096
  #: src/ui/dash/FormatBadge.tsx
1679
- #: src/ui/dash/posts/PostForm.tsx
1680
1097
  #: src/ui/pages/ArchivePage.tsx
1681
1098
  msgid "Quote"
1682
1099
  msgstr "Quote"
1683
1100
 
1684
- #. @context: Post form field - quoted text
1685
- #: src/ui/dash/posts/PostForm.tsx
1686
- msgid "Quote Text"
1687
- msgstr "Quote Text"
1688
-
1689
1101
  #. @context: Post format label plural - quotes
1690
1102
  #: src/ui/pages/ArchivePage.tsx
1691
1103
  msgid "Quotes"
@@ -1696,36 +1108,32 @@ msgstr "Quotes"
1696
1108
  msgid "Rate"
1697
1109
  msgstr "Rate"
1698
1110
 
1699
- #. @context: Compose rating field
1700
- #. @context: Compose toolbar - toggle rating
1701
- #: src/ui/compose/ComposeDialog.tsx
1702
- #: src/ui/compose/ComposeDialog.tsx
1703
- #~ msgid "Rating"
1704
- #~ msgstr "Rating"
1111
+ #. @context: Custom URL type option
1112
+ #: src/routes/dash/custom-urls.tsx
1113
+ msgid "Redirect"
1114
+ msgstr "Redirect"
1705
1115
 
1706
- #. @context: Settings item — redirects settings
1707
- #. @context: Settings section heading
1708
- #: src/routes/dash/redirects.tsx
1116
+ #. @context: Redirect type field
1117
+ #: src/routes/dash/custom-urls.tsx
1118
+ msgid "Redirect Type"
1119
+ msgstr "Redirect Type"
1120
+
1121
+ #. @context: Settings item description for custom URLs
1709
1122
  #: src/ui/dash/settings/SettingsRootContent.tsx
1710
- msgid "Redirects"
1711
- msgstr "Redirects"
1123
+ msgid "Redirects and custom paths"
1124
+ msgstr "Redirects and custom paths"
1712
1125
 
1126
+ #. @context: Button to remove icon
1713
1127
  #. @context: Button to remove icon
1714
1128
  #. @context: Button to remove the blog avatar
1715
- #. @context: Remove media attachment button
1716
- #. @context: Remove page from navigation
1129
+ #. @context: Remove system item from navigation
1130
+ #: src/ui/compose/ComposeDialog.tsx
1717
1131
  #: src/ui/dash/appearance/NavigationContent.tsx
1718
- #: src/ui/dash/posts/PostForm.tsx
1719
1132
  #: src/ui/dash/settings/AvatarContent.tsx
1720
1133
  #: src/ui/shared/CollectionsSidebar.tsx
1721
1134
  msgid "Remove"
1722
1135
  msgstr "Remove"
1723
1136
 
1724
- #. @context: Button to delete a divider
1725
- #: src/ui/dash/collections/CollectionsListContent.tsx
1726
- #~ msgid "Remove divider"
1727
- #~ msgstr "Remove divider"
1728
-
1729
1137
  #. @context: Tooltip for divider delete button
1730
1138
  #: src/ui/shared/CollectionsSidebar.tsx
1731
1139
  msgid "Remove Divider"
@@ -1736,6 +1144,11 @@ msgstr "Remove Divider"
1736
1144
  msgid "Reorder"
1737
1145
  msgstr "Reorder"
1738
1146
 
1147
+ #. @context: Compose button - reply to post
1148
+ #: src/ui/compose/ComposeDialog.tsx
1149
+ msgid "Reply"
1150
+ msgstr "Reply"
1151
+
1739
1152
  #. @context: Password reset form submit button
1740
1153
  #. @context: Password reset page heading
1741
1154
  #: src/routes/auth/reset.tsx
@@ -1743,10 +1156,28 @@ msgstr "Reorder"
1743
1156
  msgid "Reset Password"
1744
1157
  msgstr "Reset Password"
1745
1158
 
1159
+ #. @context: Button to revoke API token
1160
+ #. @context: Button to revoke a session
1161
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1162
+ #: src/ui/dash/settings/SessionsContent.tsx
1163
+ msgid "Revoke"
1164
+ msgstr "Revoke"
1165
+
1166
+ #. @context: Confirm dialog for revoking API token
1167
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1168
+ msgid "Revoke this token? Any scripts using it will stop working."
1169
+ msgstr "Revoke this token? Any scripts using it will stop working."
1170
+
1171
+ #. @context: Button to save collection
1746
1172
  #. @context: Button to save collection
1747
1173
  #. @context: Button to save settings
1174
+ #. @context: Button to save settings changes
1175
+ #. @context: Confirm close action sheet - save draft button
1748
1176
  #. @context: Save nav item changes
1177
+ #: src/ui/compose/ComposeDialog.tsx
1178
+ #: src/ui/compose/ComposeDialog.tsx
1749
1179
  #: src/ui/dash/appearance/NavigationContent.tsx
1180
+ #: src/ui/dash/settings/AvatarContent.tsx
1750
1181
  #: src/ui/dash/settings/GeneralContent.tsx
1751
1182
  #: src/ui/shared/CollectionsSidebar.tsx
1752
1183
  msgid "Save"
@@ -1762,25 +1193,20 @@ msgstr "Save as draft"
1762
1193
  msgid "Save as Draft"
1763
1194
  msgstr "Save as Draft"
1764
1195
 
1765
- #. @context: Button to save edited navigation link
1766
- #: src/ui/dash/pages/LinkFormContent.tsx
1767
- #~ msgid "Save Changes"
1768
- #~ msgstr "Save Changes"
1769
-
1770
1196
  #. @context: Button to save custom CSS
1771
1197
  #: src/ui/dash/appearance/AdvancedContent.tsx
1772
1198
  msgid "Save CSS"
1773
1199
  msgstr "Save CSS"
1774
1200
 
1775
- #. @context: Button to save profile
1776
- #: src/ui/dash/settings/AccountContent.tsx
1777
- msgid "Save Profile"
1778
- msgstr "Save Profile"
1201
+ #. @context: Confirm close action sheet subtitle
1202
+ #: src/ui/compose/ComposeDialog.tsx
1203
+ msgid "Save to drafts to edit and post at a later time."
1204
+ msgstr "Save to drafts to edit and post at a later time."
1779
1205
 
1780
- #. @context: Button to save settings
1781
- #: src/ui/dash/settings/GeneralContent.tsx
1782
- #~ msgid "Save Settings"
1783
- #~ msgstr "Save Settings"
1206
+ #. @context: Confirm close action sheet title
1207
+ #: src/ui/compose/ComposeDialog.tsx
1208
+ msgid "Save to drafts?"
1209
+ msgstr "Save to drafts?"
1784
1210
 
1785
1211
  #. @context: Toast after saving a collection
1786
1212
  #: src/ui/shared/CollectionsSidebar.tsx
@@ -1797,25 +1223,19 @@ msgid "Search"
1797
1223
  msgstr "Search"
1798
1224
 
1799
1225
  #. @context: Emoji picker search placeholder
1226
+ #. @context: Emoji picker search placeholder
1227
+ #: src/ui/compose/ComposeDialog.tsx
1800
1228
  #: src/ui/shared/CollectionsSidebar.tsx
1801
1229
  msgid "Search emojis..."
1802
1230
  msgstr "Search emojis..."
1803
1231
 
1804
- #. @context: Search error message
1805
- #: src/routes/pages/search.tsx
1806
- #~ msgid "Search failed. Please try again."
1807
- #~ msgstr "Search failed. Please try again."
1808
-
1809
1232
  #. @context: Icon picker search placeholder
1233
+ #. @context: Icon picker search placeholder
1234
+ #: src/ui/compose/ComposeDialog.tsx
1810
1235
  #: src/ui/shared/CollectionsSidebar.tsx
1811
1236
  msgid "Search icons..."
1812
1237
  msgstr "Search icons..."
1813
1238
 
1814
- #. @context: Placeholder for page search input in combobox
1815
- #: src/ui/dash/appearance/NavigationContent.tsx
1816
- msgid "Search pages…"
1817
- msgstr "Search pages…"
1818
-
1819
1239
  #. @context: Search input placeholder
1820
1240
  #: src/ui/pages/SearchPage.tsx
1821
1241
  msgid "Search posts..."
@@ -1826,23 +1246,11 @@ msgstr "Search posts..."
1826
1246
  msgid "Search..."
1827
1247
  msgstr "Search..."
1828
1248
 
1829
- #. @context: Media picker dialog title
1830
- #: src/ui/dash/posts/PostForm.tsx
1831
- msgid "Select Media"
1832
- msgstr "Select Media"
1833
-
1834
1249
  #. @context: Settings section heading for SEO
1835
1250
  #: src/ui/dash/settings/GeneralContent.tsx
1836
1251
  msgid "SEO"
1837
1252
  msgstr "SEO"
1838
1253
 
1839
- #. @context: Toast after saving SEO settings
1840
- #. @context: Toast after saving SEO settings
1841
- #: src/routes/dash/settings.tsx
1842
- #: src/routes/dash/settings.tsx
1843
- #~ msgid "SEO settings saved successfully."
1844
- #~ msgstr "SEO settings saved successfully."
1845
-
1846
1254
  #. @context: Toast after saving SEO settings
1847
1255
  #. @context: Toast after saving SEO settings
1848
1256
  #: src/routes/dash/settings.tsx
@@ -1850,33 +1258,34 @@ msgstr "SEO"
1850
1258
  msgid "SEO settings updated."
1851
1259
  msgstr "SEO settings updated."
1852
1260
 
1853
- #. @context: Dashboard navigation - site settings
1854
- #: src/ui/layouts/DashLayout.tsx
1855
- msgid "Settings"
1856
- msgstr "Settings"
1261
+ #. @context: Settings item session management
1262
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1263
+ msgid "Sessions"
1264
+ msgstr "Sessions"
1857
1265
 
1858
- #. @context: Toast after saving general settings
1859
- #: src/routes/dash/settings.tsx
1860
- #~ msgid "Settings saved successfully."
1861
- #~ msgstr "Settings saved successfully."
1266
+ #. @context: Settings item description for account
1267
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1268
+ msgid "Sessions, password, export"
1269
+ msgstr "Sessions, password, export"
1862
1270
 
1863
1271
  #. @context: Toast after saving general settings
1864
- #. @context: Toast after saving general settings
1865
- #: src/routes/dash/settings.tsx
1866
1272
  #: src/routes/dash/settings.tsx
1867
1273
  msgid "Settings updated."
1868
1274
  msgstr "Settings updated."
1869
1275
 
1870
- #. @context: Setup page title
1871
- #: src/app.tsx
1872
- #~ msgid "Setup"
1873
- #~ msgstr "Setup"
1276
+ #. @context: Button to collapse expanded thread context
1277
+ #. @context: Collapse reply context
1278
+ #: src/ui/compose/ComposeDialog.tsx
1279
+ #: src/ui/feed/ThreadPreview.tsx
1280
+ msgid "Show less"
1281
+ msgstr "Show less"
1874
1282
 
1875
- #. @context: Link to show remaining thread replies
1876
- #. placeholder {0}: remainingCount === 1 ? "reply" : "replies"
1283
+ #. @context: Button to expand faded thread context
1284
+ #. @context: Expand reply context
1285
+ #: src/ui/compose/ComposeDialog.tsx
1877
1286
  #: src/ui/feed/ThreadPreview.tsx
1878
- msgid "Show {remainingCount} more {0}"
1879
- msgstr "Show {remainingCount} more {0}"
1287
+ msgid "Show more"
1288
+ msgstr "Show more"
1880
1289
 
1881
1290
  #. @context: Sign in form submit button
1882
1291
  #. @context: Sign in page heading
@@ -1885,41 +1294,47 @@ msgstr "Show {remainingCount} more {0}"
1885
1294
  msgid "Sign In"
1886
1295
  msgstr "Sign In"
1887
1296
 
1888
- #. @context: Dashboard menu item to sign out
1889
- #: src/ui/layouts/DashLayout.tsx
1297
+ #. @context: Settings link sign out action
1298
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1890
1299
  msgid "Sign Out"
1891
1300
  msgstr "Sign Out"
1892
1301
 
1302
+ #. @context: Session creation date
1303
+ #. placeholder {0}: formatDate(session.createdAt)
1304
+ #: src/ui/dash/settings/SessionsContent.tsx
1305
+ msgid "Signed in {0}"
1306
+ msgstr "Signed in {0}"
1307
+
1893
1308
  #. @context: Settings group label for site settings
1894
1309
  #: src/ui/dash/settings/SettingsRootContent.tsx
1895
1310
  msgid "Site"
1896
1311
  msgstr "Site"
1897
1312
 
1898
- #. @context: Settings form field
1899
- #: src/ui/dash/settings/GeneralContent.tsx
1900
- #~ msgid "Site Description"
1901
- #~ msgstr "Site Description"
1902
-
1903
1313
  #. @context: Settings section heading for site footer
1904
1314
  #: src/ui/dash/settings/GeneralContent.tsx
1905
1315
  msgid "Site Footer"
1906
1316
  msgstr "Site Footer"
1907
1317
 
1908
1318
  #. @context: Settings form field
1319
+ #. @context: Setup form field - site name
1320
+ #: src/routes/auth/setup.tsx
1909
1321
  #: src/ui/dash/settings/GeneralContent.tsx
1910
1322
  msgid "Site Name"
1911
1323
  msgstr "Site Name"
1912
1324
 
1913
1325
  #. @context: Collection form field
1914
- #. @context: Page form field label - URL slug
1915
- #: src/ui/dash/PageForm.tsx
1326
+ #. @context: Collection form field
1327
+ #: src/ui/compose/ComposeDialog.tsx
1916
1328
  #: src/ui/shared/CollectionsSidebar.tsx
1917
1329
  msgid "Slug"
1918
1330
  msgstr "Slug"
1919
1331
 
1332
+ #. @context: Toast when uploads fail and post is auto-saved as draft
1333
+ #: src/ui/compose/ComposeDialog.tsx
1334
+ msgid "Some uploads failed. Saved as draft."
1335
+ msgstr "Some uploads failed. Saved as draft."
1336
+
1920
1337
  #. @context: Fallback validation error for compose form
1921
- #. @context: Fallback validation error for page form
1922
- #. @context: Fallback validation error for page form
1923
1338
  #. @context: Fallback validation error for password reset form
1924
1339
  #. @context: Fallback validation error for setup form
1925
1340
  #. @context: Fallback validation error for sign-in form
@@ -1927,12 +1342,12 @@ msgstr "Slug"
1927
1342
  #: src/routes/auth/setup.tsx
1928
1343
  #: src/routes/auth/signin.tsx
1929
1344
  #: src/routes/compose.tsx
1930
- #: src/routes/dash/pages.tsx
1931
- #: src/routes/dash/pages.tsx
1932
1345
  msgid "Something doesn't look right. Check the form and try again."
1933
1346
  msgstr "Something doesn't look right. Check the form and try again."
1934
1347
 
1935
1348
  #. @context: Collection form field
1349
+ #. @context: Collection form field
1350
+ #: src/ui/compose/ComposeDialog.tsx
1936
1351
  #: src/ui/shared/CollectionsSidebar.tsx
1937
1352
  msgid "Sort Order"
1938
1353
  msgstr "Sort Order"
@@ -1942,43 +1357,11 @@ msgstr "Sort Order"
1942
1357
  msgid "Source link (optional)"
1943
1358
  msgstr "Source link (optional)"
1944
1359
 
1945
- #. @context: Post form field - name of the source website or author
1946
- #: src/theme/components/PostForm.tsx
1947
- #~ msgid "Source Name (optional)"
1948
- #~ msgstr "Source Name (optional)"
1949
-
1950
- #. @context: Post form field
1951
- #: src/theme/components/PostForm.tsx
1952
- #~ msgid "Source URL (optional)"
1953
- #~ msgstr "Source URL (optional)"
1954
-
1955
- #. @context: Page form field label - publish status
1956
- #. @context: Post form field
1957
- #: src/ui/dash/PageForm.tsx
1958
- #: src/ui/dash/posts/PostForm.tsx
1959
- msgid "Status"
1960
- msgstr "Status"
1961
-
1962
- #. @context: Error when file storage is not set up
1963
- #: src/routes/api/upload.ts
1964
- #~ msgid "Storage not configured"
1965
- #~ msgstr "Storage not configured"
1966
-
1967
- #. @context: Error toast when file storage is not set up
1968
- #: src/routes/dash/settings.tsx
1969
- #~ msgid "Storage not configured."
1970
- #~ msgstr "Storage not configured."
1971
-
1972
1360
  #. @context: Attached text panel hint
1973
1361
  #: src/ui/compose/ComposeDialog.tsx
1974
1362
  msgid "Supplementary content attached to your post"
1975
1363
  msgstr "Supplementary content attached to your post"
1976
1364
 
1977
- #. @context: Media upload instructions - supported formats
1978
- #: src/routes/dash/media.tsx
1979
- #~ msgid "Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB."
1980
- #~ msgstr "Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB."
1981
-
1982
1365
  #. @context: Nav item type badge
1983
1366
  #: src/ui/dash/appearance/NavigationContent.tsx
1984
1367
  msgid "system"
@@ -1989,6 +1372,30 @@ msgstr "system"
1989
1372
  msgid "System links"
1990
1373
  msgstr "System links"
1991
1374
 
1375
+ #. @context: Label on failed upload overlay button, tells user tapping retries the upload
1376
+ #: src/ui/compose/ComposeDialog.tsx
1377
+ msgid "Tap to retry"
1378
+ msgstr "Tap to retry"
1379
+
1380
+ #. @context: Custom URL target slug field
1381
+ #: src/routes/dash/custom-urls.tsx
1382
+ msgid "Target Slug"
1383
+ msgstr "Target Slug"
1384
+
1385
+ #. @context: Archive media filter - posts without any media attachments
1386
+ #. @context: Archive media filter - posts without any media attachments
1387
+ #: src/ui/pages/ArchivePage.tsx
1388
+ #: src/ui/pages/ArchivePage.tsx
1389
+ msgid "Text"
1390
+ msgstr "Text"
1391
+
1392
+ #. @context: Archive media filter - text file attachments
1393
+ #. @context: Attached text panel title
1394
+ #: src/ui/compose/ComposeDialog.tsx
1395
+ #: src/ui/pages/ArchivePage.tsx
1396
+ msgid "Text attachment"
1397
+ msgstr "Text attachment"
1398
+
1992
1399
  #. @context: Error toast when selected font theme is not valid
1993
1400
  #: src/routes/dash/settings.tsx
1994
1401
  msgid "That font theme isn't available. Pick another one."
@@ -1999,15 +1406,10 @@ msgstr "That font theme isn't available. Pick another one."
1999
1406
  msgid "That theme isn't available. Pick another one."
2000
1407
  msgstr "That theme isn't available. Pick another one."
2001
1408
 
2002
- #. @context: Redirect to path help text
2003
- #: src/routes/dash/redirects.tsx
2004
- msgid "The destination path or URL"
2005
- msgstr "The destination path or URL"
2006
-
2007
- #. @context: Redirect from path help text
2008
- #: src/routes/dash/redirects.tsx
2009
- msgid "The path to redirect from"
2010
- msgstr "The path to redirect from"
1409
+ #. @context: Custom URL path help text
1410
+ #: src/routes/dash/custom-urls.tsx
1411
+ msgid "The custom URL path (without leading slash)"
1412
+ msgstr "The custom URL path (without leading slash)"
2011
1413
 
2012
1414
  #. @context: Font theme preview sentence for body text
2013
1415
  #. @context: Font theme preview sentence for headings
@@ -2021,119 +1423,86 @@ msgstr "The quick brown fox jumps over the lazy dog."
2021
1423
  msgid "The rest will be tucked into a ··· menu"
2022
1424
  msgstr "The rest will be tucked into a ··· menu"
2023
1425
 
2024
- #. @context: Quote text placeholder
2025
- #: src/ui/dash/posts/PostForm.tsx
2026
- msgid "The text being quoted..."
2027
- msgstr "The text being quoted..."
1426
+ #. @context: Custom URL target slug help text
1427
+ #: src/routes/dash/custom-urls.tsx
1428
+ msgid "The slug of the target post or collection"
1429
+ msgstr "The slug of the target post or collection"
1430
+
1431
+ #. @context: Link to theming documentation on Custom CSS page
1432
+ #: src/ui/dash/appearance/AdvancedContent.tsx
1433
+ msgid "Theming guide"
1434
+ msgstr "Theming guide"
2028
1435
 
2029
- #. @context: Page slug helper text
2030
- #: src/ui/dash/PageForm.tsx
2031
- msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
2032
- msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1436
+ #. @context: Description for session management
1437
+ #: src/ui/dash/settings/SessionsContent.tsx
1438
+ msgid "These devices are currently signed in to your account. Revoke any session you don't recognize."
1439
+ msgstr "These devices are currently signed in to your account. Revoke any session you don't recognize."
2033
1440
 
2034
1441
  #. @context: Empty state message
2035
1442
  #: src/ui/pages/CollectionPage.tsx
2036
1443
  msgid "This collection is empty. Add posts from the editor."
2037
1444
  msgstr "This collection is empty. Add posts from the editor."
2038
1445
 
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
-
2044
- #. @context: Help text for site description field
2045
- #: src/ui/dash/settings/GeneralContent.tsx
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."
2047
- #~ msgstr "This is displayed above your blog posts on your default home page. This is also used for the meta description on your home page."
2048
-
2049
- #. @context: Help text for site footer field
2050
- #: src/ui/dash/settings/GeneralContent.tsx
2051
- #~ msgid "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
2052
- #~ msgstr "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
2053
-
2054
1446
  #. @context: Help text for avatar upload
2055
1447
  #: src/ui/dash/settings/AvatarContent.tsx
2056
1448
  msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
2057
1449
  msgstr "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
2058
1450
 
2059
- #. @context: Help text for avatar upload
2060
- #: src/ui/dash/settings/GeneralContent.tsx
2061
- #~ msgid "This is used for your favicon."
2062
- #~ msgstr "This is used for your favicon."
2063
-
2064
1451
  #. @context: Password reset error heading
2065
1452
  #: src/routes/auth/reset.tsx
2066
1453
  msgid "This Link Has Expired"
2067
1454
  msgstr "This Link Has Expired"
2068
1455
 
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
-
2074
1456
  #. @context: Password reset error description
2075
1457
  #: src/routes/auth/reset.tsx
2076
1458
  msgid "This reset link is no longer valid. Request a new one to continue."
2077
1459
  msgstr "This reset link is no longer valid. Request a new one to continue."
2078
1460
 
2079
- #. @context: Appearance settings description
2080
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2081
- msgid "This will theme both your site and your dashboard. All color themes support dark mode."
2082
- msgstr "This will theme both your site and your dashboard. All color themes support dark mode."
2083
-
2084
- #. @context: Thread view indicator - first post in thread
2085
- #: src/ui/shared/ThreadView.tsx
2086
- msgid "Thread start"
2087
- msgstr "Thread start"
2088
-
2089
- #. @context: Thread view header - multiple posts
2090
- #: src/ui/shared/ThreadView.tsx
2091
- msgid "Thread with {count} posts"
2092
- msgstr "Thread with {count} posts"
2093
-
2094
- #. @context: Thread view header - single post
2095
- #: src/ui/shared/ThreadView.tsx
2096
- msgid "Thread with 1 post"
2097
- msgstr "Thread with 1 post"
2098
-
2099
1461
  #. @context: Settings form field
2100
1462
  #: src/ui/dash/settings/GeneralContent.tsx
2101
1463
  msgid "Time Zone"
2102
1464
  msgstr "Time Zone"
2103
1465
 
1466
+ #. @context: Collection form field
2104
1467
  #. @context: Collection form field
2105
1468
  #. @context: Compose note title placeholder
2106
1469
  #. @context: Compose toolbar - title tooltip
2107
- #. @context: Page form field label - title
2108
1470
  #: src/ui/compose/ComposeDialog.tsx
2109
1471
  #: src/ui/compose/ComposeDialog.tsx
2110
- #: src/ui/dash/PageForm.tsx
1472
+ #: src/ui/compose/ComposeDialog.tsx
2111
1473
  #: src/ui/shared/CollectionsSidebar.tsx
2112
1474
  msgid "Title"
2113
1475
  msgstr "Title"
2114
1476
 
2115
- #. @context: Post form field
2116
- #: src/ui/dash/posts/PostForm.tsx
2117
- msgid "Title (optional)"
2118
- msgstr "Title (optional)"
2119
-
2120
- #. @context: Redirect form field
2121
- #: src/routes/dash/redirects.tsx
2122
- msgid "To Path"
2123
- msgstr "To Path"
1477
+ #. @context: Archive filter - notes that have a title
1478
+ #. @context: Archive filter - notes that have a title
1479
+ #: src/ui/pages/ArchivePage.tsx
1480
+ #: src/ui/pages/ArchivePage.tsx
1481
+ msgid "Titled"
1482
+ msgstr "Titled"
2124
1483
 
2125
1484
  #. @context: Description for system nav toggles
2126
1485
  #: src/ui/dash/appearance/NavigationContent.tsx
2127
- msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside pages and links."
2128
- msgstr "Toggle built-in navigation items. Enabled items appear in your navigation alongside pages and links."
1486
+ msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
1487
+ msgstr "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
2129
1488
 
2130
1489
  #. @context: Button to expand/collapse nav item edit
2131
1490
  #: src/ui/dash/appearance/NavigationContent.tsx
2132
1491
  msgid "Toggle edit panel"
2133
1492
  msgstr "Toggle edit panel"
2134
1493
 
2135
- #. @context: Redirect form field
2136
- #: src/routes/dash/redirects.tsx
1494
+ #. @context: API token name field label
1495
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1496
+ msgid "Token name"
1497
+ msgstr "Token name"
1498
+
1499
+ #. @context: API tokens description
1500
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1501
+ msgid "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
1502
+ msgstr "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
1503
+
1504
+ #. @context: Custom URL form field
1505
+ #: src/routes/dash/custom-urls.tsx
2137
1506
  msgid "Type"
2138
1507
  msgstr "Type"
2139
1508
 
@@ -2147,45 +1516,25 @@ msgstr "Type the quote..."
2147
1516
  msgid "Typography"
2148
1517
  msgstr "Typography"
2149
1518
 
2150
- #. @context: Button to remove page from navigation
2151
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
2152
- #~ msgid "Un-nav"
2153
- #~ msgstr "Un-nav"
1519
+ #. @context: Fallback label when session device can't be identified
1520
+ #: src/ui/dash/settings/SessionsContent.tsx
1521
+ msgid "Unknown device"
1522
+ msgstr "Unknown device"
2154
1523
 
1524
+ #. @context: Archive visibility filter - unlisted posts
2155
1525
  #. @context: Post badge - unlisted
2156
- #. @context: Visibility option - hidden from feeds
2157
- #: src/ui/dash/posts/PostForm.tsx
2158
1526
  #: src/ui/dash/StatusBadge.tsx
1527
+ #: src/ui/pages/ArchivePage.tsx
2159
1528
  msgid "Unlisted"
2160
1529
  msgstr "Unlisted"
2161
1530
 
2162
- #. @context: Default title for untitled page
2163
- #. @context: Default title for untitled post
2164
- #: src/ui/dash/pages/PagesContent.tsx
2165
- #: src/ui/dash/PostList.tsx
1531
+ #. @context: Archive filter - notes without a title
1532
+ #. @context: Archive filter - notes without a title
1533
+ #: src/ui/pages/ArchivePage.tsx
1534
+ #: src/ui/pages/ArchivePage.tsx
2166
1535
  msgid "Untitled"
2167
1536
  msgstr "Untitled"
2168
1537
 
2169
- #. @context: Button to update existing post
2170
- #: src/ui/dash/posts/PostForm.tsx
2171
- msgid "Update"
2172
- msgstr "Update"
2173
-
2174
- #. @context: Button to save collection changes
2175
- #: src/ui/dash/collections/CollectionForm.tsx
2176
- #~ msgid "Update Collection"
2177
- #~ msgstr "Update Collection"
2178
-
2179
- #. @context: Button to update existing page
2180
- #: src/ui/dash/PageForm.tsx
2181
- msgid "Update Page"
2182
- msgstr "Update Page"
2183
-
2184
- #. @context: Button to upload media file
2185
- #: src/ui/dash/media/MediaListContent.tsx
2186
- msgid "Upload"
2187
- msgstr "Upload"
2188
-
2189
1538
  #. @context: Button to upload avatar image
2190
1539
  #: src/ui/dash/settings/AvatarContent.tsx
2191
1540
  msgid "Upload Avatar"
@@ -2193,10 +1542,8 @@ msgstr "Upload Avatar"
2193
1542
 
2194
1543
  #. @context: Error toast when avatar upload fails
2195
1544
  #. @context: Error when file upload fails
2196
- #. @context: Upload error message
2197
1545
  #: src/routes/api/upload.ts
2198
1546
  #: src/routes/dash/settings.tsx
2199
- #: src/ui/dash/media/MediaListContent.tsx
2200
1547
  msgid "Upload didn't go through. Try again in a moment."
2201
1548
  msgstr "Upload didn't go through. Try again in a moment."
2202
1549
 
@@ -2205,103 +1552,46 @@ msgstr "Upload didn't go through. Try again in a moment."
2205
1552
  msgid "Upload failed. Please try again."
2206
1553
  msgstr "Upload failed. Please try again."
2207
1554
 
2208
- #. @context: Media upload instructions - API usage
2209
- #: src/routes/dash/media.tsx
2210
- #~ msgid "Upload images via the API: POST /api/upload with a file form field."
2211
- #~ msgstr "Upload images via the API: POST /api/upload with a file form field."
2212
-
2213
- #. @context: Toast after successful file upload
2214
- #: src/routes/api/upload.ts
2215
- #~ msgid "Upload successful!"
2216
- #~ msgstr "Upload successful!"
2217
-
2218
1555
  #. @context: Avatar upload button text while uploading
2219
1556
  #. @context: Toast shown during background upload
2220
- #. @context: Upload status - uploading
2221
1557
  #: src/ui/compose/ComposeDialog.tsx
2222
- #: src/ui/dash/media/MediaListContent.tsx
2223
1558
  #: src/ui/dash/settings/AvatarContent.tsx
2224
1559
  msgid "Uploading..."
2225
1560
  msgstr "Uploading..."
2226
1561
 
2227
- #. @context: Media detail section - URL
2228
1562
  #. @context: Nav item URL field
2229
1563
  #: src/ui/dash/appearance/NavigationContent.tsx
2230
- #: src/ui/dash/media/ViewMediaContent.tsx
2231
1564
  msgid "URL"
2232
1565
  msgstr "URL"
2233
1566
 
2234
- #. @context: Post form field - source URL
2235
- #: src/ui/dash/posts/PostForm.tsx
2236
- msgid "URL (optional)"
2237
- msgstr "URL (optional)"
2238
-
2239
- #. @context: Settings item description for redirects
2240
- #: src/ui/dash/settings/SettingsRootContent.tsx
2241
- msgid "URL redirects"
2242
- msgstr "URL redirects"
2243
-
2244
1567
  #. @context: Collection path help text
2245
- #: src/ui/dash/collections/CollectionForm.tsx
2246
- #~ msgid "URL-safe identifier (lowercase, numbers, hyphens)"
2247
- #~ msgstr "URL-safe identifier (lowercase, numbers, hyphens)"
2248
-
2249
1568
  #. @context: Collection path help text
1569
+ #: src/ui/compose/ComposeDialog.tsx
2250
1570
  #: src/ui/shared/CollectionsSidebar.tsx
2251
1571
  msgid "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
2252
1572
  msgstr "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
2253
1573
 
2254
- #. @context: Switch label for setting featured posts as default homepage
2255
- #: src/ui/dash/appearance/NavigationContent.tsx
2256
- #~ msgid "Use Featured as default home view"
2257
- #~ msgstr "Use Featured as default home view"
1574
+ #. @context: Heading for API token usage examples
1575
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1576
+ msgid "Usage"
1577
+ msgstr "Usage"
2258
1578
 
2259
- #. @context: Media URL helper text
2260
- #: src/ui/dash/media/ViewMediaContent.tsx
2261
- msgid "Use this URL to embed the media in your posts."
2262
- msgstr "Use this URL to embed the media in your posts."
1579
+ #. @context: Archive media filter - video
1580
+ #: src/ui/pages/ArchivePage.tsx
1581
+ msgid "Video"
1582
+ msgstr "Video"
2263
1583
 
2264
1584
  #. @context: Button to view item on public site
2265
- #. @context: Button to view page on public site
2266
- #. @context: Button to view page on public site
2267
- #. @context: Button to view post
2268
- #. @context: Button to view post on public site
2269
- #: src/routes/dash/pages.tsx
2270
- #: src/routes/dash/posts.tsx
1585
+ #. @context: Toast action button to view the published post
1586
+ #: src/ui/compose/ComposeDialog.tsx
2271
1587
  #: src/ui/dash/ActionButtons.tsx
2272
- #: src/ui/dash/pages/PagesContent.tsx
2273
- #: src/ui/dash/PostList.tsx
2274
1588
  msgid "View"
2275
1589
  msgstr "View"
2276
1590
 
2277
- #. @context: Link to view all posts on archive page
2278
- #: src/routes/pages/home.tsx
2279
- #~ msgid "View all posts →"
2280
- #~ msgstr "View all posts →"
2281
-
2282
- #. @context: Dashboard header link to view the public site
2283
- #: src/ui/layouts/DashLayout.tsx
2284
- #~ msgid "View Site"
2285
- #~ msgstr "View Site"
2286
-
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"
1591
+ #. @context: Prefix before Custom CSS link on color theme page
1592
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1593
+ msgid "Want more control?"
1594
+ msgstr "Want more control?"
2305
1595
 
2306
1596
  #. @context: Setup page welcome heading
2307
1597
  #: src/routes/auth/setup.tsx
@@ -2310,13 +1600,6 @@ msgstr "Welcome to Jant"
2310
1600
 
2311
1601
  #. @context: Compose prompt placeholder text
2312
1602
  #: src/ui/compose/ComposePrompt.tsx
2313
- #~ msgid "What's new?"
2314
- #~ msgstr "What's new?"
2315
-
2316
- #. @context: Compose prompt placeholder text
2317
- #. @context: Post content placeholder
2318
- #: src/ui/compose/ComposePrompt.tsx
2319
- #: src/ui/dash/posts/PostForm.tsx
2320
1603
  msgid "What's on your mind?"
2321
1604
  msgstr "What's on your mind?"
2322
1605
 
@@ -2326,6 +1609,8 @@ msgid "What's on your mind..."
2326
1609
  msgstr "What's on your mind..."
2327
1610
 
2328
1611
  #. @context: Collection description placeholder
1612
+ #. @context: Collection description placeholder
1613
+ #: src/ui/compose/ComposeDialog.tsx
2329
1614
  #: src/ui/shared/CollectionsSidebar.tsx
2330
1615
  msgid "What's this collection about?"
2331
1616
  msgstr "What's this collection about?"
@@ -2335,30 +1620,15 @@ msgstr "What's this collection about?"
2335
1620
  msgid "When off, visitors see your latest posts first"
2336
1621
  msgstr "When off, visitors see your latest posts first"
2337
1622
 
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
1623
  #. @context: Error toast when sign-in credentials are wrong
2344
1624
  #: src/routes/auth/signin.tsx
2345
1625
  msgid "Wrong email or password. Check your credentials and try again."
2346
1626
  msgstr "Wrong email or password. Check your credentials and try again."
2347
1627
 
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
-
2353
- #. @context: Setup form field - user name
2354
- #: src/routes/auth/setup.tsx
2355
- msgid "Your Name"
2356
- msgstr "Your Name"
2357
-
2358
- #. @context: Section heading for navigation items
2359
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
2360
- #~ msgid "Your site navigation"
2361
- #~ msgstr "Your site navigation"
1628
+ #. @context: Confirm close action sheet title when editing a published post
1629
+ #: src/ui/compose/ComposeDialog.tsx
1630
+ msgid "You have unsaved changes"
1631
+ msgstr "You have unsaved changes"
2362
1632
 
2363
1633
  #. @context: Compose thoughts placeholder
2364
1634
  #: src/ui/compose/ComposeDialog.tsx