@jant/core 0.2.17 → 0.2.19

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 (99) hide show
  1. package/dist/app.d.ts +1 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +307 -137
  4. package/dist/client.js +1 -0
  5. package/dist/i18n/context.d.ts +2 -2
  6. package/dist/i18n/context.js +1 -1
  7. package/dist/i18n/i18n.d.ts +1 -1
  8. package/dist/i18n/i18n.js +1 -1
  9. package/dist/i18n/index.d.ts +1 -1
  10. package/dist/i18n/index.js +1 -1
  11. package/dist/i18n/locales/en.d.ts.map +1 -1
  12. package/dist/i18n/locales/en.js +1 -1
  13. package/dist/i18n/locales/zh-Hans.d.ts.map +1 -1
  14. package/dist/i18n/locales/zh-Hans.js +1 -1
  15. package/dist/i18n/locales/zh-Hant.d.ts.map +1 -1
  16. package/dist/i18n/locales/zh-Hant.js +1 -1
  17. package/dist/lib/config.d.ts +44 -10
  18. package/dist/lib/config.d.ts.map +1 -1
  19. package/dist/lib/config.js +69 -44
  20. package/dist/lib/constants.d.ts +2 -1
  21. package/dist/lib/constants.d.ts.map +1 -1
  22. package/dist/lib/constants.js +5 -2
  23. package/dist/lib/image-processor.js +0 -4
  24. package/dist/lib/media-upload.js +104 -0
  25. package/dist/lib/sse.d.ts +82 -13
  26. package/dist/lib/sse.d.ts.map +1 -1
  27. package/dist/lib/sse.js +115 -17
  28. package/dist/lib/theme.d.ts +44 -0
  29. package/dist/lib/theme.d.ts.map +1 -0
  30. package/dist/lib/theme.js +65 -0
  31. package/dist/routes/api/upload.js +16 -18
  32. package/dist/routes/dash/appearance.d.ts +13 -0
  33. package/dist/routes/dash/appearance.d.ts.map +1 -0
  34. package/dist/routes/dash/appearance.js +160 -0
  35. package/dist/routes/dash/collections.js +5 -13
  36. package/dist/routes/dash/media.js +17 -167
  37. package/dist/routes/dash/pages.js +4 -10
  38. package/dist/routes/dash/posts.js +4 -10
  39. package/dist/routes/dash/redirects.js +3 -7
  40. package/dist/routes/dash/settings.d.ts.map +1 -1
  41. package/dist/routes/dash/settings.js +52 -42
  42. package/dist/services/settings.d.ts +1 -0
  43. package/dist/services/settings.d.ts.map +1 -1
  44. package/dist/services/settings.js +3 -0
  45. package/dist/theme/color-themes.d.ts +30 -0
  46. package/dist/theme/color-themes.d.ts.map +1 -0
  47. package/dist/theme/color-themes.js +268 -0
  48. package/dist/theme/layouts/BaseLayout.d.ts +5 -0
  49. package/dist/theme/layouts/BaseLayout.d.ts.map +1 -1
  50. package/dist/theme/layouts/BaseLayout.js +70 -3
  51. package/dist/theme/layouts/DashLayout.d.ts +2 -0
  52. package/dist/theme/layouts/DashLayout.d.ts.map +1 -1
  53. package/dist/theme/layouts/DashLayout.js +11 -1
  54. package/dist/theme/layouts/index.d.ts +1 -1
  55. package/dist/theme/layouts/index.d.ts.map +1 -1
  56. package/dist/types.d.ts +53 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js +52 -0
  59. package/package.json +1 -1
  60. package/src/app.tsx +260 -81
  61. package/src/client.ts +1 -0
  62. package/src/db/migrations/{0000_solid_moon_knight.sql → 0000_square_wallflower.sql} +3 -3
  63. package/src/db/migrations/meta/0000_snapshot.json +9 -9
  64. package/src/db/migrations/meta/_journal.json +2 -30
  65. package/src/i18n/context.tsx +2 -2
  66. package/src/i18n/i18n.ts +1 -1
  67. package/src/i18n/index.ts +1 -1
  68. package/src/i18n/locales/en.po +328 -252
  69. package/src/i18n/locales/en.ts +1 -1
  70. package/src/i18n/locales/zh-Hans.po +315 -278
  71. package/src/i18n/locales/zh-Hans.ts +1 -1
  72. package/src/i18n/locales/zh-Hant.po +315 -278
  73. package/src/i18n/locales/zh-Hant.ts +1 -1
  74. package/src/lib/config.ts +73 -47
  75. package/src/lib/constants.ts +3 -0
  76. package/src/lib/image-processor.ts +0 -7
  77. package/src/lib/media-upload.ts +148 -0
  78. package/src/lib/sse.ts +156 -16
  79. package/src/lib/theme.ts +86 -0
  80. package/src/preset.css +9 -0
  81. package/src/routes/api/upload.ts +12 -18
  82. package/src/routes/dash/appearance.tsx +176 -0
  83. package/src/routes/dash/collections.tsx +5 -13
  84. package/src/routes/dash/media.tsx +16 -165
  85. package/src/routes/dash/pages.tsx +4 -10
  86. package/src/routes/dash/posts.tsx +4 -10
  87. package/src/routes/dash/redirects.tsx +3 -7
  88. package/src/routes/dash/settings.tsx +71 -55
  89. package/src/services/settings.ts +5 -0
  90. package/src/styles/components.css +93 -0
  91. package/src/theme/color-themes.ts +321 -0
  92. package/src/theme/layouts/BaseLayout.tsx +61 -1
  93. package/src/theme/layouts/DashLayout.tsx +14 -3
  94. package/src/theme/layouts/index.ts +5 -1
  95. package/src/types.ts +62 -1
  96. package/src/db/migrations/0001_add_search_fts.sql +0 -40
  97. package/src/db/migrations/0002_collection_path.sql +0 -2
  98. package/src/db/migrations/0003_collection_path_nullable.sql +0 -21
  99. package/src/db/migrations/0004_media_uuid.sql +0 -35
@@ -13,863 +13,900 @@ msgstr ""
13
13
  "Language-Team: \n"
14
14
  "Plural-Forms: \n"
15
15
 
16
- #: src/routes/pages/archive.tsx:135
17
16
  #. @context: Archive post reply indicator - plural
17
+ #: src/routes/pages/archive.tsx:180
18
18
  msgid "{count} replies"
19
19
  msgstr "{count} 条回复"
20
20
 
21
- #: src/routes/dash/collections.tsx:196
22
21
  #. @context: Navigation link
22
+ #: src/routes/dash/collections.tsx:272
23
23
  msgid "← Back to Collections"
24
24
  msgstr "← 返回收藏夹"
25
25
 
26
- #: src/routes/pages/collection.tsx:67
27
- #: src/routes/pages/post.tsx:69
28
26
  #. @context: Navigation link
29
27
  #. @context: Navigation link
28
+ #: src/routes/pages/collection.tsx:76
29
+ #: src/routes/pages/post.tsx:51
30
30
  msgid "← Back to home"
31
31
  msgstr "← 返回首页"
32
32
 
33
- #: src/routes/pages/archive.tsx:134
34
33
  #. @context: Archive post reply indicator - single
34
+ #: src/routes/pages/archive.tsx:175
35
35
  msgid "1 reply"
36
36
  msgstr "1 条回复"
37
37
 
38
- #: src/routes/dash/redirects.tsx:95
39
38
  #. @context: Redirect type option
39
+ #: src/routes/dash/redirects.tsx:145
40
40
  msgid "301 (Permanent)"
41
41
  msgstr "301(永久)"
42
42
 
43
- #: src/routes/dash/redirects.tsx:96
44
43
  #. @context: Redirect type option
44
+ #: src/routes/dash/redirects.tsx:151
45
45
  msgid "302 (Temporary)"
46
46
  msgstr "302(临时)"
47
47
 
48
- #: src/routes/pages/archive.tsx:85
49
48
  #. @context: Archive filter - all types
49
+ #: src/routes/pages/archive.tsx:115
50
50
  msgid "All"
51
51
  msgstr "所有"
52
52
 
53
- #: src/routes/pages/archive.tsx:71
54
- #: src/routes/pages/home.tsx:39
53
+ #. @context: Dashboard navigation - appearance settings
54
+ #: src/theme/layouts/DashLayout.tsx:142
55
+ msgid "Appearance"
56
+ msgstr "外观"
57
+
55
58
  #. @context: Archive page title
56
59
  #. @context: Navigation link to archive page
60
+ #: src/routes/pages/archive.tsx:102
61
+ #: src/routes/pages/home.tsx:30
57
62
  msgid "Archive"
58
63
  msgstr "档案馆"
59
64
 
60
- #: src/routes/pages/archive.tsx:169
61
- #: src/theme/components/PostForm.tsx:32
62
- #: src/theme/components/PostList.tsx:41
63
65
  #. @context: Post type badge - article
64
66
  #. @context: Post type label - article
65
67
  #. @context: Post type option
68
+ #: src/routes/pages/archive.tsx:28
69
+ #: src/theme/components/PostForm.tsx:48
70
+ #: src/theme/components/TypeBadge.tsx:20
66
71
  msgid "Article"
67
72
  msgstr "文章"
68
73
 
69
- #: src/routes/pages/archive.tsx:181
70
74
  #. @context: Post type label plural - articles
75
+ #: src/routes/pages/archive.tsx:53
71
76
  msgid "Articles"
72
77
  msgstr "文章"
73
78
 
74
- #: src/routes/dash/media.tsx:140
75
79
  #. @context: Button to go back to media list
80
+ #: src/routes/dash/media.tsx:392
76
81
  msgid "Back"
77
82
  msgstr "返回"
78
83
 
79
- #: src/routes/pages/archive.tsx:158
80
- #: src/routes/pages/page.tsx:52
81
- #: src/routes/pages/search.tsx:138
82
84
  #. @context: Navigation link back to home page
83
85
  #. @context: Navigation link back to home page
84
86
  #. @context: Navigation link back to home page
87
+ #: src/routes/pages/archive.tsx:209
88
+ #: src/routes/pages/page.tsx:37
89
+ #: src/routes/pages/search.tsx:144
85
90
  msgid "Back to home"
86
91
  msgstr "返回首页"
87
92
 
88
- #: src/routes/dash/collections.tsx:103
89
- #: src/routes/dash/collections.tsx:249
90
- #: src/routes/dash/redirects.tsx:105
91
- #: src/theme/components/PageForm.tsx:113
92
- #: src/theme/components/PostForm.tsx:120
93
93
  #. @context: Button to cancel and go back
94
94
  #. @context: Button to cancel form
95
95
  #. @context: Button to cancel form
96
96
  #. @context: Button to cancel form
97
97
  #. @context: Button to cancel form
98
+ #: src/routes/dash/collections.tsx:176
99
+ #: src/routes/dash/collections.tsx:345
100
+ #: src/routes/dash/redirects.tsx:167
101
+ #: src/theme/components/PageForm.tsx:161
102
+ #: src/theme/components/PostForm.tsx:181
98
103
  msgid "Cancel"
99
104
  msgstr "取消"
100
105
 
101
- #: src/routes/dash/collections.tsx:24
102
- #: src/routes/dash/collections.tsx:26
103
- #: src/theme/layouts/DashLayout.tsx:31
106
+ #. @context: Button to change password
107
+ #. @context: Settings section heading
108
+ #: src/routes/dash/settings.tsx:128
109
+ #: src/routes/dash/settings.tsx:188
110
+ msgid "Change Password"
111
+ msgstr "更改密码"
112
+
113
+ #. @context: Hint to click image for lightbox
114
+ #: src/routes/dash/media.tsx:425
115
+ msgid "Click image to view full size"
116
+ msgstr "点击图片查看完整尺寸"
117
+
104
118
  #. @context: Dashboard heading
105
119
  #. @context: Dashboard navigation - collections management
106
- #. @context: Dashboard page title
120
+ #: src/routes/dash/collections.tsx:35
121
+ #: src/theme/layouts/DashLayout.tsx:114
107
122
  msgid "Collections"
108
123
  msgstr "收藏夹"
109
124
 
110
- #: src/app.tsx:151
125
+ #. @context: Appearance settings heading
126
+ #: src/routes/dash/appearance.tsx:108
127
+ msgid "Color theme"
128
+ msgstr "颜色主题"
129
+
111
130
  #. @context: Setup form submit button
131
+ #: src/app.tsx:242
112
132
  msgid "Complete Setup"
113
133
  msgstr "完成设置"
114
134
 
115
- #: src/theme/components/PageForm.tsx:75
116
- #: src/theme/components/PostForm.tsx:60
135
+ #. @context: Password form field
136
+ #: src/routes/dash/settings.tsx:170
137
+ msgid "Confirm New Password"
138
+ msgstr "确认新密码"
139
+
140
+ #. @context: Password reset form field
141
+ #: src/app.tsx:526
142
+ msgid "Confirm Password"
143
+ msgstr "确认密码"
144
+
117
145
  #. @context: Page form field label - content
118
146
  #. @context: Post form field
147
+ #: src/theme/components/PageForm.tsx:95
148
+ #: src/theme/components/PostForm.tsx:84
119
149
  msgid "Content"
120
150
  msgstr "内容"
121
151
 
122
- #: src/routes/dash/media.tsx:184
123
- #: src/routes/dash/media.tsx:210
124
152
  #. @context: Button to copy Markdown to clipboard
125
153
  #. @context: Button to copy URL to clipboard
154
+ #: src/routes/dash/media.tsx:463
155
+ #: src/routes/dash/media.tsx:500
126
156
  msgid "Copy"
127
157
  msgstr "复制"
128
158
 
129
- #: src/routes/dash/collections.tsx:100
130
159
  #. @context: Button to save new collection
160
+ #: src/routes/dash/collections.tsx:170
131
161
  msgid "Create Collection"
132
162
  msgstr "创建集合"
133
163
 
134
- #: src/theme/components/PageForm.tsx:110
135
164
  #. @context: Button to create new page
165
+ #: src/theme/components/PageForm.tsx:155
136
166
  msgid "Create Page"
137
167
  msgstr "创建页面"
138
168
 
139
- #: src/routes/dash/redirects.tsx:102
140
169
  #. @context: Button to save new redirect
170
+ #: src/routes/dash/redirects.tsx:161
141
171
  msgid "Create Redirect"
142
172
  msgstr "创建重定向"
143
173
 
144
- #: src/routes/dash/pages.tsx:46
174
+ #. @context: Setup page description
175
+ #: src/app.tsx:184
176
+ msgid "Create your admin account."
177
+ msgstr "创建您的管理员账户。"
178
+
145
179
  #. @context: Button in empty state to create first page
180
+ #: src/routes/dash/pages.tsx:50
146
181
  msgid "Create your first page"
147
182
  msgstr "创建您的第一页"
148
183
 
149
- #: src/theme/components/PostList.tsx:57
150
184
  #. @context: Button in empty state to create first post
185
+ #: src/theme/components/PostList.tsx:29
151
186
  msgid "Create your first post"
152
187
  msgstr "创建你的第一篇帖子"
153
188
 
154
- #: src/theme/components/PostForm.tsx:104
189
+ #. @context: Password form field
190
+ #: src/routes/dash/settings.tsx:137
191
+ msgid "Current Password"
192
+ msgstr "当前密码"
193
+
155
194
  #. @context: Post form field
195
+ #: src/theme/components/PostForm.tsx:154
156
196
  msgid "Custom Path (optional)"
157
197
  msgstr "自定义路径(可选)"
158
198
 
159
- #: src/routes/dash/collections.tsx:255
160
- #: src/routes/dash/media.tsx:220
161
- #: src/routes/dash/pages.tsx:176
162
- #. @context: Heading for destructive actions section
163
- #. @context: Section heading for dangerous/destructive actions
164
199
  #. @context: Section heading for dangerous/destructive actions
200
+ #: src/theme/components/DangerZone.tsx:55
165
201
  msgid "Danger Zone"
166
202
  msgstr "危险区域"
167
203
 
168
- #: src/routes/dash/index.tsx:26
169
- #: src/routes/dash/index.tsx:28
170
- #: src/theme/layouts/DashLayout.tsx:27
171
204
  #. @context: Dashboard main heading
172
205
  #. @context: Dashboard navigation - main dashboard page
173
- #. @context: Dashboard page title
206
+ #: src/routes/dash/index.tsx:36
207
+ #: src/theme/layouts/DashLayout.tsx:78
174
208
  msgid "Dashboard"
175
209
  msgstr "仪表板"
176
210
 
177
- #: src/routes/dash/redirects.tsx:47
211
+ #. @context: Button to delete item
178
212
  #. @context: Button to delete redirect
213
+ #: src/routes/dash/redirects.tsx:60
214
+ #: src/theme/components/ActionButtons.tsx:80
179
215
  msgid "Delete"
180
216
  msgstr "删除"
181
217
 
182
- #: src/routes/dash/collections.tsx:258
183
218
  #. @context: Button to delete collection
219
+ #: src/routes/dash/collections.tsx:354
184
220
  msgid "Delete Collection"
185
221
  msgstr "删除收藏夹"
186
222
 
187
- #: src/routes/dash/media.tsx:233
188
223
  #. @context: Button to delete media
224
+ #: src/routes/dash/media.tsx:511
189
225
  msgid "Delete Media"
190
226
  msgstr "删除媒体"
191
227
 
192
- #: src/routes/dash/pages.tsx:184
193
228
  #. @context: Button to delete page
229
+ #: src/routes/dash/pages.tsx:160
194
230
  msgid "Delete Page"
195
231
  msgstr "删除页面"
196
232
 
197
- #: src/routes/dash/media.tsx:225
198
233
  #. @context: Warning message before deleting media
234
+ #: src/routes/dash/media.tsx:517
199
235
  msgid "Deleting this media will remove it permanently from storage."
200
236
  msgstr "删除此媒体将永久从存储中移除。"
201
237
 
202
- #: src/routes/dash/collections.tsx:94
203
- #: src/routes/dash/collections.tsx:238
238
+ #. @context: Hint shown on signin page when demo credentials are pre-filled
239
+ #: src/app.tsx:345
240
+ msgid "Demo account pre-filled. Just click Sign In."
241
+ msgstr "演示账户已预填。只需点击登录。"
242
+
204
243
  #. @context: Collection form field
205
244
  #. @context: Collection form field
245
+ #: src/routes/dash/collections.tsx:152
246
+ #: src/routes/dash/collections.tsx:327
206
247
  msgid "Description (optional)"
207
248
  msgstr "描述(可选)"
208
249
 
209
- #: src/routes/dash/pages.tsx:61
210
- #: src/theme/components/PageForm.tsx:97
211
- #: src/theme/components/PostForm.tsx:97
212
- #: src/theme/components/PostList.tsx:31
213
- #. @context: Page status badge - draft
214
250
  #. @context: Page status option - draft
215
251
  #. @context: Post visibility badge - draft
216
252
  #. @context: Post visibility option
253
+ #: src/theme/components/PageForm.tsx:132
254
+ #: src/theme/components/PostForm.tsx:143
255
+ #: src/theme/components/VisibilityBadge.tsx:38
217
256
  msgid "Draft"
218
257
  msgstr "草稿"
219
258
 
220
- #: src/routes/dash/index.tsx:43
221
- #. @context: Dashboard stat card - draft posts count
259
+ #. @context: Post status label
260
+ #: src/routes/dash/index.tsx:55
222
261
  msgid "Drafts"
223
262
  msgstr "草稿"
224
263
 
225
- #: src/routes/dash/collections.tsx:49
226
- #: src/routes/dash/collections.tsx:150
227
- #: src/routes/dash/pages.tsx:83
228
- #: src/routes/dash/pages.tsx:157
229
- #: src/routes/dash/posts.tsx:94
230
- #: src/theme/components/PostList.tsx:92
231
264
  #. @context: Button to edit collection
232
265
  #. @context: Button to edit collection
266
+ #. @context: Button to edit item
233
267
  #. @context: Button to edit page
234
268
  #. @context: Button to edit page
235
269
  #. @context: Button to edit post
236
270
  #. @context: Button to edit post
271
+ #: src/routes/dash/collections.tsx:66
272
+ #: src/routes/dash/collections.tsx:210
273
+ #: src/routes/dash/pages.tsx:64
274
+ #: src/routes/dash/pages.tsx:134
275
+ #: src/routes/dash/posts.tsx:126
276
+ #: src/theme/components/ActionButtons.tsx:72
277
+ #: src/theme/components/PostList.tsx:46
237
278
  msgid "Edit"
238
279
  msgstr "编辑"
239
280
 
240
- #: src/routes/dash/collections.tsx:217
241
281
  #. @context: Page heading
282
+ #: src/routes/dash/collections.tsx:294
242
283
  msgid "Edit Collection"
243
284
  msgstr "编辑集合"
244
285
 
245
- #: src/routes/dash/pages.tsx:208
246
286
  #. @context: Edit page main heading
287
+ #: src/routes/dash/pages.tsx:176
247
288
  msgid "Edit Page"
248
289
  msgstr "编辑页面"
249
290
 
250
- #: src/routes/dash/posts.tsx:126
251
291
  #. @context: Page heading
292
+ #: src/routes/dash/posts.tsx:155
252
293
  msgid "Edit Post"
253
294
  msgstr "编辑帖子"
254
295
 
255
- #: src/routes/dash/collections.tsx:213
256
- #: src/routes/dash/pages.tsx:203
257
- #: src/routes/dash/posts.tsx:122
258
- #. @context: Edit page page title
259
- #. @context: Page title for editing collection
260
- #. @context: Page title for editing post
261
- msgid "Edit: {title}"
262
- msgstr "编辑: {title}"
263
-
264
- #: src/app.tsx:144
265
- #: src/app.tsx:221
266
296
  #. @context: Setup/signin form field - email
267
297
  #. @context: Setup/signin form field - email
298
+ #: src/app.tsx:213
299
+ #: src/app.tsx:359
268
300
  msgid "Email"
269
301
  msgstr "电子邮件"
270
302
 
271
- #: src/routes/pages/home.tsx:69
272
- #: src/theme/components/PostForm.tsx:91
273
- #: src/theme/components/PostList.tsx:28
303
+ #. @context: Password reset page description
304
+ #: src/app.tsx:496
305
+ msgid "Enter your new password."
306
+ msgstr "输入您的新密码。"
307
+
274
308
  #. @context: Post visibility badge
275
309
  #. @context: Post visibility badge - featured
276
310
  #. @context: Post visibility option
311
+ #: src/routes/pages/home.tsx:75
312
+ #: src/theme/components/PostForm.tsx:131
313
+ #: src/theme/components/VisibilityBadge.tsx:26
277
314
  msgid "Featured"
278
315
  msgstr "精选"
279
316
 
280
- #: src/routes/pages/search.tsx:92
281
317
  #. @context: Search results count - multiple
318
+ #: src/routes/pages/search.tsx:89
282
319
  msgid "Found {count} results"
283
320
  msgstr "找到 {count} 个结果"
284
321
 
285
- #: src/routes/pages/search.tsx:91
286
322
  #. @context: Search results count - single
323
+ #: src/routes/pages/search.tsx:85
287
324
  msgid "Found 1 result"
288
325
  msgstr "找到 1 个结果"
289
326
 
290
- #: src/routes/dash/redirects.tsx:69
291
327
  #. @context: Redirect form field
328
+ #: src/routes/dash/redirects.tsx:97
292
329
  msgid "From Path"
293
330
  msgstr "来源路径"
294
331
 
295
- #: src/routes/dash/settings.tsx:30
296
332
  #. @context: Settings section heading
333
+ #: src/routes/dash/settings.tsx:52
297
334
  msgid "General"
298
335
  msgstr "常规"
299
336
 
300
- #: src/routes/pages/archive.tsx:172
301
- #: src/theme/components/PostForm.tsx:41
302
- #: src/theme/components/PostList.tsx:44
303
337
  #. @context: Post type badge - image
304
338
  #. @context: Post type label - image
305
339
  #. @context: Post type option
340
+ #: src/routes/pages/archive.tsx:37
341
+ #: src/theme/components/PostForm.tsx:57
342
+ #: src/theme/components/TypeBadge.tsx:29
306
343
  msgid "Image"
307
344
  msgstr "图像"
308
345
 
309
- #: src/routes/pages/archive.tsx:184
310
346
  #. @context: Post type label plural - images
347
+ #: src/routes/pages/archive.tsx:65
311
348
  msgid "Images"
312
349
  msgstr "图片"
313
350
 
314
- #: src/routes/dash/settings.tsx:46
351
+ #. @context: Media upload instructions - auto optimization
352
+ #: src/routes/dash/media.tsx:305
353
+ msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
354
+ msgstr "图像会自动优化:调整大小至最大 1920px,转换为 WebP,并去除元数据。"
355
+
356
+ #. @context: Password reset error heading
357
+ #: src/app.tsx:561
358
+ msgid "Invalid or Expired Link"
359
+ msgstr "无效或过期的链接"
360
+
315
361
  #. @context: Settings form field
362
+ #: src/routes/dash/settings.tsx:93
316
363
  msgid "Language"
317
364
  msgstr "语言"
318
365
 
319
- #: src/app.tsx:130
320
- #. @context: Setup page description
321
- msgid "Let's set up your site."
322
- msgstr "让我们设置您的网站。"
323
-
324
- #: src/routes/pages/archive.tsx:170
325
- #: src/theme/components/PostForm.tsx:35
326
- #: src/theme/components/PostList.tsx:42
327
366
  #. @context: Post type badge - link
328
367
  #. @context: Post type label - link
329
368
  #. @context: Post type option
369
+ #: src/routes/pages/archive.tsx:32
370
+ #: src/theme/components/PostForm.tsx:51
371
+ #: src/theme/components/TypeBadge.tsx:24
330
372
  msgid "Link"
331
373
  msgstr "链接"
332
374
 
333
- #: src/routes/pages/archive.tsx:182
334
375
  #. @context: Post type label plural - links
376
+ #: src/routes/pages/archive.tsx:57
335
377
  msgid "Links"
336
378
  msgstr "链接"
337
379
 
338
- #: src/theme/components/Pagination.tsx:111
339
380
  #. @context: Pagination button - load more items
381
+ #: src/theme/components/Pagination.tsx:103
340
382
  msgid "Load more"
341
383
  msgstr "加载更多"
342
384
 
343
- #: src/theme/components/PageForm.tsx:63
344
385
  #. @context: Page path validation message
386
+ #: src/theme/components/PageForm.tsx:76
345
387
  msgid "Lowercase letters, numbers, and hyphens only"
346
388
  msgstr "仅允许小写字母、数字和连字符"
347
389
 
348
- #: src/routes/dash/media.tsx:195
349
390
  #. @context: Media detail section - Markdown snippet
391
+ #: src/routes/dash/media.tsx:481
350
392
  msgid "Markdown"
351
393
  msgstr "Markdown"
352
394
 
353
- #: src/routes/dash/media.tsx:44
354
- #: src/routes/dash/media.tsx:47
355
- #: src/theme/layouts/DashLayout.tsx:30
356
395
  #. @context: Dashboard navigation - media library
357
396
  #. @context: Media main heading
358
- #. @context: Media page title
397
+ #: src/routes/dash/media.tsx:285
398
+ #: src/theme/layouts/DashLayout.tsx:105
359
399
  msgid "Media"
360
400
  msgstr "媒体"
361
401
 
362
- #: src/app.tsx:137
363
- #. @context: Setup site name placeholder
364
- msgid "My Blog"
365
- msgstr "我的博客"
366
-
367
- #: src/routes/dash/collections.tsx:75
368
402
  #. @context: Collection title placeholder
403
+ #: src/routes/dash/collections.tsx:123
369
404
  msgid "My Collection"
370
405
  msgstr "我的收藏"
371
406
 
372
- #: src/routes/dash/collections.tsx:28
373
- #: src/routes/dash/collections.tsx:69
374
- #: src/routes/dash/collections.tsx:70
407
+ #. @context: Help text with link
408
+ #: src/routes/dash/index.tsx:78
409
+ msgid "Need help? Visit the <0>documentation</0>"
410
+ msgstr "需要帮助吗?访问<0>文档</0>。"
411
+
412
+ #. @context: Button to create new collection
375
413
  #. @context: Button to create new collection
376
414
  #. @context: Page heading
377
- #. @context: Page title
415
+ #: src/routes/dash/collections.tsx:39
416
+ #: src/routes/dash/collections.tsx:52
417
+ #: src/routes/dash/collections.tsx:103
378
418
  msgid "New Collection"
379
419
  msgstr "新收藏"
380
420
 
381
- #: src/routes/dash/pages.tsx:38
382
- #: src/routes/dash/pages.tsx:105
383
- #: src/routes/dash/pages.tsx:107
384
421
  #. @context: Button to create new page
385
422
  #. @context: New page main heading
386
- #. @context: New page page title
423
+ #: src/routes/dash/pages.tsx:37
424
+ #: src/routes/dash/pages.tsx:110
387
425
  msgid "New Page"
388
426
  msgstr "新页面"
389
427
 
390
- #: src/routes/dash/index.tsx:56
391
- #: src/routes/dash/posts.tsx:31
392
- #: src/routes/dash/posts.tsx:45
393
- #: src/routes/dash/posts.tsx:46
428
+ #. @context: Password form field
429
+ #. @context: Password reset form field
430
+ #: src/app.tsx:510
431
+ #: src/routes/dash/settings.tsx:153
432
+ msgid "New Password"
433
+ msgstr "新密码"
434
+
435
+ #. @context: Button to create new post
394
436
  #. @context: Button to create new post
395
- #. @context: Dashboard quick action button to create new post
396
437
  #. @context: Page heading
397
- #. @context: Page title
438
+ #: src/routes/dash/index.tsx:68
439
+ #: src/routes/dash/posts.tsx:30
440
+ #: src/routes/dash/posts.tsx:46
398
441
  msgid "New Post"
399
442
  msgstr "新帖子"
400
443
 
401
- #: src/routes/dash/redirects.tsx:27
402
- #: src/routes/dash/redirects.tsx:64
403
- #: src/routes/dash/redirects.tsx:65
444
+ #. @context: Button to create new redirect
404
445
  #. @context: Button to create new redirect
405
446
  #. @context: Page heading
406
- #. @context: Page title
447
+ #: src/routes/dash/redirects.tsx:33
448
+ #: src/routes/dash/redirects.tsx:46
449
+ #: src/routes/dash/redirects.tsx:87
407
450
  msgid "New Redirect"
408
451
  msgstr "新重定向"
409
452
 
410
- #: src/theme/components/Pagination.tsx:50
411
- #: src/theme/components/Pagination.tsx:164
412
453
  #. @context: Pagination button - next page
413
454
  #. @context: Pagination button - next page
455
+ #: src/theme/components/Pagination.tsx:49
456
+ #: src/theme/components/Pagination.tsx:160
414
457
  msgid "Next"
415
458
  msgstr "下一页"
416
459
 
417
- #: src/routes/dash/collections.tsx:33
418
460
  #. @context: Empty state message
461
+ #: src/routes/dash/collections.tsx:48
419
462
  msgid "No collections yet."
420
463
  msgstr "尚未有任何收藏。"
421
464
 
422
- #: src/routes/dash/media.tsx:74
423
465
  #. @context: Empty state message when no media exists
466
+ #: src/routes/dash/media.tsx:320
424
467
  msgid "No media uploaded yet."
425
468
  msgstr "尚未上传任何媒体。"
426
469
 
427
- #: src/routes/dash/pages.tsx:44
428
470
  #. @context: Empty state message when no pages exist
471
+ #: src/routes/dash/pages.tsx:46
429
472
  msgid "No pages yet."
430
473
  msgstr "还没有页面。"
431
474
 
432
- #: src/routes/pages/archive.tsx:102
433
475
  #. @context: Archive empty state
476
+ #: src/routes/pages/archive.tsx:135
434
477
  msgid "No posts found."
435
478
  msgstr "未找到帖子。"
436
479
 
437
- #: src/routes/dash/collections.tsx:168
438
- #: src/routes/pages/collection.tsx:40
439
480
  #. @context: Empty state message
440
481
  #. @context: Empty state message
482
+ #: src/routes/dash/collections.tsx:233
483
+ #: src/routes/pages/collection.tsx:39
441
484
  msgid "No posts in this collection."
442
485
  msgstr "此集合中没有帖子。"
443
486
 
444
- #: src/routes/pages/home.tsx:49
445
- #: src/theme/components/PostList.tsx:55
446
487
  #. @context: Empty state message on home page
447
488
  #. @context: Empty state message when no posts exist
489
+ #: src/routes/pages/home.tsx:44
490
+ #: src/theme/components/PostList.tsx:25
448
491
  msgid "No posts yet."
449
492
  msgstr "还没有帖子。"
450
493
 
451
- #: src/routes/dash/redirects.tsx:32
452
494
  #. @context: Empty state message
495
+ #: src/routes/dash/redirects.tsx:42
453
496
  msgid "No redirects configured."
454
497
  msgstr "未配置重定向。"
455
498
 
456
- #: src/routes/pages/search.tsx:89
457
499
  #. @context: Search empty results
500
+ #: src/routes/pages/search.tsx:80
458
501
  msgid "No results found."
459
502
  msgstr "未找到结果。"
460
503
 
461
- #: src/routes/pages/archive.tsx:168
462
- #: src/theme/components/PostForm.tsx:29
463
- #: src/theme/components/PostList.tsx:40
464
504
  #. @context: Post type badge - note
465
505
  #. @context: Post type label - note
466
506
  #. @context: Post type option
507
+ #: src/routes/pages/archive.tsx:27
508
+ #: src/theme/components/PostForm.tsx:45
509
+ #: src/theme/components/TypeBadge.tsx:19
467
510
  msgid "Note"
468
511
  msgstr "注意"
469
512
 
470
- #: src/routes/pages/archive.tsx:180
471
513
  #. @context: Post type label plural - notes
514
+ #: src/routes/pages/archive.tsx:49
472
515
  msgid "Notes"
473
516
  msgstr "笔记"
474
517
 
475
- #: src/routes/dash/pages.tsx:147
476
- #: src/routes/dash/pages.tsx:150
477
- #: src/routes/dash/pages.tsx:202
478
- #: src/routes/pages/archive.tsx:173
479
- #: src/theme/components/PostList.tsx:45
480
518
  #. @context: Default page heading when untitled
481
- #. @context: Default page title when untitled
482
- #. @context: Default page title when untitled
483
519
  #. @context: Post type badge - page
484
520
  #. @context: Post type label - page
521
+ #: src/routes/dash/pages.tsx:125
522
+ #: src/routes/pages/archive.tsx:41
523
+ #: src/theme/components/TypeBadge.tsx:33
485
524
  msgid "Page"
486
525
  msgstr "页面"
487
526
 
488
- #: src/theme/components/Pagination.tsx:165
489
527
  #. @context: Pagination - current page indicator
528
+ #: src/theme/components/Pagination.tsx:164
490
529
  msgid "Page {page}"
491
530
  msgstr "页面 {page}"
492
531
 
493
- #: src/theme/components/PageForm.tsx:80
494
532
  #. @context: Page content placeholder
533
+ #: src/theme/components/PageForm.tsx:103
495
534
  msgid "Page content (Markdown supported)..."
496
535
  msgstr "页面内容(支持Markdown)..."
497
536
 
498
- #: src/theme/components/PageForm.tsx:43
499
537
  #. @context: Page title placeholder
538
+ #: src/theme/components/PageForm.tsx:52
500
539
  msgid "Page title..."
501
540
  msgstr "页面标题..."
502
541
 
503
- #: src/routes/dash/pages.tsx:32
504
- #: src/routes/dash/pages.tsx:35
505
- #: src/routes/pages/archive.tsx:185
506
- #: src/theme/layouts/DashLayout.tsx:29
507
542
  #. @context: Dashboard navigation - pages management
508
543
  #. @context: Pages main heading
509
- #. @context: Pages page title
510
544
  #. @context: Post type label plural - pages
545
+ #: src/routes/dash/pages.tsx:36
546
+ #: src/routes/pages/archive.tsx:69
547
+ #: src/theme/layouts/DashLayout.tsx:96
511
548
  msgid "Pages"
512
549
  msgstr "页面"
513
550
 
514
- #: src/app.tsx:148
515
- #: src/app.tsx:225
516
551
  #. @context: Setup/signin form field - password
517
552
  #. @context: Setup/signin form field - password
553
+ #: src/app.tsx:228
554
+ #: src/app.tsx:368
518
555
  msgid "Password"
519
556
  msgstr "密码"
520
557
 
521
- #: src/theme/components/PageForm.tsx:52
522
558
  #. @context: Page form field label - URL path
559
+ #: src/theme/components/PageForm.tsx:63
523
560
  msgid "Path"
524
561
  msgstr "路径"
525
562
 
526
- #: src/routes/pages/post.tsx:62
527
- #: src/theme/components/ThreadView.tsx:66
528
563
  #. @context: Link to individual post in thread
529
564
  #. @context: Link to permanent URL of post
565
+ #: src/routes/pages/post.tsx:41
566
+ #: src/theme/components/ThreadView.tsx:68
530
567
  msgid "Permalink"
531
568
  msgstr "永久链接"
532
569
 
533
- #: src/routes/dash/posts.tsx:85
534
- #: src/routes/dash/posts.tsx:121
535
- #. @context: Default post title
536
570
  #. @context: Default post title
571
+ #: src/routes/dash/posts.tsx:115
537
572
  msgid "Post"
538
573
  msgstr "帖子"
539
574
 
540
- #: src/theme/components/PostForm.tsx:53
541
575
  #. @context: Post title placeholder
576
+ #: src/theme/components/PostForm.tsx:74
542
577
  msgid "Post title..."
543
578
  msgstr "帖子标题..."
544
579
 
545
- #: src/routes/dash/posts.tsx:27
546
- #: src/routes/dash/posts.tsx:29
547
- #: src/theme/layouts/DashLayout.tsx:28
548
580
  #. @context: Dashboard heading
549
581
  #. @context: Dashboard navigation - posts management
550
- #. @context: Dashboard page title
582
+ #: src/routes/dash/posts.tsx:29
583
+ #: src/theme/layouts/DashLayout.tsx:87
551
584
  msgid "Posts"
552
585
  msgstr "帖子"
553
586
 
554
- #: src/routes/dash/collections.tsx:139
555
587
  #. @context: Collection posts section heading
588
+ #: src/routes/dash/collections.tsx:195
556
589
  msgid "Posts in Collection ({count})"
557
590
  msgstr "集合中的帖子 ({count})"
558
591
 
559
- #: src/routes/dash/media.tsx:148
560
592
  #. @context: Media detail section - preview
593
+ #: src/routes/dash/media.tsx:404
561
594
  msgid "Preview"
562
595
  msgstr "预览"
563
596
 
564
- #: src/theme/components/Pagination.tsx:49
565
- #: src/theme/components/Pagination.tsx:163
566
597
  #. @context: Pagination button - previous page
567
598
  #. @context: Pagination button - previous page
599
+ #: src/theme/components/Pagination.tsx:45
600
+ #: src/theme/components/Pagination.tsx:156
568
601
  msgid "Previous"
569
602
  msgstr "上一页"
570
603
 
571
- #: src/theme/components/PostForm.tsx:117
604
+ #. @context: Upload status - processing
605
+ #: src/routes/dash/media.tsx:107
606
+ msgid "Processing..."
607
+ msgstr "处理中..."
608
+
572
609
  #. @context: Button to publish new post
610
+ #: src/theme/components/PostForm.tsx:175
573
611
  msgid "Publish"
574
612
  msgstr "发布"
575
613
 
576
- #: src/routes/dash/index.tsx:34
577
- #: src/routes/dash/pages.tsx:62
578
- #: src/theme/components/PageForm.tsx:94
579
- #. @context: Dashboard stat card - published posts count
580
- #. @context: Page status badge - published
581
614
  #. @context: Page status option - published
615
+ #. @context: Post status label
616
+ #: src/routes/dash/index.tsx:45
617
+ #: src/theme/components/PageForm.tsx:126
582
618
  msgid "Published"
583
619
  msgstr "已发布"
584
620
 
585
- #: src/theme/components/PageForm.tsx:101
586
621
  #. @context: Page status helper text
622
+ #: src/theme/components/PageForm.tsx:139
587
623
  msgid "Published pages are accessible via their path. Drafts are not visible."
588
624
  msgstr "已发布的页面可以通过其路径访问。草稿不可见。"
589
625
 
590
- #: src/routes/dash/index.tsx:52
591
- #. @context: Dashboard stat card - quick actions section
626
+ #. @context: Dashboard section title
627
+ #: src/routes/dash/index.tsx:62
592
628
  msgid "Quick Actions"
593
629
  msgstr "快速操作"
594
630
 
595
- #: src/theme/components/PostList.tsx:29
596
631
  #. @context: Post visibility badge - normal
632
+ #: src/theme/components/VisibilityBadge.tsx:30
597
633
  msgid "Quiet"
598
634
  msgstr "安静"
599
635
 
600
- #: src/theme/components/PostForm.tsx:88
601
636
  #. @context: Post visibility option
637
+ #: src/theme/components/PostForm.tsx:125
602
638
  msgid "Quiet (normal)"
603
639
  msgstr "安静(正常)"
604
640
 
605
- #: src/routes/pages/archive.tsx:171
606
- #: src/theme/components/PostForm.tsx:38
607
- #: src/theme/components/PostList.tsx:43
608
641
  #. @context: Post type badge - quote
609
642
  #. @context: Post type label - quote
610
643
  #. @context: Post type option
644
+ #: src/routes/pages/archive.tsx:33
645
+ #: src/theme/components/PostForm.tsx:54
646
+ #: src/theme/components/TypeBadge.tsx:25
611
647
  msgid "Quote"
612
648
  msgstr "引用"
613
649
 
614
- #: src/routes/pages/archive.tsx:183
615
650
  #. @context: Post type label plural - quotes
651
+ #: src/routes/pages/archive.tsx:61
616
652
  msgid "Quotes"
617
653
  msgstr "引用"
618
654
 
619
- #: src/routes/dash/redirects.tsx:23
620
- #: src/routes/dash/redirects.tsx:25
621
- #: src/theme/layouts/DashLayout.tsx:32
622
655
  #. @context: Dashboard heading
623
656
  #. @context: Dashboard navigation - URL redirects
624
- #. @context: Dashboard page title
657
+ #: src/routes/dash/redirects.tsx:29
658
+ #: src/theme/layouts/DashLayout.tsx:124
625
659
  msgid "Redirects"
626
660
  msgstr "重定向"
627
661
 
628
- #: src/routes/dash/collections.tsx:184
629
662
  #. @context: Button to remove post from collection
663
+ #: src/routes/dash/collections.tsx:257
630
664
  msgid "Remove"
631
665
  msgstr "移除"
632
666
 
633
- #: src/routes/dash/settings.tsx:63
667
+ #. @context: Password reset form submit button
668
+ #. @context: Password reset page heading
669
+ #: src/app.tsx:490
670
+ #: src/app.tsx:541
671
+ msgid "Reset Password"
672
+ msgstr "重置密码"
673
+
634
674
  #. @context: Button to save settings
675
+ #: src/routes/dash/settings.tsx:114
635
676
  msgid "Save Settings"
636
677
  msgstr "保存设置"
637
678
 
638
- #: src/routes/pages/search.tsx:53
639
- #: src/routes/pages/search.tsx:72
640
679
  #. @context: Search page title
641
680
  #. @context: Search submit button
681
+ #: src/routes/pages/search.tsx:36
682
+ #: src/routes/pages/search.tsx:60
642
683
  msgid "Search"
643
684
  msgstr "搜索"
644
685
 
645
- #: src/routes/pages/search.tsx:49
646
- #. @context: Search error message
647
- msgid "Search failed. Please try again."
648
- msgstr "搜索失败。请再试一次。"
649
-
650
- #: src/routes/pages/search.tsx:67
651
686
  #. @context: Search input placeholder
687
+ #: src/routes/pages/search.tsx:52
652
688
  msgid "Search posts..."
653
689
  msgstr "搜索帖子..."
654
690
 
655
- #: src/routes/dash/settings.tsx:24
656
- #: src/routes/dash/settings.tsx:25
657
- #: src/theme/layouts/DashLayout.tsx:33
658
691
  #. @context: Dashboard heading
659
692
  #. @context: Dashboard navigation - site settings
660
- #. @context: Dashboard page title
693
+ #: src/routes/dash/settings.tsx:41
694
+ #: src/theme/layouts/DashLayout.tsx:133
661
695
  msgid "Settings"
662
696
  msgstr "设置"
663
697
 
664
- #: src/app.tsx:125
665
- #. @context: Setup page title
666
- msgid "Setup"
667
- msgstr "设置"
668
-
669
- #: src/app.tsx:211
670
- #: src/app.tsx:215
671
- #: src/app.tsx:228
672
698
  #. @context: Sign in form submit button
673
699
  #. @context: Sign in page heading
674
- #. @context: Sign in page title
700
+ #: src/app.tsx:336
701
+ #: src/app.tsx:381
675
702
  msgid "Sign In"
676
703
  msgstr "登录"
677
704
 
678
- #: src/theme/layouts/DashLayout.tsx:64
679
705
  #. @context: Dashboard header link to sign out
706
+ #: src/theme/layouts/DashLayout.tsx:63
680
707
  msgid "Sign Out"
681
708
  msgstr "登出"
682
709
 
683
- #: src/routes/dash/settings.tsx:39
684
710
  #. @context: Settings form field
711
+ #: src/routes/dash/settings.tsx:76
685
712
  msgid "Site Description"
686
713
  msgstr "网站描述"
687
714
 
688
- #: src/app.tsx:136
689
- #: src/routes/dash/settings.tsx:34
690
715
  #. @context: Settings form field
691
- #. @context: Setup form field - site name
716
+ #: src/routes/dash/settings.tsx:61
692
717
  msgid "Site Name"
693
718
  msgstr "网站名称"
694
719
 
695
- #: src/routes/dash/collections.tsx:79
696
- #: src/routes/dash/collections.tsx:226
697
720
  #. @context: Collection form field
698
721
  #. @context: Collection form field
722
+ #: src/routes/dash/collections.tsx:132
723
+ #: src/routes/dash/collections.tsx:314
699
724
  msgid "Slug"
700
725
  msgstr "缩略名"
701
726
 
702
- #: src/theme/components/PostForm.tsx:73
703
727
  #. @context: Post form field
728
+ #: src/theme/components/PostForm.tsx:102
704
729
  msgid "Source URL (optional)"
705
730
  msgstr "源网址(可选)"
706
731
 
707
- #: src/theme/components/PageForm.tsx:90
708
732
  #. @context: Page form field label - publish status
733
+ #: src/theme/components/PageForm.tsx:116
709
734
  msgid "Status"
710
735
  msgstr "状态"
711
736
 
712
- #: src/routes/dash/media.tsx:67
713
- #. @context: Media upload instructions - supported formats
714
- msgid "Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB."
715
- msgstr "支持的格式:JPEG、PNG、GIF、WebP、SVG。最大大小:10MB。"
716
-
717
- #: src/routes/dash/redirects.tsx:89
718
737
  #. @context: Redirect to path help text
738
+ #: src/routes/dash/redirects.tsx:132
719
739
  msgid "The destination path or URL"
720
740
  msgstr "目标路径或 URL"
721
741
 
722
- #: src/routes/dash/redirects.tsx:77
723
742
  #. @context: Redirect from path help text
743
+ #: src/routes/dash/redirects.tsx:110
724
744
  msgid "The path to redirect from"
725
745
  msgstr "重定向的路径"
726
746
 
727
- #: src/theme/components/PageForm.tsx:68
728
747
  #. @context: Page path helper text
748
+ #: src/theme/components/PageForm.tsx:84
729
749
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
730
750
  msgstr "此页面的 URL 路径。使用小写字母、数字和连字符。"
731
751
 
732
- #: src/theme/components/ThreadView.tsx:58
752
+ #. @context: Password reset error description
753
+ #: src/app.tsx:569
754
+ msgid "This password reset link is invalid or has expired. Please generate a new one."
755
+ msgstr "此密码重置链接无效或已过期。请生成一个新的链接。"
756
+
757
+ #. @context: Appearance settings description
758
+ #: src/routes/dash/appearance.tsx:114
759
+ msgid "This will theme both your site and your dashboard. All color themes support dark mode."
760
+ msgstr "这将为您的网站和仪表板设置主题。所有颜色主题都支持暗黑模式。"
761
+
733
762
  #. @context: Thread view indicator - first post in thread
763
+ #: src/theme/components/ThreadView.tsx:57
734
764
  msgid "Thread start"
735
765
  msgstr "线程开始"
736
766
 
737
- #: src/theme/components/ThreadView.tsx:92
738
767
  #. @context: Thread view header - multiple posts
768
+ #: src/theme/components/ThreadView.tsx:102
739
769
  msgid "Thread with {count} posts"
740
770
  msgstr "包含 {count} 条帖子的话题"
741
771
 
742
- #: src/theme/components/ThreadView.tsx:91
743
772
  #. @context: Thread view header - single post
773
+ #: src/theme/components/ThreadView.tsx:98
744
774
  msgid "Thread with 1 post"
745
775
  msgstr "包含 1 条帖子的话题"
746
776
 
747
- #: src/routes/dash/collections.tsx:74
748
- #: src/routes/dash/collections.tsx:221
749
- #: src/theme/components/PageForm.tsx:37
750
777
  #. @context: Collection form field
751
778
  #. @context: Collection form field
752
779
  #. @context: Page form field label - title
780
+ #: src/routes/dash/collections.tsx:113
781
+ #: src/routes/dash/collections.tsx:304
782
+ #: src/theme/components/PageForm.tsx:43
753
783
  msgid "Title"
754
784
  msgstr "标题"
755
785
 
756
- #: src/theme/components/PostForm.tsx:48
757
786
  #. @context: Post form field
787
+ #: src/theme/components/PostForm.tsx:65
758
788
  msgid "Title (optional)"
759
789
  msgstr "标题(可选)"
760
790
 
761
- #: src/routes/dash/redirects.tsx:81
762
791
  #. @context: Redirect form field
792
+ #: src/routes/dash/redirects.tsx:119
763
793
  msgid "To Path"
764
794
  msgstr "到路径"
765
795
 
766
- #: src/routes/dash/redirects.tsx:93
767
- #: src/theme/components/PostForm.tsx:26
768
796
  #. @context: Post form field - post type
769
797
  #. @context: Redirect form field
798
+ #: src/routes/dash/redirects.tsx:141
799
+ #: src/theme/components/PostForm.tsx:38
770
800
  msgid "Type"
771
801
  msgstr "类型"
772
802
 
773
- #: src/theme/components/PostForm.tsx:94
774
- #: src/theme/components/PostList.tsx:30
775
803
  #. @context: Post visibility badge - unlisted
776
804
  #. @context: Post visibility option
805
+ #: src/theme/components/PostForm.tsx:137
806
+ #: src/theme/components/VisibilityBadge.tsx:34
777
807
  msgid "Unlisted"
778
808
  msgstr "未列出"
779
809
 
780
- #: src/routes/dash/pages.tsx:72
781
- #: src/theme/components/PostList.tsx:79
782
810
  #. @context: Default title for untitled page
783
811
  #. @context: Default title for untitled post
812
+ #: src/routes/dash/pages.tsx:91
813
+ #: src/theme/components/PostList.tsx:71
784
814
  msgid "Untitled"
785
815
  msgstr "无标题"
786
816
 
787
- #: src/theme/components/PostForm.tsx:117
788
817
  #. @context: Button to update existing post
818
+ #: src/theme/components/PostForm.tsx:171
789
819
  msgid "Update"
790
820
  msgstr "更新"
791
821
 
792
- #: src/routes/dash/collections.tsx:246
793
822
  #. @context: Button to save collection changes
823
+ #: src/routes/dash/collections.tsx:339
794
824
  msgid "Update Collection"
795
825
  msgstr "更新收藏夹"
796
826
 
797
- #: src/theme/components/PageForm.tsx:109
798
827
  #. @context: Button to update existing page
828
+ #: src/theme/components/PageForm.tsx:151
799
829
  msgid "Update Page"
800
830
  msgstr "更新页面"
801
831
 
802
- #: src/routes/dash/media.tsx:50
803
832
  #. @context: Button to upload media file
833
+ #: src/routes/dash/media.tsx:115
804
834
  msgid "Upload"
805
835
  msgstr "上传"
806
836
 
807
- #: src/routes/dash/media.tsx:64
808
- #. @context: Media upload instructions - API usage
809
- msgid "Upload images via the API: POST /api/upload with a file form field."
810
- msgstr "通过 API 上传图像:POST /api/upload,使用文件表单字段。"
837
+ #. @context: Upload error message
838
+ #: src/routes/dash/media.tsx:119
839
+ msgid "Upload failed. Please try again."
840
+ msgstr "上传失败。请再试一次。"
841
+
842
+ #. @context: Upload status - uploading
843
+ #: src/routes/dash/media.tsx:111
844
+ msgid "Uploading..."
845
+ msgstr "上传中..."
811
846
 
812
- #: src/routes/dash/media.tsx:169
813
847
  #. @context: Media detail section - URL
848
+ #: src/routes/dash/media.tsx:444
814
849
  msgid "URL"
815
850
  msgstr "网址"
816
851
 
817
- #: src/routes/dash/collections.tsx:89
818
852
  #. @context: Collection path help text
853
+ #: src/routes/dash/collections.tsx:143
819
854
  msgid "URL-safe identifier (lowercase, numbers, hyphens)"
820
855
  msgstr "URL安全标识符(小写字母、数字、连字符)"
821
856
 
822
- #: src/routes/dash/media.tsx:188
823
857
  #. @context: Media URL helper text
858
+ #: src/routes/dash/media.tsx:470
824
859
  msgid "Use this URL to embed the media in your posts."
825
860
  msgstr "使用此 URL 将媒体嵌入到您的帖子中。"
826
861
 
827
- #: src/routes/dash/collections.tsx:52
828
- #: src/routes/dash/collections.tsx:153
829
- #: src/routes/dash/pages.tsx:87
830
- #: src/routes/dash/pages.tsx:161
831
- #: src/routes/dash/posts.tsx:97
832
- #: src/theme/components/PostList.tsx:95
833
862
  #. @context: Button to view collection
834
863
  #. @context: Button to view collection
864
+ #. @context: Button to view item on public site
835
865
  #. @context: Button to view page on public site
836
866
  #. @context: Button to view page on public site
837
867
  #. @context: Button to view post
838
868
  #. @context: Button to view post on public site
869
+ #: src/routes/dash/collections.tsx:71
870
+ #: src/routes/dash/collections.tsx:215
871
+ #: src/routes/dash/pages.tsx:73
872
+ #: src/routes/dash/pages.tsx:143
873
+ #: src/routes/dash/posts.tsx:131
874
+ #: src/theme/components/ActionButtons.tsx:76
875
+ #: src/theme/components/PostList.tsx:51
839
876
  msgid "View"
840
877
  msgstr "查看"
841
878
 
842
- #: src/routes/pages/home.tsx:80
843
879
  #. @context: Link to view all posts on archive page
880
+ #: src/routes/pages/home.tsx:93
844
881
  msgid "View all posts →"
845
882
  msgstr "查看所有帖子 →"
846
883
 
847
- #: src/theme/layouts/DashLayout.tsx:61
848
884
  #. @context: Dashboard header link to view the public site
885
+ #: src/theme/layouts/DashLayout.tsx:53
849
886
  msgid "View Site"
850
887
  msgstr "查看网站"
851
888
 
852
- #: src/theme/components/PostForm.tsx:85
853
889
  #. @context: Post form field
890
+ #: src/theme/components/PostForm.tsx:118
854
891
  msgid "Visibility"
855
892
  msgstr "可见性"
856
893
 
857
- #: src/app.tsx:129
858
894
  #. @context: Setup page welcome heading
895
+ #: src/app.tsx:178
859
896
  msgid "Welcome to Jant"
860
897
  msgstr "欢迎来到Jant"
861
898
 
862
- #: src/theme/components/PostForm.tsx:64
863
899
  #. @context: Post content placeholder
900
+ #: src/theme/components/PostForm.tsx:89
864
901
  msgid "What's on your mind?"
865
902
  msgstr "你在想什么?"
866
903
 
867
- #: src/routes/dash/collections.tsx:95
868
904
  #. @context: Collection description placeholder
905
+ #: src/routes/dash/collections.tsx:161
869
906
  msgid "What's this collection about?"
870
907
  msgstr "这个系列是关于什么的?"
871
908
 
872
- #: src/app.tsx:140
873
909
  #. @context: Setup form field - user name
910
+ #: src/app.tsx:198
874
911
  msgid "Your Name"
875
912
  msgstr "您的姓名"