@open-slide/core 1.1.0 → 1.3.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-DSqSio-T.js → build-_276DMmJ.js} +2 -2
- package/dist/cli/bin.js +5 -5
- package/dist/{config-KdiYeWtK.js → config-BAwKWNtW.js} +888 -229
- package/dist/{config-C7vMYzFD.d.ts → config-D9cZ1A0X.d.ts} +2 -1
- package/dist/{dev-B_GVbr11.js → dev-BoqeVXVq.js} +2 -2
- package/dist/en-CDKzoZvf.js +351 -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 +166 -326
- package/dist/{preview-D_mxhj7w.js → preview-BLPxspc9.js} +2 -2
- package/dist/sync-j9_QPovT.js +3 -0
- package/dist/{types-DYgVpIGo.d.ts → types-JYG1cmwC.d.ts} +59 -5
- 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/current-slide/SKILL.md +110 -0
- package/skills/slide-authoring/SKILL.md +59 -1
- package/src/app/app.tsx +11 -1
- package/src/app/components/asset-view.tsx +1 -13
- package/src/app/components/image-placeholder.tsx +123 -1
- package/src/app/components/inspector/image-crop-dialog.tsx +64 -20
- package/src/app/components/inspector/inspector-panel.tsx +163 -19
- package/src/app/components/inspector/inspector-provider.tsx +60 -7
- package/src/app/components/notes-drawer.tsx +117 -0
- package/src/app/components/player.tsx +11 -7
- package/src/app/components/present/overview-grid.tsx +2 -2
- package/src/app/components/sidebar/folder-item.tsx +16 -5
- package/src/app/components/sidebar/mobile-pill.tsx +34 -0
- package/src/app/components/sidebar/sidebar.tsx +10 -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 +136 -29
- package/src/app/components/ui/context-menu.tsx +237 -0
- package/src/app/lib/assets.ts +55 -2
- package/src/app/lib/inspector/use-notes.ts +134 -0
- package/src/app/lib/sdk.ts +1 -0
- package/src/app/lib/slides.ts +10 -1
- package/src/app/lib/themes.ts +22 -0
- package/src/app/lib/use-agent-socket.ts +18 -0
- package/src/app/routes/home-shell.tsx +173 -0
- package/src/app/routes/home.tsx +108 -204
- package/src/app/routes/slide.tsx +333 -68
- package/src/app/routes/themes.tsx +34 -0
- package/src/app/virtual.d.ts +20 -0
- package/src/locale/en.ts +61 -7
- package/src/locale/ja.ts +62 -7
- package/src/locale/types.ts +62 -5
- package/src/locale/zh-cn.ts +61 -7
- package/src/locale/zh-tw.ts +61 -7
- 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,7 @@ export const ja: Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: 'open-slide',
|
|
40
40
|
draft: '下書き',
|
|
41
|
+
themes: 'テーマ',
|
|
41
42
|
folders: 'フォルダ',
|
|
42
43
|
newFolder: '新規フォルダ',
|
|
43
44
|
folderName: 'フォルダ名',
|
|
@@ -51,9 +52,8 @@ export const ja: Locale = {
|
|
|
51
52
|
nothingMatchesPrefix: 'このフォルダ内に ',
|
|
52
53
|
nothingMatchesSuffix: ' に一致する項目はありません。',
|
|
53
54
|
noSlidesYet: 'スライドはまだありません',
|
|
54
|
-
createSlideHintPrefix: '',
|
|
55
|
-
|
|
56
|
-
createSlideHintSuffix: ' してください。',
|
|
55
|
+
createSlideHintPrefix: 'エージェントで ',
|
|
56
|
+
createSlideHintSuffix: ' を実行してスライドを作成しましょう。',
|
|
57
57
|
folderEmptyTitle: '{name} は空です',
|
|
58
58
|
folderEmptyHint: 'サイドバーから下書きのスライドをこのフォルダにドラッグしてください。',
|
|
59
59
|
slideActions: 'スライド操作',
|
|
@@ -81,6 +81,12 @@ export const ja: Locale = {
|
|
|
81
81
|
},
|
|
82
82
|
|
|
83
83
|
slide: {
|
|
84
|
+
agentConnected: 'エージェント接続中',
|
|
85
|
+
agentConnectedTooltip:
|
|
86
|
+
'現在のスライドと Inspector の選択状態を dev server がエージェントに公開しています。チャットで「このスライド」「この要素」と言えば認識されます。本番ビルドでは表示されません。',
|
|
87
|
+
agentDisconnected: 'エージェント切断',
|
|
88
|
+
agentDisconnectedTooltip:
|
|
89
|
+
'dev server との接続が切れたため、現在のスライドや Inspector の選択がエージェントに届かなくなっています。dev server を再起動して接続を復旧してください。',
|
|
84
90
|
home: 'ホーム',
|
|
85
91
|
backToHome: 'ホームへ戻る',
|
|
86
92
|
download: 'ダウンロード',
|
|
@@ -193,10 +199,16 @@ export const ja: Locale = {
|
|
|
193
199
|
cropFitContain: '全体表示',
|
|
194
200
|
cropApply: '適用',
|
|
195
201
|
cropResetAria: 'トリミングをリセット',
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
202
|
+
agentWatching: 'エージェント監視中',
|
|
203
|
+
agentWatchingTooltip:
|
|
204
|
+
'エージェントは選択中の要素を dev server 経由で把握しています。直接チャットで頼めます。ここにコメントを残すのは、複数の依頼をまとめて出したいときだけで OK。',
|
|
205
|
+
agentNotWatching: 'エージェント未接続',
|
|
206
|
+
agentNotWatchingTooltip:
|
|
207
|
+
'dev server との接続が切れたため、選択中の要素がエージェントに見えなくなっています。dev server を再起動して接続を復旧してください。',
|
|
208
|
+
leaveComment: 'コメントを残す',
|
|
209
|
+
commentPlaceholder: 'エージェントに依頼する変更を記述…',
|
|
210
|
+
commentShortcutHint: '⌘↵ で追加',
|
|
211
|
+
addComment: 'コメントを追加',
|
|
200
212
|
unsavedChanges: {
|
|
201
213
|
one: '未保存の変更 {count} 件',
|
|
202
214
|
other: '未保存の変更 {count} 件',
|
|
@@ -292,6 +304,14 @@ export const ja: Locale = {
|
|
|
292
304
|
thumbnailRail: {
|
|
293
305
|
pages: 'ページ',
|
|
294
306
|
goToPageAria: 'ページ {n} へ移動',
|
|
307
|
+
duplicatePage: '複製',
|
|
308
|
+
deletePage: '削除',
|
|
309
|
+
pageActionsAria: 'ページ {n} の操作',
|
|
310
|
+
toastDuplicated: 'ページ {n} を複製しました',
|
|
311
|
+
toastDeleted: 'ページ {n} を削除しました',
|
|
312
|
+
toastDuplicateFailed: 'ページを複製できませんでした',
|
|
313
|
+
toastDeleteFailed: 'ページを削除できませんでした',
|
|
314
|
+
resizeRail: 'サムネイル幅を調整',
|
|
295
315
|
},
|
|
296
316
|
|
|
297
317
|
pdfToast: {
|
|
@@ -313,4 +333,39 @@ export const ja: Locale = {
|
|
|
313
333
|
prevAria: '前のページ',
|
|
314
334
|
nextAria: '次のページ',
|
|
315
335
|
},
|
|
336
|
+
|
|
337
|
+
imagePlaceholder: {
|
|
338
|
+
dropOverlay: 'ここにドロップして使用',
|
|
339
|
+
uploading: 'アップロード中…',
|
|
340
|
+
uploadFailed: '画像のアップロードに失敗しました',
|
|
341
|
+
},
|
|
342
|
+
|
|
343
|
+
notesDrawer: {
|
|
344
|
+
toggle: '発表者ノート',
|
|
345
|
+
pageLabel: '{n} / {total} ページ',
|
|
346
|
+
placeholder: 'このスライドの発表者ノートを記入…',
|
|
347
|
+
statusSaving: '保存中…',
|
|
348
|
+
statusSaved: '保存済み',
|
|
349
|
+
statusError: '保存に失敗しました: {msg}',
|
|
350
|
+
},
|
|
351
|
+
|
|
352
|
+
themes: {
|
|
353
|
+
title: 'テーマ',
|
|
354
|
+
noThemesTitle: 'テーマがまだありません',
|
|
355
|
+
noThemesHintPrefix: '',
|
|
356
|
+
noThemesHintSuffix:
|
|
357
|
+
' を実行して作成 — themes/ に markdown ファイルと同名の demo スライドを置きます。',
|
|
358
|
+
noDemoYet: 'デモがまだありません',
|
|
359
|
+
noDemoHintPrefix: 'このテーマで ',
|
|
360
|
+
noDemoHintSuffix: ' を再実行するとプレビュー用スライドが生成されます。',
|
|
361
|
+
backToGallery: 'テーマ一覧へ戻る',
|
|
362
|
+
pageOf: '{n}/{total} ページ',
|
|
363
|
+
nextPageAria: '次のページ',
|
|
364
|
+
prevPageAria: '前のページ',
|
|
365
|
+
openThemeAria: 'テーマ {name} を開く',
|
|
366
|
+
usedBy: 'このテーマを使うスライド',
|
|
367
|
+
usedByEmpty: 'このテーマを使うスライドはまだありません。',
|
|
368
|
+
expandPromptAria: 'プロンプトを展開',
|
|
369
|
+
collapsePromptAria: 'プロンプトを折りたたむ',
|
|
370
|
+
},
|
|
316
371
|
};
|
package/src/locale/types.ts
CHANGED
|
@@ -38,6 +38,7 @@ export type Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: string;
|
|
40
40
|
draft: string;
|
|
41
|
+
themes: string;
|
|
41
42
|
folders: string;
|
|
42
43
|
newFolder: string;
|
|
43
44
|
folderName: string;
|
|
@@ -52,7 +53,6 @@ export type Locale = {
|
|
|
52
53
|
nothingMatchesSuffix: string;
|
|
53
54
|
noSlidesYet: string;
|
|
54
55
|
createSlideHintPrefix: string;
|
|
55
|
-
createSlideHintMid: string;
|
|
56
56
|
createSlideHintSuffix: string;
|
|
57
57
|
folderEmptyTitle: string;
|
|
58
58
|
folderEmptyHint: string;
|
|
@@ -86,6 +86,10 @@ export type Locale = {
|
|
|
86
86
|
slide: {
|
|
87
87
|
home: string;
|
|
88
88
|
backToHome: string;
|
|
89
|
+
agentConnected: string;
|
|
90
|
+
agentConnectedTooltip: string;
|
|
91
|
+
agentDisconnected: string;
|
|
92
|
+
agentDisconnectedTooltip: string;
|
|
89
93
|
download: string;
|
|
90
94
|
exportAsHtml: string;
|
|
91
95
|
exportAsPdf: string;
|
|
@@ -161,6 +165,10 @@ export type Locale = {
|
|
|
161
165
|
inspector: {
|
|
162
166
|
inspect: string;
|
|
163
167
|
deselect: string;
|
|
168
|
+
agentWatching: string;
|
|
169
|
+
agentWatchingTooltip: string;
|
|
170
|
+
agentNotWatching: string;
|
|
171
|
+
agentNotWatchingTooltip: string;
|
|
164
172
|
contentSection: string;
|
|
165
173
|
typographySection: string;
|
|
166
174
|
colorSection: string;
|
|
@@ -198,10 +206,10 @@ export type Locale = {
|
|
|
198
206
|
cropFitContain: string;
|
|
199
207
|
cropApply: string;
|
|
200
208
|
cropResetAria: string;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
209
|
+
leaveComment: string;
|
|
210
|
+
commentPlaceholder: string;
|
|
211
|
+
commentShortcutHint: string;
|
|
212
|
+
addComment: string;
|
|
205
213
|
/** templates: "{count} unsaved change" / "{count} unsaved changes" */
|
|
206
214
|
unsavedChanges: Plural;
|
|
207
215
|
/** templates: "{count} comment" / "{count} comments" */
|
|
@@ -307,6 +315,17 @@ export type Locale = {
|
|
|
307
315
|
pages: string;
|
|
308
316
|
/** template: "Go to page {n}" */
|
|
309
317
|
goToPageAria: string;
|
|
318
|
+
duplicatePage: string;
|
|
319
|
+
deletePage: string;
|
|
320
|
+
/** template: "Page {n} actions" */
|
|
321
|
+
pageActionsAria: string;
|
|
322
|
+
/** template: "Duplicated page {n}" */
|
|
323
|
+
toastDuplicated: string;
|
|
324
|
+
/** template: "Deleted page {n}" */
|
|
325
|
+
toastDeleted: string;
|
|
326
|
+
toastDuplicateFailed: string;
|
|
327
|
+
toastDeleteFailed: string;
|
|
328
|
+
resizeRail: string;
|
|
310
329
|
};
|
|
311
330
|
|
|
312
331
|
pdfToast: {
|
|
@@ -329,4 +348,42 @@ export type Locale = {
|
|
|
329
348
|
prevAria: string;
|
|
330
349
|
nextAria: string;
|
|
331
350
|
};
|
|
351
|
+
|
|
352
|
+
imagePlaceholder: {
|
|
353
|
+
dropOverlay: string;
|
|
354
|
+
uploading: string;
|
|
355
|
+
uploadFailed: string;
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
notesDrawer: {
|
|
359
|
+
toggle: string;
|
|
360
|
+
/** template: "page {n}/{total}" */
|
|
361
|
+
pageLabel: string;
|
|
362
|
+
placeholder: string;
|
|
363
|
+
statusSaving: string;
|
|
364
|
+
statusSaved: string;
|
|
365
|
+
/** template: "Save failed: {msg}" */
|
|
366
|
+
statusError: string;
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
themes: {
|
|
370
|
+
title: string;
|
|
371
|
+
noThemesTitle: string;
|
|
372
|
+
noThemesHintPrefix: string;
|
|
373
|
+
noThemesHintSuffix: string;
|
|
374
|
+
noDemoYet: string;
|
|
375
|
+
noDemoHintPrefix: string;
|
|
376
|
+
noDemoHintSuffix: string;
|
|
377
|
+
backToGallery: string;
|
|
378
|
+
/** template: "page {n}/{total}" */
|
|
379
|
+
pageOf: string;
|
|
380
|
+
nextPageAria: string;
|
|
381
|
+
prevPageAria: string;
|
|
382
|
+
/** template: "Open theme {name}" */
|
|
383
|
+
openThemeAria: string;
|
|
384
|
+
usedBy: string;
|
|
385
|
+
usedByEmpty: string;
|
|
386
|
+
expandPromptAria: string;
|
|
387
|
+
collapsePromptAria: string;
|
|
388
|
+
};
|
|
332
389
|
};
|
package/src/locale/zh-cn.ts
CHANGED
|
@@ -38,6 +38,7 @@ export const zhCN: Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: 'open-slide',
|
|
40
40
|
draft: '草稿',
|
|
41
|
+
themes: '主题',
|
|
41
42
|
folders: '文件夹',
|
|
42
43
|
newFolder: '新建文件夹',
|
|
43
44
|
folderName: '文件夹名称',
|
|
@@ -51,9 +52,8 @@ export const zhCN: Locale = {
|
|
|
51
52
|
nothingMatchesPrefix: '该文件夹中没有匹配 ',
|
|
52
53
|
nothingMatchesSuffix: ' 的内容。',
|
|
53
54
|
noSlidesYet: '尚无幻灯片',
|
|
54
|
-
createSlideHintPrefix: '
|
|
55
|
-
|
|
56
|
-
createSlideHintSuffix: '。',
|
|
55
|
+
createSlideHintPrefix: '在 agent 中执行 ',
|
|
56
|
+
createSlideHintSuffix: ' 开始创建。',
|
|
57
57
|
folderEmptyTitle: '{name} 为空',
|
|
58
58
|
folderEmptyHint: '从侧边栏将幻灯片从草稿拖入此文件夹。',
|
|
59
59
|
slideActions: '幻灯片操作',
|
|
@@ -81,6 +81,12 @@ export const zhCN: Locale = {
|
|
|
81
81
|
},
|
|
82
82
|
|
|
83
83
|
slide: {
|
|
84
|
+
agentConnected: 'Agent 已连接',
|
|
85
|
+
agentConnectedTooltip:
|
|
86
|
+
'Dev server 正在把你目前在哪张 slide、Inspector 选了哪个元素发布给 agent。直接到聊天说"这张 slide"或"这个元素"就行。Production build 不会出现。',
|
|
87
|
+
agentDisconnected: 'Agent 已断开',
|
|
88
|
+
agentDisconnectedTooltip:
|
|
89
|
+
'已和 dev server 断开连接,agent 没办法再看到你目前的 slide 或 Inspector 选择。请重新启动 dev server 来恢复连接。',
|
|
84
90
|
home: '首页',
|
|
85
91
|
backToHome: '返回首页',
|
|
86
92
|
download: '下载',
|
|
@@ -192,10 +198,16 @@ export const zhCN: Locale = {
|
|
|
192
198
|
cropFitContain: '完整显示',
|
|
193
199
|
cropApply: '应用',
|
|
194
200
|
cropResetAria: '重置裁剪',
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
201
|
+
agentWatching: 'Agent 正在关注',
|
|
202
|
+
agentWatchingTooltip:
|
|
203
|
+
'Agent 已经通过 dev server 看到你选的元素了,直接到聊天请它修改就行。想累积几个再一次问才需要在这里留 comments。',
|
|
204
|
+
agentNotWatching: 'Agent 没在关注',
|
|
205
|
+
agentNotWatchingTooltip:
|
|
206
|
+
'已和 dev server 断开连接,agent 看不到你选的元素了。请重新启动 dev server 来恢复连接。',
|
|
207
|
+
leaveComment: '留个 comment',
|
|
208
|
+
commentPlaceholder: '描述你希望代理执行的更改…',
|
|
209
|
+
commentShortcutHint: '⌘↵ 添加',
|
|
210
|
+
addComment: '添加 comment',
|
|
199
211
|
unsavedChanges: {
|
|
200
212
|
one: '{count} 项未保存的更改',
|
|
201
213
|
other: '{count} 项未保存的更改',
|
|
@@ -288,6 +300,14 @@ export const zhCN: Locale = {
|
|
|
288
300
|
thumbnailRail: {
|
|
289
301
|
pages: '页面',
|
|
290
302
|
goToPageAria: '前往第 {n} 页',
|
|
303
|
+
duplicatePage: '复制',
|
|
304
|
+
deletePage: '删除',
|
|
305
|
+
pageActionsAria: '第 {n} 页的操作',
|
|
306
|
+
toastDuplicated: '已复制第 {n} 页',
|
|
307
|
+
toastDeleted: '已删除第 {n} 页',
|
|
308
|
+
toastDuplicateFailed: '无法复制页面',
|
|
309
|
+
toastDeleteFailed: '无法删除页面',
|
|
310
|
+
resizeRail: '调整缩略图栏宽度',
|
|
291
311
|
},
|
|
292
312
|
|
|
293
313
|
pdfToast: {
|
|
@@ -309,4 +329,38 @@ export const zhCN: Locale = {
|
|
|
309
329
|
prevAria: '上一页',
|
|
310
330
|
nextAria: '下一页',
|
|
311
331
|
},
|
|
332
|
+
|
|
333
|
+
imagePlaceholder: {
|
|
334
|
+
dropOverlay: '拖入图片以使用',
|
|
335
|
+
uploading: '上传中…',
|
|
336
|
+
uploadFailed: '图片上传失败',
|
|
337
|
+
},
|
|
338
|
+
|
|
339
|
+
notesDrawer: {
|
|
340
|
+
toggle: '演讲备注',
|
|
341
|
+
pageLabel: '第 {n} / {total} 页',
|
|
342
|
+
placeholder: '为这一页撰写演讲备注…',
|
|
343
|
+
statusSaving: '保存中…',
|
|
344
|
+
statusSaved: '已保存',
|
|
345
|
+
statusError: '保存失败:{msg}',
|
|
346
|
+
},
|
|
347
|
+
|
|
348
|
+
themes: {
|
|
349
|
+
title: '主题',
|
|
350
|
+
noThemesTitle: '尚无主题',
|
|
351
|
+
noThemesHintPrefix: '运行 ',
|
|
352
|
+
noThemesHintSuffix: ' 来创建一个 — 一个位于 themes/ 的 markdown 文件,加上同名的 demo slide。',
|
|
353
|
+
noDemoYet: '尚无 demo',
|
|
354
|
+
noDemoHintPrefix: '对此主题重新运行 ',
|
|
355
|
+
noDemoHintSuffix: ' 即可生成预览用的 slide。',
|
|
356
|
+
backToGallery: '返回主题列表',
|
|
357
|
+
pageOf: '第 {n}/{total} 页',
|
|
358
|
+
nextPageAria: '下一页',
|
|
359
|
+
prevPageAria: '上一页',
|
|
360
|
+
openThemeAria: '打开主题 {name}',
|
|
361
|
+
usedBy: '使用此主题的 slides',
|
|
362
|
+
usedByEmpty: '尚未有 slides 使用此主题。',
|
|
363
|
+
expandPromptAria: '展开 prompt',
|
|
364
|
+
collapsePromptAria: '收起 prompt',
|
|
365
|
+
},
|
|
312
366
|
};
|
package/src/locale/zh-tw.ts
CHANGED
|
@@ -38,6 +38,7 @@ export const zhTW: Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: 'open-slide',
|
|
40
40
|
draft: '草稿',
|
|
41
|
+
themes: '主題',
|
|
41
42
|
folders: '資料夾',
|
|
42
43
|
newFolder: '新增資料夾',
|
|
43
44
|
folderName: '資料夾名稱',
|
|
@@ -51,9 +52,8 @@ export const zhTW: Locale = {
|
|
|
51
52
|
nothingMatchesPrefix: '此資料夾中沒有相符 ',
|
|
52
53
|
nothingMatchesSuffix: ' 的項目。',
|
|
53
54
|
noSlidesYet: '尚無投影片',
|
|
54
|
-
createSlideHintPrefix: '
|
|
55
|
-
|
|
56
|
-
createSlideHintSuffix: '。',
|
|
55
|
+
createSlideHintPrefix: '在 agent 中執行 ',
|
|
56
|
+
createSlideHintSuffix: ' 開始建立。',
|
|
57
57
|
folderEmptyTitle: '{name} 為空',
|
|
58
58
|
folderEmptyHint: '從側邊欄將投影片從草稿拖入此資料夾。',
|
|
59
59
|
slideActions: '投影片操作',
|
|
@@ -81,6 +81,12 @@ export const zhTW: Locale = {
|
|
|
81
81
|
},
|
|
82
82
|
|
|
83
83
|
slide: {
|
|
84
|
+
agentConnected: 'Agent 已連線',
|
|
85
|
+
agentConnectedTooltip:
|
|
86
|
+
'Dev server 正在把你目前在哪張 slide、Inspector 選了哪個元素發布給 agent。直接到聊天說「這張 slide」或「這個元素」就行。Production build 不會出現。',
|
|
87
|
+
agentDisconnected: 'Agent 已斷線',
|
|
88
|
+
agentDisconnectedTooltip:
|
|
89
|
+
'已和 dev server 斷線,agent 沒辦法再看到你目前的 slide 或 Inspector 選擇。請重新啟動 dev server 來恢復連線。',
|
|
84
90
|
home: '首頁',
|
|
85
91
|
backToHome: '返回首頁',
|
|
86
92
|
download: '下載',
|
|
@@ -192,10 +198,16 @@ export const zhTW: Locale = {
|
|
|
192
198
|
cropFitContain: '完整顯示',
|
|
193
199
|
cropApply: '套用',
|
|
194
200
|
cropResetAria: '重設裁切',
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
201
|
+
agentWatching: 'Agent 正在關注',
|
|
202
|
+
agentWatchingTooltip:
|
|
203
|
+
'Agent 已經透過 dev server 看到你選的元素了,直接到聊天請它修改就行。想累積幾個再一次問才需要在這裡留 comments。',
|
|
204
|
+
agentNotWatching: 'Agent 沒在關注',
|
|
205
|
+
agentNotWatchingTooltip:
|
|
206
|
+
'已和 dev server 斷線,agent 看不到你選的元素了。請重新啟動 dev server 來恢復連線。',
|
|
207
|
+
leaveComment: '留個 comment',
|
|
208
|
+
commentPlaceholder: '描述你希望代理進行的修改…',
|
|
209
|
+
commentShortcutHint: '⌘↵ 新增',
|
|
210
|
+
addComment: '新增 comment',
|
|
199
211
|
unsavedChanges: {
|
|
200
212
|
one: '{count} 項未儲存的變更',
|
|
201
213
|
other: '{count} 項未儲存的變更',
|
|
@@ -288,6 +300,14 @@ export const zhTW: Locale = {
|
|
|
288
300
|
thumbnailRail: {
|
|
289
301
|
pages: '頁面',
|
|
290
302
|
goToPageAria: '前往第 {n} 頁',
|
|
303
|
+
duplicatePage: '複製',
|
|
304
|
+
deletePage: '刪除',
|
|
305
|
+
pageActionsAria: '第 {n} 頁的操作',
|
|
306
|
+
toastDuplicated: '已複製第 {n} 頁',
|
|
307
|
+
toastDeleted: '已刪除第 {n} 頁',
|
|
308
|
+
toastDuplicateFailed: '無法複製頁面',
|
|
309
|
+
toastDeleteFailed: '無法刪除頁面',
|
|
310
|
+
resizeRail: '調整縮圖欄寬度',
|
|
291
311
|
},
|
|
292
312
|
|
|
293
313
|
pdfToast: {
|
|
@@ -309,4 +329,38 @@ export const zhTW: Locale = {
|
|
|
309
329
|
prevAria: '上一頁',
|
|
310
330
|
nextAria: '下一頁',
|
|
311
331
|
},
|
|
332
|
+
|
|
333
|
+
imagePlaceholder: {
|
|
334
|
+
dropOverlay: '拖入圖片以使用',
|
|
335
|
+
uploading: '上傳中…',
|
|
336
|
+
uploadFailed: '圖片上傳失敗',
|
|
337
|
+
},
|
|
338
|
+
|
|
339
|
+
notesDrawer: {
|
|
340
|
+
toggle: '講稿',
|
|
341
|
+
pageLabel: '第 {n} / {total} 頁',
|
|
342
|
+
placeholder: '為這一頁撰寫演講備忘…',
|
|
343
|
+
statusSaving: '儲存中…',
|
|
344
|
+
statusSaved: '已儲存',
|
|
345
|
+
statusError: '儲存失敗:{msg}',
|
|
346
|
+
},
|
|
347
|
+
|
|
348
|
+
themes: {
|
|
349
|
+
title: '主題',
|
|
350
|
+
noThemesTitle: '尚無主題',
|
|
351
|
+
noThemesHintPrefix: '執行 ',
|
|
352
|
+
noThemesHintSuffix: ' 來建立一個 — 一個位於 themes/ 的 markdown 檔案,加上同名的 demo slide。',
|
|
353
|
+
noDemoYet: '尚無 demo',
|
|
354
|
+
noDemoHintPrefix: '對此主題重新執行 ',
|
|
355
|
+
noDemoHintSuffix: ' 即可產生預覽用的 slide。',
|
|
356
|
+
backToGallery: '返回主題列表',
|
|
357
|
+
pageOf: '第 {n}/{total} 頁',
|
|
358
|
+
nextPageAria: '下一頁',
|
|
359
|
+
prevPageAria: '上一頁',
|
|
360
|
+
openThemeAria: '開啟主題 {name}',
|
|
361
|
+
usedBy: '使用此主題的 slides',
|
|
362
|
+
usedByEmpty: '尚未有 slides 使用此主題。',
|
|
363
|
+
expandPromptAria: '展開 prompt',
|
|
364
|
+
collapsePromptAria: '收合 prompt',
|
|
365
|
+
},
|
|
312
366
|
};
|
package/dist/sync-B4eLo2H6.js
DELETED
|
File without changes
|
|
File without changes
|