@open-aippt/core 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/bin.js +2 -0
  4. package/dist/build-DxTqmvsO.js +17 -0
  5. package/dist/cli/bin.d.ts +1 -0
  6. package/dist/cli/bin.js +86 -0
  7. package/dist/config-CjzqjrEA.js +4280 -0
  8. package/dist/config-DIC-yVPp.d.ts +23 -0
  9. package/dist/design-cpzS8aud.js +35 -0
  10. package/dist/dev-BYuTeJbA.js +20 -0
  11. package/dist/format-BCeKbTOM.js +1605 -0
  12. package/dist/index.d.ts +134 -0
  13. package/dist/index.js +467 -0
  14. package/dist/locale/index.d.ts +24 -0
  15. package/dist/locale/index.js +3 -0
  16. package/dist/preview-DlQvnJPq.js +18 -0
  17. package/dist/sync-BPZ0m27m.js +139 -0
  18. package/dist/sync-EsYusbbL.js +3 -0
  19. package/dist/types-CHmFPIG_.d.ts +430 -0
  20. package/dist/vite/index.d.ts +14 -0
  21. package/dist/vite/index.js +4 -0
  22. package/env.d.ts +59 -0
  23. package/package.json +103 -0
  24. package/skills/apply-comments/SKILL.md +83 -0
  25. package/skills/create-slide/SKILL.md +91 -0
  26. package/skills/create-theme/SKILL.md +250 -0
  27. package/skills/current-slide/SKILL.md +110 -0
  28. package/skills/slide-authoring/SKILL.md +625 -0
  29. package/src/app/app.tsx +47 -0
  30. package/src/app/components/asset-view.tsx +966 -0
  31. package/src/app/components/history-provider.tsx +120 -0
  32. package/src/app/components/image-placeholder.tsx +243 -0
  33. package/src/app/components/inspector/asset-picker-dialog.tsx +196 -0
  34. package/src/app/components/inspector/comment-widget.tsx +93 -0
  35. package/src/app/components/inspector/image-crop-dialog.tsx +212 -0
  36. package/src/app/components/inspector/inspect-overlay.tsx +387 -0
  37. package/src/app/components/inspector/inspector-panel.tsx +1115 -0
  38. package/src/app/components/inspector/inspector-provider.tsx +1218 -0
  39. package/src/app/components/inspector/save-bar.tsx +48 -0
  40. package/src/app/components/language-toggle.tsx +39 -0
  41. package/src/app/components/notes-drawer.tsx +120 -0
  42. package/src/app/components/overview-grid.tsx +363 -0
  43. package/src/app/components/panel/panel-fields.tsx +60 -0
  44. package/src/app/components/panel/panel-shell.tsx +80 -0
  45. package/src/app/components/panel/save-card.tsx +142 -0
  46. package/src/app/components/pdf-progress-toast.tsx +32 -0
  47. package/src/app/components/player.tsx +466 -0
  48. package/src/app/components/pptx-progress-toast.tsx +32 -0
  49. package/src/app/components/present/blackout-overlay.tsx +18 -0
  50. package/src/app/components/present/control-bar.tsx +315 -0
  51. package/src/app/components/present/help-overlay.tsx +57 -0
  52. package/src/app/components/present/jump-input.tsx +74 -0
  53. package/src/app/components/present/laser-pointer.tsx +39 -0
  54. package/src/app/components/present/progress-bar.tsx +26 -0
  55. package/src/app/components/present/use-idle.ts +46 -0
  56. package/src/app/components/present/use-pointer-near-bottom.ts +34 -0
  57. package/src/app/components/present/use-presenter-channel.ts +66 -0
  58. package/src/app/components/present/use-touch-swipe.ts +66 -0
  59. package/src/app/components/shared-element.tsx +48 -0
  60. package/src/app/components/sidebar/folder-item.tsx +258 -0
  61. package/src/app/components/sidebar/icon-picker.tsx +61 -0
  62. package/src/app/components/sidebar/mobile-pill.tsx +34 -0
  63. package/src/app/components/sidebar/sidebar-footer.tsx +105 -0
  64. package/src/app/components/sidebar/sidebar.tsx +284 -0
  65. package/src/app/components/slide-canvas.tsx +102 -0
  66. package/src/app/components/slide-transition-layer.tsx +844 -0
  67. package/src/app/components/style-panel/design-provider.tsx +148 -0
  68. package/src/app/components/style-panel/style-panel.tsx +349 -0
  69. package/src/app/components/style-panel/use-design.ts +112 -0
  70. package/src/app/components/theme-toggle.tsx +59 -0
  71. package/src/app/components/themes/theme-detail.tsx +305 -0
  72. package/src/app/components/themes/themes-gallery.tsx +149 -0
  73. package/src/app/components/thumbnail-rail.tsx +805 -0
  74. package/src/app/components/ui/badge.tsx +45 -0
  75. package/src/app/components/ui/button.tsx +99 -0
  76. package/src/app/components/ui/card.tsx +92 -0
  77. package/src/app/components/ui/context-menu.tsx +237 -0
  78. package/src/app/components/ui/dialog.tsx +157 -0
  79. package/src/app/components/ui/dropdown-menu.tsx +245 -0
  80. package/src/app/components/ui/input.tsx +25 -0
  81. package/src/app/components/ui/label.tsx +24 -0
  82. package/src/app/components/ui/popover.tsx +75 -0
  83. package/src/app/components/ui/progress.tsx +31 -0
  84. package/src/app/components/ui/scroll-area.tsx +53 -0
  85. package/src/app/components/ui/select.tsx +196 -0
  86. package/src/app/components/ui/separator.tsx +28 -0
  87. package/src/app/components/ui/slider.tsx +61 -0
  88. package/src/app/components/ui/sonner.tsx +48 -0
  89. package/src/app/components/ui/tabs.tsx +79 -0
  90. package/src/app/components/ui/textarea.tsx +22 -0
  91. package/src/app/components/ui/toggle-group.tsx +83 -0
  92. package/src/app/components/ui/toggle.tsx +45 -0
  93. package/src/app/components/ui/tooltip.tsx +58 -0
  94. package/src/app/favicon.ico +0 -0
  95. package/src/app/index.html +13 -0
  96. package/src/app/lib/assets.ts +242 -0
  97. package/src/app/lib/design-presets.ts +94 -0
  98. package/src/app/lib/design.ts +58 -0
  99. package/src/app/lib/export-html.ts +326 -0
  100. package/src/app/lib/export-pdf.ts +298 -0
  101. package/src/app/lib/export-pptx.ts +284 -0
  102. package/src/app/lib/folders.ts +239 -0
  103. package/src/app/lib/inspector/fiber.test.ts +154 -0
  104. package/src/app/lib/inspector/fiber.ts +85 -0
  105. package/src/app/lib/inspector/use-comments.ts +74 -0
  106. package/src/app/lib/inspector/use-editor.ts +73 -0
  107. package/src/app/lib/inspector/use-notes.ts +134 -0
  108. package/src/app/lib/locale-store.ts +67 -0
  109. package/src/app/lib/page-context.tsx +38 -0
  110. package/src/app/lib/print-ready.test.ts +32 -0
  111. package/src/app/lib/print-ready.ts +51 -0
  112. package/src/app/lib/sdk.test.ts +13 -0
  113. package/src/app/lib/sdk.ts +37 -0
  114. package/src/app/lib/slides.ts +26 -0
  115. package/src/app/lib/step-context.tsx +261 -0
  116. package/src/app/lib/themes.ts +22 -0
  117. package/src/app/lib/transition.ts +30 -0
  118. package/src/app/lib/use-agent-socket.ts +18 -0
  119. package/src/app/lib/use-click-page-navigation.ts +60 -0
  120. package/src/app/lib/use-is-mobile.ts +21 -0
  121. package/src/app/lib/use-locale.ts +8 -0
  122. package/src/app/lib/use-prefers-reduced-motion.ts +19 -0
  123. package/src/app/lib/use-slide-module.ts +48 -0
  124. package/src/app/lib/use-wheel-page-navigation.ts +99 -0
  125. package/src/app/lib/utils.test.ts +25 -0
  126. package/src/app/lib/utils.ts +6 -0
  127. package/src/app/main.tsx +14 -0
  128. package/src/app/routes/assets.tsx +9 -0
  129. package/src/app/routes/home-shell.tsx +213 -0
  130. package/src/app/routes/home.tsx +807 -0
  131. package/src/app/routes/presenter.tsx +418 -0
  132. package/src/app/routes/slide.tsx +1108 -0
  133. package/src/app/routes/themes.tsx +34 -0
  134. package/src/app/styles.css +429 -0
  135. package/src/app/virtual.d.ts +51 -0
  136. package/src/locale/en.ts +416 -0
  137. package/src/locale/format.ts +12 -0
  138. package/src/locale/index.ts +6 -0
  139. package/src/locale/ja.ts +422 -0
  140. package/src/locale/types.ts +443 -0
  141. package/src/locale/zh-cn.ts +414 -0
  142. package/src/locale/zh-tw.ts +414 -0
@@ -0,0 +1,414 @@
1
+ import type { Locale } from './types';
2
+
3
+ export const zhTW: Locale = {
4
+ id: 'zh-TW',
5
+
6
+ common: {
7
+ cancel: '取消',
8
+ save: '儲存',
9
+ saving: '儲存中',
10
+ saved: '已儲存',
11
+ discard: '捨棄',
12
+ delete: '刪除',
13
+ rename: '重新命名',
14
+ move: '移動',
15
+ close: '關閉',
16
+ loading: '載入中',
17
+ loadFailed: '載入失敗',
18
+ failedToLoadSlide: '無法載入投影片',
19
+ home: '首頁',
20
+ backToHome: '返回首頁',
21
+ preview: '預覽',
22
+ add: '新增',
23
+ done: '完成',
24
+ tryAgain: '重試',
25
+ undo: '復原',
26
+ redo: '重做',
27
+ light: '淺色',
28
+ dark: '深色',
29
+ system: '系統',
30
+ selected: '已選取',
31
+ },
32
+
33
+ notFound: {
34
+ eyebrow: '404 · 找不到頁面',
35
+ title: '找不到頁面',
36
+ },
37
+
38
+ home: {
39
+ appTitle: 'open-aippt',
40
+ draft: '草稿',
41
+ duplicate: '複製',
42
+ themes: '主題',
43
+ assets: '素材',
44
+ folders: '資料夾',
45
+ newFolder: '新增資料夾',
46
+ folderName: '資料夾名稱',
47
+ updateAvailable: 'open-aippt {version} 已發布,請更新套件以取得最新版本。',
48
+ updatePackage: '更新',
49
+ updatingPackage: '更新中',
50
+ updatePackageDone: '已更新。請重新啟動 dev server 以使用新版本。',
51
+ updatePackageFailed: '更新失敗,請查看 dev server 輸出。',
52
+ changeIcon: '變更圖示',
53
+ iconEmojiTab: 'Emoji',
54
+ iconColorTab: '顏色',
55
+ folderActions: '資料夾操作',
56
+ searchPlaceholder: '搜尋投影片',
57
+ clearSearch: '清除搜尋',
58
+ sortLabel: '排序',
59
+ sortByCreatedDesc: '最新',
60
+ sortByCreatedAsc: '最舊',
61
+ sortByTitleAsc: 'A–Z',
62
+ sortByTitleDesc: 'Z–A',
63
+ noMatches: '沒有相符結果',
64
+ nothingMatchesPrefix: '此資料夾中沒有相符 ',
65
+ nothingMatchesSuffix: ' 的項目。',
66
+ noSlidesYet: '尚無投影片',
67
+ createSlideHintPrefix: '在 agent 中執行 ',
68
+ createSlideHintSuffix: ' 開始建立。',
69
+ folderEmptyTitle: '{name} 為空',
70
+ folderEmptyHint: '從側邊欄將投影片從草稿拖入此資料夾。',
71
+ slideActions: '投影片操作',
72
+ moveToFolder: '移至資料夾…',
73
+ renameDialogEyebrow: '重新命名',
74
+ renameDialogTitle: '重新命名投影片',
75
+ renameDialogDescription: '為這份投影片設定新的顯示名稱。',
76
+ slideNamePlaceholder: '投影片名稱',
77
+ moveDialogEyebrow: '移動',
78
+ moveDialogTitle: '移動投影片',
79
+ moveDialogDescriptionPrefix: '為 ',
80
+ moveDialogDescriptionSuffix: ' 選擇資料夾。',
81
+ deleteDialogEyebrow: '危險操作',
82
+ deleteDialogTitle: '刪除投影片?',
83
+ deleteDialogDescriptionPrefix: '這將永久從磁碟移除 ',
84
+ deleteDialogDescriptionMid: ' 與其檔案。',
85
+ deleteDialogDescriptionSuffix: '此操作無法復原。',
86
+ toastFolderCreated: '已建立資料夾「{name}」',
87
+ toastFolderCreateFailed: '建立資料夾失敗',
88
+ toastSlideDuplicated: '已將「{slide}」複製為 {newSlide}',
89
+ toastSlideDuplicateFailed: '無法複製投影片',
90
+ toastSlideMoved: '已將「{slide}」移至 {folder}',
91
+ toastSlideMoveFailed: '移動投影片失敗',
92
+ toastFolderDeleted: '已刪除資料夾「{name}」',
93
+ toastFolderDeleteFailed: '刪除資料夾失敗',
94
+ toastFolderReorderFailed: '資料夾排序失敗',
95
+ pickIcon: '選擇圖示',
96
+ },
97
+
98
+ slide: {
99
+ agentConnected: 'Agent 已連線',
100
+ agentConnectedTooltip: '目前的 slide 與 Inspector 選擇會即時同步給 agent。',
101
+ agentDisconnected: 'Agent 已斷線',
102
+ agentDisconnectedTooltip:
103
+ '已和 dev server 斷線,agent 沒辦法再看到你目前的 slide 或 Inspector 選擇。請重新啟動 dev server 來恢復連線。',
104
+ home: '首頁',
105
+ backToHome: '返回首頁',
106
+ download: '下載',
107
+ copyLink: '複製連結',
108
+ moreActions: '更多動作',
109
+ toastCopyLinkSuccess: '已複製連結到剪貼簿',
110
+ toastCopyLinkFailed: '複製連結失敗',
111
+ exportAsHtml: '匯出為 HTML',
112
+ exportAsPdf: '匯出為 PDF',
113
+ exportAsImagePptx: '匯出圖片 PPTX',
114
+ exportAsPptx: '匯出 PPTX',
115
+ comingSoon: '即將推出',
116
+ pptxComingSoonTooltip: '可編輯的 PPTX 匯出尚未支援,在此之前可以先使用「匯出圖片 PPTX」。',
117
+ pdfExportFailed: 'PDF 匯出失敗',
118
+ imagePptxExportFailed: 'PPTX 匯出失敗',
119
+ pdfExportSafariUnsupported:
120
+ '匯出 PDF 目前不支援 Safari 裝置,請嘗試用 Chromium 基底瀏覽器替代。',
121
+ present: '簡報',
122
+ presentMenuAria: '簡報選項',
123
+ presentInWindow: '播放',
124
+ presentFullscreen: '全螢幕播放',
125
+ presentPresenter: '簡報者模式',
126
+ slidesTab: '投影片',
127
+ assetsTab: '素材',
128
+ renameSlide: '重新命名投影片',
129
+ loadingEyebrow: '載入中',
130
+ emptyEyebrow: '空白',
131
+ nothingToShow: '沒有可顯示的內容。',
132
+ emptyHintPrefix: '',
133
+ emptyHintMust: ' 必須 ',
134
+ emptyHintSuffix: ' 一個非空的元件陣列。',
135
+ },
136
+
137
+ presenter: {
138
+ eyebrow: '主講人',
139
+ notLinked: '未連結',
140
+ nowShowing: '目前顯示',
141
+ upNext: '下一張',
142
+ lastSlide: '最後一張',
143
+ endOfDeck: '簡報結束',
144
+ speakerNotes: '演講備忘',
145
+ noNotesPrefix: '此投影片沒有演講備忘。在你的投影片模組中加入 ',
146
+ noNotesSuffix: ' 即可在此查看備忘。',
147
+ blackScreen: '黑屏',
148
+ whiteScreen: '白屏',
149
+ prev: '上一張',
150
+ next: '下一張',
151
+ black: '黑屏',
152
+ white: '白屏',
153
+ reset: '重設',
154
+ resetTimer: '重設計時器',
155
+ currentTime: '目前時間',
156
+ elapsed: '已耗時',
157
+ jump: '跳至',
158
+ loadingSlide: '正在載入 {slideId}…',
159
+ },
160
+
161
+ present: {
162
+ prevSlideAria: '上一張投影片 (←)',
163
+ nextSlideAria: '下一張投影片 (→)',
164
+ overviewAria: '投影片總覽 (O)',
165
+ blackoutAria: '黑屏 (B)',
166
+ whiteoutAria: '白屏 (W)',
167
+ laserAria: '雷射筆 (L)',
168
+ presenterAria: '主講人檢視 (P)',
169
+ enterFullscreenAria: '進入全螢幕',
170
+ exitFullscreenAria: '退出全螢幕',
171
+ helpAria: '鍵盤快速鍵 (?)',
172
+ exitAria: '離開 (Esc)',
173
+ elapsedTime: '已耗時',
174
+ helpEyebrow: '簡報模式',
175
+ helpTitle: '鍵盤快速鍵',
176
+ shortcutNext: '下一張',
177
+ shortcutPrev: '上一張',
178
+ shortcutFirstLast: '第一張 / 最後一張',
179
+ shortcutJump: '跳至投影片',
180
+ shortcutOverview: '投影片總覽',
181
+ shortcutBlack: '黑屏',
182
+ shortcutWhite: '白屏',
183
+ shortcutLaser: '雷射筆',
184
+ shortcutPresenter: '開啟主講人檢視',
185
+ shortcutToggleHelp: '切換此說明',
186
+ shortcutCloseExit: '關閉覆蓋 / 離開',
187
+ overviewDialogAria: '投影片總覽',
188
+ overviewEyebrow: '總覽',
189
+ overviewGoToAria: '前往第 {n} 張投影片',
190
+ nowBadge: '目前',
191
+ },
192
+
193
+ inspector: {
194
+ inspect: '檢視',
195
+ deselect: '取消選取',
196
+ contentSection: '內容',
197
+ typographySection: '字體',
198
+ colorSection: '顏色',
199
+ textColor: '文字',
200
+ backgroundColor: '背景',
201
+ imageSection: '圖片',
202
+ imagePlaceholderSection: '圖片佔位符',
203
+ elementTextPlaceholder: '元素文字',
204
+ sizeLabel: '大小',
205
+ weightLabel: '字重',
206
+ weightLight: '細體 · 300',
207
+ weightRegular: '一般 · 400',
208
+ weightMedium: '中等 · 500',
209
+ weightSemibold: '半粗體 · 600',
210
+ weightBold: '粗體 · 700',
211
+ weightExtrabold: '特粗 · 800',
212
+ styleLabel: '樣式',
213
+ boldAria: '粗體',
214
+ italicAria: '斜體',
215
+ lineHeightLabel: '行高',
216
+ trackingLabel: '字距',
217
+ alignLabel: '對齊',
218
+ clearAria: '清除',
219
+ replace: '替換…',
220
+ replaceImageDialogTitle: '替換圖片',
221
+ replaceImageDescription: '從 {path} 選擇素材。',
222
+ pickerLoading: '載入中…',
223
+ pickerEmpty: '此投影片的素材資料夾尚未有圖片。請從「素材」分頁加入。',
224
+ placeholderHintLabel: '提示:',
225
+ crop: '裁切…',
226
+ cropDialogTitle: '裁切圖片',
227
+ cropDialogDescription: '拖曳框線決定要保留的可見範圍。',
228
+ cropFitCover: '填滿',
229
+ cropFitContain: '完整顯示',
230
+ cropApply: '套用',
231
+ cropResetAria: '重設裁切',
232
+ agentWatching: 'Agent 正在關注',
233
+ agentWatchingTooltip: '選取的元素會即時同步給 agent。',
234
+ agentNotWatching: 'Agent 沒在關注',
235
+ agentNotWatchingTooltip:
236
+ '已和 dev server 斷線,agent 看不到你選的元素了。請重新啟動 dev server 來恢復連線。',
237
+ leaveComment: '留個 comment',
238
+ commentPlaceholder: '描述你希望代理進行的修改…',
239
+ commentShortcutHint: '⌘/ 聚焦 · ⌘↵ 新增',
240
+ addComment: '新增 comment',
241
+ unsavedChanges: {
242
+ one: '{count} 項未儲存的變更',
243
+ other: '{count} 項未儲存的變更',
244
+ },
245
+ commentsCount: {
246
+ one: '{count} 則留言',
247
+ other: '{count} 則留言',
248
+ },
249
+ commentLineLabel: '第 {n} 行',
250
+ commentsEmpty: '尚無留言。開啟「檢視」並點選投影片元素。',
251
+ commentsApplyHintPrefix: '在你的代理中執行 ',
252
+ commentsApplyHintSuffix: ' 以套用這些變更。',
253
+ commentDeleteAria: '刪除',
254
+ saveFailed: '儲存失敗:',
255
+ },
256
+
257
+ stylePanel: {
258
+ designTokens: '設計樣式',
259
+ draftBadge: '草稿',
260
+ unsavedTitle: '未儲存',
261
+ closePanelAria: '關閉設計面板',
262
+ colorsSection: '顏色',
263
+ typographySection: '字體',
264
+ shapeSection: '形狀',
265
+ backgroundLabel: '背景',
266
+ textLabel: '文字',
267
+ accentLabel: '強調色',
268
+ displayFontLabel: '顯示',
269
+ bodyFontLabel: '內文',
270
+ heroLabel: '主標',
271
+ bodyLabel: '內文',
272
+ radiusLabel: '圓角',
273
+ designToggle: '設計',
274
+ designToggleTitle: '設計樣式',
275
+ fontPresetCustom: '自訂…',
276
+ shuffleAria: '隨機設計',
277
+ shuffleTitle: '隨機配色獲取靈感',
278
+ },
279
+
280
+ asset: {
281
+ devOnlyMessage: '素材管理僅在開發模式下可用。',
282
+ sectionAria: '投影片素材',
283
+ eyebrow: '素材',
284
+ scopeSlide: '此投影片',
285
+ scopeGlobal: '全域',
286
+ fileCount: { one: '{count} 個檔案', other: '{count} 個檔案' },
287
+ usageUnused: '未使用',
288
+ searchLogos: '搜尋 Logo',
289
+ upload: '上傳',
290
+ dropToUpload: '拖入即可上傳',
291
+ loading: '載入中…',
292
+ noAssetsYet: '尚無素材',
293
+ noAssetsHintPrefix: '將檔案拖到任意處,或使用 ',
294
+ noAssetsHintSuffix: '。',
295
+ nameAlreadyExists: '已有同名檔案存在。',
296
+ previewAria: '預覽 {name}',
297
+ actionsAria: '{name} 的操作',
298
+ previewMenuItem: '預覽',
299
+ renameMenuItem: '重新命名',
300
+ deleteMenuItem: '刪除',
301
+ conflictTitle: '檔案已存在',
302
+ conflictDescription: '{name} 已在素材資料夾中。',
303
+ conflictReplace: '取代',
304
+ conflictRenameCopy: '重新命名副本',
305
+ deleteAssetTitle: '刪除素材',
306
+ deleteAssetDescription: '要刪除 {name} 嗎?投影片中引用此檔案的匯入將失效。',
307
+ deleteAssetInUseDescription: '{name} 在 {slides} 個投影片中被使用了 {count} 次。',
308
+ deleteAssetInUseHint: '刪除後這些使用處會自動還原為圖片占位符。',
309
+ deleteAndRevert: '刪除並還原',
310
+ toastRevertFailed: '無法還原 {slideId} 中的使用',
311
+ toastDeletedWithRevert: '已刪除 {name} 並還原 {count} 個使用處',
312
+ noPreview: '無預覽',
313
+ importHintComment: 'import asset from ',
314
+ importHintSemi: ';',
315
+ logoSearchTitle: '搜尋 Logo',
316
+ logoSearchPoweredByPrefix: '由 ',
317
+ logoSearchPlaceholder: '依品牌搜尋…',
318
+ logoSearchErrorTitle: '無法連線至 svgl',
319
+ logoSearchErrorBody: '請檢查網路連線後重試。',
320
+ logoSearchNoResults: '找不到「{query}」的 Logo',
321
+ logoSearchEmpty: '沒有可用的 Logo',
322
+ logoSearchEmptyHintPrefix: '試試其他品牌名稱,或在以下網站瀏覽完整目錄: ',
323
+ logoSearchEmptyHintSuffix: '。',
324
+ logoVariantLight: '淺色',
325
+ logoVariantDark: '深色',
326
+ toastUploadFailed: '上傳失敗 ({status})',
327
+ toastReplaced: '已取代 {name}',
328
+ toastUploadedAs: '已以 {name} 上傳',
329
+ toastUploaded: '已上傳 {name}',
330
+ toastRenameFailed: '重新命名失敗 ({status})',
331
+ toastRenamed: '已重新命名為 {name}',
332
+ toastDeleteFailed: '刪除失敗 ({status})',
333
+ toastDeleted: '已刪除 {name}',
334
+ toastDownloadFailed: '下載 Logo 失敗',
335
+ toastSearchFailed: '搜尋失敗',
336
+ },
337
+
338
+ thumbnailRail: {
339
+ pages: '頁面',
340
+ goToPageAria: '前往第 {n} 頁',
341
+ duplicatePage: '複製',
342
+ deletePage: '刪除',
343
+ pageActionsAria: '第 {n} 頁的操作',
344
+ toastDuplicated: '已複製第 {n} 頁',
345
+ toastDeleted: '已刪除第 {n} 頁',
346
+ toastDuplicateFailed: '無法複製頁面',
347
+ toastDeleteFailed: '無法刪除頁面',
348
+ resizeRail: '調整縮圖欄寬度',
349
+ transitionIndicator: '有換頁轉場',
350
+ stepsIndicator: '有逐步揭示',
351
+ overviewAria: '投影片總覽 (O)',
352
+ },
353
+
354
+ pdfToast: {
355
+ title: '匯出 PDF',
356
+ processing: '處理第 {current} / {total} 頁',
357
+ printing: '正在開啟列印對話框…',
358
+ done: '完成',
359
+ },
360
+
361
+ pptxToast: {
362
+ title: '匯出 PPTX',
363
+ processing: '正在算繪第 {current} / {total} 頁',
364
+ generating: '正在組合簡報…',
365
+ done: '完成',
366
+ },
367
+
368
+ themeToggle: {
369
+ toggleAria: '切換主題',
370
+ title: '主題',
371
+ light: '淺色',
372
+ dark: '深色',
373
+ system: '系統',
374
+ },
375
+
376
+ languageToggle: {
377
+ toggleAria: '切換語言',
378
+ title: '語言',
379
+ },
380
+
381
+ imagePlaceholder: {
382
+ dropOverlay: '拖入圖片以使用',
383
+ uploading: '上傳中…',
384
+ uploadFailed: '圖片上傳失敗',
385
+ },
386
+
387
+ notesDrawer: {
388
+ toggle: '講稿',
389
+ pageLabel: '第 {n} / {total} 頁',
390
+ placeholder: '為這一頁撰寫演講備忘…',
391
+ statusSaving: '儲存中…',
392
+ statusSaved: '已儲存',
393
+ statusError: '儲存失敗:{msg}',
394
+ },
395
+
396
+ themes: {
397
+ title: '主題',
398
+ noThemesTitle: '尚無主題',
399
+ noThemesHintPrefix: '執行 ',
400
+ noThemesHintSuffix: ' 來建立一個 — 一個位於 themes/ 的 markdown 檔案,加上同名的 demo slide。',
401
+ noDemoYet: '尚無 demo',
402
+ noDemoHintPrefix: '對此主題重新執行 ',
403
+ noDemoHintSuffix: ' 即可產生預覽用的 slide。',
404
+ backToGallery: '返回主題列表',
405
+ pageOf: '第 {n}/{total} 頁',
406
+ nextPageAria: '下一頁',
407
+ prevPageAria: '上一頁',
408
+ openThemeAria: '開啟主題 {name}',
409
+ usedBy: '使用此主題的 slides',
410
+ usedByEmpty: '尚未有 slides 使用此主題。',
411
+ expandPromptAria: '展開 prompt',
412
+ collapsePromptAria: '收合 prompt',
413
+ },
414
+ };