@open-slide/core 1.0.4 → 1.0.5
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/{build-DqfKmw9h.js → build-CoON6kTb.js} +1 -1
- package/dist/cli/bin.js +3 -3
- package/dist/{config-CN7J0RDO.js → config-Bxtztw-H.js} +373 -221
- package/dist/{config-DweCbRkQ.d.ts → config-D2y1AXaN.d.ts} +3 -0
- package/dist/{dev-jWxtWHAG.js → dev-IezNC17X.js} +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/locale/index.d.ts +24 -0
- package/dist/locale/index.js +1189 -0
- package/dist/{preview-CSA05Gfm.js → preview-BwYjtENY.js} +1 -1
- package/dist/types-BVvl_xup.d.ts +314 -0
- package/dist/vite/index.d.ts +2 -1
- package/dist/vite/index.js +1 -1
- package/package.json +7 -1
- package/src/app/app.tsx +6 -2
- package/src/app/components/asset-view.tsx +87 -64
- package/src/app/components/click-nav-zones.tsx +4 -2
- package/src/app/components/inspector/comment-widget.tsx +9 -7
- package/src/app/components/inspector/inspector-panel.tsx +68 -39
- package/src/app/components/inspector/inspector-provider.tsx +185 -58
- package/src/app/components/inspector/save-bar.tsx +6 -2
- package/src/app/components/panel/save-card.tsx +12 -9
- package/src/app/components/pdf-progress-toast.tsx +11 -4
- package/src/app/components/present/control-bar.tsx +17 -10
- package/src/app/components/present/help-overlay.tsx +18 -17
- package/src/app/components/present/overview-grid.tsx +6 -4
- package/src/app/components/sidebar/folder-item.tsx +16 -7
- package/src/app/components/sidebar/icon-picker.tsx +4 -2
- package/src/app/components/sidebar/sidebar.tsx +87 -25
- package/src/app/components/style-panel/style-panel.tsx +26 -18
- package/src/app/components/theme-toggle.tsx +7 -5
- package/src/app/components/thumbnail-rail.tsx +4 -2
- package/src/app/favicon.ico +0 -0
- package/src/app/lib/inspector/use-editor.ts +9 -7
- package/src/app/lib/use-locale.ts +20 -0
- package/src/app/routes/home.tsx +90 -45
- package/src/app/routes/presenter.tsx +45 -25
- package/src/app/routes/slide.tsx +37 -24
- package/src/app/styles.css +28 -0
- package/src/app/virtual.d.ts +4 -0
- package/src/locale/en.ts +303 -0
- package/src/locale/format.ts +12 -0
- package/src/locale/index.ts +6 -0
- package/src/locale/ja.ts +307 -0
- package/src/locale/types.ts +323 -0
- package/src/locale/zh-cn.ts +303 -0
- package/src/locale/zh-tw.ts +303 -0
|
@@ -0,0 +1,1189 @@
|
|
|
1
|
+
//#region src/locale/en.ts
|
|
2
|
+
const en = {
|
|
3
|
+
id: "en",
|
|
4
|
+
common: {
|
|
5
|
+
cancel: "Cancel",
|
|
6
|
+
save: "Save",
|
|
7
|
+
saving: "Saving",
|
|
8
|
+
saved: "Saved",
|
|
9
|
+
discard: "Discard",
|
|
10
|
+
delete: "Delete",
|
|
11
|
+
rename: "Rename",
|
|
12
|
+
move: "Move",
|
|
13
|
+
close: "Close",
|
|
14
|
+
loading: "Loading",
|
|
15
|
+
loadFailed: "Load failed",
|
|
16
|
+
failedToLoadSlide: "Failed to load slide",
|
|
17
|
+
home: "Home",
|
|
18
|
+
backToHome: "Back to home",
|
|
19
|
+
preview: "Preview",
|
|
20
|
+
add: "Add",
|
|
21
|
+
done: "Done",
|
|
22
|
+
tryAgain: "Try again",
|
|
23
|
+
undo: "Undo",
|
|
24
|
+
redo: "Redo",
|
|
25
|
+
light: "Light",
|
|
26
|
+
dark: "Dark",
|
|
27
|
+
system: "System",
|
|
28
|
+
selected: "Selected"
|
|
29
|
+
},
|
|
30
|
+
notFound: {
|
|
31
|
+
eyebrow: "404 · not found",
|
|
32
|
+
title: "Page not found"
|
|
33
|
+
},
|
|
34
|
+
home: {
|
|
35
|
+
appTitle: "open-slide",
|
|
36
|
+
draft: "Draft",
|
|
37
|
+
folders: "Folders",
|
|
38
|
+
newFolder: "New folder",
|
|
39
|
+
folderName: "Folder name",
|
|
40
|
+
changeIcon: "Change icon",
|
|
41
|
+
iconEmojiTab: "Emoji",
|
|
42
|
+
iconColorTab: "Color",
|
|
43
|
+
folderActions: "Folder actions",
|
|
44
|
+
searchPlaceholder: "Search slides",
|
|
45
|
+
clearSearch: "Clear search",
|
|
46
|
+
noMatches: "No matches",
|
|
47
|
+
nothingMatchesPrefix: "Nothing matches ",
|
|
48
|
+
nothingMatchesSuffix: " in this folder.",
|
|
49
|
+
noSlidesYet: "No slides yet",
|
|
50
|
+
createSlideHintPrefix: "Create ",
|
|
51
|
+
createSlideHintMid: " that ",
|
|
52
|
+
createSlideHintSuffix: ".",
|
|
53
|
+
folderEmptyTitle: "{name} is empty",
|
|
54
|
+
folderEmptyHint: "Drag a slide from Draft into this folder in the sidebar.",
|
|
55
|
+
slideActions: "Slide actions",
|
|
56
|
+
moveToFolder: "Move to folder…",
|
|
57
|
+
renameDialogEyebrow: "Rename",
|
|
58
|
+
renameDialogTitle: "Rename slide",
|
|
59
|
+
renameDialogDescription: "Give this slide a new display name.",
|
|
60
|
+
slideNamePlaceholder: "Slide name",
|
|
61
|
+
moveDialogEyebrow: "Move",
|
|
62
|
+
moveDialogTitle: "Move slide",
|
|
63
|
+
moveDialogDescriptionPrefix: "Choose a folder for ",
|
|
64
|
+
moveDialogDescriptionSuffix: ".",
|
|
65
|
+
deleteDialogEyebrow: "Destructive",
|
|
66
|
+
deleteDialogTitle: "Delete slide?",
|
|
67
|
+
deleteDialogDescriptionPrefix: "This permanently removes ",
|
|
68
|
+
deleteDialogDescriptionMid: " and its files from disk. ",
|
|
69
|
+
deleteDialogDescriptionSuffix: "This action cannot be undone.",
|
|
70
|
+
toastFolderCreated: "Created folder “{name}”",
|
|
71
|
+
toastFolderCreateFailed: "Failed to create folder",
|
|
72
|
+
toastSlideMoved: "Moved “{slide}” to {folder}",
|
|
73
|
+
toastSlideMoveFailed: "Failed to move slide",
|
|
74
|
+
toastFolderDeleted: "Deleted folder “{name}”",
|
|
75
|
+
toastFolderDeleteFailed: "Failed to delete folder",
|
|
76
|
+
pickIcon: "Pick icon"
|
|
77
|
+
},
|
|
78
|
+
slide: {
|
|
79
|
+
home: "Home",
|
|
80
|
+
backToHome: "Back to home",
|
|
81
|
+
download: "Download",
|
|
82
|
+
exportAsHtml: "Export as HTML",
|
|
83
|
+
exportAsPdf: "Export as PDF",
|
|
84
|
+
pdfExportFailed: "PDF export failed",
|
|
85
|
+
present: "Present",
|
|
86
|
+
slidesTab: "Slides",
|
|
87
|
+
assetsTab: "Assets",
|
|
88
|
+
renameSlide: "Rename slide",
|
|
89
|
+
loadingEyebrow: "Loading",
|
|
90
|
+
emptyEyebrow: "Empty",
|
|
91
|
+
nothingToShow: "Nothing to show.",
|
|
92
|
+
emptyHintPrefix: "",
|
|
93
|
+
emptyHintMust: " must ",
|
|
94
|
+
emptyHintSuffix: " a non-empty array of components."
|
|
95
|
+
},
|
|
96
|
+
presenter: {
|
|
97
|
+
eyebrow: "Presenter",
|
|
98
|
+
notLinked: "Not linked",
|
|
99
|
+
nowShowing: "Now showing",
|
|
100
|
+
upNext: "Up next",
|
|
101
|
+
lastSlide: "Last slide",
|
|
102
|
+
endOfDeck: "End of deck",
|
|
103
|
+
speakerNotes: "Speaker notes",
|
|
104
|
+
noNotesPrefix: "No speaker notes for this slide. Add ",
|
|
105
|
+
noNotesSuffix: " to your slide module to see notes here.",
|
|
106
|
+
blackScreen: "Black screen",
|
|
107
|
+
whiteScreen: "White screen",
|
|
108
|
+
prev: "Prev",
|
|
109
|
+
next: "Next",
|
|
110
|
+
black: "Black",
|
|
111
|
+
white: "White",
|
|
112
|
+
reset: "Reset",
|
|
113
|
+
resetTimer: "Reset timer",
|
|
114
|
+
currentTime: "Current time",
|
|
115
|
+
elapsed: "Elapsed",
|
|
116
|
+
jump: "Jump",
|
|
117
|
+
loadingSlide: "Loading {slideId}…"
|
|
118
|
+
},
|
|
119
|
+
present: {
|
|
120
|
+
prevSlideAria: "Previous slide (←)",
|
|
121
|
+
nextSlideAria: "Next slide (→)",
|
|
122
|
+
overviewAria: "Slide overview (O)",
|
|
123
|
+
blackoutAria: "Black screen (B)",
|
|
124
|
+
whiteoutAria: "White screen (W)",
|
|
125
|
+
laserAria: "Laser pointer (L)",
|
|
126
|
+
presenterAria: "Presenter view (P)",
|
|
127
|
+
helpAria: "Keyboard shortcuts (?)",
|
|
128
|
+
exitAria: "Exit (Esc)",
|
|
129
|
+
elapsedTime: "Elapsed time",
|
|
130
|
+
helpEyebrow: "Present mode",
|
|
131
|
+
helpTitle: "Keyboard shortcuts",
|
|
132
|
+
shortcutNext: "Next slide",
|
|
133
|
+
shortcutPrev: "Previous slide",
|
|
134
|
+
shortcutFirstLast: "First / last slide",
|
|
135
|
+
shortcutJump: "Jump to slide",
|
|
136
|
+
shortcutOverview: "Slide overview",
|
|
137
|
+
shortcutBlack: "Black screen",
|
|
138
|
+
shortcutWhite: "White screen",
|
|
139
|
+
shortcutLaser: "Laser pointer",
|
|
140
|
+
shortcutPresenter: "Open Presenter View",
|
|
141
|
+
shortcutToggleHelp: "Toggle this help",
|
|
142
|
+
shortcutCloseExit: "Close overlay / exit",
|
|
143
|
+
overviewDialogAria: "Slide overview",
|
|
144
|
+
overviewEyebrow: "Overview",
|
|
145
|
+
overviewGoToAria: "Go to slide {n}",
|
|
146
|
+
nowBadge: "Now"
|
|
147
|
+
},
|
|
148
|
+
inspector: {
|
|
149
|
+
inspect: "Inspect",
|
|
150
|
+
deselect: "Deselect",
|
|
151
|
+
contentSection: "Content",
|
|
152
|
+
typographySection: "Typography",
|
|
153
|
+
colorSection: "Color",
|
|
154
|
+
textColor: "Text",
|
|
155
|
+
backgroundColor: "Background",
|
|
156
|
+
imageSection: "Image",
|
|
157
|
+
imagePlaceholderSection: "Image placeholder",
|
|
158
|
+
elementTextPlaceholder: "Element text",
|
|
159
|
+
sizeLabel: "Size",
|
|
160
|
+
weightLabel: "Weight",
|
|
161
|
+
weightLight: "Light · 300",
|
|
162
|
+
weightRegular: "Regular · 400",
|
|
163
|
+
weightMedium: "Medium · 500",
|
|
164
|
+
weightSemibold: "Semibold · 600",
|
|
165
|
+
weightBold: "Bold · 700",
|
|
166
|
+
weightExtrabold: "Extrabold · 800",
|
|
167
|
+
styleLabel: "Style",
|
|
168
|
+
boldAria: "Bold",
|
|
169
|
+
italicAria: "Italic",
|
|
170
|
+
lineHeightLabel: "Line height",
|
|
171
|
+
trackingLabel: "Tracking",
|
|
172
|
+
alignLabel: "Align",
|
|
173
|
+
clearAria: "Clear",
|
|
174
|
+
replace: "Replace…",
|
|
175
|
+
replaceImageDialogTitle: "Replace image",
|
|
176
|
+
replaceImageDescription: "Pick an asset from {path}.",
|
|
177
|
+
pickerLoading: "Loading…",
|
|
178
|
+
pickerEmpty: "No images in this slide's assets folder yet. Add some from the Assets tab.",
|
|
179
|
+
placeholderHintLabel: "Hint:",
|
|
180
|
+
noteForAgent: "Note for the agent",
|
|
181
|
+
noteAgentPlaceholder: "Describe a change for the agent…",
|
|
182
|
+
noteShortcutHint: "⌘↵ to send",
|
|
183
|
+
addNote: "Add note",
|
|
184
|
+
unsavedChanges: {
|
|
185
|
+
one: "{count} unsaved change",
|
|
186
|
+
other: "{count} unsaved changes"
|
|
187
|
+
},
|
|
188
|
+
commentsCount: {
|
|
189
|
+
one: "{count} comment",
|
|
190
|
+
other: "{count} comments"
|
|
191
|
+
},
|
|
192
|
+
commentLineLabel: "line {n}",
|
|
193
|
+
commentsEmpty: "No comments yet. Toggle Inspect and click a slide element.",
|
|
194
|
+
commentsApplyHintPrefix: "Run ",
|
|
195
|
+
commentsApplyHintSuffix: " in your agent to apply these.",
|
|
196
|
+
commentDeleteAria: "Delete",
|
|
197
|
+
saveFailed: "Couldn't save:"
|
|
198
|
+
},
|
|
199
|
+
stylePanel: {
|
|
200
|
+
designTokens: "Design tokens",
|
|
201
|
+
draftBadge: "draft",
|
|
202
|
+
unsavedTitle: "Unsaved",
|
|
203
|
+
closePanelAria: "Close design panel",
|
|
204
|
+
colorsSection: "Colors",
|
|
205
|
+
typographySection: "Typography",
|
|
206
|
+
shapeSection: "Shape",
|
|
207
|
+
backgroundLabel: "Background",
|
|
208
|
+
textLabel: "Text",
|
|
209
|
+
accentLabel: "Accent",
|
|
210
|
+
displayFontLabel: "Display",
|
|
211
|
+
bodyFontLabel: "Body",
|
|
212
|
+
heroLabel: "Hero",
|
|
213
|
+
bodyLabel: "Body",
|
|
214
|
+
radiusLabel: "Radius",
|
|
215
|
+
designToggle: "Design",
|
|
216
|
+
designToggleTitle: "Design tokens",
|
|
217
|
+
fontPresetCustom: "Custom…"
|
|
218
|
+
},
|
|
219
|
+
asset: {
|
|
220
|
+
devOnlyMessage: "Asset management is only available in dev mode.",
|
|
221
|
+
sectionAria: "Slide assets",
|
|
222
|
+
eyebrow: "Assets",
|
|
223
|
+
fileCount: {
|
|
224
|
+
one: "{count} file",
|
|
225
|
+
other: "{count} files"
|
|
226
|
+
},
|
|
227
|
+
searchLogos: "Search logos",
|
|
228
|
+
upload: "Upload",
|
|
229
|
+
dropToUpload: "Drop to upload",
|
|
230
|
+
loading: "Loading…",
|
|
231
|
+
noAssetsYet: "No assets yet",
|
|
232
|
+
noAssetsHintPrefix: "Drop files anywhere here, or use ",
|
|
233
|
+
noAssetsHintSuffix: ".",
|
|
234
|
+
nameAlreadyExists: "A file with that name already exists.",
|
|
235
|
+
previewAria: "Preview {name}",
|
|
236
|
+
actionsAria: "Actions for {name}",
|
|
237
|
+
previewMenuItem: "Preview",
|
|
238
|
+
renameMenuItem: "Rename",
|
|
239
|
+
deleteMenuItem: "Delete",
|
|
240
|
+
conflictTitle: "File already exists",
|
|
241
|
+
conflictDescription: "{name} is already in this slide's assets folder.",
|
|
242
|
+
conflictReplace: "Replace",
|
|
243
|
+
conflictRenameCopy: "Rename copy",
|
|
244
|
+
deleteAssetTitle: "Delete asset",
|
|
245
|
+
deleteAssetDescription: "Delete {name}? Imports referencing this file in the slide will break.",
|
|
246
|
+
noPreview: "No preview available",
|
|
247
|
+
importHintComment: "import asset from ",
|
|
248
|
+
importHintSemi: ";",
|
|
249
|
+
logoSearchTitle: "Search logos",
|
|
250
|
+
logoSearchPoweredByPrefix: "Powered by ",
|
|
251
|
+
logoSearchPlaceholder: "Search by brand…",
|
|
252
|
+
logoSearchErrorTitle: "Couldn't reach svgl",
|
|
253
|
+
logoSearchErrorBody: "Check your connection and try again.",
|
|
254
|
+
logoSearchNoResults: "No logos for \"{query}\"",
|
|
255
|
+
logoSearchEmpty: "No logos available",
|
|
256
|
+
logoSearchEmptyHintPrefix: "Try a different brand name, or browse the full catalog at ",
|
|
257
|
+
logoSearchEmptyHintSuffix: ".",
|
|
258
|
+
logoVariantLight: "Light",
|
|
259
|
+
logoVariantDark: "Dark",
|
|
260
|
+
toastUploadFailed: "Upload failed ({status})",
|
|
261
|
+
toastReplaced: "Replaced {name}",
|
|
262
|
+
toastUploadedAs: "Uploaded as {name}",
|
|
263
|
+
toastUploaded: "Uploaded {name}",
|
|
264
|
+
toastRenameFailed: "Rename failed ({status})",
|
|
265
|
+
toastRenamed: "Renamed to {name}",
|
|
266
|
+
toastDeleteFailed: "Delete failed ({status})",
|
|
267
|
+
toastDeleted: "Deleted {name}",
|
|
268
|
+
toastDownloadFailed: "Failed to download logo",
|
|
269
|
+
toastSearchFailed: "Search failed"
|
|
270
|
+
},
|
|
271
|
+
thumbnailRail: {
|
|
272
|
+
pages: "Pages",
|
|
273
|
+
goToPageAria: "Go to page {n}"
|
|
274
|
+
},
|
|
275
|
+
pdfToast: {
|
|
276
|
+
title: "Exporting PDF",
|
|
277
|
+
processing: "Processing page {current} of {total}",
|
|
278
|
+
printing: "Opening print dialog…",
|
|
279
|
+
done: "Done"
|
|
280
|
+
},
|
|
281
|
+
themeToggle: {
|
|
282
|
+
toggleAria: "Toggle theme",
|
|
283
|
+
title: "Theme",
|
|
284
|
+
light: "Light",
|
|
285
|
+
dark: "Dark",
|
|
286
|
+
system: "System"
|
|
287
|
+
},
|
|
288
|
+
clickNav: {
|
|
289
|
+
prevAria: "Previous page",
|
|
290
|
+
nextAria: "Next page"
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
//#endregion
|
|
295
|
+
//#region src/locale/format.ts
|
|
296
|
+
function format(template, vars) {
|
|
297
|
+
return template.replace(/\{(\w+)\}/g, (m, key) => {
|
|
298
|
+
const v = vars[key];
|
|
299
|
+
return v === void 0 ? m : String(v);
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
function plural(count, forms) {
|
|
303
|
+
return count === 1 ? forms.one : forms.other;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
//#endregion
|
|
307
|
+
//#region src/locale/ja.ts
|
|
308
|
+
const ja = {
|
|
309
|
+
id: "ja",
|
|
310
|
+
common: {
|
|
311
|
+
cancel: "キャンセル",
|
|
312
|
+
save: "保存",
|
|
313
|
+
saving: "保存中",
|
|
314
|
+
saved: "保存しました",
|
|
315
|
+
discard: "破棄",
|
|
316
|
+
delete: "削除",
|
|
317
|
+
rename: "名前を変更",
|
|
318
|
+
move: "移動",
|
|
319
|
+
close: "閉じる",
|
|
320
|
+
loading: "読み込み中",
|
|
321
|
+
loadFailed: "読み込みに失敗",
|
|
322
|
+
failedToLoadSlide: "スライドの読み込みに失敗しました",
|
|
323
|
+
home: "ホーム",
|
|
324
|
+
backToHome: "ホームへ戻る",
|
|
325
|
+
preview: "プレビュー",
|
|
326
|
+
add: "追加",
|
|
327
|
+
done: "完了",
|
|
328
|
+
tryAgain: "再試行",
|
|
329
|
+
undo: "元に戻す",
|
|
330
|
+
redo: "やり直す",
|
|
331
|
+
light: "ライト",
|
|
332
|
+
dark: "ダーク",
|
|
333
|
+
system: "システム",
|
|
334
|
+
selected: "選択中"
|
|
335
|
+
},
|
|
336
|
+
notFound: {
|
|
337
|
+
eyebrow: "404 · ページが見つかりません",
|
|
338
|
+
title: "ページが見つかりません"
|
|
339
|
+
},
|
|
340
|
+
home: {
|
|
341
|
+
appTitle: "open-slide",
|
|
342
|
+
draft: "下書き",
|
|
343
|
+
folders: "フォルダ",
|
|
344
|
+
newFolder: "新規フォルダ",
|
|
345
|
+
folderName: "フォルダ名",
|
|
346
|
+
changeIcon: "アイコンを変更",
|
|
347
|
+
iconEmojiTab: "絵文字",
|
|
348
|
+
iconColorTab: "カラー",
|
|
349
|
+
folderActions: "フォルダ操作",
|
|
350
|
+
searchPlaceholder: "スライドを検索",
|
|
351
|
+
clearSearch: "検索をクリア",
|
|
352
|
+
noMatches: "一致なし",
|
|
353
|
+
nothingMatchesPrefix: "このフォルダ内に ",
|
|
354
|
+
nothingMatchesSuffix: " に一致する項目はありません。",
|
|
355
|
+
noSlidesYet: "スライドはまだありません",
|
|
356
|
+
createSlideHintPrefix: "",
|
|
357
|
+
createSlideHintMid: " を作成し、",
|
|
358
|
+
createSlideHintSuffix: " してください。",
|
|
359
|
+
folderEmptyTitle: "{name} は空です",
|
|
360
|
+
folderEmptyHint: "サイドバーから下書きのスライドをこのフォルダにドラッグしてください。",
|
|
361
|
+
slideActions: "スライド操作",
|
|
362
|
+
moveToFolder: "フォルダへ移動…",
|
|
363
|
+
renameDialogEyebrow: "名前を変更",
|
|
364
|
+
renameDialogTitle: "スライドの名前を変更",
|
|
365
|
+
renameDialogDescription: "このスライドの新しい表示名を設定します。",
|
|
366
|
+
slideNamePlaceholder: "スライド名",
|
|
367
|
+
moveDialogEyebrow: "移動",
|
|
368
|
+
moveDialogTitle: "スライドを移動",
|
|
369
|
+
moveDialogDescriptionPrefix: "",
|
|
370
|
+
moveDialogDescriptionSuffix: " のフォルダを選択してください。",
|
|
371
|
+
deleteDialogEyebrow: "破壊的操作",
|
|
372
|
+
deleteDialogTitle: "スライドを削除しますか?",
|
|
373
|
+
deleteDialogDescriptionPrefix: "",
|
|
374
|
+
deleteDialogDescriptionMid: " とそのファイルをディスクから完全に削除します。",
|
|
375
|
+
deleteDialogDescriptionSuffix: "この操作は元に戻せません。",
|
|
376
|
+
toastFolderCreated: "フォルダ「{name}」を作成しました",
|
|
377
|
+
toastFolderCreateFailed: "フォルダの作成に失敗しました",
|
|
378
|
+
toastSlideMoved: "「{slide}」を {folder} に移動しました",
|
|
379
|
+
toastSlideMoveFailed: "スライドの移動に失敗しました",
|
|
380
|
+
toastFolderDeleted: "フォルダ「{name}」を削除しました",
|
|
381
|
+
toastFolderDeleteFailed: "フォルダの削除に失敗しました",
|
|
382
|
+
pickIcon: "アイコンを選択"
|
|
383
|
+
},
|
|
384
|
+
slide: {
|
|
385
|
+
home: "ホーム",
|
|
386
|
+
backToHome: "ホームへ戻る",
|
|
387
|
+
download: "ダウンロード",
|
|
388
|
+
exportAsHtml: "HTML として書き出し",
|
|
389
|
+
exportAsPdf: "PDF として書き出し",
|
|
390
|
+
pdfExportFailed: "PDF の書き出しに失敗しました",
|
|
391
|
+
present: "発表",
|
|
392
|
+
slidesTab: "スライド",
|
|
393
|
+
assetsTab: "アセット",
|
|
394
|
+
renameSlide: "スライドの名前を変更",
|
|
395
|
+
loadingEyebrow: "読み込み中",
|
|
396
|
+
emptyEyebrow: "空",
|
|
397
|
+
nothingToShow: "表示する内容がありません。",
|
|
398
|
+
emptyHintPrefix: "",
|
|
399
|
+
emptyHintMust: " は ",
|
|
400
|
+
emptyHintSuffix: " で空でないコンポーネント配列をエクスポートする必要があります。"
|
|
401
|
+
},
|
|
402
|
+
presenter: {
|
|
403
|
+
eyebrow: "発表者",
|
|
404
|
+
notLinked: "未接続",
|
|
405
|
+
nowShowing: "現在の表示",
|
|
406
|
+
upNext: "次のスライド",
|
|
407
|
+
lastSlide: "最後のスライド",
|
|
408
|
+
endOfDeck: "デッキの終わり",
|
|
409
|
+
speakerNotes: "発表者ノート",
|
|
410
|
+
noNotesPrefix: "このスライドには発表者ノートがありません。スライドモジュールに ",
|
|
411
|
+
noNotesSuffix: " を追加するとここに表示されます。",
|
|
412
|
+
blackScreen: "黒い画面",
|
|
413
|
+
whiteScreen: "白い画面",
|
|
414
|
+
prev: "前へ",
|
|
415
|
+
next: "次へ",
|
|
416
|
+
black: "黒",
|
|
417
|
+
white: "白",
|
|
418
|
+
reset: "リセット",
|
|
419
|
+
resetTimer: "タイマーをリセット",
|
|
420
|
+
currentTime: "現在時刻",
|
|
421
|
+
elapsed: "経過時間",
|
|
422
|
+
jump: "ジャンプ",
|
|
423
|
+
loadingSlide: "{slideId} を読み込み中…"
|
|
424
|
+
},
|
|
425
|
+
present: {
|
|
426
|
+
prevSlideAria: "前のスライド (←)",
|
|
427
|
+
nextSlideAria: "次のスライド (→)",
|
|
428
|
+
overviewAria: "スライド一覧 (O)",
|
|
429
|
+
blackoutAria: "黒い画面 (B)",
|
|
430
|
+
whiteoutAria: "白い画面 (W)",
|
|
431
|
+
laserAria: "レーザーポインタ (L)",
|
|
432
|
+
presenterAria: "発表者ビュー (P)",
|
|
433
|
+
helpAria: "キーボードショートカット (?)",
|
|
434
|
+
exitAria: "終了 (Esc)",
|
|
435
|
+
elapsedTime: "経過時間",
|
|
436
|
+
helpEyebrow: "発表モード",
|
|
437
|
+
helpTitle: "キーボードショートカット",
|
|
438
|
+
shortcutNext: "次のスライド",
|
|
439
|
+
shortcutPrev: "前のスライド",
|
|
440
|
+
shortcutFirstLast: "最初 / 最後のスライド",
|
|
441
|
+
shortcutJump: "スライドへジャンプ",
|
|
442
|
+
shortcutOverview: "スライド一覧",
|
|
443
|
+
shortcutBlack: "黒い画面",
|
|
444
|
+
shortcutWhite: "白い画面",
|
|
445
|
+
shortcutLaser: "レーザーポインタ",
|
|
446
|
+
shortcutPresenter: "発表者ビューを開く",
|
|
447
|
+
shortcutToggleHelp: "このヘルプの表示切替",
|
|
448
|
+
shortcutCloseExit: "オーバーレイを閉じる / 終了",
|
|
449
|
+
overviewDialogAria: "スライド一覧",
|
|
450
|
+
overviewEyebrow: "一覧",
|
|
451
|
+
overviewGoToAria: "スライド {n} へ移動",
|
|
452
|
+
nowBadge: "現在"
|
|
453
|
+
},
|
|
454
|
+
inspector: {
|
|
455
|
+
inspect: "インスペクト",
|
|
456
|
+
deselect: "選択解除",
|
|
457
|
+
contentSection: "コンテンツ",
|
|
458
|
+
typographySection: "タイポグラフィ",
|
|
459
|
+
colorSection: "カラー",
|
|
460
|
+
textColor: "テキスト",
|
|
461
|
+
backgroundColor: "背景",
|
|
462
|
+
imageSection: "画像",
|
|
463
|
+
imagePlaceholderSection: "画像プレースホルダ",
|
|
464
|
+
elementTextPlaceholder: "要素のテキスト",
|
|
465
|
+
sizeLabel: "サイズ",
|
|
466
|
+
weightLabel: "ウェイト",
|
|
467
|
+
weightLight: "Light · 300",
|
|
468
|
+
weightRegular: "Regular · 400",
|
|
469
|
+
weightMedium: "Medium · 500",
|
|
470
|
+
weightSemibold: "Semibold · 600",
|
|
471
|
+
weightBold: "Bold · 700",
|
|
472
|
+
weightExtrabold: "Extrabold · 800",
|
|
473
|
+
styleLabel: "スタイル",
|
|
474
|
+
boldAria: "太字",
|
|
475
|
+
italicAria: "斜体",
|
|
476
|
+
lineHeightLabel: "行間",
|
|
477
|
+
trackingLabel: "字間",
|
|
478
|
+
alignLabel: "配置",
|
|
479
|
+
clearAria: "クリア",
|
|
480
|
+
replace: "置き換え…",
|
|
481
|
+
replaceImageDialogTitle: "画像を置き換え",
|
|
482
|
+
replaceImageDescription: "{path} からアセットを選択してください。",
|
|
483
|
+
pickerLoading: "読み込み中…",
|
|
484
|
+
pickerEmpty: "このスライドのアセットフォルダにまだ画像がありません。「アセット」タブから追加してください。",
|
|
485
|
+
placeholderHintLabel: "ヒント:",
|
|
486
|
+
noteForAgent: "エージェントへのメモ",
|
|
487
|
+
noteAgentPlaceholder: "エージェントに依頼する変更を記述…",
|
|
488
|
+
noteShortcutHint: "⌘↵ で送信",
|
|
489
|
+
addNote: "メモを追加",
|
|
490
|
+
unsavedChanges: {
|
|
491
|
+
one: "未保存の変更 {count} 件",
|
|
492
|
+
other: "未保存の変更 {count} 件"
|
|
493
|
+
},
|
|
494
|
+
commentsCount: {
|
|
495
|
+
one: "コメント {count} 件",
|
|
496
|
+
other: "コメント {count} 件"
|
|
497
|
+
},
|
|
498
|
+
commentLineLabel: "行 {n}",
|
|
499
|
+
commentsEmpty: "まだコメントはありません。インスペクトを有効にしてスライド要素をクリックしてください。",
|
|
500
|
+
commentsApplyHintPrefix: "エージェントで ",
|
|
501
|
+
commentsApplyHintSuffix: " を実行して適用してください。",
|
|
502
|
+
commentDeleteAria: "削除",
|
|
503
|
+
saveFailed: "保存に失敗しました:"
|
|
504
|
+
},
|
|
505
|
+
stylePanel: {
|
|
506
|
+
designTokens: "デザイントークン",
|
|
507
|
+
draftBadge: "draft",
|
|
508
|
+
unsavedTitle: "未保存",
|
|
509
|
+
closePanelAria: "デザインパネルを閉じる",
|
|
510
|
+
colorsSection: "カラー",
|
|
511
|
+
typographySection: "タイポグラフィ",
|
|
512
|
+
shapeSection: "形状",
|
|
513
|
+
backgroundLabel: "背景",
|
|
514
|
+
textLabel: "テキスト",
|
|
515
|
+
accentLabel: "アクセント",
|
|
516
|
+
displayFontLabel: "見出し",
|
|
517
|
+
bodyFontLabel: "本文",
|
|
518
|
+
heroLabel: "ヒーロー",
|
|
519
|
+
bodyLabel: "本文",
|
|
520
|
+
radiusLabel: "角丸",
|
|
521
|
+
designToggle: "デザイン",
|
|
522
|
+
designToggleTitle: "デザイントークン",
|
|
523
|
+
fontPresetCustom: "カスタム…"
|
|
524
|
+
},
|
|
525
|
+
asset: {
|
|
526
|
+
devOnlyMessage: "アセット管理は開発モードでのみ利用できます。",
|
|
527
|
+
sectionAria: "スライドのアセット",
|
|
528
|
+
eyebrow: "アセット",
|
|
529
|
+
fileCount: {
|
|
530
|
+
one: "ファイル {count} 件",
|
|
531
|
+
other: "ファイル {count} 件"
|
|
532
|
+
},
|
|
533
|
+
searchLogos: "ロゴを検索",
|
|
534
|
+
upload: "アップロード",
|
|
535
|
+
dropToUpload: "ドロップでアップロード",
|
|
536
|
+
loading: "読み込み中…",
|
|
537
|
+
noAssetsYet: "アセットはまだありません",
|
|
538
|
+
noAssetsHintPrefix: "ここにファイルをドロップするか、",
|
|
539
|
+
noAssetsHintSuffix: " を使用してください。",
|
|
540
|
+
nameAlreadyExists: "同名のファイルがすでに存在します。",
|
|
541
|
+
previewAria: "{name} をプレビュー",
|
|
542
|
+
actionsAria: "{name} の操作",
|
|
543
|
+
previewMenuItem: "プレビュー",
|
|
544
|
+
renameMenuItem: "名前を変更",
|
|
545
|
+
deleteMenuItem: "削除",
|
|
546
|
+
conflictTitle: "ファイルがすでに存在します",
|
|
547
|
+
conflictDescription: "{name} はすでにこのスライドのアセットフォルダにあります。",
|
|
548
|
+
conflictReplace: "置き換え",
|
|
549
|
+
conflictRenameCopy: "コピーをリネーム",
|
|
550
|
+
deleteAssetTitle: "アセットを削除",
|
|
551
|
+
deleteAssetDescription: "{name} を削除しますか?スライド内でこのファイルを参照しているインポートは壊れます。",
|
|
552
|
+
noPreview: "プレビューはありません",
|
|
553
|
+
importHintComment: "import asset from ",
|
|
554
|
+
importHintSemi: ";",
|
|
555
|
+
logoSearchTitle: "ロゴを検索",
|
|
556
|
+
logoSearchPoweredByPrefix: "Powered by ",
|
|
557
|
+
logoSearchPlaceholder: "ブランド名で検索…",
|
|
558
|
+
logoSearchErrorTitle: "svgl に接続できません",
|
|
559
|
+
logoSearchErrorBody: "接続を確認して再試行してください。",
|
|
560
|
+
logoSearchNoResults: "「{query}」のロゴは見つかりません",
|
|
561
|
+
logoSearchEmpty: "利用可能なロゴはありません",
|
|
562
|
+
logoSearchEmptyHintPrefix: "別のブランド名を試すか、次のサイトでカタログ全体を閲覧してください: ",
|
|
563
|
+
logoSearchEmptyHintSuffix: "。",
|
|
564
|
+
logoVariantLight: "ライト",
|
|
565
|
+
logoVariantDark: "ダーク",
|
|
566
|
+
toastUploadFailed: "アップロードに失敗しました ({status})",
|
|
567
|
+
toastReplaced: "{name} を置き換えました",
|
|
568
|
+
toastUploadedAs: "{name} としてアップロードしました",
|
|
569
|
+
toastUploaded: "{name} をアップロードしました",
|
|
570
|
+
toastRenameFailed: "名前の変更に失敗しました ({status})",
|
|
571
|
+
toastRenamed: "{name} に名前を変更しました",
|
|
572
|
+
toastDeleteFailed: "削除に失敗しました ({status})",
|
|
573
|
+
toastDeleted: "{name} を削除しました",
|
|
574
|
+
toastDownloadFailed: "ロゴのダウンロードに失敗しました",
|
|
575
|
+
toastSearchFailed: "検索に失敗しました"
|
|
576
|
+
},
|
|
577
|
+
thumbnailRail: {
|
|
578
|
+
pages: "ページ",
|
|
579
|
+
goToPageAria: "ページ {n} へ移動"
|
|
580
|
+
},
|
|
581
|
+
pdfToast: {
|
|
582
|
+
title: "PDF を書き出し中",
|
|
583
|
+
processing: "ページ {current} / {total} を処理中",
|
|
584
|
+
printing: "印刷ダイアログを開いています…",
|
|
585
|
+
done: "完了"
|
|
586
|
+
},
|
|
587
|
+
themeToggle: {
|
|
588
|
+
toggleAria: "テーマを切り替え",
|
|
589
|
+
title: "テーマ",
|
|
590
|
+
light: "ライト",
|
|
591
|
+
dark: "ダーク",
|
|
592
|
+
system: "システム"
|
|
593
|
+
},
|
|
594
|
+
clickNav: {
|
|
595
|
+
prevAria: "前のページ",
|
|
596
|
+
nextAria: "次のページ"
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
|
|
600
|
+
//#endregion
|
|
601
|
+
//#region src/locale/zh-cn.ts
|
|
602
|
+
const zhCN = {
|
|
603
|
+
id: "zh-CN",
|
|
604
|
+
common: {
|
|
605
|
+
cancel: "取消",
|
|
606
|
+
save: "保存",
|
|
607
|
+
saving: "保存中",
|
|
608
|
+
saved: "已保存",
|
|
609
|
+
discard: "放弃",
|
|
610
|
+
delete: "删除",
|
|
611
|
+
rename: "重命名",
|
|
612
|
+
move: "移动",
|
|
613
|
+
close: "关闭",
|
|
614
|
+
loading: "加载中",
|
|
615
|
+
loadFailed: "加载失败",
|
|
616
|
+
failedToLoadSlide: "无法加载幻灯片",
|
|
617
|
+
home: "首页",
|
|
618
|
+
backToHome: "返回首页",
|
|
619
|
+
preview: "预览",
|
|
620
|
+
add: "添加",
|
|
621
|
+
done: "完成",
|
|
622
|
+
tryAgain: "重试",
|
|
623
|
+
undo: "撤销",
|
|
624
|
+
redo: "重做",
|
|
625
|
+
light: "浅色",
|
|
626
|
+
dark: "深色",
|
|
627
|
+
system: "系统",
|
|
628
|
+
selected: "已选中"
|
|
629
|
+
},
|
|
630
|
+
notFound: {
|
|
631
|
+
eyebrow: "404 · 未找到页面",
|
|
632
|
+
title: "未找到页面"
|
|
633
|
+
},
|
|
634
|
+
home: {
|
|
635
|
+
appTitle: "open-slide",
|
|
636
|
+
draft: "草稿",
|
|
637
|
+
folders: "文件夹",
|
|
638
|
+
newFolder: "新建文件夹",
|
|
639
|
+
folderName: "文件夹名称",
|
|
640
|
+
changeIcon: "更换图标",
|
|
641
|
+
iconEmojiTab: "Emoji",
|
|
642
|
+
iconColorTab: "颜色",
|
|
643
|
+
folderActions: "文件夹操作",
|
|
644
|
+
searchPlaceholder: "搜索幻灯片",
|
|
645
|
+
clearSearch: "清除搜索",
|
|
646
|
+
noMatches: "没有匹配项",
|
|
647
|
+
nothingMatchesPrefix: "该文件夹中没有匹配 ",
|
|
648
|
+
nothingMatchesSuffix: " 的内容。",
|
|
649
|
+
noSlidesYet: "尚无幻灯片",
|
|
650
|
+
createSlideHintPrefix: "创建 ",
|
|
651
|
+
createSlideHintMid: " 并 ",
|
|
652
|
+
createSlideHintSuffix: "。",
|
|
653
|
+
folderEmptyTitle: "{name} 为空",
|
|
654
|
+
folderEmptyHint: "从侧边栏将幻灯片从草稿拖入此文件夹。",
|
|
655
|
+
slideActions: "幻灯片操作",
|
|
656
|
+
moveToFolder: "移到文件夹…",
|
|
657
|
+
renameDialogEyebrow: "重命名",
|
|
658
|
+
renameDialogTitle: "重命名幻灯片",
|
|
659
|
+
renameDialogDescription: "为该幻灯片设置新的显示名称。",
|
|
660
|
+
slideNamePlaceholder: "幻灯片名称",
|
|
661
|
+
moveDialogEyebrow: "移动",
|
|
662
|
+
moveDialogTitle: "移动幻灯片",
|
|
663
|
+
moveDialogDescriptionPrefix: "为 ",
|
|
664
|
+
moveDialogDescriptionSuffix: " 选择文件夹。",
|
|
665
|
+
deleteDialogEyebrow: "危险操作",
|
|
666
|
+
deleteDialogTitle: "删除幻灯片?",
|
|
667
|
+
deleteDialogDescriptionPrefix: "这将永久从磁盘移除 ",
|
|
668
|
+
deleteDialogDescriptionMid: " 及其文件。",
|
|
669
|
+
deleteDialogDescriptionSuffix: "此操作无法撤销。",
|
|
670
|
+
toastFolderCreated: "已创建文件夹\"{name}\"",
|
|
671
|
+
toastFolderCreateFailed: "创建文件夹失败",
|
|
672
|
+
toastSlideMoved: "已将\"{slide}\"移至 {folder}",
|
|
673
|
+
toastSlideMoveFailed: "移动幻灯片失败",
|
|
674
|
+
toastFolderDeleted: "已删除文件夹\"{name}\"",
|
|
675
|
+
toastFolderDeleteFailed: "删除文件夹失败",
|
|
676
|
+
pickIcon: "选择图标"
|
|
677
|
+
},
|
|
678
|
+
slide: {
|
|
679
|
+
home: "首页",
|
|
680
|
+
backToHome: "返回首页",
|
|
681
|
+
download: "下载",
|
|
682
|
+
exportAsHtml: "导出为 HTML",
|
|
683
|
+
exportAsPdf: "导出为 PDF",
|
|
684
|
+
pdfExportFailed: "PDF 导出失败",
|
|
685
|
+
present: "演示",
|
|
686
|
+
slidesTab: "幻灯片",
|
|
687
|
+
assetsTab: "素材",
|
|
688
|
+
renameSlide: "重命名幻灯片",
|
|
689
|
+
loadingEyebrow: "加载中",
|
|
690
|
+
emptyEyebrow: "空白",
|
|
691
|
+
nothingToShow: "没有可显示的内容。",
|
|
692
|
+
emptyHintPrefix: "",
|
|
693
|
+
emptyHintMust: " 必须 ",
|
|
694
|
+
emptyHintSuffix: " 一个非空的组件数组。"
|
|
695
|
+
},
|
|
696
|
+
presenter: {
|
|
697
|
+
eyebrow: "演讲者",
|
|
698
|
+
notLinked: "未连接",
|
|
699
|
+
nowShowing: "当前显示",
|
|
700
|
+
upNext: "下一张",
|
|
701
|
+
lastSlide: "最后一张",
|
|
702
|
+
endOfDeck: "演示结束",
|
|
703
|
+
speakerNotes: "演讲备注",
|
|
704
|
+
noNotesPrefix: "该幻灯片没有演讲备注。在你的幻灯片模块中添加 ",
|
|
705
|
+
noNotesSuffix: " 即可在此查看备注。",
|
|
706
|
+
blackScreen: "黑屏",
|
|
707
|
+
whiteScreen: "白屏",
|
|
708
|
+
prev: "上一张",
|
|
709
|
+
next: "下一张",
|
|
710
|
+
black: "黑屏",
|
|
711
|
+
white: "白屏",
|
|
712
|
+
reset: "重置",
|
|
713
|
+
resetTimer: "重置计时器",
|
|
714
|
+
currentTime: "当前时间",
|
|
715
|
+
elapsed: "已用时",
|
|
716
|
+
jump: "跳至",
|
|
717
|
+
loadingSlide: "正在加载 {slideId}…"
|
|
718
|
+
},
|
|
719
|
+
present: {
|
|
720
|
+
prevSlideAria: "上一张幻灯片 (←)",
|
|
721
|
+
nextSlideAria: "下一张幻灯片 (→)",
|
|
722
|
+
overviewAria: "幻灯片总览 (O)",
|
|
723
|
+
blackoutAria: "黑屏 (B)",
|
|
724
|
+
whiteoutAria: "白屏 (W)",
|
|
725
|
+
laserAria: "激光笔 (L)",
|
|
726
|
+
presenterAria: "演讲者视图 (P)",
|
|
727
|
+
helpAria: "键盘快捷键 (?)",
|
|
728
|
+
exitAria: "退出 (Esc)",
|
|
729
|
+
elapsedTime: "已用时",
|
|
730
|
+
helpEyebrow: "演示模式",
|
|
731
|
+
helpTitle: "键盘快捷键",
|
|
732
|
+
shortcutNext: "下一张",
|
|
733
|
+
shortcutPrev: "上一张",
|
|
734
|
+
shortcutFirstLast: "第一张 / 最后一张",
|
|
735
|
+
shortcutJump: "跳至幻灯片",
|
|
736
|
+
shortcutOverview: "幻灯片总览",
|
|
737
|
+
shortcutBlack: "黑屏",
|
|
738
|
+
shortcutWhite: "白屏",
|
|
739
|
+
shortcutLaser: "激光笔",
|
|
740
|
+
shortcutPresenter: "打开演讲者视图",
|
|
741
|
+
shortcutToggleHelp: "切换此帮助",
|
|
742
|
+
shortcutCloseExit: "关闭遮罩 / 退出",
|
|
743
|
+
overviewDialogAria: "幻灯片总览",
|
|
744
|
+
overviewEyebrow: "总览",
|
|
745
|
+
overviewGoToAria: "前往第 {n} 张幻灯片",
|
|
746
|
+
nowBadge: "当前"
|
|
747
|
+
},
|
|
748
|
+
inspector: {
|
|
749
|
+
inspect: "检查",
|
|
750
|
+
deselect: "取消选择",
|
|
751
|
+
contentSection: "内容",
|
|
752
|
+
typographySection: "字体",
|
|
753
|
+
colorSection: "颜色",
|
|
754
|
+
textColor: "文字",
|
|
755
|
+
backgroundColor: "背景",
|
|
756
|
+
imageSection: "图片",
|
|
757
|
+
imagePlaceholderSection: "图片占位符",
|
|
758
|
+
elementTextPlaceholder: "元素文字",
|
|
759
|
+
sizeLabel: "大小",
|
|
760
|
+
weightLabel: "字重",
|
|
761
|
+
weightLight: "细体 · 300",
|
|
762
|
+
weightRegular: "常规 · 400",
|
|
763
|
+
weightMedium: "中等 · 500",
|
|
764
|
+
weightSemibold: "半粗 · 600",
|
|
765
|
+
weightBold: "粗体 · 700",
|
|
766
|
+
weightExtrabold: "特粗 · 800",
|
|
767
|
+
styleLabel: "样式",
|
|
768
|
+
boldAria: "粗体",
|
|
769
|
+
italicAria: "斜体",
|
|
770
|
+
lineHeightLabel: "行高",
|
|
771
|
+
trackingLabel: "字距",
|
|
772
|
+
alignLabel: "对齐",
|
|
773
|
+
clearAria: "清除",
|
|
774
|
+
replace: "替换…",
|
|
775
|
+
replaceImageDialogTitle: "替换图片",
|
|
776
|
+
replaceImageDescription: "从 {path} 选择素材。",
|
|
777
|
+
pickerLoading: "加载中…",
|
|
778
|
+
pickerEmpty: "该幻灯片的素材文件夹中尚无图片。请从「素材」标签页添加。",
|
|
779
|
+
placeholderHintLabel: "提示:",
|
|
780
|
+
noteForAgent: "给代理的备注",
|
|
781
|
+
noteAgentPlaceholder: "描述你希望代理执行的更改…",
|
|
782
|
+
noteShortcutHint: "⌘↵ 发送",
|
|
783
|
+
addNote: "添加备注",
|
|
784
|
+
unsavedChanges: {
|
|
785
|
+
one: "{count} 项未保存的更改",
|
|
786
|
+
other: "{count} 项未保存的更改"
|
|
787
|
+
},
|
|
788
|
+
commentsCount: {
|
|
789
|
+
one: "{count} 条评论",
|
|
790
|
+
other: "{count} 条评论"
|
|
791
|
+
},
|
|
792
|
+
commentLineLabel: "第 {n} 行",
|
|
793
|
+
commentsEmpty: "暂无评论。开启「检查」并点击幻灯片元素。",
|
|
794
|
+
commentsApplyHintPrefix: "在你的代理中运行 ",
|
|
795
|
+
commentsApplyHintSuffix: " 以应用这些更改。",
|
|
796
|
+
commentDeleteAria: "删除",
|
|
797
|
+
saveFailed: "保存失败:"
|
|
798
|
+
},
|
|
799
|
+
stylePanel: {
|
|
800
|
+
designTokens: "设计样式",
|
|
801
|
+
draftBadge: "草稿",
|
|
802
|
+
unsavedTitle: "未保存",
|
|
803
|
+
closePanelAria: "关闭设计面板",
|
|
804
|
+
colorsSection: "颜色",
|
|
805
|
+
typographySection: "字体",
|
|
806
|
+
shapeSection: "形状",
|
|
807
|
+
backgroundLabel: "背景",
|
|
808
|
+
textLabel: "文字",
|
|
809
|
+
accentLabel: "强调色",
|
|
810
|
+
displayFontLabel: "展示",
|
|
811
|
+
bodyFontLabel: "正文",
|
|
812
|
+
heroLabel: "主标",
|
|
813
|
+
bodyLabel: "正文",
|
|
814
|
+
radiusLabel: "圆角",
|
|
815
|
+
designToggle: "设计",
|
|
816
|
+
designToggleTitle: "设计样式",
|
|
817
|
+
fontPresetCustom: "自定义…"
|
|
818
|
+
},
|
|
819
|
+
asset: {
|
|
820
|
+
devOnlyMessage: "素材管理仅在开发模式下可用。",
|
|
821
|
+
sectionAria: "幻灯片素材",
|
|
822
|
+
eyebrow: "素材",
|
|
823
|
+
fileCount: {
|
|
824
|
+
one: "{count} 个文件",
|
|
825
|
+
other: "{count} 个文件"
|
|
826
|
+
},
|
|
827
|
+
searchLogos: "搜索 Logo",
|
|
828
|
+
upload: "上传",
|
|
829
|
+
dropToUpload: "拖入即可上传",
|
|
830
|
+
loading: "加载中…",
|
|
831
|
+
noAssetsYet: "尚无素材",
|
|
832
|
+
noAssetsHintPrefix: "将文件拖到任意位置,或使用 ",
|
|
833
|
+
noAssetsHintSuffix: "。",
|
|
834
|
+
nameAlreadyExists: "已存在同名文件。",
|
|
835
|
+
previewAria: "预览 {name}",
|
|
836
|
+
actionsAria: "{name} 的操作",
|
|
837
|
+
previewMenuItem: "预览",
|
|
838
|
+
renameMenuItem: "重命名",
|
|
839
|
+
deleteMenuItem: "删除",
|
|
840
|
+
conflictTitle: "文件已存在",
|
|
841
|
+
conflictDescription: "{name} 已在该幻灯片的素材文件夹中。",
|
|
842
|
+
conflictReplace: "替换",
|
|
843
|
+
conflictRenameCopy: "重命名副本",
|
|
844
|
+
deleteAssetTitle: "删除素材",
|
|
845
|
+
deleteAssetDescription: "要删除 {name} 吗?幻灯片中引用此文件的导入将失效。",
|
|
846
|
+
noPreview: "无预览",
|
|
847
|
+
importHintComment: "import asset from ",
|
|
848
|
+
importHintSemi: ";",
|
|
849
|
+
logoSearchTitle: "搜索 Logo",
|
|
850
|
+
logoSearchPoweredByPrefix: "由 ",
|
|
851
|
+
logoSearchPlaceholder: "按品牌搜索…",
|
|
852
|
+
logoSearchErrorTitle: "无法连接至 svgl",
|
|
853
|
+
logoSearchErrorBody: "请检查网络连接后重试。",
|
|
854
|
+
logoSearchNoResults: "找不到「{query}」的 Logo",
|
|
855
|
+
logoSearchEmpty: "无可用 Logo",
|
|
856
|
+
logoSearchEmptyHintPrefix: "试试其他品牌名,或在以下网站浏览完整目录: ",
|
|
857
|
+
logoSearchEmptyHintSuffix: "。",
|
|
858
|
+
logoVariantLight: "浅色",
|
|
859
|
+
logoVariantDark: "深色",
|
|
860
|
+
toastUploadFailed: "上传失败 ({status})",
|
|
861
|
+
toastReplaced: "已替换 {name}",
|
|
862
|
+
toastUploadedAs: "已以 {name} 上传",
|
|
863
|
+
toastUploaded: "已上传 {name}",
|
|
864
|
+
toastRenameFailed: "重命名失败 ({status})",
|
|
865
|
+
toastRenamed: "已重命名为 {name}",
|
|
866
|
+
toastDeleteFailed: "删除失败 ({status})",
|
|
867
|
+
toastDeleted: "已删除 {name}",
|
|
868
|
+
toastDownloadFailed: "下载 Logo 失败",
|
|
869
|
+
toastSearchFailed: "搜索失败"
|
|
870
|
+
},
|
|
871
|
+
thumbnailRail: {
|
|
872
|
+
pages: "页面",
|
|
873
|
+
goToPageAria: "前往第 {n} 页"
|
|
874
|
+
},
|
|
875
|
+
pdfToast: {
|
|
876
|
+
title: "导出 PDF",
|
|
877
|
+
processing: "正在处理第 {current} / {total} 页",
|
|
878
|
+
printing: "正在打开打印对话框…",
|
|
879
|
+
done: "完成"
|
|
880
|
+
},
|
|
881
|
+
themeToggle: {
|
|
882
|
+
toggleAria: "切换主题",
|
|
883
|
+
title: "主题",
|
|
884
|
+
light: "浅色",
|
|
885
|
+
dark: "深色",
|
|
886
|
+
system: "系统"
|
|
887
|
+
},
|
|
888
|
+
clickNav: {
|
|
889
|
+
prevAria: "上一页",
|
|
890
|
+
nextAria: "下一页"
|
|
891
|
+
}
|
|
892
|
+
};
|
|
893
|
+
|
|
894
|
+
//#endregion
|
|
895
|
+
//#region src/locale/zh-tw.ts
|
|
896
|
+
const zhTW = {
|
|
897
|
+
id: "zh-TW",
|
|
898
|
+
common: {
|
|
899
|
+
cancel: "取消",
|
|
900
|
+
save: "儲存",
|
|
901
|
+
saving: "儲存中",
|
|
902
|
+
saved: "已儲存",
|
|
903
|
+
discard: "捨棄",
|
|
904
|
+
delete: "刪除",
|
|
905
|
+
rename: "重新命名",
|
|
906
|
+
move: "移動",
|
|
907
|
+
close: "關閉",
|
|
908
|
+
loading: "載入中",
|
|
909
|
+
loadFailed: "載入失敗",
|
|
910
|
+
failedToLoadSlide: "無法載入投影片",
|
|
911
|
+
home: "首頁",
|
|
912
|
+
backToHome: "返回首頁",
|
|
913
|
+
preview: "預覽",
|
|
914
|
+
add: "新增",
|
|
915
|
+
done: "完成",
|
|
916
|
+
tryAgain: "重試",
|
|
917
|
+
undo: "復原",
|
|
918
|
+
redo: "重做",
|
|
919
|
+
light: "淺色",
|
|
920
|
+
dark: "深色",
|
|
921
|
+
system: "系統",
|
|
922
|
+
selected: "已選取"
|
|
923
|
+
},
|
|
924
|
+
notFound: {
|
|
925
|
+
eyebrow: "404 · 找不到頁面",
|
|
926
|
+
title: "找不到頁面"
|
|
927
|
+
},
|
|
928
|
+
home: {
|
|
929
|
+
appTitle: "open-slide",
|
|
930
|
+
draft: "草稿",
|
|
931
|
+
folders: "資料夾",
|
|
932
|
+
newFolder: "新增資料夾",
|
|
933
|
+
folderName: "資料夾名稱",
|
|
934
|
+
changeIcon: "變更圖示",
|
|
935
|
+
iconEmojiTab: "Emoji",
|
|
936
|
+
iconColorTab: "顏色",
|
|
937
|
+
folderActions: "資料夾操作",
|
|
938
|
+
searchPlaceholder: "搜尋投影片",
|
|
939
|
+
clearSearch: "清除搜尋",
|
|
940
|
+
noMatches: "沒有相符結果",
|
|
941
|
+
nothingMatchesPrefix: "此資料夾中沒有相符 ",
|
|
942
|
+
nothingMatchesSuffix: " 的項目。",
|
|
943
|
+
noSlidesYet: "尚無投影片",
|
|
944
|
+
createSlideHintPrefix: "建立 ",
|
|
945
|
+
createSlideHintMid: " 並 ",
|
|
946
|
+
createSlideHintSuffix: "。",
|
|
947
|
+
folderEmptyTitle: "{name} 為空",
|
|
948
|
+
folderEmptyHint: "從側邊欄將投影片從草稿拖入此資料夾。",
|
|
949
|
+
slideActions: "投影片操作",
|
|
950
|
+
moveToFolder: "移至資料夾…",
|
|
951
|
+
renameDialogEyebrow: "重新命名",
|
|
952
|
+
renameDialogTitle: "重新命名投影片",
|
|
953
|
+
renameDialogDescription: "為這份投影片設定新的顯示名稱。",
|
|
954
|
+
slideNamePlaceholder: "投影片名稱",
|
|
955
|
+
moveDialogEyebrow: "移動",
|
|
956
|
+
moveDialogTitle: "移動投影片",
|
|
957
|
+
moveDialogDescriptionPrefix: "為 ",
|
|
958
|
+
moveDialogDescriptionSuffix: " 選擇資料夾。",
|
|
959
|
+
deleteDialogEyebrow: "危險操作",
|
|
960
|
+
deleteDialogTitle: "刪除投影片?",
|
|
961
|
+
deleteDialogDescriptionPrefix: "這將永久從磁碟移除 ",
|
|
962
|
+
deleteDialogDescriptionMid: " 與其檔案。",
|
|
963
|
+
deleteDialogDescriptionSuffix: "此操作無法復原。",
|
|
964
|
+
toastFolderCreated: "已建立資料夾「{name}」",
|
|
965
|
+
toastFolderCreateFailed: "建立資料夾失敗",
|
|
966
|
+
toastSlideMoved: "已將「{slide}」移至 {folder}",
|
|
967
|
+
toastSlideMoveFailed: "移動投影片失敗",
|
|
968
|
+
toastFolderDeleted: "已刪除資料夾「{name}」",
|
|
969
|
+
toastFolderDeleteFailed: "刪除資料夾失敗",
|
|
970
|
+
pickIcon: "選擇圖示"
|
|
971
|
+
},
|
|
972
|
+
slide: {
|
|
973
|
+
home: "首頁",
|
|
974
|
+
backToHome: "返回首頁",
|
|
975
|
+
download: "下載",
|
|
976
|
+
exportAsHtml: "匯出為 HTML",
|
|
977
|
+
exportAsPdf: "匯出為 PDF",
|
|
978
|
+
pdfExportFailed: "PDF 匯出失敗",
|
|
979
|
+
present: "簡報",
|
|
980
|
+
slidesTab: "投影片",
|
|
981
|
+
assetsTab: "素材",
|
|
982
|
+
renameSlide: "重新命名投影片",
|
|
983
|
+
loadingEyebrow: "載入中",
|
|
984
|
+
emptyEyebrow: "空白",
|
|
985
|
+
nothingToShow: "沒有可顯示的內容。",
|
|
986
|
+
emptyHintPrefix: "",
|
|
987
|
+
emptyHintMust: " 必須 ",
|
|
988
|
+
emptyHintSuffix: " 一個非空的元件陣列。"
|
|
989
|
+
},
|
|
990
|
+
presenter: {
|
|
991
|
+
eyebrow: "主講人",
|
|
992
|
+
notLinked: "未連結",
|
|
993
|
+
nowShowing: "目前顯示",
|
|
994
|
+
upNext: "下一張",
|
|
995
|
+
lastSlide: "最後一張",
|
|
996
|
+
endOfDeck: "簡報結束",
|
|
997
|
+
speakerNotes: "演講備忘",
|
|
998
|
+
noNotesPrefix: "此投影片沒有演講備忘。在你的投影片模組中加入 ",
|
|
999
|
+
noNotesSuffix: " 即可在此查看備忘。",
|
|
1000
|
+
blackScreen: "黑屏",
|
|
1001
|
+
whiteScreen: "白屏",
|
|
1002
|
+
prev: "上一張",
|
|
1003
|
+
next: "下一張",
|
|
1004
|
+
black: "黑屏",
|
|
1005
|
+
white: "白屏",
|
|
1006
|
+
reset: "重設",
|
|
1007
|
+
resetTimer: "重設計時器",
|
|
1008
|
+
currentTime: "目前時間",
|
|
1009
|
+
elapsed: "已耗時",
|
|
1010
|
+
jump: "跳至",
|
|
1011
|
+
loadingSlide: "正在載入 {slideId}…"
|
|
1012
|
+
},
|
|
1013
|
+
present: {
|
|
1014
|
+
prevSlideAria: "上一張投影片 (←)",
|
|
1015
|
+
nextSlideAria: "下一張投影片 (→)",
|
|
1016
|
+
overviewAria: "投影片總覽 (O)",
|
|
1017
|
+
blackoutAria: "黑屏 (B)",
|
|
1018
|
+
whiteoutAria: "白屏 (W)",
|
|
1019
|
+
laserAria: "雷射筆 (L)",
|
|
1020
|
+
presenterAria: "主講人檢視 (P)",
|
|
1021
|
+
helpAria: "鍵盤快速鍵 (?)",
|
|
1022
|
+
exitAria: "離開 (Esc)",
|
|
1023
|
+
elapsedTime: "已耗時",
|
|
1024
|
+
helpEyebrow: "簡報模式",
|
|
1025
|
+
helpTitle: "鍵盤快速鍵",
|
|
1026
|
+
shortcutNext: "下一張",
|
|
1027
|
+
shortcutPrev: "上一張",
|
|
1028
|
+
shortcutFirstLast: "第一張 / 最後一張",
|
|
1029
|
+
shortcutJump: "跳至投影片",
|
|
1030
|
+
shortcutOverview: "投影片總覽",
|
|
1031
|
+
shortcutBlack: "黑屏",
|
|
1032
|
+
shortcutWhite: "白屏",
|
|
1033
|
+
shortcutLaser: "雷射筆",
|
|
1034
|
+
shortcutPresenter: "開啟主講人檢視",
|
|
1035
|
+
shortcutToggleHelp: "切換此說明",
|
|
1036
|
+
shortcutCloseExit: "關閉覆蓋 / 離開",
|
|
1037
|
+
overviewDialogAria: "投影片總覽",
|
|
1038
|
+
overviewEyebrow: "總覽",
|
|
1039
|
+
overviewGoToAria: "前往第 {n} 張投影片",
|
|
1040
|
+
nowBadge: "目前"
|
|
1041
|
+
},
|
|
1042
|
+
inspector: {
|
|
1043
|
+
inspect: "檢視",
|
|
1044
|
+
deselect: "取消選取",
|
|
1045
|
+
contentSection: "內容",
|
|
1046
|
+
typographySection: "字體",
|
|
1047
|
+
colorSection: "顏色",
|
|
1048
|
+
textColor: "文字",
|
|
1049
|
+
backgroundColor: "背景",
|
|
1050
|
+
imageSection: "圖片",
|
|
1051
|
+
imagePlaceholderSection: "圖片佔位符",
|
|
1052
|
+
elementTextPlaceholder: "元素文字",
|
|
1053
|
+
sizeLabel: "大小",
|
|
1054
|
+
weightLabel: "字重",
|
|
1055
|
+
weightLight: "細體 · 300",
|
|
1056
|
+
weightRegular: "一般 · 400",
|
|
1057
|
+
weightMedium: "中等 · 500",
|
|
1058
|
+
weightSemibold: "半粗體 · 600",
|
|
1059
|
+
weightBold: "粗體 · 700",
|
|
1060
|
+
weightExtrabold: "特粗 · 800",
|
|
1061
|
+
styleLabel: "樣式",
|
|
1062
|
+
boldAria: "粗體",
|
|
1063
|
+
italicAria: "斜體",
|
|
1064
|
+
lineHeightLabel: "行高",
|
|
1065
|
+
trackingLabel: "字距",
|
|
1066
|
+
alignLabel: "對齊",
|
|
1067
|
+
clearAria: "清除",
|
|
1068
|
+
replace: "替換…",
|
|
1069
|
+
replaceImageDialogTitle: "替換圖片",
|
|
1070
|
+
replaceImageDescription: "從 {path} 選擇素材。",
|
|
1071
|
+
pickerLoading: "載入中…",
|
|
1072
|
+
pickerEmpty: "此投影片的素材資料夾尚未有圖片。請從「素材」分頁加入。",
|
|
1073
|
+
placeholderHintLabel: "提示:",
|
|
1074
|
+
noteForAgent: "給代理的備註",
|
|
1075
|
+
noteAgentPlaceholder: "描述你希望代理進行的修改…",
|
|
1076
|
+
noteShortcutHint: "⌘↵ 送出",
|
|
1077
|
+
addNote: "新增備註",
|
|
1078
|
+
unsavedChanges: {
|
|
1079
|
+
one: "{count} 項未儲存的變更",
|
|
1080
|
+
other: "{count} 項未儲存的變更"
|
|
1081
|
+
},
|
|
1082
|
+
commentsCount: {
|
|
1083
|
+
one: "{count} 則留言",
|
|
1084
|
+
other: "{count} 則留言"
|
|
1085
|
+
},
|
|
1086
|
+
commentLineLabel: "第 {n} 行",
|
|
1087
|
+
commentsEmpty: "尚無留言。開啟「檢視」並點選投影片元素。",
|
|
1088
|
+
commentsApplyHintPrefix: "在你的代理中執行 ",
|
|
1089
|
+
commentsApplyHintSuffix: " 以套用這些變更。",
|
|
1090
|
+
commentDeleteAria: "刪除",
|
|
1091
|
+
saveFailed: "儲存失敗:"
|
|
1092
|
+
},
|
|
1093
|
+
stylePanel: {
|
|
1094
|
+
designTokens: "設計樣式",
|
|
1095
|
+
draftBadge: "草稿",
|
|
1096
|
+
unsavedTitle: "未儲存",
|
|
1097
|
+
closePanelAria: "關閉設計面板",
|
|
1098
|
+
colorsSection: "顏色",
|
|
1099
|
+
typographySection: "字體",
|
|
1100
|
+
shapeSection: "形狀",
|
|
1101
|
+
backgroundLabel: "背景",
|
|
1102
|
+
textLabel: "文字",
|
|
1103
|
+
accentLabel: "強調色",
|
|
1104
|
+
displayFontLabel: "顯示",
|
|
1105
|
+
bodyFontLabel: "內文",
|
|
1106
|
+
heroLabel: "主標",
|
|
1107
|
+
bodyLabel: "內文",
|
|
1108
|
+
radiusLabel: "圓角",
|
|
1109
|
+
designToggle: "設計",
|
|
1110
|
+
designToggleTitle: "設計樣式",
|
|
1111
|
+
fontPresetCustom: "自訂…"
|
|
1112
|
+
},
|
|
1113
|
+
asset: {
|
|
1114
|
+
devOnlyMessage: "素材管理僅在開發模式下可用。",
|
|
1115
|
+
sectionAria: "投影片素材",
|
|
1116
|
+
eyebrow: "素材",
|
|
1117
|
+
fileCount: {
|
|
1118
|
+
one: "{count} 個檔案",
|
|
1119
|
+
other: "{count} 個檔案"
|
|
1120
|
+
},
|
|
1121
|
+
searchLogos: "搜尋 Logo",
|
|
1122
|
+
upload: "上傳",
|
|
1123
|
+
dropToUpload: "拖入即可上傳",
|
|
1124
|
+
loading: "載入中…",
|
|
1125
|
+
noAssetsYet: "尚無素材",
|
|
1126
|
+
noAssetsHintPrefix: "將檔案拖到任意處,或使用 ",
|
|
1127
|
+
noAssetsHintSuffix: "。",
|
|
1128
|
+
nameAlreadyExists: "已有同名檔案存在。",
|
|
1129
|
+
previewAria: "預覽 {name}",
|
|
1130
|
+
actionsAria: "{name} 的操作",
|
|
1131
|
+
previewMenuItem: "預覽",
|
|
1132
|
+
renameMenuItem: "重新命名",
|
|
1133
|
+
deleteMenuItem: "刪除",
|
|
1134
|
+
conflictTitle: "檔案已存在",
|
|
1135
|
+
conflictDescription: "{name} 已在此投影片的素材資料夾中。",
|
|
1136
|
+
conflictReplace: "取代",
|
|
1137
|
+
conflictRenameCopy: "重新命名副本",
|
|
1138
|
+
deleteAssetTitle: "刪除素材",
|
|
1139
|
+
deleteAssetDescription: "要刪除 {name} 嗎?投影片中引用此檔案的匯入將失效。",
|
|
1140
|
+
noPreview: "無預覽",
|
|
1141
|
+
importHintComment: "import asset from ",
|
|
1142
|
+
importHintSemi: ";",
|
|
1143
|
+
logoSearchTitle: "搜尋 Logo",
|
|
1144
|
+
logoSearchPoweredByPrefix: "由 ",
|
|
1145
|
+
logoSearchPlaceholder: "依品牌搜尋…",
|
|
1146
|
+
logoSearchErrorTitle: "無法連線至 svgl",
|
|
1147
|
+
logoSearchErrorBody: "請檢查網路連線後重試。",
|
|
1148
|
+
logoSearchNoResults: "找不到「{query}」的 Logo",
|
|
1149
|
+
logoSearchEmpty: "沒有可用的 Logo",
|
|
1150
|
+
logoSearchEmptyHintPrefix: "試試其他品牌名稱,或在以下網站瀏覽完整目錄: ",
|
|
1151
|
+
logoSearchEmptyHintSuffix: "。",
|
|
1152
|
+
logoVariantLight: "淺色",
|
|
1153
|
+
logoVariantDark: "深色",
|
|
1154
|
+
toastUploadFailed: "上傳失敗 ({status})",
|
|
1155
|
+
toastReplaced: "已取代 {name}",
|
|
1156
|
+
toastUploadedAs: "已以 {name} 上傳",
|
|
1157
|
+
toastUploaded: "已上傳 {name}",
|
|
1158
|
+
toastRenameFailed: "重新命名失敗 ({status})",
|
|
1159
|
+
toastRenamed: "已重新命名為 {name}",
|
|
1160
|
+
toastDeleteFailed: "刪除失敗 ({status})",
|
|
1161
|
+
toastDeleted: "已刪除 {name}",
|
|
1162
|
+
toastDownloadFailed: "下載 Logo 失敗",
|
|
1163
|
+
toastSearchFailed: "搜尋失敗"
|
|
1164
|
+
},
|
|
1165
|
+
thumbnailRail: {
|
|
1166
|
+
pages: "頁面",
|
|
1167
|
+
goToPageAria: "前往第 {n} 頁"
|
|
1168
|
+
},
|
|
1169
|
+
pdfToast: {
|
|
1170
|
+
title: "匯出 PDF",
|
|
1171
|
+
processing: "處理第 {current} / {total} 頁",
|
|
1172
|
+
printing: "正在開啟列印對話框…",
|
|
1173
|
+
done: "完成"
|
|
1174
|
+
},
|
|
1175
|
+
themeToggle: {
|
|
1176
|
+
toggleAria: "切換主題",
|
|
1177
|
+
title: "主題",
|
|
1178
|
+
light: "淺色",
|
|
1179
|
+
dark: "深色",
|
|
1180
|
+
system: "系統"
|
|
1181
|
+
},
|
|
1182
|
+
clickNav: {
|
|
1183
|
+
prevAria: "上一頁",
|
|
1184
|
+
nextAria: "下一頁"
|
|
1185
|
+
}
|
|
1186
|
+
};
|
|
1187
|
+
|
|
1188
|
+
//#endregion
|
|
1189
|
+
export { en, format, ja, plural, zhCN, zhTW };
|