@bitseek/hermes-webui 0.1.0-beta.0 → 0.1.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/package.json +2 -2
- package/vendor/agent-frontend-shell/.bitseek-source.json +2 -2
- package/vendor/agent-frontend-shell/CHANGELOG.md +178 -1
- package/vendor/agent-frontend-shell/CONTRIBUTORS.md +5 -5
- package/vendor/agent-frontend-shell/api/agent_health.py +134 -0
- package/vendor/agent-frontend-shell/api/config.py +145 -104
- package/vendor/agent-frontend-shell/api/gateway_chat.py +56 -12
- package/vendor/agent-frontend-shell/api/helpers.py +4 -2
- package/vendor/agent-frontend-shell/api/models.py +202 -20
- package/vendor/agent-frontend-shell/api/paths.py +77 -0
- package/vendor/agent-frontend-shell/api/plugins.py +185 -0
- package/vendor/agent-frontend-shell/api/profiles.py +95 -16
- package/vendor/agent-frontend-shell/api/routes.py +831 -30
- package/vendor/agent-frontend-shell/api/run_journal.py +1 -0
- package/vendor/agent-frontend-shell/api/state_sync.py +5 -4
- package/vendor/agent-frontend-shell/api/streaming.py +211 -56
- package/vendor/agent-frontend-shell/api/todo_state.py +122 -0
- package/vendor/agent-frontend-shell/api/updates.py +30 -3
- package/vendor/agent-frontend-shell/api/upload.py +251 -18
- package/vendor/agent-frontend-shell/api/workspace.py +323 -65
- package/vendor/agent-frontend-shell/bitseek_docs/BitSeek_Claw_Operation_Manual_EN.docx +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/BitSeek_Claw_Operation_Manual_ZH.docx +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/00-Installation.md +174 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/01-Overview.md +128 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/02-Page-Operations.md +461 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/README.md +61 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/ai-colleagues.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/chat-area.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/kanban.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/main-page.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/memory-notes.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/memory-overview.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/memory-profile.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/memory-soul.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/memory.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/navigation-bar.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-appearance.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-conversation.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-overview.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-plugins.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-preferences.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-providers.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings-system.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/settings.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/sidebar.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/skills.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/tasks.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/en/images/workspace-panel.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/md_to_docx.py +351 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/00-/345/256/211/350/243/205/345/220/257/345/212/250.md +174 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/01-/346/225/264/344/275/223/346/246/202/350/247/210.md +128 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/02-/351/241/265/351/235/242/346/223/215/344/275/234.md +463 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/README.md +61 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/ai-colleagues.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/chat-area.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/kanban.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/main-page.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/memory-notes.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/memory-overview.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/memory-profile.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/memory-soul.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/memory.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/navigation-bar.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-appearance.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-conversation.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-overview.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-plugins.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-preferences.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-providers.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings-system.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/settings.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/sidebar.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/skills.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/tasks.png +0 -0
- package/vendor/agent-frontend-shell/bitseek_docs/zh/images/workspace-panel.png +0 -0
- package/vendor/agent-frontend-shell/build-release.sh +62 -0
- package/vendor/agent-frontend-shell/ctl.sh +1 -0
- package/vendor/agent-frontend-shell/docker-compose.local.yml +33 -0
- package/vendor/agent-frontend-shell/docker-compose.yml +8 -0
- package/vendor/agent-frontend-shell/docker_init.bash +1 -0
- package/vendor/agent-frontend-shell/docs/rfcs/hermes-run-adapter-contract.md +74 -15
- package/vendor/agent-frontend-shell/extensions/common/index.css +6 -0
- package/vendor/agent-frontend-shell/extensions/manifest.json +6 -0
- package/vendor/agent-frontend-shell/extensions/pages/ai-teammates/page.js +60 -14
- package/vendor/agent-frontend-shell/readme-simple.md +103 -0
- package/vendor/agent-frontend-shell/requirements.txt +5 -0
- package/vendor/agent-frontend-shell/server.py +7 -0
- package/vendor/agent-frontend-shell/static/boot.js +53 -1
- package/vendor/agent-frontend-shell/static/commands.js +20 -10
- package/vendor/agent-frontend-shell/static/i18n.js +1142 -1016
- package/vendor/agent-frontend-shell/static/index.html +13 -3
- package/vendor/agent-frontend-shell/static/messages.js +48 -3
- package/vendor/agent-frontend-shell/static/panels.js +199 -30
- package/vendor/agent-frontend-shell/static/sessions.js +249 -39
- package/vendor/agent-frontend-shell/static/style.css +46 -2
- package/vendor/agent-frontend-shell/static/ui.js +323 -79
- package/vendor/agent-frontend-shell/static/workspace.js +185 -7
- package/vendor/agent-frontend-shell/README-CUSTOM.md +0 -76
- package/vendor/agent-frontend-shell/docker-compose.custom.yml +0 -26
|
@@ -427,6 +427,11 @@ const LOCALES = {
|
|
|
427
427
|
path_copy_failed: 'Failed to copy path: ',
|
|
428
428
|
session_rename: 'Rename conversation',
|
|
429
429
|
session_rename_desc: 'Edit the title of this conversation',
|
|
430
|
+
session_title_regenerate: 'Regenerate title',
|
|
431
|
+
session_title_regenerate_desc: 'Ask Hermes to generate a fresh title from the conversation',
|
|
432
|
+
session_title_regenerating: 'Regenerating title…',
|
|
433
|
+
session_title_regenerated: (title) => `Title regenerated: ${title}`,
|
|
434
|
+
session_title_regenerate_failed: 'Regenerate title failed: ',
|
|
430
435
|
session_copy_link: 'Copy conversation link',
|
|
431
436
|
session_copy_link_desc: 'Copy a direct link to this conversation',
|
|
432
437
|
session_link_copied: 'Conversation link copied to clipboard',
|
|
@@ -446,6 +451,8 @@ const LOCALES = {
|
|
|
446
451
|
empty_dir: '(empty)',
|
|
447
452
|
upload_failed: 'Upload failed: ',
|
|
448
453
|
upload_too_large: (maxMb, fileMb) => `File is too large (${fileMb} MB). Maximum upload size is ${maxMb} MB.`,
|
|
454
|
+
uploading: 'Uploading…',
|
|
455
|
+
uploaded: 'Uploaded',
|
|
449
456
|
all_uploads_failed: (n) => `All ${n} upload(s) failed`,
|
|
450
457
|
archive_extracted: (n, c) => `Extracted ${n} file(s) from ${c} archive(s)`,
|
|
451
458
|
session_pin: 'Pin conversation',
|
|
@@ -546,6 +553,7 @@ const LOCALES = {
|
|
|
546
553
|
settings_tab_preferences: 'Preferences',
|
|
547
554
|
settings_tab_plugins: 'Plugins',
|
|
548
555
|
settings_plugins_title: 'Plugins',
|
|
556
|
+
plugins_enable_toggle: 'Enable',
|
|
549
557
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.',
|
|
550
558
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.',
|
|
551
559
|
plugins_unnamed: 'Unnamed plugin',
|
|
@@ -844,6 +852,8 @@ const LOCALES = {
|
|
|
844
852
|
settings_desc_tts_voice: "Preferred voice. Populated from your browser's available voices.",
|
|
845
853
|
settings_label_tts_rate: 'Speech rate',
|
|
846
854
|
settings_label_tts_pitch: 'Speech pitch',
|
|
855
|
+
settings_label_tts_engine: 'TTS Engine',
|
|
856
|
+
settings_desc_tts_engine: 'Choose speech engine. Edge TTS uses Microsoft neural voices via the server.',
|
|
847
857
|
settings_label_notifications: 'Browser notifications',
|
|
848
858
|
settings_desc_notifications: 'Show a system notification when a response completes while the app is in the background.',
|
|
849
859
|
settings_desc_token_usage: 'Displays input/output token count below each assistant reply. Also toggled with /usage.',
|
|
@@ -1292,6 +1302,7 @@ const LOCALES = {
|
|
|
1292
1302
|
media_audio_label: 'Audio',
|
|
1293
1303
|
media_svg_label: 'Diagram',
|
|
1294
1304
|
media_video_label: 'Video',
|
|
1305
|
+
media_download: 'Download',
|
|
1295
1306
|
csv_loading: 'Loading CSV',
|
|
1296
1307
|
csv_too_large: 'CSV file too large for inline rendering',
|
|
1297
1308
|
csv_no_data: 'CSV file has insufficient data to render as table',
|
|
@@ -1747,6 +1758,11 @@ const LOCALES = {
|
|
|
1747
1758
|
path_copy_failed: 'Copia percorso fallita: ',
|
|
1748
1759
|
session_rename: 'Rinomina conversazione',
|
|
1749
1760
|
session_rename_desc: 'Modifica il titolo di questa conversazione',
|
|
1761
|
+
session_title_regenerate: 'Rigenera titolo',
|
|
1762
|
+
session_title_regenerate_desc: 'Chiedi a Hermes di generare un nuovo titolo dalla conversazione',
|
|
1763
|
+
session_title_regenerating: 'Rigenerazione del titolo…',
|
|
1764
|
+
session_title_regenerated: (title) => `Titolo rigenerato: ${title}`,
|
|
1765
|
+
session_title_regenerate_failed: 'Rigenerazione del titolo non riuscita: ',
|
|
1750
1766
|
session_copy_link: 'Copia link conversazione',
|
|
1751
1767
|
session_copy_link_desc: 'Copia un link diretto a questa conversazione',
|
|
1752
1768
|
session_link_copied: 'Link conversazione copiato negli appunti',
|
|
@@ -1766,6 +1782,8 @@ const LOCALES = {
|
|
|
1766
1782
|
empty_dir: '(vuota)',
|
|
1767
1783
|
upload_failed: 'Upload fallito: ',
|
|
1768
1784
|
upload_too_large: (maxMb, fileMb) => `File troppo grande (${fileMb} MB). La dimensione massima è ${maxMb} MB.`,
|
|
1785
|
+
uploading: 'Caricamento…',
|
|
1786
|
+
uploaded: 'Caricato',
|
|
1769
1787
|
all_uploads_failed: (n) => `Tutti gli ${n} upload sono falliti`,
|
|
1770
1788
|
archive_extracted: (n, c) => `Estratti ${n} file da ${c} archivio/i`,
|
|
1771
1789
|
session_pin: 'Fissa conversazione',
|
|
@@ -1866,6 +1884,7 @@ const LOCALES = {
|
|
|
1866
1884
|
settings_tab_preferences: 'Preferenze',
|
|
1867
1885
|
settings_tab_plugins: 'Plugin',
|
|
1868
1886
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
1887
|
+
plugins_enable_toggle: 'Abilita',
|
|
1869
1888
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
1870
1889
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
1871
1890
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -2156,6 +2175,8 @@ const LOCALES = {
|
|
|
2156
2175
|
settings_desc_tts_voice: 'Voce preferita. Popolata dalle voci disponibili nel browser.',
|
|
2157
2176
|
settings_label_tts_rate: 'Velocità voce',
|
|
2158
2177
|
settings_label_tts_pitch: 'Tono voce',
|
|
2178
|
+
settings_label_tts_engine: 'Motore TTS',
|
|
2179
|
+
settings_desc_tts_engine: 'Scegli il motore vocale. Edge TTS utilizza le voci neurali Microsoft tramite il server.',
|
|
2159
2180
|
settings_label_notifications: 'Notifiche browser',
|
|
2160
2181
|
settings_desc_notifications: 'Mostra una notifica di sistema quando una risposta termina mentre l\'app è in background.',
|
|
2161
2182
|
settings_desc_token_usage: 'Mostra il conteggio token input/output sotto ogni risposta dell\'assistente. Attivabile anche con /usage.',
|
|
@@ -2604,6 +2625,7 @@ const LOCALES = {
|
|
|
2604
2625
|
media_audio_label: 'Audio',
|
|
2605
2626
|
media_svg_label: 'Diagramma',
|
|
2606
2627
|
media_video_label: 'Video',
|
|
2628
|
+
media_download: 'Scarica',
|
|
2607
2629
|
csv_loading: 'Caricamento CSV',
|
|
2608
2630
|
csv_too_large: 'File CSV troppo grande per il rendering inline',
|
|
2609
2631
|
csv_no_data: 'Il file CSV ha dati insufficienti per il rendering come tabella',
|
|
@@ -3059,6 +3081,11 @@ const LOCALES = {
|
|
|
3059
3081
|
path_copy_failed: 'パスのコピーに失敗しました: ',
|
|
3060
3082
|
session_rename: '会話の名前を変更',
|
|
3061
3083
|
session_rename_desc: 'この会話のタイトルを編集',
|
|
3084
|
+
session_title_regenerate: 'タイトルを再生成',
|
|
3085
|
+
session_title_regenerate_desc: '会話から新しいタイトルを生成するよう Hermes に依頼します',
|
|
3086
|
+
session_title_regenerating: 'タイトルを再生成中…',
|
|
3087
|
+
session_title_regenerated: (title) => `タイトルを再生成しました: ${title}`,
|
|
3088
|
+
session_title_regenerate_failed: 'タイトルの再生成に失敗しました: ',
|
|
3062
3089
|
session_copy_link: '会話リンクをコピー',
|
|
3063
3090
|
session_copy_link_desc: 'この会話への直接リンクをコピー',
|
|
3064
3091
|
session_link_copied: '会話リンクをクリップボードにコピーしました',
|
|
@@ -3078,6 +3105,8 @@ const LOCALES = {
|
|
|
3078
3105
|
empty_dir: '(空)',
|
|
3079
3106
|
upload_failed: 'アップロード失敗: ',
|
|
3080
3107
|
upload_too_large: (maxMb, fileMb) => `ファイルが大きすぎます (${fileMb} MB)。最大アップロードサイズは ${maxMb} MB です。`,
|
|
3108
|
+
uploading: 'アップロード中…',
|
|
3109
|
+
uploaded: 'アップロード完了',
|
|
3081
3110
|
all_uploads_failed: (n) => `${n} 件のアップロードがすべて失敗しました`,
|
|
3082
3111
|
archive_extracted: (n, c) => `${c} 個のアーカイブから ${n} 件のファイルを展開しました`,
|
|
3083
3112
|
session_pin: '会話をピン留め',
|
|
@@ -3178,6 +3207,7 @@ const LOCALES = {
|
|
|
3178
3207
|
settings_tab_preferences: '環境設定',
|
|
3179
3208
|
settings_tab_plugins: 'プラグイン',
|
|
3180
3209
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
3210
|
+
plugins_enable_toggle: '有効化',
|
|
3181
3211
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
3182
3212
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
3183
3213
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -3473,6 +3503,8 @@ const LOCALES = {
|
|
|
3473
3503
|
settings_desc_tts_voice: '優先する声。ブラウザで利用可能な声から選択されます。',
|
|
3474
3504
|
settings_label_tts_rate: '読み上げ速度',
|
|
3475
3505
|
settings_label_tts_pitch: '読み上げピッチ',
|
|
3506
|
+
settings_label_tts_engine: 'TTSエンジン',
|
|
3507
|
+
settings_desc_tts_engine: '音声エンジンを選択してください。Edge TTSはサーバー経由でMicrosoftのニューラル音声を使用します。',
|
|
3476
3508
|
settings_label_notifications: 'ブラウザ通知',
|
|
3477
3509
|
settings_desc_notifications: 'アプリがバックグラウンドの間に応答が完了したらシステム通知を表示します。',
|
|
3478
3510
|
settings_desc_token_usage: 'アシスタント応答の下に入力/出力トークン数を表示します。/usage でも切替可能。',
|
|
@@ -3921,6 +3953,7 @@ const LOCALES = {
|
|
|
3921
3953
|
media_audio_label: '音声',
|
|
3922
3954
|
media_svg_label: '図',
|
|
3923
3955
|
media_video_label: '動画',
|
|
3956
|
+
media_download: 'ダウンロード',
|
|
3924
3957
|
csv_loading: 'CSV を読み込み中',
|
|
3925
3958
|
csv_too_large: 'CSV ファイルが大きすぎてインライン表示できません',
|
|
3926
3959
|
csv_no_data: 'CSV ファイルのデータが不足しているためテーブル表示できません',
|
|
@@ -4296,6 +4329,11 @@ const LOCALES = {
|
|
|
4296
4329
|
path_copy_failed: 'Не удалось скопировать путь: ',
|
|
4297
4330
|
session_rename: 'Переименовать беседу',
|
|
4298
4331
|
session_rename_desc: 'Изменить название этой беседы',
|
|
4332
|
+
session_title_regenerate: 'Сгенерировать название заново',
|
|
4333
|
+
session_title_regenerate_desc: 'Попросить Hermes сгенерировать новое название на основе беседы',
|
|
4334
|
+
session_title_regenerating: 'Повторная генерация названия…',
|
|
4335
|
+
session_title_regenerated: (title) => `Название сгенерировано заново: ${title}`,
|
|
4336
|
+
session_title_regenerate_failed: 'Не удалось сгенерировать название заново: ',
|
|
4299
4337
|
session_copy_link: 'Скопировать ссылку на беседу',
|
|
4300
4338
|
session_copy_link_desc: 'Скопировать прямую ссылку на эту беседу',
|
|
4301
4339
|
session_link_copied: 'Ссылка на беседу скопирована в буфер обмена',
|
|
@@ -4315,6 +4353,8 @@ const LOCALES = {
|
|
|
4315
4353
|
empty_dir: '(пусто)',
|
|
4316
4354
|
upload_failed: 'Не удалось загрузить: ',
|
|
4317
4355
|
upload_too_large: (maxMb, fileMb) => `Файл слишком большой (${fileMb} МБ). Максимальный размер загрузки: ${maxMb} МБ.`,
|
|
4356
|
+
uploading: 'Загрузка…',
|
|
4357
|
+
uploaded: 'Загружено',
|
|
4318
4358
|
all_uploads_failed: (n) => `Не удалось загрузить все ${n} файлов`,
|
|
4319
4359
|
archive_extracted: (n, c) => `Извлечено ${n} файл(ов) из ${c} архив(ов)`,
|
|
4320
4360
|
settings_title: 'Настройки',
|
|
@@ -5060,6 +5100,7 @@ const LOCALES = {
|
|
|
5060
5100
|
settings_tab_preferences: 'Preferences',
|
|
5061
5101
|
settings_tab_plugins: 'Плагины',
|
|
5062
5102
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
5103
|
+
plugins_enable_toggle: 'Включить',
|
|
5063
5104
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
5064
5105
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
5065
5106
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -5110,6 +5151,7 @@ const LOCALES = {
|
|
|
5110
5151
|
media_audio_label: 'Аудио',
|
|
5111
5152
|
media_svg_label: 'Диаграмма',
|
|
5112
5153
|
media_video_label: 'Видео',
|
|
5154
|
+
media_download: 'Скачать',
|
|
5113
5155
|
csv_loading: 'Загрузка CSV',
|
|
5114
5156
|
csv_too_large: 'CSV-файл слишком большой для встроенного отображения',
|
|
5115
5157
|
csv_no_data: 'Недостаточно данных в CSV-файле',
|
|
@@ -5152,6 +5194,8 @@ const LOCALES = {
|
|
|
5152
5194
|
settings_desc_tts_voice: 'Выберите голос для синтеза речи',
|
|
5153
5195
|
settings_label_tts_rate: 'Скорость речи',
|
|
5154
5196
|
settings_label_tts_pitch: 'Тон речи',
|
|
5197
|
+
settings_label_tts_engine: 'Движок TTS',
|
|
5198
|
+
settings_desc_tts_engine: 'Выберите движок синтеза речи. Edge TTS использует нейронные голоса Microsoft через сервер.',
|
|
5155
5199
|
|
|
5156
5200
|
checkpoint_date: 'Date', // TODO: translate
|
|
5157
5201
|
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
@@ -5525,6 +5569,11 @@ const LOCALES = {
|
|
|
5525
5569
|
path_copy_failed: 'Error al copiar la ruta: ',
|
|
5526
5570
|
session_rename: 'Renombrar conversación',
|
|
5527
5571
|
session_rename_desc: 'Editar el título de esta conversación',
|
|
5572
|
+
session_title_regenerate: 'Regenerar título',
|
|
5573
|
+
session_title_regenerate_desc: 'Pide a Hermes que genere un título nuevo a partir de la conversación',
|
|
5574
|
+
session_title_regenerating: 'Regenerando título…',
|
|
5575
|
+
session_title_regenerated: (title) => `Título regenerado: ${title}`,
|
|
5576
|
+
session_title_regenerate_failed: 'Error al regenerar el título: ',
|
|
5528
5577
|
session_copy_link: 'Copiar enlace de conversación',
|
|
5529
5578
|
session_copy_link_desc: 'Copia un enlace directo a esta conversación',
|
|
5530
5579
|
session_link_copied: 'Enlace de conversación copiado al portapapeles',
|
|
@@ -5543,6 +5592,8 @@ const LOCALES = {
|
|
|
5543
5592
|
empty_dir: '(vacío)',
|
|
5544
5593
|
upload_failed: 'Error al subir: ',
|
|
5545
5594
|
upload_too_large: (maxMb, fileMb) => `El archivo es demasiado grande (${fileMb} MB). El tamaño máximo de subida es ${maxMb} MB.`,
|
|
5595
|
+
uploading: 'Subiendo…',
|
|
5596
|
+
uploaded: 'Subido',
|
|
5546
5597
|
all_uploads_failed: (n) => `Fallaron las ${n} subida(s)`,
|
|
5547
5598
|
archive_extracted: (n, c) => `${n} archivo(s) extraído(s) de ${c} archivo(s) comprimido(s)`,
|
|
5548
5599
|
// settings panel
|
|
@@ -6297,6 +6348,7 @@ const LOCALES = {
|
|
|
6297
6348
|
settings_tab_preferences: 'Preferences',
|
|
6298
6349
|
settings_tab_plugins: 'Plugins',
|
|
6299
6350
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
6351
|
+
plugins_enable_toggle: 'Activar',
|
|
6300
6352
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
6301
6353
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
6302
6354
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -6347,6 +6399,7 @@ const LOCALES = {
|
|
|
6347
6399
|
media_audio_label: 'Audio',
|
|
6348
6400
|
media_svg_label: 'Diagrama',
|
|
6349
6401
|
media_video_label: 'Vídeo',
|
|
6402
|
+
media_download: 'Descargar',
|
|
6350
6403
|
csv_loading: 'Cargando CSV',
|
|
6351
6404
|
csv_too_large: 'Archivo CSV demasiado grande para mostrar en línea',
|
|
6352
6405
|
csv_no_data: 'El archivo CSV no tiene suficientes datos para mostrar como tabla',
|
|
@@ -6389,6 +6442,8 @@ const LOCALES = {
|
|
|
6389
6442
|
settings_desc_tts_voice: 'Seleccionar voz para síntesis de voz',
|
|
6390
6443
|
settings_label_tts_rate: 'Velocidad de voz',
|
|
6391
6444
|
settings_label_tts_pitch: 'Tono de voz',
|
|
6445
|
+
settings_label_tts_engine: 'Motor TTS',
|
|
6446
|
+
settings_desc_tts_engine: 'Elija el motor de voz. Edge TTS utiliza voces neuronales de Microsoft a través del servidor.',
|
|
6392
6447
|
checkpoint_date: 'Date', // TODO: translate
|
|
6393
6448
|
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
6394
6449
|
checkpoint_diff_no_changes: 'No differences found between this checkpoint and the current workspace.', // TODO: translate
|
|
@@ -6758,6 +6813,11 @@ const LOCALES = {
|
|
|
6758
6813
|
path_copy_failed: 'Pfad konnte nicht kopiert werden: ',
|
|
6759
6814
|
session_rename: 'Unterhaltung umbenennen',
|
|
6760
6815
|
session_rename_desc: 'Titel dieser Unterhaltung bearbeiten',
|
|
6816
|
+
session_title_regenerate: 'Titel neu generieren',
|
|
6817
|
+
session_title_regenerate_desc: 'Hermes bitten, einen neuen Titel aus der Unterhaltung zu generieren',
|
|
6818
|
+
session_title_regenerating: 'Titel wird neu generiert…',
|
|
6819
|
+
session_title_regenerated: (title) => `Titel neu generiert: ${title}`,
|
|
6820
|
+
session_title_regenerate_failed: 'Titel neu generieren fehlgeschlagen: ',
|
|
6761
6821
|
session_copy_link: 'Unterhaltungslink kopieren',
|
|
6762
6822
|
session_copy_link_desc: 'Direkten Link zu dieser Unterhaltung kopieren',
|
|
6763
6823
|
session_link_copied: 'Unterhaltungslink in die Zwischenablage kopiert',
|
|
@@ -6777,6 +6837,8 @@ const LOCALES = {
|
|
|
6777
6837
|
empty_dir: '(leer)',
|
|
6778
6838
|
upload_failed: 'Upload fehlgeschlagen: ',
|
|
6779
6839
|
upload_too_large: (maxMb, fileMb) => `Datei ist zu groß (${fileMb} MB). Die maximale Uploadgröße beträgt ${maxMb} MB.`,
|
|
6840
|
+
uploading: 'Wird hochgeladen…',
|
|
6841
|
+
uploaded: 'Hochgeladen',
|
|
6780
6842
|
all_uploads_failed: (n) => `Alle ${n} Upload(s) fehlgeschlagen`,
|
|
6781
6843
|
// settings panel
|
|
6782
6844
|
settings_title: 'Einstellungen',
|
|
@@ -7250,6 +7312,7 @@ const LOCALES = {
|
|
|
7250
7312
|
settings_tab_preferences: 'Preferences',
|
|
7251
7313
|
settings_tab_plugins: 'Plugins',
|
|
7252
7314
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
7315
|
+
plugins_enable_toggle: 'Aktivieren',
|
|
7253
7316
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
7254
7317
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
7255
7318
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -7598,6 +7661,7 @@ const LOCALES = {
|
|
|
7598
7661
|
media_audio_label: 'Audio',
|
|
7599
7662
|
media_svg_label: 'Diagramm',
|
|
7600
7663
|
media_video_label: 'Video',
|
|
7664
|
+
media_download: 'Herunterladen',
|
|
7601
7665
|
csv_loading: 'CSV wird geladen',
|
|
7602
7666
|
csv_too_large: 'CSV-Datei zu groß für Inline-Anzeige',
|
|
7603
7667
|
csv_no_data: 'CSV-Datei enthält nicht genügend Daten',
|
|
@@ -7640,6 +7704,8 @@ const LOCALES = {
|
|
|
7640
7704
|
settings_desc_tts_voice: 'Stimme für Sprachsynthese auswählen',
|
|
7641
7705
|
settings_label_tts_rate: 'Sprechgeschwindigkeit',
|
|
7642
7706
|
settings_label_tts_pitch: 'Tonhöhe',
|
|
7707
|
+
settings_label_tts_engine: 'TTS-Engine',
|
|
7708
|
+
settings_desc_tts_engine: 'Sprach-Engine auswählen. Edge TTS verwendet Microsoft Neural Voices über den Server.',
|
|
7643
7709
|
|
|
7644
7710
|
checkpoint_date: 'Date', // TODO: translate
|
|
7645
7711
|
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
@@ -7963,6 +8029,7 @@ const LOCALES = {
|
|
|
7963
8029
|
settings_busy_input_mode_interrupt: '中断当前轮次',
|
|
7964
8030
|
settings_busy_input_mode_steer: '引导(中间修正)',
|
|
7965
8031
|
settings_plugins_title: '插件',
|
|
8032
|
+
plugins_enable_toggle: '启用',
|
|
7966
8033
|
settings_plugins_meta: '查看已安装的 Hermes 插件及其注册的生命周期挂钩。此面板为只读。',
|
|
7967
8034
|
settings_plugins_empty: '当前没有可见的 Hermes 插件。通过 Hermes CLI/配置文件安装或启用插件后即可在此查看。',
|
|
7968
8035
|
plugins_unnamed: '未命名插件',
|
|
@@ -8043,6 +8110,11 @@ const LOCALES = {
|
|
|
8043
8110
|
path_copy_failed: '\u590d\u5236\u8def\u5f84\u5931\u8d25\uff1a',
|
|
8044
8111
|
session_rename: '\u91cd\u547d\u540d\u5bf9\u8bdd',
|
|
8045
8112
|
session_rename_desc: '\u7f16\u8f91\u6b64\u5bf9\u8bdd\u7684\u6807\u9898',
|
|
8113
|
+
session_title_regenerate: '\u91cd\u65b0\u751f\u6210\u6807\u9898',
|
|
8114
|
+
session_title_regenerate_desc: '\u8ba9 Hermes \u6839\u636e\u5bf9\u8bdd\u751f\u6210\u65b0\u7684\u6807\u9898',
|
|
8115
|
+
session_title_regenerating: '\u6b63\u5728\u91cd\u65b0\u751f\u6210\u6807\u9898\u2026',
|
|
8116
|
+
session_title_regenerated: (title) => `\u6807\u9898\u5df2\u91cd\u65b0\u751f\u6210\uff1a${title}`,
|
|
8117
|
+
session_title_regenerate_failed: '\u91cd\u65b0\u751f\u6210\u6807\u9898\u5931\u8d25\uff1a',
|
|
8046
8118
|
session_copy_link: '复制对话链接',
|
|
8047
8119
|
session_copy_link_desc: '复制此对话的直接链接',
|
|
8048
8120
|
session_link_copied: '对话链接已复制到剪贴板',
|
|
@@ -8062,6 +8134,8 @@ const LOCALES = {
|
|
|
8062
8134
|
empty_dir: '(空)',
|
|
8063
8135
|
upload_failed: '上传失败:',
|
|
8064
8136
|
upload_too_large: (maxMb, fileMb) => `\u6587\u4ef6\u8fc7\u5927\uff08${fileMb} MB\uff09\u3002\u6700\u5927\u4e0a\u4f20\u5927\u5c0f\u4e3a ${maxMb} MB\u3002`,
|
|
8137
|
+
uploading: '上传中…',
|
|
8138
|
+
uploaded: '已上传',
|
|
8065
8139
|
all_uploads_failed: (n) => `${n} 个文件全部上传失败`,
|
|
8066
8140
|
// settings panel
|
|
8067
8141
|
settings_title: '设置',
|
|
@@ -8854,6 +8928,7 @@ const LOCALES = {
|
|
|
8854
8928
|
media_audio_label: '音频',
|
|
8855
8929
|
media_svg_label: '图表',
|
|
8856
8930
|
media_video_label: '视频',
|
|
8931
|
+
media_download: '下载',
|
|
8857
8932
|
csv_loading: '加载 CSV',
|
|
8858
8933
|
csv_too_large: 'CSV 文件过大,无法内联渲染',
|
|
8859
8934
|
csv_no_data: 'CSV 文件数据不足,无法渲染为表格',
|
|
@@ -8886,6 +8961,8 @@ const LOCALES = {
|
|
|
8886
8961
|
settings_desc_tts_voice: '选择语音合成声音',
|
|
8887
8962
|
settings_label_tts_rate: '语速',
|
|
8888
8963
|
settings_label_tts_pitch: '音调',
|
|
8964
|
+
settings_label_tts_engine: 'TTS 引擎',
|
|
8965
|
+
settings_desc_tts_engine: '选择语音引擎。Edge TTS 通过服务器使用微软神经语音。',
|
|
8889
8966
|
checkpoint_date: '日期',
|
|
8890
8967
|
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
8891
8968
|
checkpoint_diff_no_changes: '此检查点与当前工作区之间无差异。',
|
|
@@ -8954,39 +9031,60 @@ const LOCALES = {
|
|
|
8954
9031
|
|
|
8955
9032
|
// Traditional Chinese (zh-Hant)
|
|
8956
9033
|
'zh-Hant': {
|
|
9034
|
+
|
|
9035
|
+
offline_title: '連線中斷',
|
|
9036
|
+
offline_browser_detail: '瀏覽器回報此裝置目前離線。',
|
|
9037
|
+
offline_network_detail: 'Hermes 目前無法從這個瀏覽器連上。',
|
|
9038
|
+
offline_autorefresh: 'Hermes 重新連線後,系統會自動重新整理此頁面。',
|
|
9039
|
+
offline_check_now: '立即檢查',
|
|
9040
|
+
offline_checking: '正在檢查…',
|
|
9041
|
+
offline_stream_waiting: '連線中斷。等待重新整理…',
|
|
8957
9042
|
_lang: 'zh-Hant',
|
|
8958
|
-
_label: '
|
|
9043
|
+
_label: '繁體中文',
|
|
8959
9044
|
_speech: 'zh-TW',
|
|
8960
9045
|
// boot.js
|
|
8961
|
-
cancelling: '
|
|
8962
|
-
cancel_failed: '
|
|
8963
|
-
mic_denied: '
|
|
8964
|
-
mic_no_speech: '
|
|
8965
|
-
mic_network: '
|
|
8966
|
-
mic_error: '
|
|
8967
|
-
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
9046
|
+
cancelling: '正在取消……',
|
|
9047
|
+
cancel_failed: '取消失敗:',
|
|
9048
|
+
mic_denied: '麥克風存取遭拒。請檢查瀏覽器權限。',
|
|
9049
|
+
mic_no_speech: '未偵測到語音。請再試一次。',
|
|
9050
|
+
mic_network: '語音辨識無法使用。',
|
|
9051
|
+
mic_error: '語音輸入錯誤:',
|
|
9052
|
+
// Composer voice buttons (#1488 — distinct labels for dictation vs voice mode)
|
|
9053
|
+
voice_dictate: '聽寫',
|
|
9054
|
+
voice_dictate_active: '停止聽寫',
|
|
9055
|
+
voice_recording_active: '停止錄音',
|
|
9056
|
+
voice_mode_toggle: '語音模式',
|
|
9057
|
+
voice_mode_toggle_active: '離開語音模式',
|
|
9058
|
+
// Turn-based voice mode (#1333)
|
|
9059
|
+
voice_listening: '正在聆聽…',
|
|
9060
|
+
voice_speaking: '正在說話…',
|
|
9061
|
+
voice_thinking: '正在思考…',
|
|
9062
|
+
voice_error: '此瀏覽器不支援語音功能',
|
|
9063
|
+
voice_mode_active: '語音模式已開啟',
|
|
9064
|
+
voice_mode_off: '語音模式已關閉',
|
|
9065
|
+
session_imported: '已匯入對話',
|
|
9066
|
+
import_failed: '匯入失敗:',
|
|
9067
|
+
import_invalid_json: '無效的 JSON',
|
|
9068
|
+
image_pasted: '已貼上圖片:',
|
|
8971
9069
|
// messages.js
|
|
8972
|
-
edit_message: '
|
|
8973
|
-
regenerate: '
|
|
8974
|
-
copy: '
|
|
8975
|
-
copied: '
|
|
8976
|
-
copy_failed: '
|
|
9070
|
+
edit_message: '編輯訊息',
|
|
9071
|
+
regenerate: '重新產生回覆',
|
|
9072
|
+
copy: '複製',
|
|
9073
|
+
copied: '已複製!',
|
|
9074
|
+
copy_failed: '複製失敗',
|
|
8977
9075
|
selected_text_reply: '用所選內容回覆',
|
|
8978
|
-
selected_text_reply_title: '
|
|
9076
|
+
selected_text_reply_title: '將所選聊天文字附加為引用脈絡',
|
|
8979
9077
|
selected_text_reply_appended: '已將所選文字加入輸入框',
|
|
8980
9078
|
|
|
8981
9079
|
diff_loading: '載入 diff',
|
|
8982
9080
|
diff_error: '無法載入 patch 檔案',
|
|
8983
|
-
diff_too_large: 'Patch
|
|
9081
|
+
diff_too_large: 'Patch 檔案太大,無法直接顯示',
|
|
8984
9082
|
tree_view: '樹狀',
|
|
8985
9083
|
raw_view: '原始',
|
|
8986
9084
|
parse_failed_note: '解析失敗',
|
|
8987
|
-
you: '
|
|
9085
|
+
you: '你',
|
|
8988
9086
|
mcp_servers_title: 'MCP 伺服器',
|
|
8989
|
-
mcp_servers_desc: '
|
|
9087
|
+
mcp_servers_desc: '檢視 config.yaml 中設定的 MCP 伺服器。',
|
|
8990
9088
|
mcp_no_servers: '未設定 MCP 伺服器。',
|
|
8991
9089
|
mcp_add_server: '+ 新增伺服器',
|
|
8992
9090
|
mcp_field_name: '伺服器名稱',
|
|
@@ -9007,209 +9105,374 @@ const LOCALES = {
|
|
|
9007
9105
|
mcp_deleted: 'MCP 伺服器已刪除。',
|
|
9008
9106
|
mcp_delete_failed: '刪除 MCP 伺服器失敗。',
|
|
9009
9107
|
mcp_load_failed: '載入 MCP 伺服器失敗。',
|
|
9010
|
-
mcp_restart_hint: '
|
|
9011
|
-
mcp_toggle_followup: '
|
|
9012
|
-
mcp_status_active: '
|
|
9013
|
-
mcp_status_configured: '
|
|
9014
|
-
mcp_status_disabled: '
|
|
9015
|
-
mcp_status_invalid_config: '
|
|
9016
|
-
mcp_status_unknown: '
|
|
9017
|
-
mcp_tool_count: '{0}
|
|
9018
|
-
mcp_enabled_yes: '
|
|
9019
|
-
mcp_enabled_no: '
|
|
9020
|
-
mcp_enable_server: '
|
|
9021
|
-
mcp_disable_server: '
|
|
9022
|
-
mcp_enabled_toast: (name) => `MCP
|
|
9023
|
-
mcp_disabled_toast: (name) => `MCP
|
|
9024
|
-
mcp_toggle_failed: '
|
|
9025
|
-
mcp_tools_title: 'MCP
|
|
9026
|
-
mcp_tools_desc: '
|
|
9027
|
-
mcp_tools_search_placeholder: '
|
|
9028
|
-
mcp_tools_no_tools: '
|
|
9029
|
-
mcp_tools_no_matches: '
|
|
9030
|
-
mcp_tools_load_failed: '
|
|
9031
|
-
mcp_tools_schema_empty: '
|
|
9032
|
-
mcp_tools_runtime_note: '
|
|
9033
|
-
mcp_tools_summary_no_matches: (query,total) =>
|
|
9034
|
-
mcp_tools_summary_none: '
|
|
9035
|
-
mcp_tools_summary_matching: (query) =>
|
|
9036
|
-
mcp_tools_summary_total_note: (total) =>
|
|
9037
|
-
mcp_tools_summary_showing: (start,end,filtered,searchNote,totalNote,page,pages) =>
|
|
9038
|
-
mcp_tools_page_size_prefix: '
|
|
9039
|
-
mcp_tools_page_size_suffix: '
|
|
9040
|
-
mcp_tools_per_page_aria: 'MCP
|
|
9041
|
-
mcp_tools_inactive_configured_servers: (servers) =>
|
|
9042
|
-
mcp_tools_pagination_label: 'MCP
|
|
9043
|
-
mcp_tools_previous_page: '‹
|
|
9044
|
-
mcp_tools_previous_page_aria: '
|
|
9045
|
-
mcp_tools_next_page: '
|
|
9046
|
-
mcp_tools_next_page_aria: '
|
|
9047
|
-
|
|
9048
|
-
|
|
9049
|
-
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
|
|
9108
|
+
mcp_restart_hint: '伺服器變更目前在此為唯讀。請編輯 config.yaml 並重新啟動 Hermes,讓變更生效。',
|
|
9109
|
+
mcp_toggle_followup: '啟用/停用控制項會等到 MCP 重新載入語意明確後再加入。',
|
|
9110
|
+
mcp_status_active: '作用中',
|
|
9111
|
+
mcp_status_configured: '已設定',
|
|
9112
|
+
mcp_status_disabled: '已停用',
|
|
9113
|
+
mcp_status_invalid_config: '設定無效',
|
|
9114
|
+
mcp_status_unknown: '未知',
|
|
9115
|
+
mcp_tool_count: '{0} 個工具',
|
|
9116
|
+
mcp_enabled_yes: '已啟用',
|
|
9117
|
+
mcp_enabled_no: '已停用',
|
|
9118
|
+
mcp_enable_server: '啟用此 MCP 伺服器',
|
|
9119
|
+
mcp_disable_server: '停用此 MCP 伺服器',
|
|
9120
|
+
mcp_enabled_toast: (name) => `MCP 伺服器「${name}」已啟用。`,
|
|
9121
|
+
mcp_disabled_toast: (name) => `MCP 伺服器「${name}」已停用。`,
|
|
9122
|
+
mcp_toggle_failed: '更新 MCP 伺服器失敗。',
|
|
9123
|
+
mcp_tools_title: 'MCP 工具',
|
|
9124
|
+
mcp_tools_desc: '搜尋作用中 MCP 伺服器中的已知工具。',
|
|
9125
|
+
mcp_tools_search_placeholder: '依名稱、伺服器或描述搜尋工具…',
|
|
9126
|
+
mcp_tools_no_tools: '作用中 runtime inventory 沒有可用的 MCP 工具。',
|
|
9127
|
+
mcp_tools_no_matches: '沒有符合搜尋條件的 MCP 工具。',
|
|
9128
|
+
mcp_tools_load_failed: '載入 MCP 工具失敗。',
|
|
9129
|
+
mcp_tools_schema_empty: '沒有 schema 參數。',
|
|
9130
|
+
mcp_tools_runtime_note: '工具清單只使用已知且作用中的 MCP runtime 資料;WebUI 不會啟動或探測伺服器。',
|
|
9131
|
+
mcp_tools_summary_no_matches: (query,total) => `沒有符合「${query}」的 MCP 工具(共 ${total} 個 MCP 工具)。`,
|
|
9132
|
+
mcp_tools_summary_none: '沒有可顯示的 MCP 工具。',
|
|
9133
|
+
mcp_tools_summary_matching: (query) => `,符合「${query}」`,
|
|
9134
|
+
mcp_tools_summary_total_note: (total) => `(共 ${total} 個 MCP 工具)`,
|
|
9135
|
+
mcp_tools_summary_showing: (start,end,filtered,searchNote,totalNote,page,pages) => `顯示第 ${start}-${end} 個,共 ${filtered} 個 MCP 工具${searchNote}${totalNote}。第 ${page} / ${pages} 頁。`,
|
|
9136
|
+
mcp_tools_page_size_prefix: '每頁顯示',
|
|
9137
|
+
mcp_tools_page_size_suffix: '筆',
|
|
9138
|
+
mcp_tools_per_page_aria: '每頁 MCP 工具數量',
|
|
9139
|
+
mcp_tools_inactive_configured_servers: (servers) => `已設定但未在此 WebUI runtime 中作用:${servers}。`,
|
|
9140
|
+
mcp_tools_pagination_label: 'MCP 工具分頁',
|
|
9141
|
+
mcp_tools_previous_page: '‹ 上一頁',
|
|
9142
|
+
mcp_tools_previous_page_aria: '上一頁 MCP 工具',
|
|
9143
|
+
mcp_tools_next_page: '下一頁 ›',
|
|
9144
|
+
mcp_tools_next_page_aria: '下一頁 MCP 工具',
|
|
9145
|
+
// PDF preview (#480)
|
|
9146
|
+
pdf_loading: '正在載入 PDF {0}…',
|
|
9147
|
+
pdf_too_large: 'PDF 太大,無法直接預覽',
|
|
9148
|
+
pdf_no_pages: 'PDF 沒有頁面',
|
|
9149
|
+
pdf_error: 'PDF 預覽轉譯失敗',
|
|
9150
|
+
pdf_download: '下載 PDF',
|
|
9151
|
+
// HTML sandbox preview (#482)
|
|
9152
|
+
html_loading: '正在載入 HTML 預覽…',
|
|
9153
|
+
html_too_large: 'HTML 太大,無法直接預覽',
|
|
9154
|
+
html_error: 'HTML 預覽轉譯失敗',
|
|
9155
|
+
html_open_full: '開啟完整頁面',
|
|
9156
|
+
html_sandbox_label: 'HTML 預覽(沙盒)',
|
|
9157
|
+
thinking: '思考中',
|
|
9158
|
+
expand_all: '全部展開',
|
|
9159
|
+
collapse_all: '全部收合',
|
|
9160
|
+
edit_failed: '編輯失敗:',
|
|
9161
|
+
regen_failed: '重新產生失敗:',
|
|
9162
|
+
reconnect_active: '回覆仍在產生中。完成後要重新載入嗎?',
|
|
9163
|
+
reconnect_finished: '離開時仍有回覆正在處理。訊息可能已經更新。',
|
|
9054
9164
|
// approval card
|
|
9055
|
-
approval_heading: '
|
|
9056
|
-
approval_desc_prefix: '
|
|
9057
|
-
approval_btn_once: '
|
|
9058
|
-
approval_btn_once_title: '
|
|
9059
|
-
approval_btn_session: '
|
|
9060
|
-
approval_btn_session_title: '
|
|
9061
|
-
approval_btn_always: '
|
|
9062
|
-
approval_btn_always_title: '
|
|
9063
|
-
approval_btn_deny: '
|
|
9064
|
-
approval_btn_deny_title: '
|
|
9065
|
-
approval_responding: '
|
|
9066
|
-
clarify_heading: '
|
|
9067
|
-
clarify_hint: '
|
|
9068
|
-
clarify_other: '
|
|
9069
|
-
clarify_send: '
|
|
9070
|
-
clarify_input_placeholder: '
|
|
9071
|
-
clarify_responding: '
|
|
9072
|
-
|
|
9073
|
-
|
|
9074
|
-
|
|
9165
|
+
approval_heading: '需要核准',
|
|
9166
|
+
approval_desc_prefix: '偵測到危險命令',
|
|
9167
|
+
approval_btn_once: '允許一次',
|
|
9168
|
+
approval_btn_once_title: '允許這一道命令(Enter)',
|
|
9169
|
+
approval_btn_session: '允許本次對話',
|
|
9170
|
+
approval_btn_session_title: '允許本次對話工作階段',
|
|
9171
|
+
approval_btn_always: '一律允許',
|
|
9172
|
+
approval_btn_always_title: '一律允許這個命令模式',
|
|
9173
|
+
approval_btn_deny: '拒絕',
|
|
9174
|
+
approval_btn_deny_title: '拒絕,不要執行這道命令',
|
|
9175
|
+
approval_responding: '正在回應……',
|
|
9176
|
+
clarify_heading: '需要釐清',
|
|
9177
|
+
clarify_hint: '請選擇一個選項,或在下方輸入回答。',
|
|
9178
|
+
clarify_other: '其他',
|
|
9179
|
+
clarify_send: '送出',
|
|
9180
|
+
clarify_input_placeholder: '輸入回答…',
|
|
9181
|
+
clarify_responding: '處理中…',
|
|
9182
|
+
session_attention_approval: (n) => n === 1 ? '核准' : `${n} 項核准`,
|
|
9183
|
+
session_attention_clarify: (n) => n === 1 ? '問題' : `${n} 個問題`,
|
|
9184
|
+
session_attention_generic: (n) => n === 1 ? '待處理' : `${n} 個事項`,
|
|
9185
|
+
session_attention_approval_title: '等待權限決定',
|
|
9186
|
+
session_attention_clarify_title: '等待回覆',
|
|
9187
|
+
session_attention_generic_title: '等待使用者操作',
|
|
9188
|
+
n_messages: (n) => `${n} 則訊息`,
|
|
9189
|
+
load_older_messages: '↑ 向上捲動或點選以載入較早的訊息',
|
|
9075
9190
|
session_jump_start: '開頭',
|
|
9076
|
-
session_jump_start_label: '
|
|
9191
|
+
session_jump_start_label: '跳至對話開頭',
|
|
9077
9192
|
session_jump_end: '結尾',
|
|
9078
|
-
session_jump_end_label: '
|
|
9193
|
+
session_jump_end_label: '跳至對話結尾',
|
|
9079
9194
|
jump_to_question: '回到問題',
|
|
9080
9195
|
jump_to_question_label: '跳至這則回答對應的問題',
|
|
9081
|
-
|
|
9082
|
-
|
|
9083
|
-
|
|
9084
|
-
|
|
9196
|
+
queued_label: '回應後傳送',
|
|
9197
|
+
queued_count: (n) => n === 1 ? '1 已排隊' : `${n} 已排隊`,
|
|
9198
|
+
queued_cancel: '取消排隊訊息',
|
|
9199
|
+
model_unavailable: '(無法使用)',
|
|
9200
|
+
model_unavailable_title: '這個模型已不在目前的供應商清單中',
|
|
9201
|
+
provider_mismatch_warning: (m,p)=>`「${m}」可能無法搭配已設定的供應商(${p})使用。仍要送出,或在終端機執行 \`hermes model\` 來切換。`,
|
|
9202
|
+
provider_mismatch_label: '供應商不相符',
|
|
9085
9203
|
gateway_auth_label: 'Gateway 驗證失敗',
|
|
9086
|
-
model_not_found_label: '
|
|
9204
|
+
model_not_found_label: '未找到模型',
|
|
9205
|
+
model_custom_label: '自訂模型 ID',
|
|
9206
|
+
model_custom_placeholder: '例如 openai/gpt-5.4',
|
|
9207
|
+
model_search_placeholder: '搜尋模型…',
|
|
9208
|
+
model_search_no_results: '找不到模型',
|
|
9209
|
+
model_group_configured: '已設定',
|
|
9210
|
+
ws_search_placeholder: '搜尋工作區…',
|
|
9211
|
+
ws_no_results: '找不到工作區',
|
|
9212
|
+
workspace_new_worktree_conversation: '在 worktree 中新增對話',
|
|
9213
|
+
workspace_new_worktree_conversation_meta: '為此工作區建立隔離的 git worktree。',
|
|
9214
|
+
workspace_worktree_created: '已建立 worktree 對話',
|
|
9215
|
+
workspace_worktree_failed: '建立 worktree 失敗:',
|
|
9216
|
+
session_worktree_badge: 'Worktree',
|
|
9217
|
+
model_scope_advisory: '從下一則訊息起適用於此對話。',
|
|
9218
|
+
model_scope_toast: '從下一則訊息起適用於此對話。',
|
|
9087
9219
|
// commands.js
|
|
9088
|
-
|
|
9089
|
-
|
|
9090
|
-
cmd_compress: '
|
|
9091
|
-
ctx_compress_hint: '
|
|
9092
|
-
ctx_compress_action: '
|
|
9093
|
-
cmd_compact_alias: '
|
|
9094
|
-
cmd_model: '
|
|
9095
|
-
cmd_workspace: '
|
|
9096
|
-
cmd_terminal: '
|
|
9097
|
-
cmd_new: '
|
|
9098
|
-
cmd_usage: '
|
|
9099
|
-
cmd_theme: '
|
|
9100
|
-
cmd_personality: '
|
|
9101
|
-
cmd_skills: '
|
|
9102
|
-
available_commands: '
|
|
9103
|
-
type_slash: '
|
|
9104
|
-
conversation_cleared: '
|
|
9105
|
-
command_label: '
|
|
9106
|
-
context_compaction_label: '
|
|
9107
|
-
|
|
9108
|
-
|
|
9109
|
-
|
|
9110
|
-
|
|
9111
|
-
|
|
9112
|
-
|
|
9113
|
-
|
|
9114
|
-
|
|
9115
|
-
|
|
9116
|
-
|
|
9220
|
+
cmd_clear: '清除對話訊息',
|
|
9221
|
+
cmd_help: '列出可用命令',
|
|
9222
|
+
cmd_compress: '手動壓縮對話脈絡(用法:/compress [主題])',
|
|
9223
|
+
ctx_compress_hint: '壓縮脈絡以釋放空間 →',
|
|
9224
|
+
ctx_compress_action: '⚠ 立即壓縮以釋放脈絡',
|
|
9225
|
+
cmd_compact_alias: '舊別名:/compress',
|
|
9226
|
+
cmd_model: '切換模型(例如 /model gpt-4o)',
|
|
9227
|
+
cmd_workspace: '依名稱切換工作區',
|
|
9228
|
+
cmd_terminal: '開啟工作區 Terminal',
|
|
9229
|
+
cmd_new: '開始新的聊天對話',
|
|
9230
|
+
cmd_usage: '開啟或關閉 token 用量顯示',
|
|
9231
|
+
cmd_theme: '切換外觀(主題:system/dark/light,skin:default/ares/mono/slate/poseidon/sisyphus/charizard/sienna/catppuccin/nous/geist-contrast)',
|
|
9232
|
+
cmd_personality: '切換 Agent 角色',
|
|
9233
|
+
cmd_skills: '列出可用的 Hermes 技能',
|
|
9234
|
+
available_commands: '可用命令:',
|
|
9235
|
+
type_slash: '輸入 / 檢視命令',
|
|
9236
|
+
conversation_cleared: '已清除對話',
|
|
9237
|
+
command_label: '命令',
|
|
9238
|
+
context_compaction_label: '脈絡壓縮',
|
|
9239
|
+
retrieval_context_label: '已索引的脈絡',
|
|
9240
|
+
retrieval_context_preview: '較早的訊息已儲存,可透過脈絡工具擷取',
|
|
9241
|
+
preserved_task_list_label: '保留的任務清單',
|
|
9242
|
+
reference_only_label: '僅供參考',
|
|
9243
|
+
model_usage: '用法:/model <name>',
|
|
9244
|
+
no_model_match: '沒有符合的模型:',
|
|
9245
|
+
switched_to: '已切換到 ',
|
|
9246
|
+
workspace_usage: '用法:/workspace <name>',
|
|
9247
|
+
no_workspace_match: '沒有符合的工作區:',
|
|
9248
|
+
switched_workspace: '已切換至工作區:',
|
|
9249
|
+
workspace_switch_failed: '工作區切換失敗:',
|
|
9250
|
+
new_session: '已建立新對話',
|
|
9117
9251
|
new_session_creating: '正在建立新對話…',
|
|
9118
|
-
compressing: '
|
|
9119
|
-
compress_running_label: '
|
|
9120
|
-
compress_complete_label: '
|
|
9121
|
-
auto_compress_label: '
|
|
9122
|
-
compress_failed_label: '
|
|
9123
|
-
focus_label: '
|
|
9124
|
-
token_usage_on: 'Token
|
|
9125
|
-
token_usage_off: 'Token
|
|
9252
|
+
compressing: '正在要求壓縮脈絡……',
|
|
9253
|
+
compress_running_label: '壓縮中',
|
|
9254
|
+
compress_complete_label: '壓縮完成',
|
|
9255
|
+
auto_compress_label: '自動壓縮',
|
|
9256
|
+
compress_failed_label: '壓縮失敗',
|
|
9257
|
+
focus_label: '主題',
|
|
9258
|
+
token_usage_on: 'Token 用量顯示已開啟',
|
|
9259
|
+
token_usage_off: 'Token 用量顯示已關閉',
|
|
9126
9260
|
usage_cache_hit_detail: '快取:{0}% 命中(讀取 {1} / 寫入 {2})',
|
|
9127
9261
|
usage_cached_percent: '{0}% 已快取',
|
|
9128
|
-
theme_usage: '
|
|
9129
|
-
theme_set: '
|
|
9130
|
-
no_active_session: '
|
|
9262
|
+
theme_usage: '用法:/theme ',
|
|
9263
|
+
theme_set: '主題:',
|
|
9264
|
+
no_active_session: '沒有使用中的對話',
|
|
9265
|
+
cmd_queue: '將訊息加入下一輪的佇列',
|
|
9266
|
+
cmd_goal: '設定或檢視持久目標',
|
|
9267
|
+
goal_evaluating_progress: '正在評估目標進度…',
|
|
9268
|
+
goal_working_toward: '正在朝目標執行…',
|
|
9269
|
+
goal_continuing_toast: '正在繼續目標…',
|
|
9270
|
+
goal_status_none: '沒有使用中的目標。請使用 /goal <text> 設定。',
|
|
9271
|
+
goal_status_active: (turns, max_turns, goal) => `⊙ 目標(進行中,${turns}/${max_turns} 回合):${goal}`,
|
|
9272
|
+
goal_status_paused: (turns, max_turns, reason, goal) => `⏸ 目標(已暫停,${turns}/${max_turns}${reason ? `,${reason}` : ''}):${goal}`,
|
|
9273
|
+
goal_status_done: (turns, max_turns, goal) => `✓ 目標完成(${turns}/${max_turns}):${goal}`,
|
|
9274
|
+
goal_set: (turns, goal) => `⊙ 已設定目標(${turns} 回合預算):${goal}`,
|
|
9275
|
+
goal_paused: (goal) => `⏸ 目標已暫停:${goal}`,
|
|
9276
|
+
goal_resumed: (goal) => `▶ 目標已恢復:${goal}`,
|
|
9277
|
+
goal_cleared: '目標已清除。',
|
|
9278
|
+
goal_no_goal: '沒有使用中的目標。',
|
|
9279
|
+
goal_achieved: (reason) => `✓ 目標已達成:${reason}`,
|
|
9280
|
+
goal_paused_budget_exhausted: (turns, max_turns) => `⏸ 目標已暫停,已使用 ${turns}/${max_turns} 回合。使用 /goal resume 繼續,或使用 /goal clear 停止。`,
|
|
9281
|
+
goal_continuing: (turns, max_turns, reason) => `↻ 繼續目標(${turns}/${max_turns}):${reason}`,
|
|
9282
|
+
cmd_interrupt: '取消目前回合並傳送新訊息',
|
|
9283
|
+
cmd_steer: '在回合進行中注入修正,不中斷 Agent',
|
|
9284
|
+
cmd_queue_no_msg: '用法:/queue <訊息>',
|
|
9285
|
+
cmd_queue_not_busy: '沒有活動任務 — 直接傳送即可',
|
|
9286
|
+
cmd_queue_confirm: '訊息已加入佇列',
|
|
9287
|
+
cmd_interrupt_no_msg: '用法:/interrupt <訊息>',
|
|
9288
|
+
cmd_interrupt_confirm: '已中斷,正在傳送新訊息',
|
|
9289
|
+
cmd_steer_no_msg: '用法:/steer <訊息>',
|
|
9290
|
+
cmd_steer_fallback: 'Steer 不可用 — 已加入下一輪佇列',
|
|
9291
|
+
cmd_steer_delivered: 'Steer 已送達,Agent 會在下一個工具結果中看到',
|
|
9292
|
+
steer_leftover_queued: 'Steer 已加入下一輪佇列',
|
|
9293
|
+
busy_steer_fallback: 'Steer 不可用 — 已加入下一輪佇列',
|
|
9294
|
+
busy_interrupt_confirm: '已中斷,正在傳送新訊息',
|
|
9295
|
+
settings_label_busy_input_mode: '忙碌輸入模式',
|
|
9296
|
+
settings_desc_busy_input_mode: '控制 Agent 執行時送出訊息的行為。佇列會等待;中斷會取消並重新開始;Steer 會中途注入修正且不中斷(Agent 或串流無法使用時會退回佇列)。',
|
|
9297
|
+
settings_label_fade_text_effect: '文字淡入效果',
|
|
9298
|
+
settings_desc_fade_text_effect: '在助理回覆時讓新串流輸出的詞語淡入顯示。類似 OpenWebUI;為獲得最佳效能預設關閉。',
|
|
9299
|
+
settings_busy_input_mode_queue: '加入佇列',
|
|
9300
|
+
settings_busy_input_mode_interrupt: '中斷目前回合',
|
|
9301
|
+
settings_busy_input_mode_steer: 'Steer(中途修正)',
|
|
9131
9302
|
|
|
9303
|
+
slash_skill_badge: '技能',
|
|
9304
|
+
slash_skill_desc: '叫用此技能',
|
|
9305
|
+
cmd_stop: '停止目前回應',
|
|
9306
|
+
cmd_title: '取得或設定對話標題',
|
|
9307
|
+
cmd_retry: '重新送出上一則訊息',
|
|
9308
|
+
cmd_undo: '移除上一組問答',
|
|
9309
|
+
cmd_btw: '提出旁支問題(暫時)',
|
|
9310
|
+
cmd_btw_usage: '/btw <question> — 使用對話脈絡提出旁支問題',
|
|
9311
|
+
cmd_background: '在背景執行提示詞',
|
|
9312
|
+
cmd_background_usage: '/background <prompt> — 平行執行,不阻塞目前工作',
|
|
9313
|
+
cmd_branch: '將此對話分支成新的對話',
|
|
9314
|
+
cmd_branch_usage: '/branch [name] — 分支對話(可選擇命名)',
|
|
9315
|
+
branch_forked: '已分支成新的對話',
|
|
9316
|
+
branch_failed: '分支失敗:',
|
|
9317
|
+
fork_from_here: '從這裡分支',
|
|
9318
|
+
forked_from: '分支來源',
|
|
9319
|
+
subagent_children: '子 Agent 對話',
|
|
9320
|
+
btw_asking: '正在詢問旁支問題…',
|
|
9321
|
+
btw_label: '旁支問題,不會寫入記錄',
|
|
9322
|
+
btw_done: '旁支問題已回答',
|
|
9323
|
+
btw_no_answer: '未收到回答。',
|
|
9324
|
+
btw_failed: '旁支問題失敗:',
|
|
9325
|
+
bg_running: '正在背景執行…',
|
|
9326
|
+
bg_complete: '背景任務已完成',
|
|
9327
|
+
bg_label: '背景結果:',
|
|
9328
|
+
bg_no_answer: '(沒有回答)',
|
|
9329
|
+
bg_failed: '背景任務失敗:',
|
|
9330
|
+
undo_exchange: '復原上一組問答',
|
|
9331
|
+
cmd_status: '顯示對話資訊',
|
|
9332
|
+
cmd_voice: '切換麥克風輸入',
|
|
9333
|
+
stream_stopped: '回應已停止。',
|
|
9334
|
+
no_active_task: '沒有可停止的使用中任務。',
|
|
9335
|
+
cancel_unavailable: '無法取消。',
|
|
9336
|
+
retry_failed: '重試失敗:',
|
|
9337
|
+
undo_failed: '復原失敗:',
|
|
9338
|
+
undid_n_messages: '已移除',
|
|
9339
|
+
undid_messages_suffix: '則訊息。',
|
|
9340
|
+
status_heading: '對話狀態',
|
|
9341
|
+
status_session_id: '對話 ID',
|
|
9342
|
+
status_title: '標題',
|
|
9343
|
+
status_model: '模型',
|
|
9344
|
+
status_provider: '供應商',
|
|
9345
|
+
status_workspace: '工作區',
|
|
9346
|
+
status_personality: '角色',
|
|
9347
|
+
status_messages: '訊息',
|
|
9348
|
+
status_agent_running: 'Agent 執行中',
|
|
9349
|
+
status_profile: '個人資料',
|
|
9350
|
+
status_hermes_home: 'Hermes 主目錄',
|
|
9351
|
+
status_started: '開始時間',
|
|
9352
|
+
status_updated: '已更新',
|
|
9353
|
+
status_tokens: 'Token',
|
|
9354
|
+
status_ephemeral: '暫時快照,未儲存到對話記錄。',
|
|
9355
|
+
status_no_tokens: '未使用 Token',
|
|
9356
|
+
status_unknown: '未知',
|
|
9357
|
+
status_yes: '是',
|
|
9358
|
+
status_no: '否',
|
|
9359
|
+
status_load_failed: '載入狀態失敗:',
|
|
9360
|
+
title_current: '目前標題',
|
|
9361
|
+
title_change_hint: '使用 `/title <new name>` 重新命名。',
|
|
9362
|
+
title_set: '標題已設定為',
|
|
9363
|
+
cmd_webui_only_session: '此命令無法用於從 CLI 匯入的對話。',
|
|
9364
|
+
cmd_voice_use_mic: '請點選輸入框中的麥克風按鈕。',
|
|
9365
|
+
usage_heading: 'Token 用量',
|
|
9366
|
+
usage_default_model: '預設',
|
|
9367
|
+
usage_unknown: '未知',
|
|
9368
|
+
usage_input_tokens: '輸入 Token',
|
|
9369
|
+
usage_output_tokens: '輸出 Token',
|
|
9370
|
+
usage_total: 'Token 總計',
|
|
9371
|
+
usage_estimated_cost: '估計成本',
|
|
9372
|
+
usage_settings_tip: '注意:成本估計僅供參考。',
|
|
9373
|
+
usage_load_failed: '載入用量失敗:',
|
|
9374
|
+
usage_personality_none: '無',
|
|
9375
|
+
// Session toolsets (#493)
|
|
9376
|
+
session_toolsets: '對話工具集',
|
|
9377
|
+
session_toolsets_desc: '限制此對話可用的工具(留空即使用全域設定)',
|
|
9378
|
+
session_toolsets_global: '全域(預設)',
|
|
9379
|
+
session_toolsets_custom: '自訂',
|
|
9380
|
+
session_toolsets_placeholder: 'tool1, tool2, …',
|
|
9381
|
+
session_toolsets_apply: '套用',
|
|
9382
|
+
session_toolsets_clear: '清除(使用全域)',
|
|
9383
|
+
session_toolsets_applied: '工具集已更新',
|
|
9384
|
+
session_toolsets_cleared: '工具集已清除,改用全域設定',
|
|
9385
|
+
session_toolsets_failed: '更新工具集失敗:',
|
|
9386
|
+
untitled: '未命名',
|
|
9387
|
+
no_personalities: '找不到角色(可新增至 ~/.hermes/personalities/)',
|
|
9388
|
+
available_personalities: '可用角色:',
|
|
9389
|
+
personality_switch_hint: '\n\n使用 `/personality <name>` 切換,或使用 `/personality none` 清除。',
|
|
9390
|
+
personalities_load_failed: '載入角色失敗',
|
|
9391
|
+
personality_cleared: '已清除角色',
|
|
9392
|
+
personality_set: '角色:',
|
|
9393
|
+
failed_colon: '失敗:',
|
|
9394
|
+
// ui.js
|
|
9395
|
+
no_workspace: '沒有工作區',
|
|
9396
|
+
terminal_open_title: '開啟工作區 Terminal',
|
|
9397
|
+
terminal_no_workspace_title: '請先選擇工作區再開啟 Terminal',
|
|
9398
|
+
terminal_title: 'Terminal',
|
|
9399
|
+
terminal_clear: '清空',
|
|
9400
|
+
terminal_copy_output: '複製輸出',
|
|
9401
|
+
terminal_restart: '重新啟動',
|
|
9402
|
+
terminal_collapse: '收合',
|
|
9403
|
+
terminal_expand: '展開',
|
|
9404
|
+
terminal_close: '關閉',
|
|
9405
|
+
terminal_input_placeholder: '輸入命令……',
|
|
9406
|
+
terminal_start_failed: 'Terminal 啟動失敗:',
|
|
9407
|
+
terminal_input_failed: 'Terminal 輸入失敗:',
|
|
9408
|
+
terminal_copy_failed: '複製失敗:',
|
|
9409
|
+
terminal_error: 'Terminal 錯誤',
|
|
9132
9410
|
workspace_empty_no_path: '未選擇工作區。請在 設定 → 工作區 中設定工作區以瀏覽檔案。',
|
|
9133
9411
|
workspace_empty_dir: '此工作區為空。',
|
|
9134
9412
|
workspace_show_hidden_files: '顯示隱藏檔案',
|
|
9135
|
-
workspace_show_hidden_files_desc: '
|
|
9136
|
-
workspace_hidden_files_visible: '
|
|
9137
|
-
workspace_hidden_files_visible_title: '
|
|
9138
|
-
workspace_options: '
|
|
9139
|
-
no_personalities: '\u6c92\u6709\u627e\u5230\u4eba\u8a2d\uff08\u53ef\u6dfb\u52a0\u5230 ~/.hermes/personalities/\uff09',
|
|
9140
|
-
available_personalities: '\u53ef\u7528\u4eba\u8a2d\uff1a',
|
|
9141
|
-
personality_switch_hint: '\n\n\u4f7f\u7528 `/personality <name>` \u5207\u63db\uff0c\u6216\u7528 `/personality none` \u6e05\u7a7a\u3002',
|
|
9142
|
-
personalities_load_failed: '\u52a0\u8f7d\u4eba\u8a2d\u5931\u6557',
|
|
9143
|
-
personality_cleared: '\u4eba\u8a2d\u5df2\u6e05\u7a7a',
|
|
9144
|
-
personality_set: '\u7576\u524d\u4eba\u8a2d\uff1a',
|
|
9145
|
-
failed_colon: '\u5931\u6557\uff1a',
|
|
9146
|
-
// ui.js
|
|
9147
|
-
no_workspace: '\u672a\u9078\u64c7\u5de5\u4f5c\u5340',
|
|
9148
|
-
terminal_open_title: '\u6253\u958b\u5de5\u4f5c\u5340 Terminal',
|
|
9149
|
-
terminal_no_workspace_title: '\u8acb\u5148\u9078\u64c7\u5de5\u4f5c\u5340\u518d\u6253\u958b Terminal',
|
|
9150
|
-
terminal_title: 'Terminal',
|
|
9151
|
-
terminal_clear: '\u6e05\u7a7a',
|
|
9152
|
-
terminal_copy_output: '\u8907\u88fd\u8f38\u51fa',
|
|
9153
|
-
terminal_restart: '\u91cd\u555f',
|
|
9154
|
-
terminal_collapse: '\u6536\u5408',
|
|
9155
|
-
terminal_expand: '\u5c55\u958b',
|
|
9156
|
-
terminal_close: '\u95dc\u9589',
|
|
9157
|
-
terminal_input_placeholder: '\u8f38\u5165\u547d\u4ee4...',
|
|
9158
|
-
terminal_start_failed: 'Terminal \u555f\u52d5\u5931\u6557\uff1a',
|
|
9159
|
-
terminal_input_failed: 'Terminal \u8f38\u5165\u5931\u6557\uff1a',
|
|
9160
|
-
terminal_copy_failed: '\u8907\u88fd\u5931\u6557\uff1a',
|
|
9161
|
-
terminal_error: 'Terminal \u932f\u8aa4',
|
|
9413
|
+
workspace_show_hidden_files_desc: '在檔案樹中包含 .DS_Store、.git、node_modules 與其他隱藏/系統檔案。',
|
|
9414
|
+
workspace_hidden_files_visible: '顯示隱藏檔',
|
|
9415
|
+
workspace_hidden_files_visible_title: '隱藏檔已顯示,點選可檢視選項',
|
|
9416
|
+
workspace_options: '工作區選項',
|
|
9162
9417
|
// workspace.js
|
|
9163
|
-
unsaved_confirm: '
|
|
9164
|
-
save: '
|
|
9165
|
-
edit: '
|
|
9166
|
-
save_title: '
|
|
9167
|
-
edit_title: '
|
|
9168
|
-
saved: '
|
|
9169
|
-
save_failed: '
|
|
9170
|
-
image_load_failed: '
|
|
9171
|
-
file_open_failed: '
|
|
9172
|
-
downloading: (name) =>
|
|
9173
|
-
double_click_rename: '
|
|
9174
|
-
session_rename_failed_no_row: '
|
|
9175
|
-
renamed_to: '
|
|
9176
|
-
rename_failed: '
|
|
9177
|
-
delete_title: '
|
|
9178
|
-
delete_confirm: (name) =>
|
|
9179
|
-
delete_dir_confirm: (name) =>
|
|
9418
|
+
unsaved_confirm: '預覽中有未儲存的變更。要捨棄並前往其他位置嗎?',
|
|
9419
|
+
save: '儲存',
|
|
9420
|
+
edit: '編輯',
|
|
9421
|
+
save_title: '儲存變更',
|
|
9422
|
+
edit_title: '編輯這個檔案',
|
|
9423
|
+
saved: '已儲存',
|
|
9424
|
+
save_failed: '儲存失敗:',
|
|
9425
|
+
image_load_failed: '無法載入圖片',
|
|
9426
|
+
file_open_failed: '無法開啟檔案',
|
|
9427
|
+
downloading: (name) => `正在下載 ${name}…`,
|
|
9428
|
+
double_click_rename: '按兩下即可重新命名',
|
|
9429
|
+
session_rename_failed_no_row: '無法開始重新命名,找不到資料列。',
|
|
9430
|
+
renamed_to: '已重新命名為 ',
|
|
9431
|
+
rename_failed: '重新命名失敗:',
|
|
9432
|
+
delete_title: '刪除',
|
|
9433
|
+
delete_confirm: (name) => `要刪除 ${name} 嗎?`,
|
|
9434
|
+
delete_dir_confirm: (name) => `刪除資料夾「${name}」及其所有內容?`,
|
|
9180
9435
|
rename_title: '重新命名',
|
|
9181
|
-
rename_prompt: '
|
|
9182
|
-
deleted: '
|
|
9183
|
-
delete_failed: '
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
path_copied: '
|
|
9191
|
-
path_copy_failed: '
|
|
9192
|
-
session_rename: '
|
|
9193
|
-
session_rename_desc: '
|
|
9436
|
+
rename_prompt: '新名稱:',
|
|
9437
|
+
deleted: '已刪除 ',
|
|
9438
|
+
delete_failed: '刪除失敗:',
|
|
9439
|
+
reveal_in_finder: '在檔案管理員中顯示',
|
|
9440
|
+
reveal_failed: '顯示失敗:',
|
|
9441
|
+
copy_file_path: '複製檔案路徑',
|
|
9442
|
+
open_in_vscode: '在 VS Code 中開啟',
|
|
9443
|
+
open_in_vscode_failed: '在 VS Code 中開啟失敗:',
|
|
9444
|
+
download_folder: '下載資料夾',
|
|
9445
|
+
path_copied: '檔案路徑已複製到剪貼簿',
|
|
9446
|
+
path_copy_failed: '複製路徑失敗:',
|
|
9447
|
+
session_rename: '重新命名對話',
|
|
9448
|
+
session_rename_desc: '編輯此對話的標題',
|
|
9449
|
+
session_title_regenerate: '重新產生標題',
|
|
9450
|
+
session_title_regenerate_desc: '請 Hermes 依對話產生新的標題',
|
|
9451
|
+
session_title_regenerating: '正在重新產生標題…',
|
|
9452
|
+
session_title_regenerated: (title) => `標題已重新產生:${title}`,
|
|
9453
|
+
session_title_regenerate_failed: '重新產生標題失敗:',
|
|
9194
9454
|
session_copy_link: '複製對話連結',
|
|
9195
9455
|
session_copy_link_desc: '複製此對話的直接連結',
|
|
9196
9456
|
session_link_copied: '對話連結已複製到剪貼簿',
|
|
9197
9457
|
session_link_copy_failed: '無法複製對話連結:',
|
|
9198
|
-
new_file_prompt: '
|
|
9199
|
-
created: '
|
|
9200
|
-
create_failed: '
|
|
9201
|
-
new_folder_prompt: '
|
|
9202
|
-
folder_created: '
|
|
9203
|
-
folder_create_failed: '
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
remove_title: '
|
|
9209
|
-
empty_dir: '
|
|
9458
|
+
new_file_prompt: '新檔案名稱(例如 notes.md):',
|
|
9459
|
+
created: '已建立 ',
|
|
9460
|
+
create_failed: '建立失敗:',
|
|
9461
|
+
new_folder_prompt: '新資料夾名稱:',
|
|
9462
|
+
folder_created: '已建立資料夾 ',
|
|
9463
|
+
folder_create_failed: '建立資料夾失敗:',
|
|
9464
|
+
workspace_auto_create_folder: '資料夾不存在時自動建立',
|
|
9465
|
+
folder_add_as_space_btn: '新增為空間',
|
|
9466
|
+
folder_add_as_space_msg: '要將此資料夾新增為工作區清單中的新空間嗎?',
|
|
9467
|
+
folder_add_as_space_title: '要新增為空間嗎?',
|
|
9468
|
+
remove_title: '移除',
|
|
9469
|
+
empty_dir: '(空)',
|
|
9210
9470
|
upload_failed: '上傳失敗:',
|
|
9211
9471
|
upload_too_large: (maxMb, fileMb) => `檔案過大(${fileMb} MB)。最大上傳大小為 ${maxMb} MB。`,
|
|
9212
|
-
|
|
9472
|
+
uploading: '上傳中…',
|
|
9473
|
+
uploaded: '已上傳',
|
|
9474
|
+
all_uploads_failed: (n) => `全部 ${n} 個上傳都失敗`,
|
|
9475
|
+
archive_extracted: (n, c) => `從 ${c} 個壓縮包中解壓縮了 ${n} 個檔案`,
|
|
9213
9476
|
session_pin: '釘選對話',
|
|
9214
9477
|
session_unpin: '取消釘選',
|
|
9215
9478
|
session_pin_desc: '將此對話置頂',
|
|
@@ -9219,23 +9482,23 @@ const LOCALES = {
|
|
|
9219
9482
|
session_move_project_desc_has: '變更此對話的專案',
|
|
9220
9483
|
session_move_project_desc_none: '為此對話指定專案',
|
|
9221
9484
|
session_archive: '封存對話',
|
|
9222
|
-
session_hide_external: '
|
|
9485
|
+
session_hide_external: '從清單中隱藏',
|
|
9223
9486
|
session_restore: '還原對話',
|
|
9224
9487
|
session_archive_desc: '隱藏此對話,直到開啟顯示封存',
|
|
9225
9488
|
session_archive_worktree_desc: '隱藏此對話;保留磁碟上的 worktree',
|
|
9226
|
-
session_hide_external_desc: '從 WebUI
|
|
9489
|
+
session_hide_external_desc: '從 WebUI 清單中隱藏此匯入的對話,不刪除原始歷史記錄。',
|
|
9227
9490
|
session_restore_desc: '將此對話移回主清單',
|
|
9228
9491
|
session_archived: '對話已封存',
|
|
9229
9492
|
session_archived_worktree: '對話已封存。Worktree 仍保留在磁碟上。',
|
|
9230
|
-
session_hidden: '
|
|
9493
|
+
session_hidden: '已從清單中隱藏對話',
|
|
9231
9494
|
session_restored: '對話已還原',
|
|
9232
9495
|
session_archive_failed: '封存失敗:',
|
|
9233
9496
|
session_duplicate: '複製對話',
|
|
9234
9497
|
session_duplicate_desc: '建立一個相同工作區與模型的副本',
|
|
9235
9498
|
session_duplicated: '對話已複製',
|
|
9236
9499
|
session_duplicate_failed: '複製失敗:',
|
|
9237
|
-
session_stop_response: '
|
|
9238
|
-
session_stop_response_desc: '
|
|
9500
|
+
session_stop_response: '停止回應',
|
|
9501
|
+
session_stop_response_desc: '取消此對話中正在執行的回應',
|
|
9239
9502
|
session_delete: '刪除對話',
|
|
9240
9503
|
session_delete_desc: '永久移除這個對話',
|
|
9241
9504
|
session_delete_confirm: '刪除此對話?',
|
|
@@ -9256,20 +9519,20 @@ const LOCALES = {
|
|
|
9256
9519
|
session_worktree_remove_unsafe_blocked: '請先處理本機變更或未推送提交,再刪除此 worktree。',
|
|
9257
9520
|
session_worktree_remove_dirty_warning: '⚠️ 此 worktree 有未提交的變更,將被永久刪除。',
|
|
9258
9521
|
session_worktree_remove_untracked_warning: (count) => `${count} 個未追蹤檔案將被永久刪除。`,
|
|
9259
|
-
session_worktree_remove_ahead_warning: (ahead) => `${ahead}
|
|
9522
|
+
session_worktree_remove_ahead_warning: (ahead) => `${ahead} 個未推送的提交會遺失。`,
|
|
9260
9523
|
session_select_mode: '選取',
|
|
9261
|
-
session_select_mode_desc: '
|
|
9524
|
+
session_select_mode_desc: '選取對話以批次管理',
|
|
9262
9525
|
session_select_all: '全選',
|
|
9263
9526
|
session_deselect_all: '取消全選',
|
|
9264
9527
|
session_selected_count: '已選 {0} 個',
|
|
9265
9528
|
session_batch_archive: '封存',
|
|
9266
9529
|
session_batch_delete: '刪除',
|
|
9267
9530
|
session_batch_move: '移至專案',
|
|
9268
|
-
session_batch_delete_confirm: '
|
|
9269
|
-
session_batch_archive_confirm: '
|
|
9270
|
-
session_batch_delete_worktree_confirm: '
|
|
9271
|
-
session_batch_archive_worktree_confirm: '
|
|
9272
|
-
session_no_selection: '
|
|
9531
|
+
session_batch_delete_confirm: '要刪除 {0} 個對話嗎?',
|
|
9532
|
+
session_batch_archive_confirm: '要封存 {0} 個對話嗎?',
|
|
9533
|
+
session_batch_delete_worktree_confirm: '要刪除 {0} 個對話嗎?其中 {1} 個 worktree 對話會把 worktree 目錄保留在磁碟上。',
|
|
9534
|
+
session_batch_archive_worktree_confirm: '要封存 {0} 個對話嗎?其中 {1} 個 worktree 對話會把 worktree 目錄保留在磁碟上。',
|
|
9535
|
+
session_no_selection: '未選取任何對話',
|
|
9273
9536
|
// settings panel
|
|
9274
9537
|
settings_heading_title: '控制中心',
|
|
9275
9538
|
settings_heading_subtitle: '偏好設定、對話工具與系統控制。',
|
|
@@ -9279,25 +9542,25 @@ const LOCALES = {
|
|
|
9279
9542
|
settings_section_preferences_title: '偏好設定',
|
|
9280
9543
|
settings_section_preferences_meta: 'Hermes Web UI 的預設值與介面行為。',
|
|
9281
9544
|
settings_section_system_title: '系統',
|
|
9282
|
-
settings_section_system_meta: '
|
|
9545
|
+
settings_section_system_meta: '執行個體版本與存取控制。',
|
|
9283
9546
|
settings_check_now: '立即檢查',
|
|
9284
|
-
settings_checking: '
|
|
9285
|
-
settings_up_to_date: '已是最新
|
|
9547
|
+
settings_checking: '檢查中…',
|
|
9548
|
+
settings_up_to_date: '已是最新 ✓',
|
|
9286
9549
|
settings_updates_available: '有 {count} 個更新可用',
|
|
9287
|
-
settings_updates_disabled: '
|
|
9550
|
+
settings_updates_disabled: '更新檢查已停用',
|
|
9288
9551
|
settings_update_check_failed: '更新檢查失敗',
|
|
9289
|
-
settings_label_workspace_panel_open: '
|
|
9290
|
-
settings_desc_workspace_panel_open: '
|
|
9291
|
-
settings_label_session_jump_buttons: '
|
|
9292
|
-
settings_desc_session_jump_buttons: '
|
|
9552
|
+
settings_label_workspace_panel_open: '預設保持工作區面板開啟',
|
|
9553
|
+
settings_desc_workspace_panel_open: '啟用後,工作區/檔案瀏覽器面板會在每次新對話時自動開啟。仍可隨時手動關閉。',
|
|
9554
|
+
settings_label_session_jump_buttons: '顯示對話跳轉按鈕',
|
|
9555
|
+
settings_desc_session_jump_buttons: '閱讀較長對話記錄時,顯示浮動的開頭與結尾按鈕。',
|
|
9293
9556
|
|
|
9294
9557
|
settings_label_session_endless_scroll: '向上捲動時載入較早訊息',
|
|
9295
9558
|
|
|
9296
9559
|
settings_desc_session_endless_scroll: '啟用後,向上捲動時會自動載入較早訊息。停用時請使用載入較早訊息按鈕。',
|
|
9297
9560
|
|
|
9298
9561
|
settings_label_tab_visibility: '側邊欄標籤',
|
|
9299
|
-
settings_desc_tab_visibility: '
|
|
9300
|
-
open_in_browser: '
|
|
9562
|
+
settings_desc_tab_visibility: '選擇在側邊欄和導覽列中顯示哪些標籤。聊天和設定始終可見。',
|
|
9563
|
+
open_in_browser: '在瀏覽器中開啟',
|
|
9301
9564
|
settings_dropdown_conversation: '對話',
|
|
9302
9565
|
settings_dropdown_appearance: '外觀',
|
|
9303
9566
|
settings_dropdown_preferences: '偏好設定',
|
|
@@ -9308,99 +9571,95 @@ const LOCALES = {
|
|
|
9308
9571
|
settings_tab_preferences: '偏好設定',
|
|
9309
9572
|
settings_tab_plugins: '外掛',
|
|
9310
9573
|
settings_plugins_title: '外掛',
|
|
9311
|
-
|
|
9574
|
+
plugins_enable_toggle: '啟用',
|
|
9575
|
+
settings_plugins_meta: '檢視已安裝的 Hermes 外掛及其註冊的生命週期掛鉤。此面板為唯讀。',
|
|
9312
9576
|
settings_plugins_empty: '目前沒有可見的 Hermes 外掛。透過 Hermes CLI/設定檔安裝或啟用外掛後即可在此檢視。',
|
|
9313
9577
|
plugins_unnamed: '未命名外掛',
|
|
9314
9578
|
plugins_no_description: '未提供描述。',
|
|
9315
|
-
plugins_no_hooks: '
|
|
9316
|
-
plugins_registered_hooks: '
|
|
9579
|
+
plugins_no_hooks: '未註冊生命週期掛鉤',
|
|
9580
|
+
plugins_registered_hooks: '已註冊的掛鉤',
|
|
9317
9581
|
plugins_enabled: '已啟用',
|
|
9318
9582
|
plugins_disabled: '已停用',
|
|
9319
9583
|
plugins_active_provider: '啟用中(提供者)',
|
|
9320
|
-
plugins_provider_no_hooks: '
|
|
9584
|
+
plugins_provider_no_hooks: '供應商外掛,沒有 Agent 可見的掛鉤',
|
|
9321
9585
|
plugins_load_failed: '載入外掛失敗:',
|
|
9322
9586
|
settings_tab_system: '系統',
|
|
9323
|
-
settings_title: '
|
|
9324
|
-
settings_save_btn: '
|
|
9325
|
-
settings_label_model: '
|
|
9326
|
-
settings_desc_model: '
|
|
9327
|
-
settings_label_auxiliary_models: '
|
|
9328
|
-
settings_desc_auxiliary_models: '
|
|
9329
|
-
settings_btn_reset_aux_models: '
|
|
9330
|
-
settings_btn_apply_aux_models: '
|
|
9331
|
-
settings_aux_provider_auto: '
|
|
9332
|
-
settings_aux_model_auto: '
|
|
9333
|
-
settings_aux_model_custom: '
|
|
9334
|
-
settings_aux_model_custom_prompt: '
|
|
9335
|
-
settings_aux_loading: '
|
|
9336
|
-
settings_aux_load_failed: '
|
|
9337
|
-
settings_aux_reset_confirm_title: '
|
|
9338
|
-
settings_aux_reset_confirm_msg: '
|
|
9339
|
-
settings_aux_reset_done: '
|
|
9340
|
-
settings_aux_save_failed: '
|
|
9341
|
-
settings_aux_saved: '
|
|
9342
|
-
settings_aux_no_changes: '
|
|
9343
|
-
settings_label_send_key: '
|
|
9344
|
-
settings_label_theme: '
|
|
9587
|
+
settings_title: '設定',
|
|
9588
|
+
settings_save_btn: '儲存設定',
|
|
9589
|
+
settings_label_model: '預設模型',
|
|
9590
|
+
settings_desc_model: '用於新對話。現有對話會保留各自選定的模型。',
|
|
9591
|
+
settings_label_auxiliary_models: '輔助模型',
|
|
9592
|
+
settings_desc_auxiliary_models: '視覺分析、脈絡壓縮、標題產生等輔助任務的路由。「自動」表示使用主要聊天模型。',
|
|
9593
|
+
settings_btn_reset_aux_models: '全部重置為自動',
|
|
9594
|
+
settings_btn_apply_aux_models: '應用變更',
|
|
9595
|
+
settings_aux_provider_auto: '使用主模型',
|
|
9596
|
+
settings_aux_model_auto: '自動(使用供應商預設值)',
|
|
9597
|
+
settings_aux_model_custom: '自訂模型…',
|
|
9598
|
+
settings_aux_model_custom_prompt: '輸入模型 ID:',
|
|
9599
|
+
settings_aux_loading: '正在載入輔助模型…',
|
|
9600
|
+
settings_aux_load_failed: '無法載入輔助模型設定,請確保 Agent API 可用。',
|
|
9601
|
+
settings_aux_reset_confirm_title: '重置輔助模型?',
|
|
9602
|
+
settings_aux_reset_confirm_msg: '這將把所有輔助任務設定為自動(使用主模型)。',
|
|
9603
|
+
settings_aux_reset_done: '輔助模型已重置為自動',
|
|
9604
|
+
settings_aux_save_failed: '輔助模型儲存失敗',
|
|
9605
|
+
settings_aux_saved: '輔助模型已更新',
|
|
9606
|
+
settings_aux_no_changes: '沒有需要應用的變更',
|
|
9607
|
+
settings_label_send_key: '送出按鍵',
|
|
9608
|
+
settings_label_theme: '主題',
|
|
9345
9609
|
settings_label_skin: '佈景',
|
|
9346
|
-
settings_label_font_size: '
|
|
9347
|
-
font_size_small: '
|
|
9348
|
-
font_size_default: '
|
|
9349
|
-
font_size_large: '
|
|
9350
|
-
font_size_xlarge: '
|
|
9351
|
-
settings_autosave_saving: '
|
|
9352
|
-
settings_autosave_saved: '
|
|
9353
|
-
settings_autosave_failed: '
|
|
9354
|
-
settings_autosave_retry: '
|
|
9355
|
-
settings_label_language: '
|
|
9610
|
+
settings_label_font_size: '字型大小',
|
|
9611
|
+
font_size_small: '小',
|
|
9612
|
+
font_size_default: '預設',
|
|
9613
|
+
font_size_large: '大',
|
|
9614
|
+
font_size_xlarge: '超大',
|
|
9615
|
+
settings_autosave_saving: '儲存中…',
|
|
9616
|
+
settings_autosave_saved: '已儲存',
|
|
9617
|
+
settings_autosave_failed: '儲存失敗',
|
|
9618
|
+
settings_autosave_retry: '重試',
|
|
9619
|
+
settings_label_language: '語言',
|
|
9356
9620
|
settings_label_quota_chip: '在編輯器中顯示供應商配額標籤',
|
|
9357
9621
|
settings_desc_quota_chip: '在編輯器底部顯示剩餘配額指示器(如 OpenRouter 點數餘額)。預設關閉。啟用時僅在寬螢幕(≥1400px)顯示,以保持筆記型電腦和標準桌面螢幕上編輯器的整潔。',
|
|
9358
|
-
settings_label_hide_suggestions: '
|
|
9359
|
-
settings_desc_hide_suggestions: '
|
|
9360
|
-
settings_label_token_usage: '
|
|
9622
|
+
settings_label_hide_suggestions: '隱藏新聊天建議',
|
|
9623
|
+
settings_desc_hide_suggestions: '隱藏空白新聊天畫面上的三個預設建議按鈕,避免誤觸。',
|
|
9624
|
+
settings_label_token_usage: '顯示 token 用量',
|
|
9361
9625
|
settings_label_sidebar_density: '側邊欄密度',
|
|
9362
|
-
cmd_reasoning: '
|
|
9363
|
-
settings_label_external_sessions: '
|
|
9626
|
+
cmd_reasoning: '切換思考內容可見性(顯示/隱藏)、設定推理強度,或檢查目前狀態',
|
|
9627
|
+
settings_label_external_sessions: '顯示外部對話',
|
|
9364
9628
|
settings_label_previous_messaging_sessions: '顯示以前的訊息對話',
|
|
9365
|
-
settings_label_sync_insights: '
|
|
9366
|
-
settings_label_check_updates: '
|
|
9367
|
-
settings_label_ignore_agent_updates: '
|
|
9368
|
-
settings_label_whats_new_summary:
|
|
9369
|
-
settings_label_bot_name: '
|
|
9370
|
-
settings_label_password: '
|
|
9371
|
-
settings_saved: '
|
|
9372
|
-
settings_save_failed: '
|
|
9373
|
-
settings_load_failed: '
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9383
|
-
login_conn_failed: '\u9023\u63a5\u5931\u6557',
|
|
9384
|
-
// missing keys from English
|
|
9629
|
+
settings_label_sync_insights: '同步至 insights',
|
|
9630
|
+
settings_label_check_updates: '檢查更新',
|
|
9631
|
+
settings_label_ignore_agent_updates: '忽略 Agent 更新',
|
|
9632
|
+
settings_label_whats_new_summary: '使用 AI 摘要新版內容',
|
|
9633
|
+
settings_label_bot_name: '助理名稱',
|
|
9634
|
+
settings_label_password: '存取密碼',
|
|
9635
|
+
settings_saved: '設定已儲存',
|
|
9636
|
+
settings_save_failed: '儲存失敗:',
|
|
9637
|
+
settings_load_failed: '載入設定失敗:',
|
|
9638
|
+
settings_saved_pw: '設定已儲存,密碼保護已啟用,此瀏覽器會維持登入狀態',
|
|
9639
|
+
settings_saved_pw_updated: '設定已儲存,密碼已更新',
|
|
9640
|
+
// login page (used server-side via /api/i18n/login endpoint)
|
|
9641
|
+
login_title: '登入',
|
|
9642
|
+
login_subtitle: '輸入密碼繼續使用',
|
|
9643
|
+
login_placeholder: '密碼',
|
|
9644
|
+
login_btn: '登入',
|
|
9645
|
+
login_invalid_pw: '密碼錯誤',
|
|
9646
|
+
login_conn_failed: '連線失敗',
|
|
9385
9647
|
dialog_confirm_title: '確認操作',
|
|
9386
|
-
dialog_prompt_title: '
|
|
9648
|
+
dialog_prompt_title: '輸入值',
|
|
9387
9649
|
dialog_confirm_btn: '確認',
|
|
9388
|
-
discard: '
|
|
9389
|
-
clear: '
|
|
9650
|
+
discard: '捨棄',
|
|
9651
|
+
clear: '清除',
|
|
9390
9652
|
create: '建立',
|
|
9391
9653
|
remove: '移除',
|
|
9392
9654
|
project_name_prompt: '專案名稱:',
|
|
9393
|
-
|
|
9394
|
-
|
|
9395
|
-
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
tab_logs: 'Logs',
|
|
9402
|
-
tab_workspaces: '\u5de5\u4f5c\u5340',
|
|
9403
|
-
tab_kanban: 'Kanban',
|
|
9655
|
+
// Sidebar & Tabs
|
|
9656
|
+
tab_chat: '聊天',
|
|
9657
|
+
tab_tasks: '任務',
|
|
9658
|
+
tab_skills: '技能',
|
|
9659
|
+
tab_memory: '記憶',
|
|
9660
|
+
tab_workspaces: '工作區',
|
|
9661
|
+
tab_profiles: '設定檔',
|
|
9662
|
+
tab_kanban: '看板',
|
|
9404
9663
|
kanban_board: '看板',
|
|
9405
9664
|
kanban_visible_tasks: '{0} 個可見任務',
|
|
9406
9665
|
kanban_search_tasks: '搜尋任務',
|
|
@@ -9435,561 +9694,249 @@ const LOCALES = {
|
|
|
9435
9694
|
kanban_description: '描述',
|
|
9436
9695
|
kanban_description_placeholder: '選填 — 需要完成的事項、驗收標準、連結',
|
|
9437
9696
|
kanban_status: '狀態',
|
|
9438
|
-
kanban_status_original_hint: '實際狀態:{0}。此對話框僅支援編輯 Triage/Todo/Ready。',
|
|
9439
9697
|
kanban_assignee: '指派對象',
|
|
9440
9698
|
kanban_assignee_placeholder: '選填 — 個人資料或名稱',
|
|
9441
9699
|
kanban_tenant: '租戶',
|
|
9442
|
-
kanban_tenant_placeholder: '
|
|
9700
|
+
kanban_tenant_placeholder: '選填,專案或團隊 slug',
|
|
9443
9701
|
kanban_priority: '優先順序',
|
|
9444
9702
|
kanban_priority_hint: '數字越大越先執行。預設為 0。',
|
|
9445
9703
|
kanban_title_required: '標題為必填。',
|
|
9446
9704
|
kanban_new_task: '新任務',
|
|
9705
|
+
kanban_edit_task: '編輯任務',
|
|
9706
|
+
kanban_status_original_hint: '實際狀態:{0}。此對話框僅支援編輯 Triage/Todo/Ready。',
|
|
9707
|
+
kanban_run_dispatcher: '執行調度器',
|
|
9708
|
+
kanban_run_dispatcher_confirm: '將認領此看板的 Ready 任務並產生工作子程序(每次點選最多 8 個)。是否繼續?',
|
|
9709
|
+
kanban_assignee_profiles_label: 'Hermes 設定檔',
|
|
9710
|
+
kanban_assignee_other_label: '其他(CLI 通道 / 已刪除的設定檔)',
|
|
9711
|
+
kanban_assignee_unassigned: '— 未指派(不會自動執行)—',
|
|
9712
|
+
kanban_ready_needs_assignee: '已選擇「未指派」+「Ready」。調度器將跳過此任務。再次送出以確認,或選擇一個設定檔。',
|
|
9713
|
+
kanban_dispatch_preview_prefix: '預覽:',
|
|
9714
|
+
kanban_dispatch_run_prefix: '已調度:',
|
|
9715
|
+
kanban_dispatch_spawned: '已啟動',
|
|
9716
|
+
kanban_dispatch_promoted: '已提升',
|
|
9717
|
+
kanban_dispatch_reclaimed: '已收回',
|
|
9718
|
+
kanban_dispatch_skipped_unassigned: '跳過(未指派)',
|
|
9719
|
+
kanban_dispatch_skipped_nonspawnable: '跳過(未知設定檔)',
|
|
9720
|
+
kanban_dispatch_auto_blocked: '自動封鎖',
|
|
9721
|
+
kanban_dispatch_timed_out: '逾時',
|
|
9722
|
+
kanban_dispatch_crashed: '當機',
|
|
9447
9723
|
kanban_add_comment: '新增留言',
|
|
9448
|
-
kanban_only_mine: '
|
|
9449
|
-
kanban_bulk_action: '
|
|
9724
|
+
kanban_only_mine: '只看我的',
|
|
9725
|
+
kanban_bulk_action: '批次動作',
|
|
9450
9726
|
kanban_nudge_dispatcher: '預覽調度器',
|
|
9451
9727
|
kanban_stats: '統計',
|
|
9452
|
-
kanban_worker_log: '
|
|
9728
|
+
kanban_worker_log: 'Worker 記錄',
|
|
9453
9729
|
kanban_block: '封鎖',
|
|
9454
9730
|
kanban_unblock: '解除封鎖',
|
|
9455
|
-
kanban_back_to_board: '
|
|
9456
|
-
kanban_lanes_by_profile: '
|
|
9457
|
-
kanban_new_board: '
|
|
9731
|
+
kanban_back_to_board: '回到看板',
|
|
9732
|
+
kanban_lanes_by_profile: '依設定檔分欄',
|
|
9733
|
+
kanban_new_board: '新增看板…',
|
|
9458
9734
|
kanban_rename_board: '重新命名目前看板…',
|
|
9459
9735
|
kanban_archive_board: '封存目前看板…',
|
|
9460
|
-
kanban_archive_board_confirm: '封存看板「{name}
|
|
9736
|
+
kanban_archive_board_confirm: '封存看板「{name}」?任務仍會保留在磁碟上,且可從 kanban/boards/_archived/ 還原看板。',
|
|
9461
9737
|
kanban_board_archived: '看板已封存',
|
|
9462
9738
|
kanban_board_name: '名稱',
|
|
9463
|
-
kanban_board_slug: '
|
|
9739
|
+
kanban_board_slug: 'Slug(小寫、連字號)',
|
|
9464
9740
|
kanban_board_description: '描述(選填)',
|
|
9465
|
-
kanban_board_icon: '
|
|
9741
|
+
kanban_board_icon: '圖示(emoji,選填)',
|
|
9466
9742
|
kanban_board_color: '顏色(選填)',
|
|
9467
9743
|
kanban_board_name_required: '名稱為必填',
|
|
9468
|
-
kanban_board_slug_required: '
|
|
9744
|
+
kanban_board_slug_required: 'Slug 為必填',
|
|
9469
9745
|
kanban_card_complete: '完成',
|
|
9470
9746
|
kanban_card_archive: '封存',
|
|
9471
9747
|
kanban_unassigned: '未指派',
|
|
9472
9748
|
kanban_status_archived: '已封存',
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9477
|
-
|
|
9478
|
-
|
|
9479
|
-
|
|
9480
|
-
|
|
9481
|
-
|
|
9482
|
-
|
|
9483
|
-
|
|
9484
|
-
|
|
9485
|
-
|
|
9486
|
-
|
|
9487
|
-
|
|
9488
|
-
|
|
9489
|
-
|
|
9749
|
+
tab_todos: '待辦',
|
|
9750
|
+
tab_insights: '統計',
|
|
9751
|
+
tab_dashboard: 'Hermes 儀表板',
|
|
9752
|
+
dashboard_loopback_warning: '儀表板在伺服器上僅限 loopback 存取。請從伺服器本機瀏覽,或使用 --host 0.0.0.0 重新啟動(不安全)。',
|
|
9753
|
+
tab_logs: '記錄',
|
|
9754
|
+
tab_settings: '設定',
|
|
9755
|
+
new_conversation: '新增對話',
|
|
9756
|
+
filter_conversations: '篩選對話……',
|
|
9757
|
+
session_time_unknown: '未知',
|
|
9758
|
+
session_time_minutes_ago: (m) => `${m}分`,
|
|
9759
|
+
session_time_hours_ago: (h) => `${h}小時`,
|
|
9760
|
+
session_time_days_ago: (d) => `${d}天`,
|
|
9761
|
+
session_time_last_week: '1週',
|
|
9762
|
+
session_time_bucket_today: '今天',
|
|
9763
|
+
session_time_bucket_yesterday: '昨天',
|
|
9764
|
+
session_time_bucket_this_week: '本週',
|
|
9765
|
+
session_time_bucket_last_week: '上週',
|
|
9766
|
+
session_time_bucket_older: '更早',
|
|
9767
|
+
scheduled_jobs: '排程工作',
|
|
9768
|
+
new_job: '新任務',
|
|
9769
|
+
loading: '載入中……',
|
|
9770
|
+
search_skills: '搜尋技能……',
|
|
9771
|
+
new_skill: '新技能',
|
|
9772
|
+
personal_memory: '個人記憶',
|
|
9773
|
+
current_task_list: '目前任務清單',
|
|
9774
|
+
// Logs
|
|
9775
|
+
logs_title: '記錄',
|
|
9776
|
+
logs_file: '記錄檔',
|
|
9777
|
+
logs_tail: '追蹤記錄',
|
|
9778
|
+
logs_auto_refresh: '自動重新整理',
|
|
9779
|
+
logs_wrap: '自動換行',
|
|
9780
|
+
logs_copy_all: '複製全部',
|
|
9781
|
+
logs_empty: '沒有記錄可顯示。',
|
|
9782
|
+
logs_loading: '正在載入記錄…',
|
|
9783
|
+
logs_load_failed: '載入記錄失敗:',
|
|
9784
|
+
logs_status_idle: '請選擇記錄檔以檢視最近幾行。',
|
|
9785
|
+
logs_no_mtime: '修改時間未知',
|
|
9786
|
+
logs_truncated_hint: '正在顯示大型記錄檔的尾端;較早的位元組已略過,以限制記憶體用量。',
|
|
9787
|
+
logs_copied: '已複製記錄',
|
|
9490
9788
|
logs_severity: '嚴重性',
|
|
9491
9789
|
logs_severity_all: '全部',
|
|
9492
9790
|
logs_severity_errors: '錯誤',
|
|
9493
9791
|
logs_severity_warnings: '警告+',
|
|
9494
9792
|
logs_filter_active: '已顯示(篩選器已啟用)',
|
|
9495
|
-
|
|
9496
|
-
|
|
9497
|
-
|
|
9498
|
-
|
|
9499
|
-
|
|
9500
|
-
|
|
9501
|
-
|
|
9502
|
-
|
|
9503
|
-
|
|
9793
|
+
|
|
9794
|
+
// Insights
|
|
9795
|
+
insights_title: '用量分析',
|
|
9796
|
+
insights_sessions: '對話',
|
|
9797
|
+
insights_messages: '訊息',
|
|
9798
|
+
insights_tokens: 'Token',
|
|
9799
|
+
insights_cost: '估計成本',
|
|
9800
|
+
insights_no_cost: 'N/A',
|
|
9801
|
+
insights_models: '模型',
|
|
9802
|
+
insights_activity_by_day: '每日活動',
|
|
9803
|
+
insights_activity_by_hour: '每小時活動',
|
|
9804
|
+
insights_peak_hour: '高峰:{hour}',
|
|
9805
|
+
insights_token_breakdown: 'Token 明細',
|
|
9806
|
+
insights_input_tokens: '輸入',
|
|
9807
|
+
insights_output_tokens: '輸出',
|
|
9808
|
+
insights_total: '總計',
|
|
9809
|
+
insights_daily_tokens: '每日 Token',
|
|
9810
|
+
insights_model_name: '模型',
|
|
9811
|
+
insights_model_sessions: '對話',
|
|
9812
|
+
insights_model_tokens: 'Token',
|
|
9813
|
+
insights_model_cost: '成本',
|
|
9814
|
+
insights_model_share: '占比',
|
|
9815
|
+
insights_no_usage_data: '尚無用量資料',
|
|
9816
|
+
insights_footer: '顯示最近 {days} 天的資料',
|
|
9817
|
+
insights_skill_usage_title: '技能使用情況',
|
|
9818
|
+
insights_skill_usage_sub: '工具呼叫頻率',
|
|
9819
|
+
insights_skill_usage_total: '呼叫總數',
|
|
9820
|
+
insights_skill_usage_skills_used: '已使用技能',
|
|
9821
|
+
insights_skill_usage_no_data: '尚無技能使用資料',
|
|
9822
|
+
insights_skill_usage_no_data_hint: '在對話中使用技能後,資料會顯示在這裡。',
|
|
9823
|
+
insights_skill_usage_footer: '資料來源:~/.hermes/skills/',
|
|
9824
|
+
insights_skill_usage_col_skill: '技能',
|
|
9825
|
+
insights_skill_usage_col_uses: '使用次數',
|
|
9826
|
+
insights_skill_usage_col_views: '檢視次數',
|
|
9827
|
+
insights_skill_usage_col_share: '使用占比',
|
|
9828
|
+
insights_skill_usage_col_patches: 'Patch',
|
|
9829
|
+
workspace_desc: '新增工作區,並為對話切換工作區。',
|
|
9504
9830
|
session_meta_messages: (n) => `${n} 則訊息`,
|
|
9505
9831
|
session_meta_children: (n) => `${n} 則子`,
|
|
9832
|
+
// Softened label: avoids exposing the technical internal term
|
|
9833
|
+
// 'segment' in the default visible badge. User-facing copy remains
|
|
9834
|
+
// translatable for locales that prefer a different wording. (#2155)
|
|
9506
9835
|
session_meta_segments: (n) => `${n} 段`,
|
|
9507
|
-
session_lineage_toggle_hint: '{0} —
|
|
9508
|
-
session_lineage_static_hint: '{0} —
|
|
9509
|
-
session_child_toggle_hint: '{0} —
|
|
9836
|
+
session_lineage_toggle_hint: '{0} — 較早的脈絡回合已摺疊在這裡。點選可顯示或隱藏。',
|
|
9837
|
+
session_lineage_static_hint: '{0} — 較早的脈絡回合已摺疊在這裡。',
|
|
9838
|
+
session_child_toggle_hint: '{0} — 從此對話衍生的子對話。點選可顯示或隱藏。',
|
|
9510
9839
|
session_readonly_title_hint: '唯讀匯入工作階段 — {0}',
|
|
9511
9840
|
session_lineage_segment_untitled: '未命名段',
|
|
9512
9841
|
session_lineage_segment_open: '開啟脈絡段',
|
|
9513
|
-
new_profile: '
|
|
9514
|
-
transcript: '
|
|
9515
|
-
download_transcript: '
|
|
9516
|
-
import: '
|
|
9842
|
+
new_profile: '新增設定檔',
|
|
9843
|
+
transcript: '對話記錄',
|
|
9844
|
+
download_transcript: '下載為 Markdown',
|
|
9845
|
+
import: '匯入',
|
|
9517
9846
|
export_session_json: 'JSON',
|
|
9518
|
-
export_session_json_tooltip: '
|
|
9519
|
-
import_session_json_tooltip: '
|
|
9520
|
-
clear_conversation_btn_tooltip: '
|
|
9521
|
-
|
|
9522
|
-
empty_title: '有什麼可以幫忙?',
|
|
9523
|
-
empty_subtitle: '點擊上方按鈕開始對話',
|
|
9524
|
-
cancel: '\u53d6\u6d88',
|
|
9525
|
-
loading: '\u52a0\u8f09\u4e2d',
|
|
9526
|
-
create_job: '\u5efa\u7acb\u4efb\u52d9',
|
|
9527
|
-
suggest_plan: '幫我規劃一個小專案',
|
|
9528
|
-
suggest_schedule: '今天的時程如何?',
|
|
9529
|
-
suggest_files: '這個工作區有哪些檔案?',
|
|
9530
|
-
sign_out: '\u767b\u51fa',
|
|
9531
|
-
settings_label_shutdown: '\u505c\u6b62 Hermes WebUI \u4f3a\u670d\u5668',
|
|
9532
|
-
settings_desc_shutdown: '\u6b63\u5e38\u505c\u6b62\u672c\u5730\u7684 WebUI \u4f3a\u670d\u5668\u3002\u5982\u679c\u4f60\u900f\u904e <code>./ctl.sh start</code> \u555f\u52d5\uff0c\u4e26\u5e0c\u671b\u4e0d\u5207\u63db\u5230\u7d42\u7aef\u5c31\u505c\u6b62\uff0c\u9019\u5f88\u6709\u7528\u3002\u8981\u518d\u6b21\u9032\u5165 WebUI\uff0c\u9700\u8981\u91cd\u65b0\u555f\u52d5\u4f3a\u670d\u5668\uff08<code>./ctl.sh start</code> \u6216\u539f\u751f\u61c9\u7528\u7a0b\u5f0f\uff09\u3002',
|
|
9533
|
-
settings_btn_shutdown: '\u505c\u6b62\u4f3a\u670d\u5668',
|
|
9534
|
-
settings_shutdown_confirm_title: '\u505c\u6b62 Hermes WebUI',
|
|
9535
|
-
settings_shutdown_confirm_message: '\u505c\u6b62 Hermes WebUI \u4f3a\u670d\u5668\uff1f',
|
|
9536
|
-
settings_shutdown_confirm_btn: '\u505c\u6b62',
|
|
9537
|
-
settings_shutdown_stopped_message: '\u4f3a\u670d\u5668\u5df2\u505c\u6b62\u3002\u4f60\u53ef\u4ee5\u95dc\u9589\u9019\u500b\u5206\u9801\u3002',
|
|
9538
|
-
password_placeholder: '\u5bc6\u78bc',
|
|
9539
|
-
password_env_var_locked: '\u76ee\u524d\u5df2\u8a2d\u5b9a HERMES_WEBUI_PASSWORD \u74b0\u5883\u8b8a\u6578\u4e14\u512a\u5148\u751f\u6548\u3002\u8acb\u53d6\u6d88\u8a2d\u5b9a\u4e26\u91cd\u65b0\u555f\u52d5\u4f3a\u670d\u5668\uff0c\u624d\u80fd\u5728\u6b64\u7ba1\u7406\u5bc6\u78bc\u3002',
|
|
9540
|
-
password_env_var_locked_placeholder: '\u5df2\u9396\u5b9a\uff1a\u5df2\u8a2d\u5b9a HERMES_WEBUI_PASSWORD \u74b0\u5883\u8b8a\u6578',
|
|
9541
|
-
disable_auth: '\u505c\u7528\u9a57\u8b49',
|
|
9847
|
+
export_session_json_tooltip: '將對話完整匯出為 JSON',
|
|
9848
|
+
import_session_json_tooltip: '從 JSON 匯入對話',
|
|
9849
|
+
clear_conversation_btn_tooltip: '清空此對話中的所有訊息',
|
|
9850
|
+
// Settings detail
|
|
9542
9851
|
settings_label_rtl: '從右到左聊天版面',
|
|
9543
9852
|
settings_desc_rtl: '為阿拉伯語或希伯來語等語言翻轉聊天訊息和編輯器輸入的對齊方式。僅影響聊天區域 — 側邊欄和其他面板保持從左到右。',
|
|
9544
|
-
settings_label_sound: '
|
|
9545
|
-
|
|
9546
|
-
|
|
9547
|
-
|
|
9548
|
-
|
|
9853
|
+
settings_label_sound: '通知聲音',
|
|
9854
|
+
settings_desc_sound: '助理完成回覆時播放音效。',
|
|
9855
|
+
// TTS (#499)
|
|
9856
|
+
tts_listen: '收聽',
|
|
9857
|
+
tts_not_supported: '語音合成無法使用',
|
|
9858
|
+
settings_label_tts: '回覆語音合成',
|
|
9859
|
+
settings_desc_tts: '在每則助理訊息上顯示喇叭按鈕,使用瀏覽器語音合成功能朗讀內容。',
|
|
9860
|
+
settings_label_tts_auto_read: '自動朗讀回覆',
|
|
9861
|
+
settings_desc_tts_auto_read: '每則新的助理回覆完成時自動朗讀。開始輸入時會暫停。',
|
|
9862
|
+
// Composer voice-mode pref (#1488)
|
|
9863
|
+
settings_label_voice_mode: '免持語音模式按鈕',
|
|
9864
|
+
settings_desc_voice_mode: '在聽寫麥克風旁顯示語音模式按鈕(音訊波形)。可自然說話,Hermes 會在停頓後自動送出並朗讀回覆。需要同時支援語音辨識與 TTS 的瀏覽器。',
|
|
9865
|
+
settings_label_raw_audio: '傳送原始音訊,而不是先轉寫',
|
|
9866
|
+
settings_desc_raw_audio: '錄製並將原始音訊檔傳送給 Agent,而不是先轉成文字。Agent 接著可以轉寫音訊,或處理原始音訊(情緒、背景噪音、自訂 STT)。行為類似 Telegram 語音訊息。',
|
|
9867
|
+
voice_send_raw: '傳送原始音訊',
|
|
9868
|
+
voice_raw_attached: '已附加音訊。請按 [送出] 或繼續輸入。',
|
|
9869
|
+
settings_label_tts_voice: '語音',
|
|
9870
|
+
settings_desc_tts_voice: '偏好的語音。系統會從瀏覽器可用的語音中填入。',
|
|
9871
|
+
settings_label_tts_rate: '語速',
|
|
9872
|
+
settings_label_tts_pitch: '音調',
|
|
9873
|
+
settings_label_tts_engine: 'TTS 引擎',
|
|
9874
|
+
settings_desc_tts_engine: '選擇語音引擎。Edge TTS 會透過伺服器使用 Microsoft 神經語音。',
|
|
9875
|
+
settings_label_notifications: '瀏覽器通知',
|
|
9876
|
+
settings_desc_notifications: '分頁在背景中時,回覆完成後顯示系統通知。',
|
|
9877
|
+
settings_desc_token_usage: '在每則助理回覆下方顯示輸入/輸出 token 數量。也可以使用 /usage 切換。',
|
|
9878
|
+
settings_label_api_redact: '在 API 回應中遮蔽敏感資料',
|
|
9879
|
+
settings_desc_api_redact: '自行託管使用者可以為了透明度停用此功能(不建議在共用執行個體中停用)。',
|
|
9549
9880
|
settings_sidebar_density_compact: '精簡',
|
|
9550
9881
|
settings_sidebar_density_detailed: '詳細',
|
|
9551
9882
|
settings_desc_sidebar_density: '控制左側對話清單要顯示多少額外資訊。',
|
|
9552
|
-
settings_label_auto_title_refresh: '
|
|
9553
|
-
settings_auto_title_refresh_off: '
|
|
9554
|
-
settings_auto_title_refresh_5: '
|
|
9555
|
-
settings_auto_title_refresh_10: '
|
|
9556
|
-
settings_auto_title_refresh_20: '
|
|
9557
|
-
settings_desc_auto_title_refresh: '
|
|
9558
|
-
settings_desc_external_sessions: '
|
|
9883
|
+
settings_label_auto_title_refresh: '自動調整標題更新',
|
|
9884
|
+
settings_auto_title_refresh_off: '關閉',
|
|
9885
|
+
settings_auto_title_refresh_5: '每 5 輪對話',
|
|
9886
|
+
settings_auto_title_refresh_10: '每 10 輪對話',
|
|
9887
|
+
settings_auto_title_refresh_20: '每 20 輪對話',
|
|
9888
|
+
settings_desc_auto_title_refresh: '根據最新對話自動重新產生對話標題,讓標題隨對話發展保持相關。需要設定 LLM 標題產生模型。',
|
|
9889
|
+
settings_desc_external_sessions: '在對話清單中顯示來自 CLI、Telegram、Discord、Slack 等管道的對話。點選即可匯入並繼續對話。',
|
|
9559
9890
|
settings_desc_previous_messaging_sessions: '顯示被 reset 或 compression 替換的較舊的 Discord、Telegram、Slack 和 Weixin 對話。',
|
|
9560
|
-
settings_desc_sync_insights: '將 WebUI token
|
|
9561
|
-
settings_desc_check_updates: '
|
|
9562
|
-
settings_desc_ignore_agent_updates: '
|
|
9563
|
-
settings_desc_whats_new_summary:
|
|
9564
|
-
settings_desc_bot_name: '
|
|
9565
|
-
settings_desc_password: '
|
|
9566
|
-
|
|
9567
|
-
|
|
9568
|
-
|
|
9569
|
-
|
|
9570
|
-
|
|
9571
|
-
|
|
9572
|
-
|
|
9573
|
-
|
|
9574
|
-
|
|
9575
|
-
|
|
9576
|
-
|
|
9577
|
-
|
|
9578
|
-
|
|
9579
|
-
|
|
9580
|
-
|
|
9581
|
-
|
|
9582
|
-
|
|
9583
|
-
|
|
9584
|
-
|
|
9585
|
-
|
|
9586
|
-
|
|
9587
|
-
|
|
9588
|
-
|
|
9589
|
-
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
|
|
9593
|
-
|
|
9594
|
-
|
|
9595
|
-
|
|
9596
|
-
|
|
9597
|
-
|
|
9598
|
-
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
load_older_messages: '↑ 向上捲動或點擊以載入較早的訊息',
|
|
9602
|
-
session_jump_start: '開頭',
|
|
9603
|
-
session_jump_start_label: '跳至會話開頭',
|
|
9604
|
-
session_jump_end: '結尾',
|
|
9605
|
-
session_jump_end_label: '跳至會話結尾',
|
|
9606
|
-
jump_to_question: '回到問題',
|
|
9607
|
-
jump_to_question_label: '跳至這則回答對應的問題',
|
|
9608
|
-
onboarding_api_key_help_prefix: '\u900f\u904e\u4ee5\u4e0b\u65b9\u5f0f\u5132\u5b58\u70ba Hermes .env \u6a94\u6848\u4e2d\u7684\u6a5f\u5bc6',
|
|
9609
|
-
onboarding_api_key_label: 'API \u91d1\u9470',
|
|
9610
|
-
onboarding_api_key_placeholder: '\u7559\u7a7a\u4ee5\u4fdd\u7559\u5df2\u5132\u5b58\u7684\u91d1\u9470',
|
|
9611
|
-
onboarding_api_key_label_optional: 'API key (optional)', // TODO: translate
|
|
9612
|
-
onboarding_api_key_placeholder_optional: 'Leave blank for keyless servers', // TODO: translate
|
|
9613
|
-
onboarding_api_key_help_keyless: 'Most LM Studio / Ollama / vLLM installs run keyless — leave this blank if your server doesn\'t require authentication. Use the Test connection button to verify.', // TODO: translate
|
|
9614
|
-
onboarding_back: '\u4e0a\u4e00\u6b65',
|
|
9615
|
-
onboarding_badge: '\u9996\u6b21\u57f7\u884c',
|
|
9616
|
-
onboarding_base_url_help: '\u7528\u65bc OpenAI \u76f8\u5bb9\u8def\u7531\u5668\u3001\u81ea\u67b6\u4f3a\u670d\u5668\u3001LiteLLM\u3001Ollama\u3001LM Studio\u3001vLLM \u7b49\u7aef\u9ede\u3002',
|
|
9617
|
-
onboarding_base_url_label: '\u57fa\u790e URL',
|
|
9618
|
-
onboarding_base_url_placeholder: 'https://your-endpoint.example/v1',
|
|
9619
|
-
onboarding_check_agent: 'Hermes Agent',
|
|
9620
|
-
onboarding_check_agent_missing: '\u907a\u5931\u6216\u50c5\u90e8\u5206\u53ef\u7528',
|
|
9621
|
-
onboarding_check_agent_ready: '\u5df2\u5075\u6e2c\u5230\u4e26\u53ef\u4f9b\u532f\u5165',
|
|
9622
|
-
onboarding_check_password: '\u5bc6\u78bc',
|
|
9623
|
-
onboarding_check_password_disabled: '\u5c1a\u672a\u555f\u7528',
|
|
9624
|
-
onboarding_check_password_enabled: '\u5df2\u555f\u7528',
|
|
9625
|
-
onboarding_check_provider: '\u63d0\u4f9b\u8005\u914d\u7f6e',
|
|
9626
|
-
onboarding_check_provider_partial: '\u5df2\u5132\u5b58\u4f46\u672a\u5b8c\u6210',
|
|
9627
|
-
onboarding_check_provider_pending: '\u9700\u8981\u9a57\u8b49',
|
|
9628
|
-
onboarding_check_provider_ready: '\u53ef\u958b\u59cb\u804a\u5929',
|
|
9629
|
-
onboarding_complete: '\u521d\u59cb\u8a2d\u5b9a\u5b8c\u6210',
|
|
9630
|
-
onboarding_config_file: '\u8a2d\u5b9a\u6a94\uff1a',
|
|
9631
|
-
onboarding_continue: '\u7e7c\u7e8c',
|
|
9632
|
-
onboarding_current_provider: '\u76ee\u524d\u914d\u7f6e\uff1a',
|
|
9633
|
-
onboarding_custom_model_help: '\u5c0d\u65bc\u81ea\u8a02\u7aef\u9ede\uff0c\u8acb\u6307\u5b9a\u60a8\u7684\u4f3a\u670d\u5668\u9810\u671f\u7684\u6a21\u578b ID\u3002',
|
|
9634
|
-
onboarding_custom_model_placeholder: 'your_model_name',
|
|
9635
|
-
onboarding_env_file: '.env \u6a94\u6848\uff1a',
|
|
9636
|
-
onboarding_error_base_url_required: '\u81ea\u8a02\u7aef\u9ede\u9700\u8981\u57fa\u790e URL\u3002',
|
|
9637
|
-
onboarding_probe_test_button: 'Test connection', // TODO: translate
|
|
9638
|
-
onboarding_probe_probing: 'Testing connection…', // TODO: translate
|
|
9639
|
-
onboarding_probe_ok: 'Connected. {n} model(s) available.', // TODO: translate
|
|
9640
|
-
onboarding_probe_error_generic: 'Could not reach the configured base URL.', // TODO: translate
|
|
9641
|
-
onboarding_probe_error_invalid_url: 'Base URL must start with http:// or https://.', // TODO: translate
|
|
9642
|
-
onboarding_probe_error_dns: 'Could not resolve the host. Check the URL or use the host\'s IP address.', // TODO: translate
|
|
9643
|
-
onboarding_probe_error_connect_refused: 'Connection refused — the server may not be running on that address. From inside Docker, try the host IP instead of localhost.', // TODO: translate
|
|
9644
|
-
onboarding_probe_error_timeout: 'The endpoint did not respond in time. Check that the server is running and the URL is correct.', // TODO: translate
|
|
9645
|
-
onboarding_probe_error_http_4xx: 'The endpoint returned a client error. Check authentication and the URL path (typically ends in /v1).', // TODO: translate
|
|
9646
|
-
onboarding_probe_error_http_5xx: 'The endpoint returned a server error. Check the LM Studio / Ollama server logs.', // TODO: translate
|
|
9647
|
-
onboarding_probe_error_parse: 'The endpoint did not return a model list in the expected shape. Verify the URL points to the OpenAI-compatible API root.', // TODO: translate
|
|
9648
|
-
onboarding_probe_error_unreachable: 'Could not reach the configured base URL.', // TODO: translate
|
|
9649
|
-
onboarding_error_probe_failed: 'Could not validate the configured base URL.', // TODO: translate
|
|
9650
|
-
onboarding_error_choose_model: '\u8acb\u5148\u9078\u64c7\u6a21\u578b\u518d\u7e7c\u7e8c\u3002',
|
|
9651
|
-
onboarding_error_choose_workspace: '\u8acb\u5148\u9078\u64c7\u5de5\u4f5c\u5340\u518d\u7e7c\u7e8c\u3002',
|
|
9652
|
-
onboarding_error_model_required: '\u9700\u8981\u6a21\u578b\u3002',
|
|
9653
|
-
onboarding_error_provider_required: '\u8acb\u5148\u9078\u64c7\u8a2d\u5b9a\u6a21\u5f0f\u518d\u7e7c\u7e8c\u3002',
|
|
9654
|
-
onboarding_error_workspace_required: '\u9700\u8981\u5de5\u4f5c\u5340\u3002',
|
|
9655
|
-
onboarding_finish_help: '\u5b8c\u6210\u5f8c\uff0c<code>onboarding_completed</code> \u5c07\u5132\u5b58\u5728\u8a2d\u5b9a\u4e2d\uff0c\u60a8\u5c07\u9032\u5165\u6b63\u5e38\u61c9\u7528\u7a0b\u5f0f\u3002',
|
|
9656
|
-
onboarding_lead: '\u5feb\u901f\u9010\u6b65\u8a2d\u5b9a\uff1a\u6aa2\u67e5 Hermes\u3001\u5132\u5b58\u63d0\u4f9b\u8005\u914d\u7f6e\u3001\u9078\u64c7\u5de5\u4f5c\u5340\u8207\u6a21\u578b\uff0c\u4e26\u53ef\u9078\u64c7\u52a0\u5165\u5bc6\u78bc\u4fdd\u8b77\u3002',
|
|
9657
|
-
onboarding_missing_imports: '\u7f3a\u5c11\u7684\u532f\u5165\uff1a',
|
|
9658
|
-
onboarding_model_label: '\u9810\u8a2d\u6a21\u578b',
|
|
9659
|
-
onboarding_not_set: '\u672a\u8a2d\u5b9a',
|
|
9660
|
-
onboarding_notice_finish: '\u60a8\u4e4b\u5f8c\u53ef\u4ee5\u96a8\u6642\u56de\u5230\u8a2d\u5b9a\u9801\u9762\u8b8a\u66f4\u9019\u4e9b\u503c\u3002',
|
|
9661
|
-
onboarding_notice_password_enabled: '\u5bc6\u78bc\u5df2\u8a2d\u5b9a\u3002\u50c5\u5728\u9700\u8981\u53d6\u4ee3\u6642\u8f38\u5165\u65b0\u5bc6\u78bc\u3002',
|
|
9662
|
-
onboarding_notice_password_recommended: '\u9078\u586b\uff0c\u4f46\u5efa\u8b70\u5728\u975e localhost \u74b0\u5883\u4f7f\u7528\u3002',
|
|
9663
|
-
onboarding_notice_setup_already_ready: '\u5df2\u5075\u6e2c\u5230\u53ef\u7528\u7684 Hermes \u63d0\u4f9b\u8005\u914d\u7f6e\u3002\u60a8\u53ef\u4ee5\u4fdd\u7559\u6216\u5728\u6b64\u53d6\u4ee3\u3002',
|
|
9664
|
-
onboarding_notice_setup_required: '\u5728\u6b64\u9078\u64c7\u5feb\u901f\u63d0\u4f9b\u8005\u8a2d\u5b9a\u8def\u5f91\u3002\u9032\u968e OAuth \u8a2d\u5b9a\u4ecd\u8acb\u4f7f\u7528 Hermes CLI\u3002',
|
|
9665
|
-
onboarding_notice_system_ready: 'Hermes Agent \u53ef\u5f9e Web UI \u5b58\u53d6\u3002',
|
|
9666
|
-
onboarding_notice_system_unavailable: 'Hermes Agent \u5c1a\u672a\u5b8c\u5168\u53ef\u7528\u3002\u5f15\u5c0e\u7a0b\u5f0f\u53ef\u80fd\u5b89\u88dd\u5b83\uff0c\u4f46\u63d0\u4f9b\u8005\u8a2d\u5b9a\u53ef\u80fd\u4ecd\u9700\u7d42\u7aef\u6a5f\u3002',
|
|
9667
|
-
onboarding_notice_workspace: '\u9019\u4e9b\u503c\u4f7f\u7528\u8207\u4e00\u822c\u61c9\u7528\u7a0b\u5f0f\u76f8\u540c\u7684\u8a2d\u5b9a API\u3002',
|
|
9668
|
-
onboarding_oauth_provider_not_ready_body: '\u6b64\u5be6\u4f8b\u8a2d\u5b9a\u4f7f\u7528 <strong>{provider}</strong>\uff0c\u5b83\u4f7f\u7528 OAuth \u800c\u975e API \u91d1\u9470\u3002\u8acb\u5728\u7d42\u7aef\u6a5f\u4e2d\u57f7\u884c <code>hermes auth</code> \u6216 <code>hermes model</code> \u9032\u884c\u6388\u6b0a\uff0c\u7136\u5f8c\u91cd\u65b0\u6574\u7406 Web UI\u3002',
|
|
9669
|
-
onboarding_oauth_provider_not_ready_title: 'OAuth \u63d0\u4f9b\u8005\u5c1a\u672a\u6388\u6b0a',
|
|
9670
|
-
onboarding_oauth_provider_ready_body: '\u6b64\u5be6\u4f8b\u8a2d\u5b9a\u4f7f\u7528\u900f\u904e Hermes CLI \u914d\u7f6e\u7684 OAuth \u63d0\u4f9b\u8005\uff08<strong>{provider}</strong>\uff09\u3002\u7121\u9700 API \u91d1\u9470 \u2014 \u6309\u7e7c\u7e8c\u5b8c\u6210\u8a2d\u5b9a\u3002',
|
|
9671
|
-
onboarding_oauth_provider_ready_title: '\u63d0\u4f9b\u8005\u5df2\u6388\u6b0a',
|
|
9672
|
-
onboarding_oauth_switch_hint: '\u6216\u9078\u64c7\u4e0b\u65b9\u5176\u4ed6\u63d0\u4f9b\u8005\u4ee5\u5207\u63db\u5230 API \u91d1\u9470\u8a2d\u5b9a\uff1a',
|
|
9673
|
-
onboarding_open: '\u958b\u555f Hermes',
|
|
9674
|
-
onboarding_password_help: '\u5bc6\u78bc\u900f\u904e\u73fe\u6709\u8a2d\u5b9a API \u5132\u5b58\uff0c\u4e26\u5728\u4f3a\u670d\u5668\u7aef\u9032\u884c\u96dc\u6e4a\u8655\u7406\u3002',
|
|
9675
|
-
onboarding_password_label: '\u5bc6\u78bc\uff08\u9078\u586b\uff09',
|
|
9676
|
-
onboarding_password_placeholder: '\u7559\u7a7a\u4ee5\u8df3\u904e',
|
|
9677
|
-
onboarding_password_remains_disabled: '\u5c07\u4fdd\u6301\u505c\u7528',
|
|
9678
|
-
onboarding_password_skipped: '\u66ab\u6642\u8df3\u904e',
|
|
9679
|
-
onboarding_password_will_enable: '\u5c07\u555f\u7528',
|
|
9680
|
-
onboarding_password_will_replace: '\u5c07\u53d6\u4ee3',
|
|
9681
|
-
onboarding_provider_label: '\u8a2d\u5b9a\u6a21\u5f0f',
|
|
9682
|
-
onboarding_quick_setup_badge: '\u5feb\u901f\u8a2d\u5b9a',
|
|
9683
|
-
oauth_login_codex: 'Login with Codex (ChatGPT)', // TODO: translate
|
|
9684
|
-
oauth_codex_step1: 'Step 1: Visit this URL and enter the code', // TODO: translate
|
|
9685
|
-
oauth_codex_step2: 'Step 2: Enter this code on the page', // TODO: translate
|
|
9686
|
-
oauth_codex_polling: 'Waiting for authorization...', // TODO: translate
|
|
9687
|
-
oauth_codex_success: 'Codex OAuth login successful!', // TODO: translate
|
|
9688
|
-
oauth_codex_error: 'OAuth login failed', // TODO: translate
|
|
9689
|
-
oauth_codex_expired: 'Code expired, please try again', // TODO: translate
|
|
9690
|
-
provider_category_easy_start: '\u5feb\u901f\u958b\u59cb',
|
|
9691
|
-
provider_category_self_hosted: '\u672c\u5730 / \u958b\u6e90',
|
|
9692
|
-
provider_category_specialized: '\u5c08\u696d\u670d\u52d9',
|
|
9693
|
-
onboarding_skip: '\u8df3\u904e\u8a2d\u5b9a',
|
|
9694
|
-
onboarding_skipped: '\u5df2\u8df3\u904e\u8a2d\u5b9a \u2014 \u4f7f\u7528\u73fe\u6709\u914d\u7f6e\u3002',
|
|
9695
|
-
onboarding_step_finish_desc: '\u6aa2\u8996\u8a2d\u5b9a\u4e26\u9032\u5165\u61c9\u7528\u7a0b\u5f0f\u3002',
|
|
9696
|
-
onboarding_step_finish_title: '\u5b8c\u6210',
|
|
9697
|
-
onboarding_step_password_desc: '\u5206\u4eab\u524d\u4fdd\u8b77 Web UI\u3002',
|
|
9698
|
-
onboarding_step_password_title: '\u9078\u586b\u5bc6\u78bc',
|
|
9699
|
-
onboarding_step_setup_desc: '\u5132\u5b58\u6700\u5c0f\u53ef\u7528\u7684 Hermes \u63d0\u4f9b\u8005\u914d\u7f6e\u3002',
|
|
9700
|
-
onboarding_step_setup_title: '\u63d0\u4f9b\u8005\u8a2d\u5b9a',
|
|
9701
|
-
onboarding_step_system_desc: '\u9a57\u8b49 Hermes Agent \u8207\u914d\u7f6e\u53ef\u898b\u6027\u3002',
|
|
9702
|
-
onboarding_step_system_title: '\u7cfb\u7d71\u6aa2\u67e5',
|
|
9703
|
-
onboarding_step_workspace_desc: '\u70ba\u65b0\u6703\u8a71\u9078\u64c7\u9810\u8a2d\u503c\u3002',
|
|
9704
|
-
onboarding_step_workspace_title: '\u5de5\u4f5c\u5340\u8207\u6a21\u578b',
|
|
9705
|
-
onboarding_title: '\u6b61\u8fce\u4f7f\u7528 Hermes Web UI',
|
|
9706
|
-
onboarding_unknown: '\u672a\u77e5',
|
|
9707
|
-
onboarding_workspace_help: '\u9078\u64c7 Hermes \u5728\u8a2d\u5b9a\u5b8c\u6210\u5f8c\u7528\u65bc\u65b0\u804a\u5929\u5ba4\u7684\u6a21\u578b\u3002',
|
|
9708
|
-
onboarding_workspace_label: '\u5de5\u4f5c\u5340',
|
|
9709
|
-
onboarding_workspace_or_path: '\u6216\u8f38\u5165\u5de5\u4f5c\u5340\u8def\u5f91',
|
|
9710
|
-
onboarding_workspace_placeholder: '/home/you/workspace',
|
|
9711
|
-
project_name_prompt: '\u5c08\u6848\u540d\u7a31\uff1a',
|
|
9712
|
-
provider_mismatch_warning: (provider) => `提供者不符:會話使用 ${provider}`,
|
|
9713
|
-
session_meta_messages: (n) => `${n} 則訊息`,
|
|
9714
|
-
session_meta_children: (n) => `${n} 則子`,
|
|
9715
|
-
session_meta_segments: (n) => `${n} 段`,
|
|
9716
|
-
session_lineage_segment_untitled: '未命名段',
|
|
9717
|
-
session_lineage_segment_open: '開啟脈絡段',
|
|
9718
|
-
skill_created: '\u6280\u80fd\u5df2\u5efa\u7acb',
|
|
9719
|
-
skill_file_load_failed: '\u8f09\u5165\u6a94\u6848\u5931\u6557\uff1a',
|
|
9720
|
-
skill_load_failed: '\u8f09\u5165\u6280\u80fd\u5931\u6557\uff1a',
|
|
9721
|
-
skill_name_required: '\u9700\u8981\u6280\u80fd\u540d\u7a31',
|
|
9722
|
-
skill_updated: '\u6280\u80fd\u5df2\u66f4\u65b0',
|
|
9723
|
-
skills_no_match: '\u627e\u4e0d\u5230\u7b26\u5408\u7684\u6280\u80fd\u3002',
|
|
9724
|
-
slash_skill_badge: '\u6280\u80fd',
|
|
9725
|
-
slash_skill_desc: '\u547c\u53eb\u6b64\u6280\u80fd',
|
|
9726
|
-
title_change_hint: '\u4f7f\u7528 /title <\u65b0\u540d\u7a31> \u91cd\u65b0\u547d\u540d\u3002',
|
|
9727
|
-
title_current: '\u76ee\u524d\u6a19\u984c',
|
|
9728
|
-
title_set: '\u6a19\u984c\u5df2\u8a2d\u70ba',
|
|
9729
|
-
todos_no_active: '\u6b64\u6703\u8a71\u4e2d\u7121\u6d3b\u8e8d\u4efb\u52d9\u6e05\u55ae\u3002',
|
|
9730
|
-
upload_failed: '\u4e0a\u50b3\u5931\u6557\uff1a',
|
|
9731
|
-
upload_too_large: (maxMb, fileMb) => `\u6a94\u6848\u904e\u5927\uff08${fileMb} MB\uff09\u3002\u6700\u5927\u4e0a\u50b3\u5927\u5c0f\u70ba ${maxMb} MB\u3002`,
|
|
9732
|
-
active_conversation_none: '\u672a\u9078\u53d6\u6d3b\u8e8d\u6703\u8a71\u3002',
|
|
9733
|
-
add: '\u65b0\u589e',
|
|
9734
|
-
add_failed: '\u65b0\u589e\u5931\u6557\uff1a',
|
|
9735
|
-
auth_disabled: '\u9a57\u8b49\u5df2\u505c\u7528 \u2014 \u5bc6\u78bc\u4fdd\u8b77\u5df2\u95dc\u9589',
|
|
9736
|
-
cancel_unavailable: '\u7121\u6cd5\u53d6\u6d88\u3002',
|
|
9737
|
-
clear_conversation_message: '\u6e05\u9664\u6240\u6709\u8a0a\u606f\uff1f\u6b64\u64cd\u4f5c\u7121\u6cd5\u5fa9\u539f\u3002',
|
|
9738
|
-
clear_conversation_title: '\u6e05\u9664\u5c0d\u8a71',
|
|
9739
|
-
clear_failed: '\u6e05\u9664\u5931\u6557\uff1a',
|
|
9740
|
-
content_required: '\u9700\u8981\u5167\u5bb9',
|
|
9741
|
-
create_failed: '\u5efa\u7acb\u5931\u6557\uff1a',
|
|
9742
|
-
delete_failed: '\u522a\u9664\u5931\u6557\uff1a',
|
|
9743
|
-
disable: '\u505c\u7528',
|
|
9744
|
-
disable_auth: '\u505c\u7528\u9a57\u8b49',
|
|
9745
|
-
disable_auth_confirm_message: '\u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5\u5b58\u53d6\u6b64\u5be6\u4f8b\u3002',
|
|
9746
|
-
disable_auth_confirm_title: '\u505c\u7528\u5bc6\u78bc\u4fdd\u8b77',
|
|
9747
|
-
disable_auth_failed: '\u505c\u7528\u9a57\u8b49\u5931\u6557\uff1a',
|
|
9748
|
-
discard_file_edits_message: '\u5207\u63db\u5de5\u4f5c\u5340\u5c07\u653e\u68c4\u672a\u5132\u5b58\u7684\u9810\u89bd\u8b8a\u66f4\u3002',
|
|
9749
|
-
discard_file_edits_title: '\u653e\u68c4\u6a94\u6848\u7de8\u8f2f\uff1f',
|
|
9750
|
-
dismiss: '\u95dc\u9589',
|
|
9751
|
-
edit: '\u7de8\u8f2f',
|
|
9752
|
-
error_prefix: '\u932f\u8aa4\uff1a',
|
|
9753
|
-
default: 'default',
|
|
9754
|
-
search: 'Search',
|
|
9755
|
-
linked_files: '\u95dc\u806f\u6a94\u6848',
|
|
9756
|
-
manage_profiles: '\u7ba1\u7406\u8a2d\u5b9a\u6a94',
|
|
9757
|
-
memory_notes_label: '\u8a18\u61b6\uff08\u5099\u8a3b\uff09',
|
|
9758
|
-
model_custom_label: '\u81ea\u8a02\u6a21\u578b ID',
|
|
9759
|
-
model_custom_placeholder: '\u4f8b\u5982 openai/gpt-5.4',
|
|
9760
|
-
model_search_no_results: '\u627e\u4e0d\u5230\u6a21\u578b',
|
|
9761
|
-
model_group_configured: '已設定',
|
|
9762
|
-
ws_search_placeholder: '搜尋工作區…',
|
|
9763
|
-
ws_no_results: '找不到工作區',
|
|
9764
|
-
model_search_placeholder: '\u641c\u5c0b\u6a21\u578b\u2026',
|
|
9765
|
-
session_toolsets: 'Session Toolsets', // TODO: translate
|
|
9766
|
-
session_toolsets_desc: 'Restrict available tools for this session (blank = use global config)', // TODO: translate
|
|
9767
|
-
session_toolsets_global: 'Global (default)', // TODO: translate
|
|
9768
|
-
session_toolsets_custom: 'Custom', // TODO: translate
|
|
9769
|
-
session_toolsets_placeholder: 'tool1, tool2, \u2026', // TODO: translate
|
|
9770
|
-
session_toolsets_apply: 'Apply', // TODO: translate
|
|
9771
|
-
session_toolsets_clear: 'Clear (use global)', // TODO: translate
|
|
9772
|
-
session_toolsets_applied: 'Toolsets updated', // TODO: translate
|
|
9773
|
-
session_toolsets_cleared: 'Toolsets cleared — using global config', // TODO: translate
|
|
9774
|
-
session_toolsets_failed: 'Failed to update toolsets: ', // TODO: translate
|
|
9775
|
-
model_scope_advisory: '\u5f9e\u4e0b\u4e00\u5247\u8a0a\u606f\u8d77\u9069\u7528\u65bc\u6b64\u6703\u8a71\u3002',
|
|
9776
|
-
model_scope_toast: '\u5f9e\u4e0b\u4e00\u5247\u8a0a\u606f\u8d77\u9069\u7528\u65bc\u6b64\u6703\u8a71\u3002',
|
|
9777
|
-
my_notes: '\u6211\u7684\u5099\u8a3b',
|
|
9778
|
-
name_required: '\u9700\u8981\u540d\u7a31',
|
|
9779
|
-
never: '\u5f9e\u4e0d',
|
|
9780
|
-
no_active_session: '\u7121\u6d3b\u8e8d\u6703\u8a71',
|
|
9781
|
-
cmd_queue: '\u5c07\u8a0a\u606f\u52a0\u5165\u4e0b\u4e00\u8f2a\u7684\u4f47\u5217',
|
|
9782
|
-
cmd_goal: '設定或查看持久目標',
|
|
9783
|
-
goal_evaluating_progress: 'Evaluating goal progress…',
|
|
9784
|
-
goal_working_toward: 'Working toward goal…',
|
|
9785
|
-
goal_continuing_toast: 'Continuing toward goal…',
|
|
9786
|
-
goal_status_none: 'No active goal. Set one with /goal <text>.',
|
|
9787
|
-
goal_status_active: (turns, max_turns, goal) => `⊙ Goal (active, ${turns}/${max_turns} turns): ${goal}`,
|
|
9788
|
-
goal_status_paused: (turns, max_turns, reason, goal) => `⏸ Goal (paused, ${turns}/${max_turns}${reason ? `, ${reason}` : ''}): ${goal}`,
|
|
9789
|
-
goal_status_done: (turns, max_turns, goal) => `✓ Goal done (${turns}/${max_turns}): ${goal}`,
|
|
9790
|
-
goal_set: (turns, goal) => `⊙ Goal set (${turns}-turn budget): ${goal}`,
|
|
9791
|
-
goal_paused: (goal) => `⏸ Goal paused: ${goal}`,
|
|
9792
|
-
goal_resumed: (goal) => `▶ Goal resumed: ${goal}`,
|
|
9793
|
-
goal_cleared: 'Goal cleared.',
|
|
9794
|
-
goal_no_goal: 'No active goal.',
|
|
9795
|
-
goal_achieved: (reason) => `✓ Goal achieved: ${reason}`,
|
|
9796
|
-
goal_paused_budget_exhausted: (turns, max_turns) => `⏸ Goal paused — ${turns}/${max_turns} turns used. Use /goal resume to keep going, or /goal clear to stop.`,
|
|
9797
|
-
goal_continuing: (turns, max_turns, reason) => `↻ Continuing toward goal (${turns}/${max_turns}): ${reason}`,
|
|
9798
|
-
cmd_interrupt: '\u53d6\u6d88\u7576\u524d\u56de\u5408\u4e26\u767c\u9001\u65b0\u8a0a\u606f',
|
|
9799
|
-
cmd_steer: '\u5728\u56de\u5408\u9032\u884c\u4e2d\u6ce8\u5165\u7d3a\u6b63\uff0c\u4e0d\u4e2d\u65b7\u4ee3\u7406',
|
|
9800
|
-
cmd_queue_no_msg: '\u7528\u6cd5\uff1a/queue <\u8a0a\u606f>',
|
|
9801
|
-
cmd_queue_not_busy: '\u6c92\u6709\u6d3b\u52d5\u4efb\u52d9 \u2014 \u76f4\u63a5\u767c\u9001\u5373\u53ef',
|
|
9802
|
-
cmd_queue_confirm: '\u8a0a\u606f\u5df2\u52a0\u5165\u4f47\u5217',
|
|
9803
|
-
cmd_interrupt_no_msg: '\u7528\u6cd5\uff1a/interrupt <\u8a0a\u606f>',
|
|
9804
|
-
cmd_interrupt_confirm: '\u5df2\u4e2d\u65ad \u2014 \u6b63\u5728\u767c\u9001\u65b0\u8a0a\u606f',
|
|
9805
|
-
cmd_steer_no_msg: '\u7528\u6cd5\uff1a/steer <\u8a0a\u606f>',
|
|
9806
|
-
cmd_steer_fallback: 'Steer \u4e0d\u53ef\u7528 \u2014 \u5df2\u52a0\u5165\u4e0b\u4e00\u8f2a\u4f47\u5217',
|
|
9807
|
-
cmd_steer_delivered: 'Steer \u5df2\u9001\u9054 \u2014 \u4ee3\u7406\u5c07\u5728\u4e0b\u4e00\u500b\u5de5\u5177\u7d50\u679c\u4e2d\u770b\u5230',
|
|
9808
|
-
steer_leftover_queued: 'Steer \u5df2\u52a0\u5165\u4e0b\u4e00\u8f2a\u4f47\u5217',
|
|
9809
|
-
busy_steer_fallback: 'Steer \u4e0d\u53ef\u7528 \u2014 \u5df2\u52a0\u5165\u4e0b\u4e00\u8f2a\u4f47\u5217',
|
|
9810
|
-
busy_interrupt_confirm: '\u5df2\u4e2d\u65ad \u2014 \u6b63\u5728\u767c\u9001\u65b0\u8a0a\u606f',
|
|
9811
|
-
settings_label_busy_input_mode: '\u5fd9\u788c\u8f38\u5165\u6a21\u5f0f',
|
|
9812
|
-
settings_desc_busy_input_mode: '\u63a7\u5236\u5728\u4ee3\u7406\u904b\u884c\u6642\u767c\u9001\u8a0a\u606f\u7684\u884c\u70ba\u3002\u4f47\u5217\u7b49\u5f85\uff1b\u4e2d\u65b7\u53d6\u6d88\u4e26\u91cd\u65b0\u958b\u59cb\uff1bSteer\u4e2d\u9014\u6ce8\u5165\u7d3a\u6b63\uff0c\u4e0d\u4e2d\u65b7\u3002',
|
|
9813
|
-
settings_label_fade_text_effect: '文字淡入效果',
|
|
9814
|
-
settings_desc_fade_text_effect: '在助理回覆時讓新串流輸出的詞語淡入顯示。類似 OpenWebUI;為獲得最佳效能預設關閉。',
|
|
9815
|
-
settings_busy_input_mode_queue: '\u52a0\u5165\u4f47\u5217',
|
|
9816
|
-
settings_busy_input_mode_interrupt: '\u4e2d\u65ad\u7576\u524d\u56de\u5408',
|
|
9817
|
-
settings_busy_input_mode_steer: 'Steer\uff08\u4e2d\u9014\u7d3a\u6b63\uff09',
|
|
9818
|
-
no_active_task: '\u7121\u57f7\u884c\u4e2d\u7684\u4efb\u52d9\u53ef\u505c\u6b62\u3002',
|
|
9819
|
-
no_notes_yet: '\u5c1a\u7121\u5099\u8a3b\u3002',
|
|
9820
|
-
no_profile_yet: '\u5c1a\u7121\u8a2d\u5b9a\u6a94\u3002',
|
|
9821
|
-
agent_soul: '智能體靈魂',
|
|
9822
|
-
no_soul_yet: '尚無靈魂定義。',
|
|
9823
|
-
external_notes_sources: '第三方筆記',
|
|
9824
|
-
external_notes_empty: '尚未看到任何筆記或知識 MCP 來源。設定 Joplin、Obsidian、Notion、llm-wiki 或其他筆記伺服器後,會顯示在這裡。',
|
|
9825
|
-
external_notes_auto_recall_hint: '自動會話召回維持不變;這個抽屜只顯示已設定的來源,以及可用的讀取/搜尋工具。',
|
|
9826
|
-
external_notes_no_tools: '此來源目前沒有可見的讀取/搜尋工具。',
|
|
9827
|
-
external_notes_tool_count: (count) => `${count} 個筆記工具可用`,
|
|
9828
|
-
external_notes_configured_hint: '此已設定來源應提供工具名稱;當 WebUI 執行階段提供即時 schema 時會顯示在這裡。',
|
|
9829
|
-
external_notes_recent_ai: 'AI 最近使用',
|
|
9830
|
-
external_notes_auto: 'auto',
|
|
9831
|
-
external_notes_recent_ai_reason: '自動召回',
|
|
9832
|
-
external_notes_search_placeholder: '搜尋筆記…',
|
|
9833
|
-
external_notes_search_empty: '搜尋已設定的筆記來源後,可在這裡預覽筆記。',
|
|
9834
|
-
not_available: '\u7121',
|
|
9835
|
-
profile_active: '\u555f\u7528\u4e2d',
|
|
9836
|
-
profile_api_key_placeholder: 'API \u91d1\u9470\uff08\u9078\u586b\uff09',
|
|
9837
|
-
profile_api_keys_configured: 'API \u91d1\u9470\u5df2\u8a2d\u5b9a',
|
|
9838
|
-
profile_base_url_placeholder: '\u57fa\u672c URL\uff08\u9078\u586b\uff0c\u4f8b\u5982 http://localhost:11434\uff09',
|
|
9839
|
-
profile_base_url_rule: '\u57fa\u672c URL \u5fc5\u9808\u4ee5 http:// \u6216 https:// \u958b\u982d',
|
|
9840
|
-
profile_clone_label: '\u5f9e\u555f\u7528\u4e2d\u7684\u8a2d\u5b9a\u6a94\u8907\u88fd\u914d\u7f6e',
|
|
9841
|
-
profile_model_label: '\u6a21\u578b / \u63d0\u4f9b\u5546',
|
|
9842
|
-
profile_model_hint: '\u70ba\u9019\u500b\u65b0\u8a2d\u5b9a\u6a94\u9078\u64c7\u5df2\u8a2d\u5b9a\u7684\u63d0\u4f9b\u5546\u548c\u6a21\u578b\u3002',
|
|
9843
|
-
profile_model_use_default: '\u4f7f\u7528\u555f\u7528\u4e2d\u8a2d\u5b9a\u6a94\u7684\u9810\u8a2d\u503c',
|
|
9844
|
-
profile_created: (name) => `設定檔 ${name} 已建立`,
|
|
9845
|
-
profile_default_label: '\uff08\u9810\u8a2d\uff09',
|
|
9846
|
-
profile_delete_confirm_title: (name) => `刪除設定檔「${name}」?`,
|
|
9847
|
-
profile_deleted: (name) => `設定檔 ${name} 已刪除`,
|
|
9848
|
-
profile_gateway_running: 'Gateway \u57f7\u884c\u4e2d',
|
|
9849
|
-
profile_gateway_stopped: 'Gateway \u5df2\u505c\u6b62',
|
|
9850
|
-
profile_name_placeholder: '\u8a2d\u5b9a\u6a94\u540d\u7a31\uff08\u5c0f\u5beb\u5b57\u6bcd\u3001\u6578\u5b57\u3001\u9023\u5b57\u865f\uff09',
|
|
9851
|
-
profile_name_rule: '\u50c5\u9650\u5c0f\u5beb\u5b57\u6bcd\u3001\u6578\u5b57\u3001\u9023\u5b57\u865f\u548c\u5e95\u7dda',
|
|
9852
|
-
profile_no_configuration: '\u7121\u914d\u7f6e',
|
|
9853
|
-
profile_skill_count: (n) => `${n} 個技能`,
|
|
9854
|
-
profile_switch_title: '\u5207\u63db\u5230\u6b64\u8a2d\u5b9a\u6a94',
|
|
9855
|
-
profile_switched: (name) => `已切換到 ${name}`,
|
|
9856
|
-
profile_switched_new_conversation: (name) => `已切換到 ${name}(新會話)`,
|
|
9857
|
-
profile_use: '\u4f7f\u7528',
|
|
9858
|
-
profiles_load_failed: '\u8f09\u5165\u8a2d\u5b9a\u6a94\u5931\u6557',
|
|
9859
|
-
profiles_no_profiles: '\u627e\u4e0d\u5230\u8a2d\u5b9a\u6a94\u3002',
|
|
9860
|
-
remove: '\u79fb\u9664',
|
|
9861
|
-
remove_failed: '\u79fb\u9664\u5931\u6557\uff1a',
|
|
9862
|
-
rename_failed: '\u91cd\u65b0\u547d\u540d\u5931\u6557\uff1a',
|
|
9863
|
-
retry_failed: '\u91cd\u8a66\u5931\u6557\uff1a',
|
|
9864
|
-
save: '\u5132\u5b58',
|
|
9865
|
-
save_failed: '\u5132\u5b58\u5931\u6557\uff1a',
|
|
9866
|
-
session_time_bucket_last_week: '\u4e0a\u9031',
|
|
9867
|
-
session_time_bucket_older: '\u66f4\u65e9',
|
|
9868
|
-
session_time_bucket_this_week: '\u672c\u9031',
|
|
9869
|
-
session_time_bucket_today: '\u4eca\u5929',
|
|
9870
|
-
session_time_bucket_yesterday: '\u6628\u5929',
|
|
9871
|
-
session_time_days_ago: (d) => `${d}\u5929`,
|
|
9872
|
-
session_time_hours_ago: (h) => `${h}\u5c0f\u6642`,
|
|
9873
|
-
session_time_last_week: '1\u9031',
|
|
9874
|
-
session_time_minutes_ago: (m) => `${m}\u5206`,
|
|
9875
|
-
session_time_unknown: '\u672a\u77e5',
|
|
9876
|
-
settings_unsaved_changes: '\u60a8\u6709\u672a\u5132\u5b58\u7684\u8b8a\u66f4\u3002',
|
|
9877
|
-
sign_out_failed: '\u767b\u51fa\u5931\u6557\uff1a',
|
|
9878
|
-
stream_stopped: '\u56de\u61c9\u5df2\u505c\u6b62\u3002',
|
|
9879
|
-
switch_failed: '\u5207\u63db\u5931\u6557\uff1a',
|
|
9880
|
-
undid_messages_suffix: '\u5247\u8a0a\u606f\u3002',
|
|
9881
|
-
undid_n_messages: '\u5df2\u79fb\u9664',
|
|
9882
|
-
undo_exchange: '\u5fa9\u539f\u6700\u5f8c\u4e00\u8f2a',
|
|
9883
|
-
undo_failed: '\u5fa9\u539f\u5931\u6557\uff1a',
|
|
9884
|
-
user_profile: '\u4f7f\u7528\u8005\u8a2d\u5b9a\u6a94',
|
|
9885
|
-
view: '\u6aa2\u8996',
|
|
9886
|
-
workspace_add_path_placeholder: '\u65b0\u589e\u5de5\u4f5c\u5340\u8def\u5f91\uff08\u4f8b\u5982 /Users/you/project\uff09',
|
|
9887
|
-
workspace_added: '\u5de5\u4f5c\u5340\u5df2\u65b0\u589e',
|
|
9888
|
-
workspace_already_saved: '\u5de5\u4f5c\u5340\u5df2\u5132\u5b58 \u2014 \u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6',
|
|
9889
|
-
workspace_busy_switch: 'Agent \u57f7\u884c\u4e2d\u7121\u6cd5\u5207\u63db\u5de5\u4f5c\u5340',
|
|
9890
|
-
workspace_choose_path: '\u9078\u64c7\u5de5\u4f5c\u5340\u8def\u5f91',
|
|
9891
|
-
workspace_choose_path_meta: '\u65b0\u589e\u9a57\u8b49\u904e\u7684\u8def\u5f91\u4e26\u5207\u63db\u6b64\u6703\u8a71',
|
|
9892
|
-
workspace_manage: '\u7ba1\u7406\u5de5\u4f5c\u5340',
|
|
9893
|
-
workspace_manage_meta: '\u958b\u555f Spaces \u9762\u677f',
|
|
9894
|
-
workspace_not_added: '\u5de5\u4f5c\u5340\u672a\u65b0\u589e',
|
|
9895
|
-
workspace_paths_validated_hint: '\u8def\u5f91\u6703\u5148\u9a57\u8b49\u662f\u5426\u5b58\u5728\u518d\u5132\u5b58\u3002',
|
|
9896
|
-
|
|
9897
|
-
workspace_drag_hint: '拖曳以重新排列',
|
|
9898
|
-
workspace_reorder_failed: '重新排列失敗',
|
|
9899
|
-
workspace_remove_confirm_message: (name) => `移除工作區「${name}」?`,
|
|
9900
|
-
workspace_remove_confirm_title: '\u79fb\u9664\u5de5\u4f5c\u5340',
|
|
9901
|
-
workspace_removed: '\u5de5\u4f5c\u5340\u5df2\u79fb\u9664',
|
|
9902
|
-
workspace_switch_prompt_confirm: '\u5207\u63db',
|
|
9903
|
-
workspace_switch_prompt_message: '\u8f38\u5165\u5de5\u4f5c\u5340\u7684\u7d55\u5c0d\u8def\u5f91\u4ee5\u65b0\u589e\u4e26\u5207\u63db\u6b64\u6703\u8a71\u3002',
|
|
9904
|
-
workspace_switch_prompt_placeholder: '/Users/you/project',
|
|
9905
|
-
workspace_switch_prompt_title: '\u5207\u63db\u5de5\u4f5c\u5340',
|
|
9906
|
-
workspace_switched_to: (name) => `已切換到 ${name}`,
|
|
9907
|
-
workspace_use: '\u4f7f\u7528',
|
|
9908
|
-
workspace_use_title: '\u5728\u7576\u524d\u6703\u8a71\u4e2d\u4f7f\u7528',
|
|
9909
|
-
bg_complete: '\u80cc\u666f\u4efb\u52d9\u5b8c\u6210',
|
|
9910
|
-
bg_error_multi: (n) => `${n} 個背景任務失敗`,
|
|
9911
|
-
cmd_status: '顯示會話資訊',
|
|
9912
|
-
memory_saved: '記憶已儲存',
|
|
9913
|
-
profile_delete_title: '刪除此設定檔',
|
|
9914
|
-
bg_error_single: (n) => `${n} 個背景任務失敗`,
|
|
9915
|
-
bg_failed: '\u80cc\u666f\u4efb\u52d9\u5931\u6557\uff1a',
|
|
9916
|
-
bg_label: '\u80cc\u666f\u7d50\u679c\uff1a',
|
|
9917
|
-
bg_no_answer: '\uff08\u7121\u56de\u61c9\uff09',
|
|
9918
|
-
bg_running: '\u80cc\u666f\u57f7\u884c\u4e2d\u2026',
|
|
9919
|
-
btw_asking: '\u6b63\u5728\u8a62\u554f\u9644\u5e36\u554f\u984c\u2026',
|
|
9920
|
-
btw_done: '\u9644\u5e36\u554f\u984c\u5df2\u56de\u7b54',
|
|
9921
|
-
btw_failed: '\u9644\u5e36\u554f\u984c\u5931\u6557\uff1a',
|
|
9922
|
-
btw_label: '\u9644\u5e36\u554f\u984c \u2014 \u4e0d\u5728\u6b77\u53f2\u8a18\u9304\u4e2d',
|
|
9923
|
-
btw_no_answer: '\u672a\u6536\u5230\u56de\u61c9\u3002',
|
|
9924
|
-
cmd_background: '\u5728\u80cc\u666f\u57f7\u884c\u63d0\u793a\u8a5e',
|
|
9925
|
-
cmd_background_usage: '/background <\u63d0\u793a\u8a5e> \u2014 \u5e73\u884c\u57f7\u884c\u4e0d\u963b\u585e',
|
|
9926
|
-
cmd_btw: '\u63d0\u51fa\u9644\u5e36\u554f\u984c\uff08\u66ab\u6642\u6027\uff09',
|
|
9927
|
-
cmd_btw_usage: '/btw <\u554f\u984c> \u2014 \u4f7f\u7528\u7576\u524d\u6703\u8a71\u80cc\u666f\u63d0\u554f',
|
|
9928
|
-
cmd_compact: '\u58d3\u7e2e\u5c0d\u8a71\u4e0a\u4e0b\u6587',
|
|
9929
|
-
cmd_retry: '\u91cd\u65b0\u767c\u9001\u6700\u5f8c\u4e00\u689d\u8a0a\u606f',
|
|
9930
|
-
cmd_stop: '\u505c\u6b62\u7576\u524d\u56de\u61c9',
|
|
9931
|
-
cmd_title: '\u53d6\u5f97\u6216\u8a2d\u5b9a\u6703\u8a71\u6a19\u984c',
|
|
9932
|
-
cmd_undo: '\u79fb\u9664\u6700\u5f8c\u4e00\u8f2a\u5c0d\u8a71',
|
|
9933
|
-
cmd_voice: '\u5207\u63db\u9ea5\u514b\u98a8\u8f38\u5165',
|
|
9934
|
-
cmd_voice_use_mic: '\u9ede\u64ca\u7de8\u8f2f\u5668\u4e2d\u7684\u9ea5\u514b\u98a8\u6309\u9215\u3002',
|
|
9935
|
-
cmd_webui_only_session: '\u6b64\u6307\u4ee4\u4e0d\u9069\u7528\u65bc CLI \u532f\u5165\u7684\u6703\u8a71\u3002',
|
|
9936
|
-
cron_all_runs: '\u6240\u6709\u57f7\u884c',
|
|
9937
|
-
cron_completion_status: (n) => `${n} 次完成`,
|
|
9938
|
-
cron_delete_confirm_message: '\u6b64\u64cd\u4f5c\u7121\u6cd5\u5fa9\u539f\u3002',
|
|
9939
|
-
cron_delete_confirm_title: '\u522a\u9664\u6392\u7a0b\u4efb\u52d9',
|
|
9940
|
-
cron_hide_runs: '\u96b1\u85cf\u57f7\u884c\u8a18\u9304',
|
|
9941
|
-
cron_job_created: '\u6392\u7a0b\u4efb\u52d9\u5df2\u5efa\u7acb',
|
|
9942
|
-
cron_duplicate: '\u8907\u88fd',
|
|
9943
|
-
cron_duplicated: '\u4efb\u52d9\u5df2\u8907\u88fd\uff08\u5df2\u66ab\u505c\uff09',
|
|
9944
|
-
cron_job_deleted: '\u6392\u7a0b\u4efb\u52d9\u5df2\u522a\u9664',
|
|
9945
|
-
cron_job_name_placeholder: '\u4efb\u52d9\u540d\u7a31',
|
|
9946
|
-
cron_job_paused: '\u6392\u7a0b\u4efb\u52d9\u5df2\u66ab\u505c',
|
|
9947
|
-
cron_job_resumed: '\u6392\u7a0b\u4efb\u52d9\u5df2\u6062\u5fa9',
|
|
9948
|
-
cron_job_triggered: '\u6392\u7a0b\u4efb\u52d9\u5df2\u89f8\u767c',
|
|
9949
|
-
cron_job_updated: '\u6392\u7a0b\u4efb\u52d9\u5df2\u66f4\u65b0',
|
|
9950
|
-
cron_last: '\u4e0a\u6b21',
|
|
9951
|
-
cron_last_output: '\u6700\u5f8c\u8f38\u51fa',
|
|
9952
|
-
cron_expand_prompt: '展開提示詞',
|
|
9953
|
-
cron_collapse_prompt: '收起提示詞',
|
|
9954
|
-
cron_expand_output: '展開輸出',
|
|
9955
|
-
cron_collapse_output: '收起輸出',
|
|
9956
|
-
cron_view_full_output: 'View full output',
|
|
9957
|
-
cron_next: '\u4e0b\u6b21',
|
|
9958
|
-
cron_no_jobs: '\u627e\u4e0d\u5230\u6392\u7a0b\u4efb\u52d9\u3002',
|
|
9959
|
-
cron_no_runs_yet: '\uff08\u5c1a\u7121\u57f7\u884c\u8a18\u9304\uff09',
|
|
9960
|
-
cron_pause: '\u66ab\u505c',
|
|
9961
|
-
cron_prompt_placeholder: '\u63d0\u793a\u8a5e',
|
|
9962
|
-
cron_prompt_required: '\u9700\u8981\u63d0\u793a\u8a5e',
|
|
9963
|
-
cron_resume: '\u6062\u5fa9',
|
|
9964
|
-
cron_run_now: '\u7acb\u5373\u57f7\u884c',
|
|
9965
|
-
cron_schedule_placeholder: '\u6392\u7a0b',
|
|
9966
|
-
cron_schedule_required: '\u9700\u8981\u6392\u7a0b',
|
|
9967
|
-
cron_schedule_required_example: '\u9700\u8981\u6392\u7a0b\uff08\u4f8b\u5982 "0 9 * * *" \u6216 "every 1h"\uff09',
|
|
9968
|
-
cron_status_active: '已啟用',
|
|
9969
|
-
cron_status_running: '\u57f7\u884c\u4e2d\u2026',
|
|
9970
|
-
cron_status_error: '\u932f\u8aa4',
|
|
9971
|
-
cron_status_off: '\u672a\u555f\u7528',
|
|
9972
|
-
cron_status_paused: '\u5df2\u66ab\u505c',
|
|
9973
|
-
cron_status_needs_attention: '\u9700\u8981\u8655\u7406',
|
|
9974
|
-
cron_attention_desc: '\u9019\u500b\u91cd\u8907\u6392\u7a0b\u4efb\u52d9\u6c92\u6709\u4e0b\u6b21\u57f7\u884c\u6642\u9593\u3002\u6392\u7a0b\u5668\u53ef\u80fd\u7121\u6cd5\u8a08\u7b97\u4e0b\u4e00\u6b21\u57f7\u884c\u3002',
|
|
9975
|
-
cron_attention_croniter_hint: 'Gateway \u57f7\u884c\u74b0\u5883\u53ef\u80fd\u7f3a\u5c11 croniter \u5957\u4ef6\u3002\u8acb\u7528\u652f\u63f4 cron \u7684\u74b0\u5883\u91cd\u555f Gateway\uff0c\u7136\u5f8c\u6062\u5fa9\u9019\u500b\u4efb\u52d9\u3002',
|
|
9976
|
-
cron_attention_resume: '\u6062\u5fa9\u4e26\u91cd\u65b0\u8a08\u7b97',
|
|
9977
|
-
cron_jobs_project: '\u5b9a\u6642\u4efb\u52d9',
|
|
9978
|
-
cron_attention_run_once: '\u7acb\u5373\u57f7\u884c\u4e00\u6b21',
|
|
9979
|
-
cron_attention_copy_diagnostics: '\u8907\u88fd\u8a3a\u65b7\u8cc7\u8a0a',
|
|
9980
|
-
cron_diagnostics_copied: '\u6392\u7a0b\u4efb\u52d9\u8a3a\u65b7\u8cc7\u8a0a\u5df2\u8907\u88fd',
|
|
9981
|
-
providers_empty: '\u627e\u4e0d\u5230\u53ef\u8a2d\u5b9a\u7684\u63d0\u4f9b\u8005\u3002',
|
|
9982
|
-
providers_enter_key: '\u8acb\u8f38\u5165 API \u91d1\u9470',
|
|
9891
|
+
settings_desc_sync_insights: '將 WebUI token 用量鏡射到 state.db,讓 hermes /insights 納入瀏覽器工作階段資料。預設為關閉。',
|
|
9892
|
+
settings_desc_check_updates: '有較新版 WebUI 或 Agent 時顯示橫幅。系統會定期在背景執行 git fetch。',
|
|
9893
|
+
settings_desc_ignore_agent_updates: '保留 WebUI 更新檢查,但隱藏 Agent 更新通知,並略過 Agent 更新 fetch。',
|
|
9894
|
+
settings_desc_whats_new_summary: '將 [新版內容] 動作改為先產生簡短、易讀的摘要,而不是先開啟原始 diff。摘要完成後仍可使用一般 diff 比較。',
|
|
9895
|
+
settings_desc_bot_name: '助理在整個 UI 中顯示的名稱。預設為 Hermes。',
|
|
9896
|
+
settings_desc_password: '輸入新密碼即可設定或變更密碼。留空會保留目前設定。',
|
|
9897
|
+
password_placeholder: '輸入新密碼……',
|
|
9898
|
+
password_env_var_locked: '目前已設定 HERMES_WEBUI_PASSWORD 環境變數且優先生效。請取消設定並重新啟動伺服器,才能在此管理密碼。',
|
|
9899
|
+
password_env_var_locked_placeholder: '已鎖定:已設定 HERMES_WEBUI_PASSWORD 環境變數',
|
|
9900
|
+
disable_auth: '停用驗證',
|
|
9901
|
+
sign_out: '登出',
|
|
9902
|
+
settings_label_shutdown: '停止 Hermes WebUI 伺服器',
|
|
9903
|
+
settings_desc_shutdown: '正常停止本機 WebUI 伺服器。適合透過 <code>./ctl.sh start</code> 啟動,且想要不切換到終端機就停止伺服器的情境。要再次進入 WebUI,需要重新啟動伺服器(<code>./ctl.sh start</code> 或原生應用程式)。',
|
|
9904
|
+
settings_btn_shutdown: '停止伺服器',
|
|
9905
|
+
settings_shutdown_confirm_title: '停止 Hermes WebUI',
|
|
9906
|
+
settings_shutdown_confirm_message: '停止 Hermes WebUI 伺服器?',
|
|
9907
|
+
settings_shutdown_confirm_btn: '停止',
|
|
9908
|
+
settings_shutdown_stopped_message: '伺服器已停止。可以關閉這個分頁。',
|
|
9909
|
+
// Providers panel
|
|
9910
|
+
providers_tab_title: '供應商',
|
|
9911
|
+
providers_section_title: '供應商',
|
|
9912
|
+
providers_section_meta: '管理 AI 提供者的 API 金鑰。變更會立即生效。',
|
|
9913
|
+
providers_status_configured: 'API 金鑰已設定',
|
|
9914
|
+
providers_status_not_configured: '無 API 金鑰',
|
|
9915
|
+
providers_status_oauth: 'OAuth',
|
|
9916
|
+
providers_status_api_key: 'API 金鑰',
|
|
9917
|
+
providers_status_not_configured_label: '未設定',
|
|
9918
|
+
providers_oauth_hint: '已透過 OAuth 驗證。無需 API 金鑰。',
|
|
9919
|
+
providers_oauth_config_yaml_hint: '已透過 config.yaml 設定權證。要更新,請編輯 config.yaml 中的 providers 區段,或執行 hermes auth。',
|
|
9920
|
+
providers_oauth_not_configured_hint: '尚未驗證。請在終端機執行 hermes auth 以設定此提供者。',
|
|
9921
|
+
providers_save: '儲存',
|
|
9922
|
+
providers_refresh_models: '重新整理模型',
|
|
9923
|
+
providers_refreshing: '正在重新整理…',
|
|
9924
|
+
providers_models_refreshed: '模型已重新整理',
|
|
9925
|
+
providers_remove: '移除',
|
|
9926
|
+
providers_saving: '儲存中…',
|
|
9927
|
+
providers_removing: '移除中…',
|
|
9928
|
+
providers_enter_key: '請輸入 API 金鑰',
|
|
9929
|
+
providers_empty: '找不到可設定的提供者。',
|
|
9930
|
+
providers_key_updated: 'API 金鑰已儲存',
|
|
9931
|
+
providers_key_removed: 'API 金鑰已移除',
|
|
9983
9932
|
providers_key_placeholder_new: 'sk-...',
|
|
9984
|
-
providers_key_placeholder_replace: '
|
|
9985
|
-
providers_key_removed: 'API \u91d1\u9470\u5df2\u79fb\u9664',
|
|
9986
|
-
providers_key_updated: 'API \u91d1\u9470\u5df2\u5132\u5b58',
|
|
9933
|
+
providers_key_placeholder_replace: '輸入新金鑰以取代…',
|
|
9987
9934
|
provider_quota_title: '目前提供者配額',
|
|
9988
9935
|
provider_quota_active_provider: '目前提供者',
|
|
9989
9936
|
provider_quota_last_checked_after_refresh: '重新整理後檢查',
|
|
9990
9937
|
provider_quota_last_checked: '上次檢查 {0}',
|
|
9991
9938
|
provider_quota_refresh_usage: '重新整理用量',
|
|
9992
|
-
provider_quota_refreshing: '
|
|
9939
|
+
provider_quota_refreshing: '正在重新整理……',
|
|
9993
9940
|
provider_quota_refresh_title: '立即重新整理提供者用量限制',
|
|
9994
9941
|
provider_quota_refresh_succeeded: '提供者用量已重新整理',
|
|
9995
9942
|
provider_quota_refresh_failed: '提供者用量重新整理失敗',
|
|
@@ -10020,149 +9967,360 @@ const LOCALES = {
|
|
|
10020
9967
|
provider_quota_pool_summary_exhausted: '{0} 個已耗盡',
|
|
10021
9968
|
provider_quota_pool_summary_failed: '{0} 個失敗',
|
|
10022
9969
|
provider_quota_pool_summary_checked: '已檢查 {0} 個',
|
|
10023
|
-
|
|
10024
|
-
|
|
10025
|
-
|
|
10026
|
-
|
|
10027
|
-
|
|
10028
|
-
|
|
10029
|
-
|
|
10030
|
-
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
10034
|
-
|
|
10035
|
-
|
|
10036
|
-
|
|
10037
|
-
|
|
10038
|
-
|
|
10039
|
-
|
|
10040
|
-
|
|
10041
|
-
|
|
10042
|
-
|
|
10043
|
-
|
|
10044
|
-
|
|
10045
|
-
|
|
10046
|
-
|
|
10047
|
-
|
|
10048
|
-
|
|
10049
|
-
|
|
10050
|
-
|
|
10051
|
-
|
|
10052
|
-
|
|
10053
|
-
|
|
10054
|
-
|
|
10055
|
-
|
|
10056
|
-
|
|
10057
|
-
|
|
10058
|
-
|
|
10059
|
-
|
|
10060
|
-
|
|
10061
|
-
|
|
10062
|
-
|
|
10063
|
-
|
|
10064
|
-
|
|
10065
|
-
|
|
10066
|
-
|
|
10067
|
-
|
|
10068
|
-
|
|
10069
|
-
|
|
10070
|
-
|
|
10071
|
-
|
|
10072
|
-
|
|
10073
|
-
|
|
10074
|
-
|
|
10075
|
-
|
|
10076
|
-
|
|
10077
|
-
|
|
10078
|
-
|
|
10079
|
-
|
|
10080
|
-
|
|
10081
|
-
|
|
10082
|
-
|
|
10083
|
-
|
|
10084
|
-
|
|
10085
|
-
|
|
10086
|
-
|
|
10087
|
-
|
|
10088
|
-
|
|
10089
|
-
|
|
10090
|
-
|
|
10091
|
-
|
|
10092
|
-
|
|
10093
|
-
|
|
10094
|
-
|
|
10095
|
-
|
|
10096
|
-
|
|
10097
|
-
|
|
10098
|
-
|
|
10099
|
-
|
|
10100
|
-
|
|
10101
|
-
|
|
10102
|
-
|
|
10103
|
-
|
|
9970
|
+
cancel: '取消',
|
|
9971
|
+
create_job: '建立工作',
|
|
9972
|
+
save_skill: '儲存技能',
|
|
9973
|
+
editing: '編輯中',
|
|
9974
|
+
// Empty state
|
|
9975
|
+
empty_title: '需要什麼協助?',
|
|
9976
|
+
empty_subtitle: '可以提問、執行命令、瀏覽檔案,或管理排程工作。',
|
|
9977
|
+
suggest_files: '這個工作區有哪些檔案?',
|
|
9978
|
+
suggest_schedule: '今天有哪些行程?',
|
|
9979
|
+
suggest_plan: '協助我規劃一個小專案。',
|
|
9980
|
+
// onboarding
|
|
9981
|
+
onboarding_badge: '首次使用',
|
|
9982
|
+
onboarding_title: '歡迎使用 Hermes Web UI',
|
|
9983
|
+
onboarding_lead: '快速設定精靈會驗證 Hermes、儲存實際的供應商設定、選擇工作區與模型,並可選擇用密碼保護應用程式。',
|
|
9984
|
+
onboarding_back: '上一頁',
|
|
9985
|
+
onboarding_continue: '繼續',
|
|
9986
|
+
onboarding_skip: '跳過設定',
|
|
9987
|
+
onboarding_skipped: '已略過設定,使用現有設定。',
|
|
9988
|
+
onboarding_open: '開啟 Hermes',
|
|
9989
|
+
onboarding_step_system_title: '系統檢查',
|
|
9990
|
+
onboarding_step_system_desc: '驗證 Hermes Agent 與設定可見性。',
|
|
9991
|
+
onboarding_step_setup_title: '供應商設定',
|
|
9992
|
+
onboarding_step_setup_desc: '儲存最低限度的 Hermes 供應商設定。',
|
|
9993
|
+
onboarding_step_workspace_title: '工作區與模型',
|
|
9994
|
+
onboarding_step_workspace_desc: '選擇新工作階段與聊天的預設值。',
|
|
9995
|
+
onboarding_step_password_title: '選用密碼',
|
|
9996
|
+
onboarding_step_password_desc: '分享 Web UI 前先保護它。',
|
|
9997
|
+
onboarding_step_finish_title: '完成',
|
|
9998
|
+
onboarding_step_finish_desc: '檢查設定並進入應用程式。',
|
|
9999
|
+
onboarding_notice_system_ready: 'Hermes Agent 看起來可由 Web UI 存取。',
|
|
10000
|
+
onboarding_notice_system_unavailable: 'Hermes Agent 尚未完全可用。Bootstrap 可以安裝它,但供應商設定可能仍需要使用終端機。',
|
|
10001
|
+
onboarding_check_agent: 'Hermes Agent',
|
|
10002
|
+
onboarding_check_agent_ready: '已偵測到且可匯入',
|
|
10003
|
+
onboarding_check_agent_missing: '缺少或僅能部分匯入',
|
|
10004
|
+
onboarding_check_password: '密碼',
|
|
10005
|
+
onboarding_check_password_enabled: '已啟用',
|
|
10006
|
+
onboarding_check_password_disabled: '尚未啟用',
|
|
10007
|
+
onboarding_check_provider: '供應商設定',
|
|
10008
|
+
onboarding_check_provider_ready: '已可聊天',
|
|
10009
|
+
onboarding_check_provider_partial: '已儲存但不完整',
|
|
10010
|
+
onboarding_check_provider_pending: '需要驗證',
|
|
10011
|
+
onboarding_config_file: '設定檔:',
|
|
10012
|
+
onboarding_env_file: '.env 檔案:',
|
|
10013
|
+
onboarding_unknown: '未知',
|
|
10014
|
+
onboarding_current_provider: '目前設定:',
|
|
10015
|
+
onboarding_missing_imports: '缺少的匯入內容:',
|
|
10016
|
+
onboarding_notice_setup_required: '請在這裡選擇簡易供應商路徑。進階 OAuth 流程目前仍需使用 Hermes CLI 處理。',
|
|
10017
|
+
onboarding_notice_setup_already_ready: '已偵測到可用的 Hermes 供應商設定。可以保留或在這裡替換。',
|
|
10018
|
+
onboarding_oauth_provider_ready_title: '供應商已完成驗證',
|
|
10019
|
+
onboarding_oauth_provider_ready_body: '這個執行個體已設定為使用 Hermes CLI 設定的 OAuth 供應商(<strong>{provider}</strong>)。這裡不需要 API 金鑰,請點選 [繼續] 完成設定。',
|
|
10020
|
+
onboarding_oauth_provider_not_ready_title: 'OAuth 供應商尚未完成驗證',
|
|
10021
|
+
onboarding_oauth_provider_not_ready_body: '這個執行個體已設定為使用 <strong>{provider}</strong>,此供應商使用 OAuth 而不是 API 金鑰。請在終端機執行 <code>hermes auth</code> 或 <code>hermes model</code> 完成驗證,然後重新載入 Web UI。',
|
|
10022
|
+
onboarding_oauth_switch_hint: '或在下方選擇其他供應商,切換為 API 金鑰設定:',
|
|
10023
|
+
oauth_login_codex: '使用 Codex(ChatGPT)登入',
|
|
10024
|
+
oauth_codex_step1: '步驟 1:前往此 URL 並輸入驗證碼',
|
|
10025
|
+
oauth_codex_step2: '步驟 2:在頁面上輸入此驗證碼',
|
|
10026
|
+
oauth_codex_polling: '正在等待授權…',
|
|
10027
|
+
oauth_codex_success: 'Codex OAuth 登入成功!',
|
|
10028
|
+
oauth_codex_error: 'OAuth 登入失敗',
|
|
10029
|
+
oauth_codex_expired: '驗證碼已過期,請再試一次',
|
|
10030
|
+
onboarding_notice_workspace: '這些值會重複使用一般應用程式相同的設定 API。',
|
|
10031
|
+
onboarding_workspace_label: '工作區',
|
|
10032
|
+
onboarding_workspace_or_path: '或輸入工作區路徑',
|
|
10033
|
+
onboarding_workspace_placeholder: '/home/you/workspace',
|
|
10034
|
+
onboarding_provider_label: '設定模式',
|
|
10035
|
+
onboarding_quick_setup_badge: '快速設定',
|
|
10036
|
+
provider_category_easy_start: '快速開始',
|
|
10037
|
+
provider_category_self_hosted: '開源/自行託管',
|
|
10038
|
+
provider_category_specialized: '專業服務',
|
|
10039
|
+
onboarding_api_key_label: 'API 金鑰',
|
|
10040
|
+
onboarding_api_key_placeholder: '留空可保留現有已儲存金鑰',
|
|
10041
|
+
onboarding_api_key_label_optional: 'API 金鑰(選用)',
|
|
10042
|
+
onboarding_api_key_placeholder_optional: '無需金鑰的伺服器可留空',
|
|
10043
|
+
onboarding_api_key_help_keyless: '多數 LM Studio / Ollama / vLLM 安裝不需要金鑰;如果伺服器不需要驗證,請留空。請使用 [測試連線] 按鈕確認。',
|
|
10044
|
+
onboarding_api_key_help_prefix: '系統會使用以下名稱,將它以祕密值形式儲存在 Hermes .env 檔案中',
|
|
10045
|
+
onboarding_base_url_label: 'Base URL',
|
|
10046
|
+
onboarding_base_url_placeholder: 'https://your-endpoint.example/v1',
|
|
10047
|
+
onboarding_base_url_help: '可用於 OpenAI 相容路由器、自行託管伺服器、LiteLLM、Ollama、LM Studio、vLLM 或類似端點。',
|
|
10048
|
+
onboarding_model_label: '預設模型',
|
|
10049
|
+
onboarding_workspace_help: '選擇設定完成後 Hermes 應在新聊天中使用的模型。',
|
|
10050
|
+
onboarding_custom_model_placeholder: 'your-model-name',
|
|
10051
|
+
onboarding_custom_model_help: '自訂端點請輸入伺服器預期的確切模型 ID。',
|
|
10052
|
+
onboarding_notice_password_enabled: '已設定密碼。只有要替換時才需要輸入新密碼。',
|
|
10053
|
+
onboarding_notice_password_recommended: '建議設定密碼,尤其是要將 UI 暴露到 localhost 以外時。',
|
|
10054
|
+
onboarding_password_label: '密碼(選用)',
|
|
10055
|
+
onboarding_password_placeholder: '留空可略過',
|
|
10056
|
+
onboarding_password_help: '密碼會透過既有設定 API 儲存,並在伺服器端雜湊。',
|
|
10057
|
+
onboarding_notice_finish: '之後可以重新開啟 [設定] 變更這些值。',
|
|
10058
|
+
onboarding_not_set: '未設定',
|
|
10059
|
+
onboarding_password_will_enable: '將會啟用',
|
|
10060
|
+
onboarding_password_will_replace: '將取代',
|
|
10061
|
+
onboarding_password_keep_existing: '保留目前密碼',
|
|
10062
|
+
onboarding_password_remains_disabled: '將保持停用',
|
|
10063
|
+
onboarding_password_skipped: '暫時略過',
|
|
10064
|
+
onboarding_finish_help: '完成後會在設定中儲存 <code>onboarding_completed</code>,並進入一般應用程式。',
|
|
10065
|
+
onboarding_error_choose_workspace: '請先選擇工作區再繼續。',
|
|
10066
|
+
onboarding_error_choose_model: '請先選擇模型再繼續。',
|
|
10067
|
+
onboarding_error_provider_required: '請先選擇設定模式再繼續。',
|
|
10068
|
+
onboarding_error_base_url_required: '自訂端點必須提供 Base URL。',
|
|
10069
|
+
onboarding_probe_test_button: '測試連線',
|
|
10070
|
+
onboarding_probe_probing: '正在測試連線…',
|
|
10071
|
+
onboarding_probe_ok: '已連線。共有 {n} 個模型可用。',
|
|
10072
|
+
onboarding_probe_error_generic: '無法連上設定的 Base URL。',
|
|
10073
|
+
onboarding_probe_error_invalid_url: 'Base URL 必須以 http:// 或 https:// 開頭。',
|
|
10074
|
+
onboarding_probe_error_dns: '無法解析主機。請檢查 URL,或改用主機的 IP 位址。',
|
|
10075
|
+
onboarding_probe_error_connect_refused: '連線遭拒;伺服器可能沒有在該位址執行。若在 Docker 內使用,請嘗試以主機 IP 取代 localhost。',
|
|
10076
|
+
onboarding_probe_error_timeout: '端點未及時回應。請確認伺服器正在執行,且 URL 正確。',
|
|
10077
|
+
onboarding_probe_error_http_4xx: '端點回傳請求端錯誤。請檢查驗證資訊與 URL 路徑(通常以 /v1 結尾)。',
|
|
10078
|
+
onboarding_probe_error_http_5xx: '端點回傳伺服器錯誤。請檢查 LM Studio / Ollama 伺服器記錄。',
|
|
10079
|
+
onboarding_probe_error_parse: '端點未回傳預期格式的模型清單。請確認 URL 指向 OpenAI 相容 API 根路徑。',
|
|
10080
|
+
onboarding_probe_error_unreachable: '無法連上設定的 Base URL。',
|
|
10081
|
+
onboarding_error_probe_failed: '無法驗證設定的 Base URL。',
|
|
10082
|
+
onboarding_error_workspace_required: '工作區為必填。',
|
|
10083
|
+
onboarding_error_model_required: '模型為必填。',
|
|
10084
|
+
onboarding_complete: '初始設定已完成',
|
|
10104
10085
|
|
|
10105
|
-
//
|
|
10086
|
+
// panel/runtime i18n
|
|
10087
|
+
error_prefix: '錯誤:',
|
|
10088
|
+
default: '預設',
|
|
10089
|
+
search: '搜尋',
|
|
10090
|
+
not_available: '無',
|
|
10091
|
+
never: '從不',
|
|
10092
|
+
add: '新增',
|
|
10093
|
+
add_failed: '新增失敗:',
|
|
10094
|
+
remove_failed: '移除失敗:',
|
|
10095
|
+
switch_failed: '切換失敗:',
|
|
10096
|
+
name_required: '需要名稱',
|
|
10097
|
+
content_required: '需要內容',
|
|
10098
|
+
view: '檢視',
|
|
10099
|
+
dismiss: '關閉',
|
|
10100
|
+
disable: '停用',
|
|
10101
|
+
cron_no_jobs: '找不到排程任務。',
|
|
10102
|
+
cron_status_off: '未啟用',
|
|
10103
|
+
cron_status_paused: '已暫停',
|
|
10104
|
+
cron_status_error: '錯誤',
|
|
10105
|
+
cron_status_active: '已啟用',
|
|
10106
|
+
cron_status_running: '執行中…',
|
|
10107
|
+
cron_status_needs_attention: '需要處理',
|
|
10108
|
+
cron_attention_desc: '這個重複排程任務沒有下次執行時間。排程器可能無法計算下一次執行。',
|
|
10109
|
+
cron_attention_croniter_hint: 'Gateway 執行環境可能缺少 croniter 套件。請用支援 cron 的環境重啟 Gateway,然後恢復這個任務。',
|
|
10110
|
+
cron_attention_resume: '恢復並重新計算',
|
|
10111
|
+
cron_jobs_project: '定時任務',
|
|
10112
|
+
cron_attention_run_once: '立即執行一次',
|
|
10113
|
+
cron_attention_copy_diagnostics: '複製診斷資訊',
|
|
10114
|
+
cron_diagnostics_copied: '排程任務診斷資訊已複製',
|
|
10115
|
+
cron_next: '下次',
|
|
10116
|
+
cron_last: '上次',
|
|
10117
|
+
cron_run_now: '立即執行',
|
|
10118
|
+
cron_pause: '暫停',
|
|
10119
|
+
cron_resume: '恢復',
|
|
10120
|
+
cron_job_name_placeholder: '任務名稱',
|
|
10121
|
+
cron_schedule_placeholder: '排程',
|
|
10122
|
+
cron_prompt_placeholder: '提示詞',
|
|
10123
|
+
cron_last_output: '最後輸出',
|
|
10124
|
+
cron_expand_prompt: '展開提示詞',
|
|
10125
|
+
cron_collapse_prompt: '收起提示詞',
|
|
10126
|
+
cron_expand_output: '展開輸出',
|
|
10127
|
+
cron_collapse_output: '收起輸出',
|
|
10128
|
+
cron_view_full_output: '檢視完整輸出',
|
|
10129
|
+
cron_all_runs: '所有執行',
|
|
10130
|
+
cron_hide_runs: '隱藏執行記錄',
|
|
10131
|
+
cron_no_runs_yet: '(尚無執行記錄)',
|
|
10132
|
+
cron_schedule_required_example: '需要排程(例如「0 9 * * *」或「every 1h」)',
|
|
10133
|
+
cron_schedule_required: '需要排程',
|
|
10134
|
+
cron_prompt_required: '需要提示詞',
|
|
10135
|
+
cron_job_created: '排程任務已建立',
|
|
10136
|
+
cron_duplicate: '複製',
|
|
10137
|
+
cron_duplicated: '任務已複製(已暫停)',
|
|
10138
|
+
cron_job_triggered: '排程任務已觸發',
|
|
10139
|
+
cron_job_paused: '排程任務已暫停',
|
|
10140
|
+
cron_job_resumed: '排程任務已恢復',
|
|
10141
|
+
cron_job_updated: '排程任務已更新',
|
|
10142
|
+
cron_delete_confirm_title: '刪除排程任務',
|
|
10143
|
+
cron_delete_confirm_message: '此操作無法復原。',
|
|
10144
|
+
cron_job_deleted: '排程任務已刪除',
|
|
10145
|
+
cron_completion_status: (name, status) => `排程「${name}」${status}`,
|
|
10146
|
+
status_failed: '失敗',
|
|
10147
|
+
status_completed: '已完成',
|
|
10148
|
+
todos_no_active: '此對話中沒有使用中的任務清單。',
|
|
10149
|
+
clear_conversation_title: '清除對話',
|
|
10150
|
+
clear_conversation_message: '清除所有訊息?此操作無法復原。',
|
|
10151
|
+
clear_failed: '清除失敗:',
|
|
10152
|
+
skills_no_match: '找不到符合的技能。',
|
|
10153
|
+
skill_enabled: '技能已啟用',
|
|
10154
|
+
skill_disabled: '技能已停用',
|
|
10155
|
+
skill_toggle_failed: '切換技能狀態失敗:',
|
|
10156
|
+
linked_files: '關聯檔案',
|
|
10157
|
+
skill_load_failed: '載入技能失敗:',
|
|
10158
|
+
skill_file_load_failed: '載入檔案失敗:',
|
|
10159
|
+
skill_name_required: '需要技能名稱',
|
|
10160
|
+
skill_updated: '技能已更新',
|
|
10161
|
+
skill_created: '技能已建立',
|
|
10106
10162
|
skill_deleted: '技能已刪除',
|
|
10107
|
-
skill_delete_confirm: '
|
|
10108
|
-
skills_empty_title: '
|
|
10109
|
-
skills_empty_sub: '
|
|
10163
|
+
skill_delete_confirm: '要刪除技能「{0}」嗎?',
|
|
10164
|
+
skills_empty_title: '選擇技能',
|
|
10165
|
+
skills_empty_sub: '從側邊欄選擇技能以檢視內容,或建立新技能。',
|
|
10110
10166
|
skills_edit: '編輯',
|
|
10111
10167
|
skills_delete: '刪除',
|
|
10112
|
-
skills_back_to: '
|
|
10113
|
-
|
|
10114
|
-
|
|
10115
|
-
|
|
10116
|
-
|
|
10117
|
-
|
|
10118
|
-
|
|
10119
|
-
|
|
10120
|
-
|
|
10121
|
-
|
|
10122
|
-
|
|
10123
|
-
|
|
10124
|
-
|
|
10168
|
+
skills_back_to: '回到 {0}',
|
|
10169
|
+
tasks_empty_title: '選擇排程任務',
|
|
10170
|
+
tasks_empty_sub: '從側邊欄選擇任務以檢視詳細資料與執行記錄,或建立新任務。',
|
|
10171
|
+
workspaces_empty_title: '選擇工作區',
|
|
10172
|
+
workspaces_empty_sub: '從側邊欄選擇工作區以檢視其檔案與設定,或新增工作區。',
|
|
10173
|
+
profiles_empty_title: '選擇設定檔',
|
|
10174
|
+
profiles_empty_sub: '從側邊欄選擇 Agent 設定檔以檢視並編輯設定,或建立新設定檔。',
|
|
10175
|
+
memory_notes_label: '記憶(備註)',
|
|
10176
|
+
memory_saved: '記憶已儲存',
|
|
10177
|
+
my_notes: '我的備註',
|
|
10178
|
+
user_profile: '使用者設定檔',
|
|
10179
|
+
external_notes_sources: '第三方筆記',
|
|
10180
|
+
external_notes_empty: '尚未看到任何筆記或知識 MCP 來源。設定 Joplin、Obsidian、Notion、llm-wiki 或其他筆記伺服器後,會顯示在這裡。',
|
|
10181
|
+
external_notes_auto_recall_hint: '自動對話召回維持不變;這個抽屜只顯示已設定的來源,以及可用的讀取/搜尋工具。',
|
|
10182
|
+
external_notes_no_tools: '此來源目前沒有可見的讀取/搜尋工具。',
|
|
10183
|
+
external_notes_tool_count: (count) => `${count} 個筆記工具可用`,
|
|
10184
|
+
external_notes_configured_hint: '此已設定來源應提供工具名稱;當 WebUI 執行階段提供即時 schema 時會顯示在這裡。',
|
|
10185
|
+
external_notes_recent_ai: 'AI 最近使用',
|
|
10186
|
+
external_notes_auto: '自動',
|
|
10187
|
+
external_notes_recent_ai_reason: '自動召回',
|
|
10188
|
+
external_notes_search_placeholder: '搜尋筆記…',
|
|
10189
|
+
external_notes_search_empty: '搜尋已設定的筆記來源後,可在這裡預覽筆記。',
|
|
10190
|
+
source_active: '使用中',
|
|
10191
|
+
source_configured: '已設定',
|
|
10192
|
+
no_notes_yet: '尚無備註。',
|
|
10193
|
+
no_profile_yet: '尚無設定檔。',
|
|
10194
|
+
agent_soul: 'Agent 靈魂',
|
|
10195
|
+
no_soul_yet: '尚無靈魂定義。',
|
|
10196
|
+
workspace_choose_path: '選擇工作區路徑',
|
|
10197
|
+
workspace_choose_path_meta: '新增驗證過的路徑並切換此對話',
|
|
10198
|
+
workspace_manage: '管理工作區',
|
|
10199
|
+
workspace_manage_meta: '開啟 Spaces 面板',
|
|
10200
|
+
workspace_use_title: '在目前對話中使用',
|
|
10201
|
+
workspace_use: '使用',
|
|
10202
|
+
workspace_add_path_placeholder: '新增工作區路徑(例如 /home/user/my-project)',
|
|
10203
|
+
workspace_paths_validated_hint: '路徑會先驗證是否存在再儲存。',
|
|
10125
10204
|
|
|
10126
|
-
|
|
10205
|
+
workspace_drag_hint: '拖曳以重新排列',
|
|
10206
|
+
workspace_reorder_failed: '重新排列失敗',
|
|
10207
|
+
workspace_added: '工作區已新增',
|
|
10208
|
+
workspace_renamed: '工作區已重新命名',
|
|
10209
|
+
workspace_remove_confirm_title: '移除工作區',
|
|
10210
|
+
workspace_remove_confirm_message: (name) => `移除工作區「${name}」?`,
|
|
10211
|
+
workspace_removed: '工作區已移除',
|
|
10212
|
+
workspace_switch_prompt_title: '切換工作區',
|
|
10213
|
+
workspace_switch_prompt_message: '輸入工作區的絕對路徑以新增並切換此對話。',
|
|
10214
|
+
workspace_switch_prompt_confirm: '切換',
|
|
10215
|
+
workspace_switch_prompt_placeholder: '/Users/you/project',
|
|
10216
|
+
workspace_not_added: '工作區未新增',
|
|
10217
|
+
workspace_already_saved: '工作區已儲存 — 從清單中選取',
|
|
10218
|
+
workspace_busy_switch: 'Agent 執行中無法切換工作區',
|
|
10219
|
+
discard_file_edits_title: '放棄檔案編輯?',
|
|
10220
|
+
discard_file_edits_message: '切換工作區將放棄未儲存的預覽變更。',
|
|
10221
|
+
workspace_switched_to: (name) => `已切換到 ${name}`,
|
|
10222
|
+
profiles_no_profiles: '找不到設定檔。',
|
|
10223
|
+
profile_api_keys_configured: 'API 金鑰已設定',
|
|
10224
|
+
profile_gateway_running: 'Gateway 執行中',
|
|
10225
|
+
profile_gateway_stopped: 'Gateway 已停止',
|
|
10226
|
+
profile_active: '啟用中',
|
|
10227
|
+
profile_no_configuration: '沒有設定',
|
|
10228
|
+
profile_skill_count: (n) => `${n} 個技能`,
|
|
10229
|
+
profile_use: '使用',
|
|
10230
|
+
profile_switch_title: '切換到此設定檔',
|
|
10231
|
+
profile_delete_title: '刪除此設定檔',
|
|
10232
|
+
profile_default_label: '(預設)',
|
|
10233
|
+
profile_name_placeholder: '設定檔名稱(小寫字母、數字、連字號)',
|
|
10234
|
+
profile_clone_label: '從啟用中的設定檔複製設定',
|
|
10235
|
+
profile_model_label: '模型 / 供應商',
|
|
10236
|
+
profile_model_hint: '為這個新設定檔選擇已設定的供應商和模型。',
|
|
10237
|
+
profile_model_use_default: '使用啟用中設定檔的預設值',
|
|
10238
|
+
profile_base_url_placeholder: '基本 URL(選填,例如 http://localhost:11434)',
|
|
10239
|
+
profile_api_key_placeholder: 'API 金鑰(選填)',
|
|
10240
|
+
manage_profiles: '管理設定檔',
|
|
10241
|
+
profiles_load_failed: '載入設定檔失敗',
|
|
10242
|
+
profile_switched_new_conversation: (name) => `已切換至設定檔:${name},並開始新對話`,
|
|
10243
|
+
profile_switched: (name) => `已切換至設定檔:${name}`,
|
|
10244
|
+
profile_name_rule: '僅限小寫字母、數字、連字號和底線',
|
|
10245
|
+
profile_base_url_rule: '基本 URL 必須以 http:// 或 https:// 開頭',
|
|
10246
|
+
profile_created: (name) => `設定檔 ${name} 已建立`,
|
|
10247
|
+
profile_delete_confirm_title: (name) => `刪除設定檔「${name}」?`,
|
|
10248
|
+
profile_delete_confirm_message: '此設定檔的所有對話、設定、技能和記憶將被永久刪除。此操作無法復原。',
|
|
10249
|
+
profile_deleted: (name) => `設定檔 ${name} 已刪除`,
|
|
10250
|
+
active_conversation_none: '未選取使用中的對話。',
|
|
10251
|
+
active_conversation_meta: (title, count) => `${title} · ${count} 則訊息`,
|
|
10252
|
+
settings_unsaved_changes: '有未儲存的變更。',
|
|
10253
|
+
sign_out_failed: '登出失敗:',
|
|
10254
|
+
disable_auth_confirm_title: '停用密碼保護',
|
|
10255
|
+
disable_auth_confirm_message: '任何人都可以存取此執行個體。',
|
|
10256
|
+
auth_disabled: '驗證已停用 — 密碼保護已關閉',
|
|
10257
|
+
disable_auth_failed: '停用驗證失敗:',
|
|
10258
|
+
bg_error_single: (title) => `「${title}」發生錯誤`,
|
|
10259
|
+
bg_error_multi: (count) => `${count} 個對話發生錯誤`,
|
|
10260
|
+
// skill form
|
|
10127
10261
|
skill_name: '名稱',
|
|
10128
10262
|
skill_category: '類別',
|
|
10129
|
-
skill_category_placeholder: '
|
|
10130
|
-
skill_content: '內容',
|
|
10131
|
-
skill_content_placeholder: '
|
|
10132
|
-
skill_rename_not_supported: '
|
|
10263
|
+
skill_category_placeholder: '選填,例如 devops',
|
|
10264
|
+
skill_content: 'SKILL.md 內容',
|
|
10265
|
+
skill_content_placeholder: 'YAML frontmatter + Markdown 內文',
|
|
10266
|
+
skill_rename_not_supported: '不支援重新命名技能。若要重新命名,請建立新技能並刪除舊技能。',
|
|
10133
10267
|
skill_metadata: '中繼資料',
|
|
10134
|
-
|
|
10135
|
-
// Cron labels
|
|
10268
|
+
// cron form
|
|
10136
10269
|
cron_name_label: '任務名稱',
|
|
10270
|
+
cron_name_placeholder: '選填',
|
|
10137
10271
|
cron_schedule_label: '排程',
|
|
10138
|
-
cron_schedule_hint:
|
|
10139
|
-
cron_schedule_once_warning:
|
|
10272
|
+
cron_schedule_hint: '週期性任務請用「every 1h」或 Cron 表示式。像「30m」這樣的裸時長只會執行一次。',
|
|
10273
|
+
cron_schedule_once_warning: '像「30m」這樣的時長寫法只會執行一次,並在執行後移除。要保留週期性任務,請使用「every 30m」。',
|
|
10140
10274
|
cron_prompt_label: '提示',
|
|
10141
|
-
cron_deliver_label: '
|
|
10142
|
-
cron_deliver_local: '
|
|
10275
|
+
cron_deliver_label: '傳送至',
|
|
10276
|
+
cron_deliver_local: '本機(僅儲存輸出)',
|
|
10143
10277
|
cron_deliver_custom: '自訂推送目標',
|
|
10144
10278
|
cron_profile_label: '設定檔',
|
|
10145
10279
|
cron_profile_server_default: '伺服器預設',
|
|
10146
10280
|
cron_profile_server_default_hint: '執行時使用 WebUI 伺服器預設設定檔。沒有設定檔的既有工作會保留此舊行為。',
|
|
10281
|
+
cron_toast_notifications_label: '完成 toast 通知',
|
|
10282
|
+
cron_toast_notifications_hint: '此排程工作完成時顯示 toast 通知。即使關閉此選項,Tasks 徽章與新執行標記仍會更新。',
|
|
10283
|
+
cron_toast_notifications_enabled: '已啟用',
|
|
10284
|
+
cron_toast_notifications_disabled: '已停用',
|
|
10147
10285
|
cron_skills_label: '技能',
|
|
10148
|
-
cron_skills_placeholder: '
|
|
10149
|
-
cron_skills_edit_hint: '
|
|
10150
|
-
|
|
10151
|
-
// Workspace labels
|
|
10286
|
+
cron_skills_placeholder: '新增技能(選填)…',
|
|
10287
|
+
cron_skills_edit_hint: '技能清單建立後無法編輯。',
|
|
10288
|
+
// workspace form
|
|
10152
10289
|
workspace_name_label: '名稱',
|
|
10153
|
-
workspace_name_placeholder: '
|
|
10290
|
+
workspace_name_placeholder: '選填的顯示名稱',
|
|
10154
10291
|
workspace_path_label: '路徑',
|
|
10155
10292
|
workspace_path_required: '工作區路徑為必填',
|
|
10156
|
-
workspace_path_readonly: '
|
|
10293
|
+
workspace_path_readonly: '路徑無法變更,只能重新命名。',
|
|
10157
10294
|
workspace_new_title: '新增工作區',
|
|
10158
|
-
|
|
10159
|
-
// Profile labels
|
|
10295
|
+
// profile form
|
|
10160
10296
|
profile_name_label: '名稱',
|
|
10161
10297
|
profile_base_url_label: 'Base URL',
|
|
10162
10298
|
profile_api_key_label: 'API 金鑰',
|
|
10299
|
+
cmd_yolo: '切換 YOLO 模式(略過核准)',
|
|
10300
|
+
yolo_no_session: '無活動工作階段',
|
|
10301
|
+
yolo_enabled: '⚡ YOLO 模式已開啟,將略過所有核准',
|
|
10302
|
+
yolo_disabled: 'YOLO 模式已關閉',
|
|
10303
|
+
yolo_pill_label: 'YOLO',
|
|
10304
|
+
yolo_pill_title_active: 'YOLO 模式已啟用,點選即可關閉',
|
|
10305
|
+
approval_skip_all: '⚡ 本次工作階段全部跳過',
|
|
10306
|
+
approval_skip_all_title: '略過本次工作階段的所有核准提示',
|
|
10307
|
+
// composer action tooltips
|
|
10308
|
+
composer_send: '傳送訊息',
|
|
10309
|
+
composer_queue: '訊息加入佇列',
|
|
10310
|
+
composer_interrupt: '中斷並傳送',
|
|
10311
|
+
composer_steer: '引導目前回應',
|
|
10312
|
+
composer_stop: '停止產生',
|
|
10313
|
+
composer_disabled_clarify: '請回覆上方的澄清要求',
|
|
10314
|
+
composer_disabled_compression: '等待壓縮完成',
|
|
10315
|
+
composer_disabled_empty: '請輸入訊息後傳送',
|
|
10316
|
+
composer_mobile_workspace: '工作區',
|
|
10317
|
+
composer_mobile_model: '模型',
|
|
10318
|
+
composer_mobile_reasoning: '推理',
|
|
10319
|
+
composer_mobile_context: '脈絡',
|
|
10163
10320
|
media_audio_label: '音訊',
|
|
10164
10321
|
media_svg_label: '圖表',
|
|
10165
10322
|
media_video_label: '影片',
|
|
10323
|
+
media_download: '下載',
|
|
10166
10324
|
csv_loading: '載入 CSV',
|
|
10167
10325
|
csv_too_large: 'CSV 檔案過大,無法內嵌渲染',
|
|
10168
10326
|
csv_no_data: 'CSV 檔案資料不足,無法渲染為表格',
|
|
@@ -10177,99 +10335,23 @@ const LOCALES = {
|
|
|
10177
10335
|
excalidraw_empty: '空圖表',
|
|
10178
10336
|
excalidraw_render_error: '渲染圖表失敗',
|
|
10179
10337
|
excalidraw_simplified: '簡化 SVG 預覽 — 與 Excalidraw 畫布不完全相同',
|
|
10180
|
-
|
|
10181
|
-
|
|
10182
|
-
|
|
10183
|
-
|
|
10184
|
-
|
|
10185
|
-
|
|
10186
|
-
|
|
10187
|
-
|
|
10188
|
-
|
|
10189
|
-
|
|
10190
|
-
|
|
10191
|
-
|
|
10192
|
-
|
|
10193
|
-
|
|
10194
|
-
|
|
10195
|
-
|
|
10196
|
-
settings_desc_tts_auto_read: '自動朗讀助手回覆',
|
|
10197
|
-
// Composer voice-mode pref (#1488)
|
|
10198
|
-
settings_label_voice_mode: 'Hands-free voice mode button', // TODO: translate
|
|
10199
|
-
settings_desc_voice_mode: 'Show the voice-mode button (audio waveform) next to the dictation mic. Lets you speak naturally — Hermes auto-sends after a pause and reads replies aloud. Requires a browser that supports both speech recognition and TTS.',
|
|
10200
|
-
settings_label_raw_audio: 'Send raw audio instead of transcribing',
|
|
10201
|
-
settings_desc_raw_audio: 'Record and send the original audio file to the agent instead of converting it to text first. The agent can then transcribe it or process the raw audio (emotion, background noise, custom STT). Like Telegram\'s voice message behavior.',
|
|
10202
|
-
voice_send_raw: 'Send raw audio',
|
|
10203
|
-
voice_raw_attached: 'Audio attached. Press Send or type more.', // TODO: translate
|
|
10204
|
-
settings_label_tts_voice: '語音',
|
|
10205
|
-
settings_desc_tts_voice: '選擇語音合成聲音',
|
|
10206
|
-
settings_label_tts_rate: '語速',
|
|
10207
|
-
settings_label_tts_pitch: '音調',
|
|
10338
|
+
// ── Checkpoints / Rollback ──
|
|
10339
|
+
checkpoint_title: '檢查點',
|
|
10340
|
+
checkpoint_empty: '此工作區沒有檢查點。',
|
|
10341
|
+
checkpoint_loading: '正在載入檢查點…',
|
|
10342
|
+
checkpoint_error: '載入檢查點失敗',
|
|
10343
|
+
checkpoint_date: '日期',
|
|
10344
|
+
checkpoint_message: '訊息',
|
|
10345
|
+
checkpoint_files: '檔案',
|
|
10346
|
+
checkpoint_view_diff: '檢視差異',
|
|
10347
|
+
checkpoint_restore: '還原',
|
|
10348
|
+
checkpoint_restore_confirm_title: '要還原檢查點嗎?',
|
|
10349
|
+
checkpoint_restore_confirm_message: (ckpt) => `要將工作區還原到檢查點「${ckpt}」嗎?這會用已儲存版本覆寫檔案。此檢查點之後新增的檔案不會被刪除。`,
|
|
10350
|
+
checkpoint_restored: '已還原檢查點',
|
|
10351
|
+
checkpoint_diff_title: '檢查點中的變更',
|
|
10352
|
+
checkpoint_diff_no_changes: '這個檢查點與目前工作區沒有差異。',
|
|
10353
|
+
checkpoint_diff_files_changed: (n) => `已變更 ${n} 個檔案`,
|
|
10208
10354
|
|
|
10209
|
-
checkpoint_date: 'Date', // TODO: translate
|
|
10210
|
-
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
10211
|
-
checkpoint_diff_no_changes: 'No differences found between this checkpoint and the current workspace.', // TODO: translate
|
|
10212
|
-
checkpoint_diff_title: 'Changes in checkpoint', // TODO: translate
|
|
10213
|
-
checkpoint_empty: 'No checkpoints found for this workspace.', // TODO: translate
|
|
10214
|
-
checkpoint_error: 'Failed to load checkpoints', // TODO: translate
|
|
10215
|
-
checkpoint_files: 'Files', // TODO: translate
|
|
10216
|
-
checkpoint_loading: 'Loading checkpoints…', // TODO: translate
|
|
10217
|
-
checkpoint_message: 'Message', // TODO: translate
|
|
10218
|
-
checkpoint_restore: 'Restore', // TODO: translate
|
|
10219
|
-
checkpoint_restore_confirm_message: (ckpt) => `Restore workspace to checkpoint "${ckpt}"? This will overwrite files with the saved versions. Files added after this checkpoint will not be deleted.`, // TODO: translate
|
|
10220
|
-
checkpoint_restore_confirm_title: 'Restore checkpoint?', // TODO: translate
|
|
10221
|
-
checkpoint_restored: 'Checkpoint restored', // TODO: translate
|
|
10222
|
-
checkpoint_title: 'Checkpoints', // TODO: translate
|
|
10223
|
-
checkpoint_view_diff: 'View diff', // TODO: translate
|
|
10224
|
-
insights_activity_by_day: 'Activity by Day', // TODO: translate
|
|
10225
|
-
insights_activity_by_hour: 'Activity by Hour', // TODO: translate
|
|
10226
|
-
insights_cost: 'Estimated Cost', // TODO: translate
|
|
10227
|
-
insights_daily_tokens: 'Daily Tokens',
|
|
10228
|
-
insights_model_name: 'Model',
|
|
10229
|
-
insights_model_sessions: 'Sessions',
|
|
10230
|
-
insights_model_tokens: 'Tokens',
|
|
10231
|
-
insights_model_cost: 'Cost',
|
|
10232
|
-
insights_model_share: 'Share',
|
|
10233
|
-
insights_no_usage_data: 'No usage data yet',
|
|
10234
|
-
insights_footer: 'Showing data from the last {days} days', // TODO: translate
|
|
10235
|
-
insights_skill_usage_title: '技能使用統計',
|
|
10236
|
-
insights_skill_usage_sub: '工具調用頻次',
|
|
10237
|
-
insights_skill_usage_total: '總調用次數',
|
|
10238
|
-
insights_skill_usage_skills_used: '已使用技能',
|
|
10239
|
-
insights_skill_usage_no_data: '暫無技能使用數據',
|
|
10240
|
-
insights_skill_usage_no_data_hint: '在會話中使用技能後,數據將在此顯示。',
|
|
10241
|
-
insights_skill_usage_footer: '數據來源於 ~/.hermes/skills/',
|
|
10242
|
-
insights_skill_usage_col_skill: 'Skill', // TODO: translate
|
|
10243
|
-
insights_skill_usage_col_uses: 'Uses', // TODO: translate
|
|
10244
|
-
insights_skill_usage_col_views: 'Views', // TODO: translate
|
|
10245
|
-
insights_skill_usage_col_share: 'Usage %', // TODO: translate
|
|
10246
|
-
insights_skill_usage_col_patches: 'Patches', // TODO: translate
|
|
10247
|
-
insights_input_tokens: 'Input', // TODO: translate
|
|
10248
|
-
insights_messages: 'Messages', // TODO: translate
|
|
10249
|
-
insights_models: 'Models', // TODO: translate
|
|
10250
|
-
insights_no_cost: 'N/A', // TODO: translate
|
|
10251
|
-
insights_output_tokens: 'Output', // TODO: translate
|
|
10252
|
-
insights_peak_hour: 'Peak: {hour}', // TODO: translate
|
|
10253
|
-
insights_sessions: 'Sessions', // TODO: translate
|
|
10254
|
-
insights_title: 'Usage Analytics', // TODO: translate
|
|
10255
|
-
insights_token_breakdown: 'Token Breakdown', // TODO: translate
|
|
10256
|
-
insights_tokens: 'Tokens', // TODO: translate
|
|
10257
|
-
insights_total: 'Total', // TODO: translate
|
|
10258
|
-
settings_desc_api_redact: 'Self-hosted users can disable for transparency (not recommended for shared instances).', // TODO: translate
|
|
10259
|
-
settings_label_api_redact: 'Redact sensitive data in API responses', // TODO: translate
|
|
10260
|
-
voice_error: 'Voice not supported in this browser', // TODO: translate
|
|
10261
|
-
voice_listening: 'Listening…', // TODO: translate
|
|
10262
|
-
voice_mode_active: 'Voice mode on', // TODO: translate
|
|
10263
|
-
voice_mode_off: 'Voice mode off', // TODO: translate
|
|
10264
|
-
voice_speaking: 'Speaking…', // TODO: translate
|
|
10265
|
-
voice_thinking: 'Thinking…', // TODO: translate
|
|
10266
|
-
// Composer voice buttons (#1488)
|
|
10267
|
-
voice_dictate: 'Dictate', // TODO: translate
|
|
10268
|
-
voice_dictate_active: 'Stop dictation',
|
|
10269
|
-
voice_recording_active: '停止錄音', // TODO: translate
|
|
10270
|
-
voice_mode_toggle: 'Voice mode', // TODO: translate
|
|
10271
|
-
voice_mode_toggle_active: 'Exit voice mode', // TODO: translate
|
|
10272
|
-
subagent_children: 'Subagent sessions', // TODO: translate
|
|
10273
10355
|
},
|
|
10274
10356
|
|
|
10275
10357
|
pt: {
|
|
@@ -10582,6 +10664,11 @@ const LOCALES = {
|
|
|
10582
10664
|
path_copy_failed: 'Falha ao copiar caminho: ',
|
|
10583
10665
|
session_rename: 'Renomear conversa',
|
|
10584
10666
|
session_rename_desc: 'Editar o título desta conversa',
|
|
10667
|
+
session_title_regenerate: 'Regenerar título',
|
|
10668
|
+
session_title_regenerate_desc: 'Peça ao Hermes para gerar um novo título a partir da conversa',
|
|
10669
|
+
session_title_regenerating: 'Regenerando título…',
|
|
10670
|
+
session_title_regenerated: (title) => `Título regenerado: ${title}`,
|
|
10671
|
+
session_title_regenerate_failed: 'Falha ao regenerar o título: ',
|
|
10585
10672
|
session_copy_link: 'Copiar link da conversa',
|
|
10586
10673
|
session_copy_link_desc: 'Copia um link direto para esta conversa',
|
|
10587
10674
|
session_link_copied: 'Link da conversa copiado para a área de transferência',
|
|
@@ -10601,6 +10688,8 @@ const LOCALES = {
|
|
|
10601
10688
|
empty_dir: '(vazio)',
|
|
10602
10689
|
upload_failed: 'Falha ao upload: ',
|
|
10603
10690
|
upload_too_large: (maxMb, fileMb) => `O arquivo é grande demais (${fileMb} MB). O tamanho máximo de upload é ${maxMb} MB.`,
|
|
10691
|
+
uploading: 'Enviando…',
|
|
10692
|
+
uploaded: 'Enviado',
|
|
10604
10693
|
all_uploads_failed: (n) => `Todos ${n} upload(s) falharam`,
|
|
10605
10694
|
session_pin: 'Fixar conversa',
|
|
10606
10695
|
session_unpin: 'Desfixar conversa',
|
|
@@ -10696,6 +10785,7 @@ const LOCALES = {
|
|
|
10696
10785
|
settings_tab_preferences: 'Preferências',
|
|
10697
10786
|
settings_tab_plugins: 'Plugins',
|
|
10698
10787
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
10788
|
+
plugins_enable_toggle: 'Ativar',
|
|
10699
10789
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
10700
10790
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
10701
10791
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -11341,6 +11431,8 @@ const LOCALES = {
|
|
|
11341
11431
|
settings_desc_tts_voice: 'Selecionar voz para síntese de voz',
|
|
11342
11432
|
settings_label_tts_rate: 'Velocidade da fala',
|
|
11343
11433
|
settings_label_tts_pitch: 'Tom da fala',
|
|
11434
|
+
settings_label_tts_engine: 'Motor TTS',
|
|
11435
|
+
settings_desc_tts_engine: 'Escolha o mecanismo de fala. Edge TTS usa vozes neurais da Microsoft através do servidor.',
|
|
11344
11436
|
checkpoint_date: 'Date', // TODO: translate
|
|
11345
11437
|
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
11346
11438
|
checkpoint_diff_no_changes: 'No differences found between this checkpoint and the current workspace.', // TODO: translate
|
|
@@ -11792,6 +11884,11 @@ const LOCALES = {
|
|
|
11792
11884
|
path_copy_failed: '경로 복사 실패: ',
|
|
11793
11885
|
session_rename: '대화 이름 변경',
|
|
11794
11886
|
session_rename_desc: '이 대화의 제목 편집',
|
|
11887
|
+
session_title_regenerate: '제목 다시 생성',
|
|
11888
|
+
session_title_regenerate_desc: 'Hermes에게 대화에서 새 제목을 생성하도록 요청합니다',
|
|
11889
|
+
session_title_regenerating: '제목 다시 생성 중…',
|
|
11890
|
+
session_title_regenerated: (title) => `제목이 다시 생성됨: ${title}`,
|
|
11891
|
+
session_title_regenerate_failed: '제목 다시 생성 실패: ',
|
|
11795
11892
|
session_copy_link: '대화 링크 복사',
|
|
11796
11893
|
session_copy_link_desc: '이 대화로 바로 가는 링크 복사',
|
|
11797
11894
|
session_link_copied: '대화 링크가 클립보드에 복사되었습니다',
|
|
@@ -11812,6 +11909,8 @@ const LOCALES = {
|
|
|
11812
11909
|
empty_dir: '(비어 있음)',
|
|
11813
11910
|
upload_failed: 'Upload failed: ',
|
|
11814
11911
|
upload_too_large: (maxMb, fileMb) => `File is too large (${fileMb} MB). Maximum upload size is ${maxMb} MB.`,
|
|
11912
|
+
uploading: 'Uploading…',
|
|
11913
|
+
uploaded: 'Uploaded',
|
|
11815
11914
|
all_uploads_failed: (n) => `All ${n} upload(s) failed`,
|
|
11816
11915
|
session_pin: 'Pin conversation',
|
|
11817
11916
|
session_unpin: 'Unpin conversation',
|
|
@@ -11911,6 +12010,7 @@ const LOCALES = {
|
|
|
11911
12010
|
settings_tab_preferences: '환경설정',
|
|
11912
12011
|
settings_tab_plugins: '플러그인',
|
|
11913
12012
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
12013
|
+
plugins_enable_toggle: '활성화',
|
|
11914
12014
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
11915
12015
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
11916
12016
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -12607,6 +12707,7 @@ const LOCALES = {
|
|
|
12607
12707
|
media_audio_label: '오디오',
|
|
12608
12708
|
media_svg_label: '다이어그램',
|
|
12609
12709
|
media_video_label: '비디오',
|
|
12710
|
+
media_download: '다운로드',
|
|
12610
12711
|
csv_loading: 'CSV 로딩 중',
|
|
12611
12712
|
csv_too_large: 'CSV 파일이 너무 커서 인라인 렌더링할 수 없습니다',
|
|
12612
12713
|
csv_no_data: 'CSV 파일에 표시할 데이터가 부족합니다',
|
|
@@ -12639,6 +12740,8 @@ const LOCALES = {
|
|
|
12639
12740
|
settings_desc_tts_voice: '음성 합성 음성 선택',
|
|
12640
12741
|
settings_label_tts_rate: '말 속도',
|
|
12641
12742
|
settings_label_tts_pitch: '말 톤',
|
|
12743
|
+
settings_label_tts_engine: 'TTS 엔진',
|
|
12744
|
+
settings_desc_tts_engine: '음성 엔진을 선택하세요. Edge TTS는 서버를 통해 Microsoft 신경 음성을 사용합니다.',
|
|
12642
12745
|
checkpoint_date: 'Date', // TODO: translate
|
|
12643
12746
|
checkpoint_diff_files_changed: (n) => `${n} file${n === 1 ? '' : 's'} changed`, // TODO: translate
|
|
12644
12747
|
checkpoint_diff_no_changes: 'No differences found between this checkpoint and the current workspace.', // TODO: translate
|
|
@@ -12923,6 +13026,7 @@ const LOCALES = {
|
|
|
12923
13026
|
theme_usage: 'Utilisation : /theme ',
|
|
12924
13027
|
theme_set: 'Thème:',
|
|
12925
13028
|
no_active_session: 'Aucune session active',
|
|
13029
|
+
provider_mismatch_warning: (m,p)=>`«\u00a0${m}\u00a0» pourrait ne pas fonctionner avec votre fournisseur configuré (${p}). Envoyez quand même, ou exécutez \`hermes model\` dans votre terminal pour changer.`,
|
|
12926
13030
|
cmd_queue: 'Mettre un message en file d\'attente pour le prochain tour',
|
|
12927
13031
|
cmd_goal: 'Définir ou inspecter un objectif persistant',
|
|
12928
13032
|
goal_evaluating_progress: 'Évaluer la progression des objectifs…',
|
|
@@ -13032,6 +13136,11 @@ const LOCALES = {
|
|
|
13032
13136
|
path_copy_failed: 'Échec de la copie du chemin :',
|
|
13033
13137
|
session_rename: 'Renommer la conversation',
|
|
13034
13138
|
session_rename_desc: 'Modifier le titre de cette conversation',
|
|
13139
|
+
session_title_regenerate: 'Régénérer le titre',
|
|
13140
|
+
session_title_regenerate_desc: 'Demander à Hermes de générer un nouveau titre à partir de la conversation',
|
|
13141
|
+
session_title_regenerating: 'Régénération du titre…',
|
|
13142
|
+
session_title_regenerated: (title) => `Titre régénéré : ${title}`,
|
|
13143
|
+
session_title_regenerate_failed: 'Échec de la régénération du titre : ',
|
|
13035
13144
|
session_copy_link: 'Copier le lien de conversation',
|
|
13036
13145
|
session_copy_link_desc: 'Copier un lien direct vers cette conversation',
|
|
13037
13146
|
session_link_copied: 'Lien de conversation copié dans le presse-papiers',
|
|
@@ -13045,7 +13154,9 @@ const LOCALES = {
|
|
|
13045
13154
|
folder_create_failed: 'Échec de la création du dossier :',
|
|
13046
13155
|
remove_title: 'Retirer',
|
|
13047
13156
|
empty_dir: '(vide)',
|
|
13048
|
-
upload_failed: 'Échec du téléchargement
|
|
13157
|
+
upload_failed: 'Échec du téléchargement :',
|
|
13158
|
+
uploading: 'Téléversement…',
|
|
13159
|
+
uploaded: 'Téléversé',
|
|
13049
13160
|
session_pin: 'Épingler la conversation',
|
|
13050
13161
|
session_unpin: 'Désépingler la conversation',
|
|
13051
13162
|
session_pin_desc: 'Gardez cette conversation en haut',
|
|
@@ -13140,6 +13251,7 @@ const LOCALES = {
|
|
|
13140
13251
|
settings_tab_preferences: 'Préférences',
|
|
13141
13252
|
settings_tab_plugins: 'Plugins',
|
|
13142
13253
|
settings_plugins_title: 'Plugins', // TODO: translate
|
|
13254
|
+
plugins_enable_toggle: 'Activer',
|
|
13143
13255
|
settings_plugins_meta: 'View installed Hermes plugins and the lifecycle hooks they register. This panel is read-only.', // TODO: translate
|
|
13144
13256
|
settings_plugins_empty: 'No Hermes plugins are currently visible. Install or enable plugins from the Hermes CLI/config to see them here.', // TODO: translate
|
|
13145
13257
|
plugins_unnamed: 'Unnamed plugin', // TODO: translate
|
|
@@ -13397,6 +13509,8 @@ const LOCALES = {
|
|
|
13397
13509
|
settings_desc_tts_voice: 'Voix préférée. Rempli à partir des voix disponibles dans votre navigateur.',
|
|
13398
13510
|
settings_label_tts_rate: 'Taux de parole',
|
|
13399
13511
|
settings_label_tts_pitch: 'Emplacement du discours',
|
|
13512
|
+
settings_label_tts_engine: 'Moteur TTS',
|
|
13513
|
+
settings_desc_tts_engine: 'Choisissez le moteur de synthèse vocale. Edge TTS utilise les voix neuronales Microsoft via le serveur.',
|
|
13400
13514
|
settings_label_notifications: 'Notifications du navigateur',
|
|
13401
13515
|
settings_desc_notifications: 'Afficher une notification système lorsqu\'une réponse est terminée alors que l\'application est en arrière-plan.',
|
|
13402
13516
|
settings_desc_token_usage: 'Affiche le nombre de jetons d’entrée/sortie sous chaque réponse de l’assistant. Également basculé avec /usage.',
|
|
@@ -13822,6 +13936,7 @@ const LOCALES = {
|
|
|
13822
13936
|
media_audio_label: 'Audio',
|
|
13823
13937
|
media_svg_label: 'Diagramme',
|
|
13824
13938
|
media_video_label: 'Vidéo',
|
|
13939
|
+
media_download: 'Télécharger',
|
|
13825
13940
|
csv_loading: 'Chargement du fichier CSV',
|
|
13826
13941
|
csv_too_large: 'Fichier CSV trop volumineux pour le rendu en ligne',
|
|
13827
13942
|
csv_no_data: 'Le fichier CSV ne contient pas suffisamment de données pour être affiché sous forme de tableau',
|
|
@@ -14352,6 +14467,11 @@ const LOCALES = {
|
|
|
14352
14467
|
path_copy_failed: 'Yol kopyalanamadı:',
|
|
14353
14468
|
session_rename: 'Konuşmayı yeniden adlandır',
|
|
14354
14469
|
session_rename_desc: 'Bu görüşmenin başlığını düzenleyin',
|
|
14470
|
+
session_title_regenerate: 'Başlığı yeniden oluştur',
|
|
14471
|
+
session_title_regenerate_desc: 'Hermes\'ten görüşmeden yeni bir başlık oluşturmasını iste',
|
|
14472
|
+
session_title_regenerating: 'Başlık yeniden oluşturuluyor…',
|
|
14473
|
+
session_title_regenerated: (title) => `Başlık yeniden oluşturuldu: ${title}`,
|
|
14474
|
+
session_title_regenerate_failed: 'Başlık yeniden oluşturma başarısız: ',
|
|
14355
14475
|
session_copy_link: 'Konuşma bağlantısını kopyala',
|
|
14356
14476
|
session_copy_link_desc: 'Bu konuşmaya doğrudan bağlantı kopyala',
|
|
14357
14477
|
session_link_copied: 'Konuşma bağlantısı panoya kopyalandı',
|
|
@@ -14372,6 +14492,8 @@ const LOCALES = {
|
|
|
14372
14492
|
empty_dir: '(boş)',
|
|
14373
14493
|
upload_failed: 'Yükleme başarısız oldu:',
|
|
14374
14494
|
upload_too_large: (maxMb, fileMb) => `Dosya çok büyük (${fileMb} MB). Maksimum yükleme boyutu ${maxMb} MB'tır.`,
|
|
14495
|
+
uploading: 'Yükleniyor…',
|
|
14496
|
+
uploaded: 'Yüklendi',
|
|
14375
14497
|
all_uploads_failed: (n) => `${n} yüklemenin tümü başarısız oldu`,
|
|
14376
14498
|
session_pin: 'Görüşmeyi sabitle',
|
|
14377
14499
|
session_unpin: 'Görüşmenin sabitlemesini kaldır',
|
|
@@ -14471,6 +14593,7 @@ const LOCALES = {
|
|
|
14471
14593
|
settings_tab_preferences: 'Tercihler',
|
|
14472
14594
|
settings_tab_plugins: 'Eklentiler',
|
|
14473
14595
|
settings_plugins_title: 'Eklentiler',
|
|
14596
|
+
plugins_enable_toggle: 'Etkinleştir',
|
|
14474
14597
|
settings_plugins_meta: 'Yüklü Hermes eklentilerini ve yaşam döngüsü kancalarını görüntüleyin. Bu panel salt okunurdur.',
|
|
14475
14598
|
settings_plugins_empty: 'Görünür Hermes eklentisi yok. Burada görmek için Hermes CLI/config üzerinden yükleyin veya etkinleştirin.',
|
|
14476
14599
|
plugins_unnamed: 'Adsız eklenti',
|
|
@@ -15165,6 +15288,7 @@ const LOCALES = {
|
|
|
15165
15288
|
media_audio_label: 'Ses',
|
|
15166
15289
|
media_svg_label: 'Diyagram',
|
|
15167
15290
|
media_video_label: 'Video',
|
|
15291
|
+
media_download: 'İndir',
|
|
15168
15292
|
csv_loading: 'CSV yükleniyor',
|
|
15169
15293
|
csv_too_large: 'CSV dosyası satır içi oluşturma için çok büyük',
|
|
15170
15294
|
csv_no_data: 'CSV dosyasında tablo olarak oluşturmak için yeterli veri yok',
|
|
@@ -15197,6 +15321,8 @@ const LOCALES = {
|
|
|
15197
15321
|
settings_desc_tts_voice: 'Ses sentezi sesini seçin',
|
|
15198
15322
|
settings_label_tts_rate: 'Konuşma hızı',
|
|
15199
15323
|
settings_label_tts_pitch: 'Konuşma perdesi',
|
|
15324
|
+
settings_label_tts_engine: 'TTS Motoru',
|
|
15325
|
+
settings_desc_tts_engine: 'Ses motorunu seçin. Edge TTS, sunucu üzerinden Microsoft sinirsel seslerini kullanır.',
|
|
15200
15326
|
checkpoint_date: 'Tarih',
|
|
15201
15327
|
checkpoint_diff_files_changed: (n) => `${n} dosya değişti`,
|
|
15202
15328
|
checkpoint_diff_no_changes: 'Bu kontrol noktası ile mevcut çalışma alanı arasında fark bulunamadı.',
|