@open-slide/core 1.2.0 → 1.4.0
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-6BeQ3cxb.js → build-1Rqivz0d.js} +2 -2
- package/dist/cli/bin.js +5 -5
- package/dist/{config-AxZ5OE1u.js → config-XZJnC_fu.js} +735 -64
- package/dist/{config-CtT8K4VF.d.ts → config-s0YUbmUe.d.ts} +3 -1
- package/dist/{dev-C9eLmUEq.js → dev-0W8gYiSa.js} +2 -2
- package/dist/en-7GU-DHbJ.js +361 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +229 -39
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.js +136 -342
- package/dist/{preview-Cunm-f4i.js → preview-DT9hJvzM.js} +2 -2
- package/dist/sync-j9_QPovT.js +3 -0
- package/dist/{types-CRHIeoNq.d.ts → types-QCpkHkiS.d.ts} +42 -2
- package/dist/vite/index.d.ts +2 -2
- package/dist/vite/index.js +2 -2
- package/package.json +9 -1
- package/skills/create-slide/SKILL.md +1 -1
- package/skills/create-theme/SKILL.md +60 -12
- package/skills/slide-authoring/SKILL.md +21 -2
- package/src/app/app.tsx +13 -1
- package/src/app/components/asset-view.tsx +37 -22
- package/src/app/components/image-placeholder.tsx +123 -1
- package/src/app/components/inspector/inspect-overlay.tsx +49 -3
- package/src/app/components/inspector/inspector-panel.tsx +370 -30
- package/src/app/components/inspector/inspector-provider.tsx +390 -49
- package/src/app/components/player.tsx +25 -5
- package/src/app/components/present/control-bar.tsx +12 -0
- package/src/app/components/sidebar/folder-item.tsx +27 -5
- package/src/app/components/sidebar/mobile-pill.tsx +34 -0
- package/src/app/components/sidebar/sidebar.tsx +20 -0
- package/src/app/components/themes/theme-detail.tsx +300 -0
- package/src/app/components/themes/themes-gallery.tsx +146 -0
- package/src/app/components/thumbnail-rail.tsx +17 -5
- package/src/app/lib/assets.ts +55 -2
- package/src/app/lib/export-pdf.ts +6 -0
- package/src/app/lib/inspector/use-editor.ts +9 -1
- package/src/app/lib/sdk.ts +1 -0
- package/src/app/lib/slides.ts +17 -1
- package/src/app/lib/themes.ts +22 -0
- package/src/app/lib/use-agent-socket.ts +18 -0
- package/src/app/lib/use-slide-module.ts +48 -0
- package/src/app/routes/assets.tsx +9 -0
- package/src/app/routes/home-shell.tsx +194 -0
- package/src/app/routes/home.tsx +89 -207
- package/src/app/routes/presenter.tsx +2 -20
- package/src/app/routes/slide.tsx +217 -54
- package/src/app/routes/themes.tsx +34 -0
- package/src/app/virtual.d.ts +20 -0
- package/src/locale/en.ts +49 -7
- package/src/locale/ja.ts +50 -7
- package/src/locale/types.ts +44 -2
- package/src/locale/zh-cn.ts +49 -8
- package/src/locale/zh-tw.ts +49 -8
- package/dist/sync-B4eLo2H6.js +0 -3
- /package/dist/{design-C13iz9_4.js → design-cpzS8aud.js} +0 -0
- /package/dist/{sync-3oqN1WyK.js → sync-BCJDRIqo.js} +0 -0
package/src/locale/ja.ts
CHANGED
|
@@ -38,6 +38,8 @@ export const ja: Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: 'open-slide',
|
|
40
40
|
draft: '下書き',
|
|
41
|
+
themes: 'テーマ',
|
|
42
|
+
assets: 'アセット',
|
|
41
43
|
folders: 'フォルダ',
|
|
42
44
|
newFolder: '新規フォルダ',
|
|
43
45
|
folderName: 'フォルダ名',
|
|
@@ -51,9 +53,8 @@ export const ja: Locale = {
|
|
|
51
53
|
nothingMatchesPrefix: 'このフォルダ内に ',
|
|
52
54
|
nothingMatchesSuffix: ' に一致する項目はありません。',
|
|
53
55
|
noSlidesYet: 'スライドはまだありません',
|
|
54
|
-
createSlideHintPrefix: '',
|
|
55
|
-
|
|
56
|
-
createSlideHintSuffix: ' してください。',
|
|
56
|
+
createSlideHintPrefix: 'エージェントで ',
|
|
57
|
+
createSlideHintSuffix: ' を実行してスライドを作成しましょう。',
|
|
57
58
|
folderEmptyTitle: '{name} は空です',
|
|
58
59
|
folderEmptyHint: 'サイドバーから下書きのスライドをこのフォルダにドラッグしてください。',
|
|
59
60
|
slideActions: 'スライド操作',
|
|
@@ -83,14 +84,23 @@ export const ja: Locale = {
|
|
|
83
84
|
slide: {
|
|
84
85
|
agentConnected: 'エージェント接続中',
|
|
85
86
|
agentConnectedTooltip:
|
|
86
|
-
'現在のスライドと Inspector
|
|
87
|
+
'現在のスライドと Inspector の選択はエージェントにリアルタイムで同期されています。',
|
|
88
|
+
agentDisconnected: 'エージェント切断',
|
|
89
|
+
agentDisconnectedTooltip:
|
|
90
|
+
'dev server との接続が切れたため、現在のスライドや Inspector の選択がエージェントに届かなくなっています。dev server を再起動して接続を復旧してください。',
|
|
87
91
|
home: 'ホーム',
|
|
88
92
|
backToHome: 'ホームへ戻る',
|
|
89
93
|
download: 'ダウンロード',
|
|
90
94
|
exportAsHtml: 'HTML として書き出し',
|
|
91
95
|
exportAsPdf: 'PDF として書き出し',
|
|
92
96
|
pdfExportFailed: 'PDF の書き出しに失敗しました',
|
|
97
|
+
pdfExportSafariUnsupported:
|
|
98
|
+
'PDF の書き出しは現在 Safari では対応していません。Chromium ベースのブラウザでお試しください。',
|
|
93
99
|
present: '発表',
|
|
100
|
+
presentMenuAria: '発表オプション',
|
|
101
|
+
presentInWindow: '再生',
|
|
102
|
+
presentFullscreen: 'フルスクリーン再生',
|
|
103
|
+
presentPresenter: '発表者モード',
|
|
94
104
|
slidesTab: 'スライド',
|
|
95
105
|
assetsTab: 'アセット',
|
|
96
106
|
renameSlide: 'スライドの名前を変更',
|
|
@@ -134,6 +144,8 @@ export const ja: Locale = {
|
|
|
134
144
|
whiteoutAria: '白い画面 (W)',
|
|
135
145
|
laserAria: 'レーザーポインタ (L)',
|
|
136
146
|
presenterAria: '発表者ビュー (P)',
|
|
147
|
+
enterFullscreenAria: 'フルスクリーンへ',
|
|
148
|
+
exitFullscreenAria: 'フルスクリーン解除',
|
|
137
149
|
helpAria: 'キーボードショートカット (?)',
|
|
138
150
|
exitAria: '終了 (Esc)',
|
|
139
151
|
elapsedTime: '経過時間',
|
|
@@ -197,8 +209,10 @@ export const ja: Locale = {
|
|
|
197
209
|
cropApply: '適用',
|
|
198
210
|
cropResetAria: 'トリミングをリセット',
|
|
199
211
|
agentWatching: 'エージェント監視中',
|
|
200
|
-
agentWatchingTooltip:
|
|
201
|
-
|
|
212
|
+
agentWatchingTooltip: '選択中の要素はエージェントにリアルタイムで同期されています。',
|
|
213
|
+
agentNotWatching: 'エージェント未接続',
|
|
214
|
+
agentNotWatchingTooltip:
|
|
215
|
+
'dev server との接続が切れたため、選択中の要素がエージェントに見えなくなっています。dev server を再起動して接続を復旧してください。',
|
|
202
216
|
leaveComment: 'コメントを残す',
|
|
203
217
|
commentPlaceholder: 'エージェントに依頼する変更を記述…',
|
|
204
218
|
commentShortcutHint: '⌘↵ で追加',
|
|
@@ -247,6 +261,8 @@ export const ja: Locale = {
|
|
|
247
261
|
devOnlyMessage: 'アセット管理は開発モードでのみ利用できます。',
|
|
248
262
|
sectionAria: 'スライドのアセット',
|
|
249
263
|
eyebrow: 'アセット',
|
|
264
|
+
scopeSlide: 'このスライド',
|
|
265
|
+
scopeGlobal: 'グローバル',
|
|
250
266
|
fileCount: { one: 'ファイル {count} 件', other: 'ファイル {count} 件' },
|
|
251
267
|
searchLogos: 'ロゴを検索',
|
|
252
268
|
upload: 'アップロード',
|
|
@@ -262,7 +278,7 @@ export const ja: Locale = {
|
|
|
262
278
|
renameMenuItem: '名前を変更',
|
|
263
279
|
deleteMenuItem: '削除',
|
|
264
280
|
conflictTitle: 'ファイルがすでに存在します',
|
|
265
|
-
conflictDescription: '{name}
|
|
281
|
+
conflictDescription: '{name} はすでにアセットフォルダにあります。',
|
|
266
282
|
conflictReplace: '置き換え',
|
|
267
283
|
conflictRenameCopy: 'コピーをリネーム',
|
|
268
284
|
deleteAssetTitle: 'アセットを削除',
|
|
@@ -305,6 +321,7 @@ export const ja: Locale = {
|
|
|
305
321
|
toastDeleted: 'ページ {n} を削除しました',
|
|
306
322
|
toastDuplicateFailed: 'ページを複製できませんでした',
|
|
307
323
|
toastDeleteFailed: 'ページを削除できませんでした',
|
|
324
|
+
resizeRail: 'サムネイル幅を調整',
|
|
308
325
|
},
|
|
309
326
|
|
|
310
327
|
pdfToast: {
|
|
@@ -327,6 +344,12 @@ export const ja: Locale = {
|
|
|
327
344
|
nextAria: '次のページ',
|
|
328
345
|
},
|
|
329
346
|
|
|
347
|
+
imagePlaceholder: {
|
|
348
|
+
dropOverlay: 'ここにドロップして使用',
|
|
349
|
+
uploading: 'アップロード中…',
|
|
350
|
+
uploadFailed: '画像のアップロードに失敗しました',
|
|
351
|
+
},
|
|
352
|
+
|
|
330
353
|
notesDrawer: {
|
|
331
354
|
toggle: '発表者ノート',
|
|
332
355
|
pageLabel: '{n} / {total} ページ',
|
|
@@ -335,4 +358,24 @@ export const ja: Locale = {
|
|
|
335
358
|
statusSaved: '保存済み',
|
|
336
359
|
statusError: '保存に失敗しました: {msg}',
|
|
337
360
|
},
|
|
361
|
+
|
|
362
|
+
themes: {
|
|
363
|
+
title: 'テーマ',
|
|
364
|
+
noThemesTitle: 'テーマがまだありません',
|
|
365
|
+
noThemesHintPrefix: '',
|
|
366
|
+
noThemesHintSuffix:
|
|
367
|
+
' を実行して作成 — themes/ に markdown ファイルと同名の demo スライドを置きます。',
|
|
368
|
+
noDemoYet: 'デモがまだありません',
|
|
369
|
+
noDemoHintPrefix: 'このテーマで ',
|
|
370
|
+
noDemoHintSuffix: ' を再実行するとプレビュー用スライドが生成されます。',
|
|
371
|
+
backToGallery: 'テーマ一覧へ戻る',
|
|
372
|
+
pageOf: '{n}/{total} ページ',
|
|
373
|
+
nextPageAria: '次のページ',
|
|
374
|
+
prevPageAria: '前のページ',
|
|
375
|
+
openThemeAria: 'テーマ {name} を開く',
|
|
376
|
+
usedBy: 'このテーマを使うスライド',
|
|
377
|
+
usedByEmpty: 'このテーマを使うスライドはまだありません。',
|
|
378
|
+
expandPromptAria: 'プロンプトを展開',
|
|
379
|
+
collapsePromptAria: 'プロンプトを折りたたむ',
|
|
380
|
+
},
|
|
338
381
|
};
|
package/src/locale/types.ts
CHANGED
|
@@ -38,6 +38,8 @@ export type Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: string;
|
|
40
40
|
draft: string;
|
|
41
|
+
themes: string;
|
|
42
|
+
assets: string;
|
|
41
43
|
folders: string;
|
|
42
44
|
newFolder: string;
|
|
43
45
|
folderName: string;
|
|
@@ -52,7 +54,6 @@ export type Locale = {
|
|
|
52
54
|
nothingMatchesSuffix: string;
|
|
53
55
|
noSlidesYet: string;
|
|
54
56
|
createSlideHintPrefix: string;
|
|
55
|
-
createSlideHintMid: string;
|
|
56
57
|
createSlideHintSuffix: string;
|
|
57
58
|
folderEmptyTitle: string;
|
|
58
59
|
folderEmptyHint: string;
|
|
@@ -88,11 +89,18 @@ export type Locale = {
|
|
|
88
89
|
backToHome: string;
|
|
89
90
|
agentConnected: string;
|
|
90
91
|
agentConnectedTooltip: string;
|
|
92
|
+
agentDisconnected: string;
|
|
93
|
+
agentDisconnectedTooltip: string;
|
|
91
94
|
download: string;
|
|
92
95
|
exportAsHtml: string;
|
|
93
96
|
exportAsPdf: string;
|
|
94
97
|
pdfExportFailed: string;
|
|
98
|
+
pdfExportSafariUnsupported: string;
|
|
95
99
|
present: string;
|
|
100
|
+
presentMenuAria: string;
|
|
101
|
+
presentInWindow: string;
|
|
102
|
+
presentFullscreen: string;
|
|
103
|
+
presentPresenter: string;
|
|
96
104
|
slidesTab: string;
|
|
97
105
|
assetsTab: string;
|
|
98
106
|
renameSlide: string;
|
|
@@ -137,6 +145,8 @@ export type Locale = {
|
|
|
137
145
|
whiteoutAria: string;
|
|
138
146
|
laserAria: string;
|
|
139
147
|
presenterAria: string;
|
|
148
|
+
enterFullscreenAria: string;
|
|
149
|
+
exitFullscreenAria: string;
|
|
140
150
|
helpAria: string;
|
|
141
151
|
exitAria: string;
|
|
142
152
|
elapsedTime: string;
|
|
@@ -165,6 +175,8 @@ export type Locale = {
|
|
|
165
175
|
deselect: string;
|
|
166
176
|
agentWatching: string;
|
|
167
177
|
agentWatchingTooltip: string;
|
|
178
|
+
agentNotWatching: string;
|
|
179
|
+
agentNotWatchingTooltip: string;
|
|
168
180
|
contentSection: string;
|
|
169
181
|
typographySection: string;
|
|
170
182
|
colorSection: string;
|
|
@@ -247,6 +259,8 @@ export type Locale = {
|
|
|
247
259
|
devOnlyMessage: string;
|
|
248
260
|
sectionAria: string;
|
|
249
261
|
eyebrow: string;
|
|
262
|
+
scopeSlide: string;
|
|
263
|
+
scopeGlobal: string;
|
|
250
264
|
/** templates: "{count} file" / "{count} files" */
|
|
251
265
|
fileCount: Plural;
|
|
252
266
|
searchLogos: string;
|
|
@@ -265,7 +279,7 @@ export type Locale = {
|
|
|
265
279
|
renameMenuItem: string;
|
|
266
280
|
deleteMenuItem: string;
|
|
267
281
|
conflictTitle: string;
|
|
268
|
-
/** template: "{name} is already in
|
|
282
|
+
/** template: "{name} is already in the assets folder." */
|
|
269
283
|
conflictDescription: string;
|
|
270
284
|
conflictReplace: string;
|
|
271
285
|
conflictRenameCopy: string;
|
|
@@ -321,6 +335,7 @@ export type Locale = {
|
|
|
321
335
|
toastDeleted: string;
|
|
322
336
|
toastDuplicateFailed: string;
|
|
323
337
|
toastDeleteFailed: string;
|
|
338
|
+
resizeRail: string;
|
|
324
339
|
};
|
|
325
340
|
|
|
326
341
|
pdfToast: {
|
|
@@ -344,6 +359,12 @@ export type Locale = {
|
|
|
344
359
|
nextAria: string;
|
|
345
360
|
};
|
|
346
361
|
|
|
362
|
+
imagePlaceholder: {
|
|
363
|
+
dropOverlay: string;
|
|
364
|
+
uploading: string;
|
|
365
|
+
uploadFailed: string;
|
|
366
|
+
};
|
|
367
|
+
|
|
347
368
|
notesDrawer: {
|
|
348
369
|
toggle: string;
|
|
349
370
|
/** template: "page {n}/{total}" */
|
|
@@ -354,4 +375,25 @@ export type Locale = {
|
|
|
354
375
|
/** template: "Save failed: {msg}" */
|
|
355
376
|
statusError: string;
|
|
356
377
|
};
|
|
378
|
+
|
|
379
|
+
themes: {
|
|
380
|
+
title: string;
|
|
381
|
+
noThemesTitle: string;
|
|
382
|
+
noThemesHintPrefix: string;
|
|
383
|
+
noThemesHintSuffix: string;
|
|
384
|
+
noDemoYet: string;
|
|
385
|
+
noDemoHintPrefix: string;
|
|
386
|
+
noDemoHintSuffix: string;
|
|
387
|
+
backToGallery: string;
|
|
388
|
+
/** template: "page {n}/{total}" */
|
|
389
|
+
pageOf: string;
|
|
390
|
+
nextPageAria: string;
|
|
391
|
+
prevPageAria: string;
|
|
392
|
+
/** template: "Open theme {name}" */
|
|
393
|
+
openThemeAria: string;
|
|
394
|
+
usedBy: string;
|
|
395
|
+
usedByEmpty: string;
|
|
396
|
+
expandPromptAria: string;
|
|
397
|
+
collapsePromptAria: string;
|
|
398
|
+
};
|
|
357
399
|
};
|
package/src/locale/zh-cn.ts
CHANGED
|
@@ -38,6 +38,8 @@ export const zhCN: Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: 'open-slide',
|
|
40
40
|
draft: '草稿',
|
|
41
|
+
themes: '主题',
|
|
42
|
+
assets: '素材',
|
|
41
43
|
folders: '文件夹',
|
|
42
44
|
newFolder: '新建文件夹',
|
|
43
45
|
folderName: '文件夹名称',
|
|
@@ -51,9 +53,8 @@ export const zhCN: Locale = {
|
|
|
51
53
|
nothingMatchesPrefix: '该文件夹中没有匹配 ',
|
|
52
54
|
nothingMatchesSuffix: ' 的内容。',
|
|
53
55
|
noSlidesYet: '尚无幻灯片',
|
|
54
|
-
createSlideHintPrefix: '
|
|
55
|
-
|
|
56
|
-
createSlideHintSuffix: '。',
|
|
56
|
+
createSlideHintPrefix: '在 agent 中执行 ',
|
|
57
|
+
createSlideHintSuffix: ' 开始创建。',
|
|
57
58
|
folderEmptyTitle: '{name} 为空',
|
|
58
59
|
folderEmptyHint: '从侧边栏将幻灯片从草稿拖入此文件夹。',
|
|
59
60
|
slideActions: '幻灯片操作',
|
|
@@ -82,15 +83,23 @@ export const zhCN: Locale = {
|
|
|
82
83
|
|
|
83
84
|
slide: {
|
|
84
85
|
agentConnected: 'Agent 已连接',
|
|
85
|
-
agentConnectedTooltip:
|
|
86
|
-
|
|
86
|
+
agentConnectedTooltip: '目前的 slide 与 Inspector 选择会即时同步给 agent。',
|
|
87
|
+
agentDisconnected: 'Agent 已断开',
|
|
88
|
+
agentDisconnectedTooltip:
|
|
89
|
+
'已和 dev server 断开连接,agent 没办法再看到你目前的 slide 或 Inspector 选择。请重新启动 dev server 来恢复连接。',
|
|
87
90
|
home: '首页',
|
|
88
91
|
backToHome: '返回首页',
|
|
89
92
|
download: '下载',
|
|
90
93
|
exportAsHtml: '导出为 HTML',
|
|
91
94
|
exportAsPdf: '导出为 PDF',
|
|
92
95
|
pdfExportFailed: 'PDF 导出失败',
|
|
96
|
+
pdfExportSafariUnsupported:
|
|
97
|
+
'导出 PDF 目前不支持 Safari 设备,请尝试使用基于 Chromium 的浏览器替代。',
|
|
93
98
|
present: '演示',
|
|
99
|
+
presentMenuAria: '演示选项',
|
|
100
|
+
presentInWindow: '播放',
|
|
101
|
+
presentFullscreen: '全屏播放',
|
|
102
|
+
presentPresenter: '演讲者模式',
|
|
94
103
|
slidesTab: '幻灯片',
|
|
95
104
|
assetsTab: '素材',
|
|
96
105
|
renameSlide: '重命名幻灯片',
|
|
@@ -134,6 +143,8 @@ export const zhCN: Locale = {
|
|
|
134
143
|
whiteoutAria: '白屏 (W)',
|
|
135
144
|
laserAria: '激光笔 (L)',
|
|
136
145
|
presenterAria: '演讲者视图 (P)',
|
|
146
|
+
enterFullscreenAria: '进入全屏',
|
|
147
|
+
exitFullscreenAria: '退出全屏',
|
|
137
148
|
helpAria: '键盘快捷键 (?)',
|
|
138
149
|
exitAria: '退出 (Esc)',
|
|
139
150
|
elapsedTime: '已用时',
|
|
@@ -196,8 +207,10 @@ export const zhCN: Locale = {
|
|
|
196
207
|
cropApply: '应用',
|
|
197
208
|
cropResetAria: '重置裁剪',
|
|
198
209
|
agentWatching: 'Agent 正在关注',
|
|
199
|
-
agentWatchingTooltip:
|
|
200
|
-
|
|
210
|
+
agentWatchingTooltip: '选取的元素会即时同步给 agent。',
|
|
211
|
+
agentNotWatching: 'Agent 没在关注',
|
|
212
|
+
agentNotWatchingTooltip:
|
|
213
|
+
'已和 dev server 断开连接,agent 看不到你选的元素了。请重新启动 dev server 来恢复连接。',
|
|
201
214
|
leaveComment: '留个 comment',
|
|
202
215
|
commentPlaceholder: '描述你希望代理执行的更改…',
|
|
203
216
|
commentShortcutHint: '⌘↵ 添加',
|
|
@@ -245,6 +258,8 @@ export const zhCN: Locale = {
|
|
|
245
258
|
devOnlyMessage: '素材管理仅在开发模式下可用。',
|
|
246
259
|
sectionAria: '幻灯片素材',
|
|
247
260
|
eyebrow: '素材',
|
|
261
|
+
scopeSlide: '当前幻灯片',
|
|
262
|
+
scopeGlobal: '全局',
|
|
248
263
|
fileCount: { one: '{count} 个文件', other: '{count} 个文件' },
|
|
249
264
|
searchLogos: '搜索 Logo',
|
|
250
265
|
upload: '上传',
|
|
@@ -260,7 +275,7 @@ export const zhCN: Locale = {
|
|
|
260
275
|
renameMenuItem: '重命名',
|
|
261
276
|
deleteMenuItem: '删除',
|
|
262
277
|
conflictTitle: '文件已存在',
|
|
263
|
-
conflictDescription: '{name}
|
|
278
|
+
conflictDescription: '{name} 已在素材文件夹中。',
|
|
264
279
|
conflictReplace: '替换',
|
|
265
280
|
conflictRenameCopy: '重命名副本',
|
|
266
281
|
deleteAssetTitle: '删除素材',
|
|
@@ -301,6 +316,7 @@ export const zhCN: Locale = {
|
|
|
301
316
|
toastDeleted: '已删除第 {n} 页',
|
|
302
317
|
toastDuplicateFailed: '无法复制页面',
|
|
303
318
|
toastDeleteFailed: '无法删除页面',
|
|
319
|
+
resizeRail: '调整缩略图栏宽度',
|
|
304
320
|
},
|
|
305
321
|
|
|
306
322
|
pdfToast: {
|
|
@@ -323,6 +339,12 @@ export const zhCN: Locale = {
|
|
|
323
339
|
nextAria: '下一页',
|
|
324
340
|
},
|
|
325
341
|
|
|
342
|
+
imagePlaceholder: {
|
|
343
|
+
dropOverlay: '拖入图片以使用',
|
|
344
|
+
uploading: '上传中…',
|
|
345
|
+
uploadFailed: '图片上传失败',
|
|
346
|
+
},
|
|
347
|
+
|
|
326
348
|
notesDrawer: {
|
|
327
349
|
toggle: '演讲备注',
|
|
328
350
|
pageLabel: '第 {n} / {total} 页',
|
|
@@ -331,4 +353,23 @@ export const zhCN: Locale = {
|
|
|
331
353
|
statusSaved: '已保存',
|
|
332
354
|
statusError: '保存失败:{msg}',
|
|
333
355
|
},
|
|
356
|
+
|
|
357
|
+
themes: {
|
|
358
|
+
title: '主题',
|
|
359
|
+
noThemesTitle: '尚无主题',
|
|
360
|
+
noThemesHintPrefix: '运行 ',
|
|
361
|
+
noThemesHintSuffix: ' 来创建一个 — 一个位于 themes/ 的 markdown 文件,加上同名的 demo slide。',
|
|
362
|
+
noDemoYet: '尚无 demo',
|
|
363
|
+
noDemoHintPrefix: '对此主题重新运行 ',
|
|
364
|
+
noDemoHintSuffix: ' 即可生成预览用的 slide。',
|
|
365
|
+
backToGallery: '返回主题列表',
|
|
366
|
+
pageOf: '第 {n}/{total} 页',
|
|
367
|
+
nextPageAria: '下一页',
|
|
368
|
+
prevPageAria: '上一页',
|
|
369
|
+
openThemeAria: '打开主题 {name}',
|
|
370
|
+
usedBy: '使用此主题的 slides',
|
|
371
|
+
usedByEmpty: '尚未有 slides 使用此主题。',
|
|
372
|
+
expandPromptAria: '展开 prompt',
|
|
373
|
+
collapsePromptAria: '收起 prompt',
|
|
374
|
+
},
|
|
334
375
|
};
|
package/src/locale/zh-tw.ts
CHANGED
|
@@ -38,6 +38,8 @@ export const zhTW: Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: 'open-slide',
|
|
40
40
|
draft: '草稿',
|
|
41
|
+
themes: '主題',
|
|
42
|
+
assets: '素材',
|
|
41
43
|
folders: '資料夾',
|
|
42
44
|
newFolder: '新增資料夾',
|
|
43
45
|
folderName: '資料夾名稱',
|
|
@@ -51,9 +53,8 @@ export const zhTW: Locale = {
|
|
|
51
53
|
nothingMatchesPrefix: '此資料夾中沒有相符 ',
|
|
52
54
|
nothingMatchesSuffix: ' 的項目。',
|
|
53
55
|
noSlidesYet: '尚無投影片',
|
|
54
|
-
createSlideHintPrefix: '
|
|
55
|
-
|
|
56
|
-
createSlideHintSuffix: '。',
|
|
56
|
+
createSlideHintPrefix: '在 agent 中執行 ',
|
|
57
|
+
createSlideHintSuffix: ' 開始建立。',
|
|
57
58
|
folderEmptyTitle: '{name} 為空',
|
|
58
59
|
folderEmptyHint: '從側邊欄將投影片從草稿拖入此資料夾。',
|
|
59
60
|
slideActions: '投影片操作',
|
|
@@ -82,15 +83,23 @@ export const zhTW: Locale = {
|
|
|
82
83
|
|
|
83
84
|
slide: {
|
|
84
85
|
agentConnected: 'Agent 已連線',
|
|
85
|
-
agentConnectedTooltip:
|
|
86
|
-
|
|
86
|
+
agentConnectedTooltip: '目前的 slide 與 Inspector 選擇會即時同步給 agent。',
|
|
87
|
+
agentDisconnected: 'Agent 已斷線',
|
|
88
|
+
agentDisconnectedTooltip:
|
|
89
|
+
'已和 dev server 斷線,agent 沒辦法再看到你目前的 slide 或 Inspector 選擇。請重新啟動 dev server 來恢復連線。',
|
|
87
90
|
home: '首頁',
|
|
88
91
|
backToHome: '返回首頁',
|
|
89
92
|
download: '下載',
|
|
90
93
|
exportAsHtml: '匯出為 HTML',
|
|
91
94
|
exportAsPdf: '匯出為 PDF',
|
|
92
95
|
pdfExportFailed: 'PDF 匯出失敗',
|
|
96
|
+
pdfExportSafariUnsupported:
|
|
97
|
+
'匯出 PDF 目前不支援 Safari 裝置,請嘗試用 Chromium 基底瀏覽器替代。',
|
|
93
98
|
present: '簡報',
|
|
99
|
+
presentMenuAria: '簡報選項',
|
|
100
|
+
presentInWindow: '播放',
|
|
101
|
+
presentFullscreen: '全螢幕播放',
|
|
102
|
+
presentPresenter: '簡報者模式',
|
|
94
103
|
slidesTab: '投影片',
|
|
95
104
|
assetsTab: '素材',
|
|
96
105
|
renameSlide: '重新命名投影片',
|
|
@@ -134,6 +143,8 @@ export const zhTW: Locale = {
|
|
|
134
143
|
whiteoutAria: '白屏 (W)',
|
|
135
144
|
laserAria: '雷射筆 (L)',
|
|
136
145
|
presenterAria: '主講人檢視 (P)',
|
|
146
|
+
enterFullscreenAria: '進入全螢幕',
|
|
147
|
+
exitFullscreenAria: '退出全螢幕',
|
|
137
148
|
helpAria: '鍵盤快速鍵 (?)',
|
|
138
149
|
exitAria: '離開 (Esc)',
|
|
139
150
|
elapsedTime: '已耗時',
|
|
@@ -196,8 +207,10 @@ export const zhTW: Locale = {
|
|
|
196
207
|
cropApply: '套用',
|
|
197
208
|
cropResetAria: '重設裁切',
|
|
198
209
|
agentWatching: 'Agent 正在關注',
|
|
199
|
-
agentWatchingTooltip:
|
|
200
|
-
|
|
210
|
+
agentWatchingTooltip: '選取的元素會即時同步給 agent。',
|
|
211
|
+
agentNotWatching: 'Agent 沒在關注',
|
|
212
|
+
agentNotWatchingTooltip:
|
|
213
|
+
'已和 dev server 斷線,agent 看不到你選的元素了。請重新啟動 dev server 來恢復連線。',
|
|
201
214
|
leaveComment: '留個 comment',
|
|
202
215
|
commentPlaceholder: '描述你希望代理進行的修改…',
|
|
203
216
|
commentShortcutHint: '⌘↵ 新增',
|
|
@@ -245,6 +258,8 @@ export const zhTW: Locale = {
|
|
|
245
258
|
devOnlyMessage: '素材管理僅在開發模式下可用。',
|
|
246
259
|
sectionAria: '投影片素材',
|
|
247
260
|
eyebrow: '素材',
|
|
261
|
+
scopeSlide: '此投影片',
|
|
262
|
+
scopeGlobal: '全域',
|
|
248
263
|
fileCount: { one: '{count} 個檔案', other: '{count} 個檔案' },
|
|
249
264
|
searchLogos: '搜尋 Logo',
|
|
250
265
|
upload: '上傳',
|
|
@@ -260,7 +275,7 @@ export const zhTW: Locale = {
|
|
|
260
275
|
renameMenuItem: '重新命名',
|
|
261
276
|
deleteMenuItem: '刪除',
|
|
262
277
|
conflictTitle: '檔案已存在',
|
|
263
|
-
conflictDescription: '{name}
|
|
278
|
+
conflictDescription: '{name} 已在素材資料夾中。',
|
|
264
279
|
conflictReplace: '取代',
|
|
265
280
|
conflictRenameCopy: '重新命名副本',
|
|
266
281
|
deleteAssetTitle: '刪除素材',
|
|
@@ -301,6 +316,7 @@ export const zhTW: Locale = {
|
|
|
301
316
|
toastDeleted: '已刪除第 {n} 頁',
|
|
302
317
|
toastDuplicateFailed: '無法複製頁面',
|
|
303
318
|
toastDeleteFailed: '無法刪除頁面',
|
|
319
|
+
resizeRail: '調整縮圖欄寬度',
|
|
304
320
|
},
|
|
305
321
|
|
|
306
322
|
pdfToast: {
|
|
@@ -323,6 +339,12 @@ export const zhTW: Locale = {
|
|
|
323
339
|
nextAria: '下一頁',
|
|
324
340
|
},
|
|
325
341
|
|
|
342
|
+
imagePlaceholder: {
|
|
343
|
+
dropOverlay: '拖入圖片以使用',
|
|
344
|
+
uploading: '上傳中…',
|
|
345
|
+
uploadFailed: '圖片上傳失敗',
|
|
346
|
+
},
|
|
347
|
+
|
|
326
348
|
notesDrawer: {
|
|
327
349
|
toggle: '講稿',
|
|
328
350
|
pageLabel: '第 {n} / {total} 頁',
|
|
@@ -331,4 +353,23 @@ export const zhTW: Locale = {
|
|
|
331
353
|
statusSaved: '已儲存',
|
|
332
354
|
statusError: '儲存失敗:{msg}',
|
|
333
355
|
},
|
|
356
|
+
|
|
357
|
+
themes: {
|
|
358
|
+
title: '主題',
|
|
359
|
+
noThemesTitle: '尚無主題',
|
|
360
|
+
noThemesHintPrefix: '執行 ',
|
|
361
|
+
noThemesHintSuffix: ' 來建立一個 — 一個位於 themes/ 的 markdown 檔案,加上同名的 demo slide。',
|
|
362
|
+
noDemoYet: '尚無 demo',
|
|
363
|
+
noDemoHintPrefix: '對此主題重新執行 ',
|
|
364
|
+
noDemoHintSuffix: ' 即可產生預覽用的 slide。',
|
|
365
|
+
backToGallery: '返回主題列表',
|
|
366
|
+
pageOf: '第 {n}/{total} 頁',
|
|
367
|
+
nextPageAria: '下一頁',
|
|
368
|
+
prevPageAria: '上一頁',
|
|
369
|
+
openThemeAria: '開啟主題 {name}',
|
|
370
|
+
usedBy: '使用此主題的 slides',
|
|
371
|
+
usedByEmpty: '尚未有 slides 使用此主題。',
|
|
372
|
+
expandPromptAria: '展開 prompt',
|
|
373
|
+
collapsePromptAria: '收合 prompt',
|
|
374
|
+
},
|
|
334
375
|
};
|
package/dist/sync-B4eLo2H6.js
DELETED
|
File without changes
|
|
File without changes
|