@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.
- package/dist/app.d.ts +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +307 -137
- package/dist/client.js +1 -0
- package/dist/i18n/context.d.ts +2 -2
- package/dist/i18n/context.js +1 -1
- package/dist/i18n/i18n.d.ts +1 -1
- package/dist/i18n/i18n.js +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +1 -1
- package/dist/i18n/locales/zh-Hans.d.ts.map +1 -1
- package/dist/i18n/locales/zh-Hans.js +1 -1
- package/dist/i18n/locales/zh-Hant.d.ts.map +1 -1
- package/dist/i18n/locales/zh-Hant.js +1 -1
- package/dist/lib/config.d.ts +44 -10
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +69 -44
- package/dist/lib/constants.d.ts +2 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +5 -2
- package/dist/lib/image-processor.js +0 -4
- package/dist/lib/media-upload.js +104 -0
- package/dist/lib/sse.d.ts +82 -13
- package/dist/lib/sse.d.ts.map +1 -1
- package/dist/lib/sse.js +115 -17
- package/dist/lib/theme.d.ts +44 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/lib/theme.js +65 -0
- package/dist/routes/api/upload.js +16 -18
- package/dist/routes/dash/appearance.d.ts +13 -0
- package/dist/routes/dash/appearance.d.ts.map +1 -0
- package/dist/routes/dash/appearance.js +160 -0
- package/dist/routes/dash/collections.js +5 -13
- package/dist/routes/dash/media.js +17 -167
- package/dist/routes/dash/pages.js +4 -10
- package/dist/routes/dash/posts.js +4 -10
- package/dist/routes/dash/redirects.js +3 -7
- package/dist/routes/dash/settings.d.ts.map +1 -1
- package/dist/routes/dash/settings.js +52 -42
- package/dist/services/settings.d.ts +1 -0
- package/dist/services/settings.d.ts.map +1 -1
- package/dist/services/settings.js +3 -0
- package/dist/theme/color-themes.d.ts +30 -0
- package/dist/theme/color-themes.d.ts.map +1 -0
- package/dist/theme/color-themes.js +268 -0
- package/dist/theme/layouts/BaseLayout.d.ts +5 -0
- package/dist/theme/layouts/BaseLayout.d.ts.map +1 -1
- package/dist/theme/layouts/BaseLayout.js +70 -3
- package/dist/theme/layouts/DashLayout.d.ts +2 -0
- package/dist/theme/layouts/DashLayout.d.ts.map +1 -1
- package/dist/theme/layouts/DashLayout.js +11 -1
- package/dist/theme/layouts/index.d.ts +1 -1
- package/dist/theme/layouts/index.d.ts.map +1 -1
- package/dist/types.d.ts +53 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +52 -0
- package/package.json +1 -1
- package/src/app.tsx +260 -81
- package/src/client.ts +1 -0
- package/src/db/migrations/{0000_solid_moon_knight.sql → 0000_square_wallflower.sql} +3 -3
- package/src/db/migrations/meta/0000_snapshot.json +9 -9
- package/src/db/migrations/meta/_journal.json +2 -30
- package/src/i18n/context.tsx +2 -2
- package/src/i18n/i18n.ts +1 -1
- package/src/i18n/index.ts +1 -1
- package/src/i18n/locales/en.po +328 -252
- package/src/i18n/locales/en.ts +1 -1
- package/src/i18n/locales/zh-Hans.po +315 -278
- package/src/i18n/locales/zh-Hans.ts +1 -1
- package/src/i18n/locales/zh-Hant.po +315 -278
- package/src/i18n/locales/zh-Hant.ts +1 -1
- package/src/lib/config.ts +73 -47
- package/src/lib/constants.ts +3 -0
- package/src/lib/image-processor.ts +0 -7
- package/src/lib/media-upload.ts +148 -0
- package/src/lib/sse.ts +156 -16
- package/src/lib/theme.ts +86 -0
- package/src/preset.css +9 -0
- package/src/routes/api/upload.ts +12 -18
- package/src/routes/dash/appearance.tsx +176 -0
- package/src/routes/dash/collections.tsx +5 -13
- package/src/routes/dash/media.tsx +16 -165
- package/src/routes/dash/pages.tsx +4 -10
- package/src/routes/dash/posts.tsx +4 -10
- package/src/routes/dash/redirects.tsx +3 -7
- package/src/routes/dash/settings.tsx +71 -55
- package/src/services/settings.ts +5 -0
- package/src/styles/components.css +93 -0
- package/src/theme/color-themes.ts +321 -0
- package/src/theme/layouts/BaseLayout.tsx +61 -1
- package/src/theme/layouts/DashLayout.tsx +14 -3
- package/src/theme/layouts/index.ts +5 -1
- package/src/types.ts +62 -1
- package/src/db/migrations/0001_add_search_fts.sql +0 -40
- package/src/db/migrations/0002_collection_path.sql +0 -2
- package/src/db/migrations/0003_collection_path_nullable.sql +0 -21
- 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
|
-
|
|
54
|
-
#: src/
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
#: src/
|
|
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
|
-
|
|
120
|
+
#: src/routes/dash/collections.tsx:35
|
|
121
|
+
#: src/theme/layouts/DashLayout.tsx:114
|
|
107
122
|
msgid "Collections"
|
|
108
123
|
msgstr "收藏夾"
|
|
109
124
|
|
|
110
|
-
|
|
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
|
-
|
|
116
|
-
#: src/
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
206
|
+
#: src/routes/dash/index.tsx:36
|
|
207
|
+
#: src/theme/layouts/DashLayout.tsx:78
|
|
174
208
|
msgid "Dashboard"
|
|
175
209
|
msgstr "儀表板"
|
|
176
210
|
|
|
177
|
-
|
|
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
|
-
|
|
203
|
-
#: src/
|
|
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
|
-
|
|
221
|
-
|
|
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
|
-
|
|
272
|
-
#: src/
|
|
273
|
-
|
|
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
|
-
|
|
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 "圖片會自動優化:調整大小至最大 1920 像素,轉換為 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
|
-
|
|
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
|
-
|
|
373
|
-
#: src/routes/dash/
|
|
374
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
391
|
-
|
|
392
|
-
#: src/
|
|
393
|
-
#: src/routes/dash/
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
591
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
808
|
-
|
|
809
|
-
msgid "Upload
|
|
810
|
-
msgstr "
|
|
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 "網址安全識別碼(小寫、數字、連字符)"
|
|
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 "您的姓名"
|