@deepseek-ai/dsh-experimental-client-ui-voice-input 0.2.1-rc.4 → 0.2.2-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +2 -2
- package/README.md +2 -0
- package/README.zh.md +2 -0
- package/lib/client.js +749 -17
- package/lib/types/client/VoiceInput.d.ts +3 -1
- package/lib/types/client/VoiceSetupDialog.d.ts +3 -1
- package/lib/types/client/locales.d.ts +707 -0
- package/locale/de.json +6 -0
- package/locale/es.json +6 -0
- package/locale/fr.json +6 -0
- package/locale/ja.json +6 -0
- package/locale/pt.json +6 -0
- package/locale/ru.json +6 -0
- package/package.json +19 -19
package/lib/client.js
CHANGED
|
@@ -5,10 +5,10 @@ window.__ModuleLoader__.load({
|
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
7
|
let zod = require("zod");
|
|
8
|
+
let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
|
|
8
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
10
|
let react = require("react");
|
|
10
11
|
let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
11
|
-
let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
|
|
12
12
|
let _deepseek_ai_dsh_api_gateway_client = require("@deepseek-ai/dsh-api-gateway/client");
|
|
13
13
|
//#region ../../typert/protocol/src/remote-info.ts
|
|
14
14
|
/**
|
|
@@ -281,8 +281,8 @@ window.__ModuleLoader__.load({
|
|
|
281
281
|
zod.z.literal("network"),
|
|
282
282
|
zod.z.literal("storage"),
|
|
283
283
|
zod.z.literal("unknown"),
|
|
284
|
-
zod.z.literal("dns"),
|
|
285
284
|
zod.z.literal("timeout"),
|
|
285
|
+
zod.z.literal("dns"),
|
|
286
286
|
zod.z.literal("certificate"),
|
|
287
287
|
zod.z.literal("http"),
|
|
288
288
|
zod.z.literal("integrity")
|
|
@@ -451,8 +451,8 @@ window.__ModuleLoader__.load({
|
|
|
451
451
|
zod.z.literal("network"),
|
|
452
452
|
zod.z.literal("storage"),
|
|
453
453
|
zod.z.literal("unknown"),
|
|
454
|
-
zod.z.literal("dns"),
|
|
455
454
|
zod.z.literal("timeout"),
|
|
455
|
+
zod.z.literal("dns"),
|
|
456
456
|
zod.z.literal("certificate"),
|
|
457
457
|
zod.z.literal("http"),
|
|
458
458
|
zod.z.literal("integrity")
|
|
@@ -789,8 +789,8 @@ window.__ModuleLoader__.load({
|
|
|
789
789
|
"network",
|
|
790
790
|
"storage",
|
|
791
791
|
"unknown",
|
|
792
|
-
"dns",
|
|
793
792
|
"timeout",
|
|
793
|
+
"dns",
|
|
794
794
|
"certificate",
|
|
795
795
|
"http",
|
|
796
796
|
"integrity"
|
|
@@ -1186,8 +1186,8 @@ window.__ModuleLoader__.load({
|
|
|
1186
1186
|
"network",
|
|
1187
1187
|
"storage",
|
|
1188
1188
|
"unknown",
|
|
1189
|
-
"dns",
|
|
1190
1189
|
"timeout",
|
|
1190
|
+
"dns",
|
|
1191
1191
|
"certificate",
|
|
1192
1192
|
"http",
|
|
1193
1193
|
"integrity"
|
|
@@ -1703,7 +1703,7 @@ window.__ModuleLoader__.load({
|
|
|
1703
1703
|
}
|
|
1704
1704
|
//#endregion
|
|
1705
1705
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/experimental/client-ui-voice-input/src/client/VoiceInput.module.css.mjs
|
|
1706
|
-
const css = ".ddpbLW_trigger{flex:none;width:28px;padding:0}.ddpbLW_triggerAnchor{flex:none;display:inline-flex}.ddpbLW_captureRow{align-items:center;gap:12px;width:100%;min-width:0;min-height:34px;display:flex}.ddpbLW_roundButton{corner-shape:round;background:var(--dsw-specific-selector);border-radius:50%;flex:none;width:32px;height:32px;padding:0}.ddpbLW_roundButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.ddpbLW_waveform{width:0;min-width:24px;height:24px;color:var(--dsw-alias-label-secondary);flex:1;display:block}.ddpbLW_activityMessage{min-width:0;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;font-size:12px;display:flex;overflow:hidden}.ddpbLW_inlineAction{flex:none}.ddpbLW_preparation{border:.5px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;gap:10px;margin:12px 0;padding:14px;font-size:13px;display:flex}.ddpbLW_preparation p{margin:0}.ddpbLW_preparationActions{gap:8px;display:flex}.ddpbLW_preparationActions:empty{display:none}.ddpbLW_preparationError{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;font-size:12px}.ddpbLW_downloadFailure{overflow-wrap:anywhere;gap:6px;display:grid}.ddpbLW_summaryRow{flex-wrap:wrap;gap:4px;height:auto;min-height:28px}.ddpbLW_summaryTitle{flex:1;min-width:0}.ddpbLW_metric{color:var(--dsw-alias-label-tertiary);font-size:12px}.ddpbLW_progress{width:100%;height:6px;accent-color:var(--dsw-alias-state-business-primary)}.ddpbLW_steps{flex-direction:column;gap:14px;margin:0;padding:16px 0 2px;list-style:none;display:flex}.ddpbLW_steps li{align-items:flex-start;gap:10px;line-height:18px;display:flex}.ddpbLW_steps li>:first-child{margin-top:1px}.ddpbLW_steps li[data-step-state=pending]{color:var(--dsw-alias-label-tertiary)}.ddpbLW_stepBody{flex:1;min-width:0}.ddpbLW_stepProgress{flex-direction:column;gap:6px;margin-top:6px;display:flex}.ddpbLW_stepProgress small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:11px}.ddpbLW_preferences{gap:12px;margin:18px 0;font-size:13px;display:grid}.ddpbLW_deviceRow,.ddpbLW_preferences label,.ddpbLW_sourceChoice label{grid-template-columns:100px minmax(120px,280px);align-items:center;gap:12px;display:grid}.ddpbLW_preferences select,.ddpbLW_sourceChoice select{border:.5px solid var(--dsw-alias-border-l1);color:inherit;font:inherit;background:0 0;border-radius:6px;padding:6px 10px}.ddpbLW_sourceChoice{gap:6px;display:grid}.ddpbLW_preferences p{margin:0}.ddpbLW_settingsCard{border:.5px solid var(--dsw-alias-border-l1);border-radius:10px;padding:16px;list-style:none}.ddpbLW_settingsCard>p{color:var(--dsw-alias-label-secondary);margin:8px 0 0;font-size:13px}.ddpbLW_setupEstimate{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;gap:10px;padding:12px;line-height:1.6;display:grid}.ddpbLW_setupEstimate dl{gap:6px;margin:0;display:grid}.ddpbLW_setupEstimate dl>div{grid-template-columns:72px minmax(0,1fr);gap:10px;display:grid}.ddpbLW_setupEstimate dt{color:var(--dsw-alias-label-tertiary)}.ddpbLW_setupEstimate dd{margin:0}.ddpbLW_setupEstimate small{color:var(--dsw-alias-label-tertiary);font-size:12px}.ddpbLW_deviceField{min-width:0;display:block;position:relative}.ddpbLW_deviceField select{width:100%}.ddpbLW_deviceField select.ddpbLW_deviceSelectMeter{padding-right:72px}.ddpbLW_deviceMeter{pointer-events:none;display:inline-flex;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.ddpbLW_deviceError{min-width:0;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;grid-column:2;font-size:12px}.ddpbLW_inputLevel{flex:none;align-items:center;gap:3px;display:inline-flex}.ddpbLW_inputLevel>span{background:var(--dsw-alias-border-l1);border-radius:1px;width:3px;height:12px}.ddpbLW_inputLevel>span[data-active=true]{background:var(--dsw-alias-state-success-primary)}@media (width<=480px){.ddpbLW_deviceRow,.ddpbLW_preferences label,.ddpbLW_sourceChoice label{grid-template-columns:minmax(0,1fr);gap:6px}.ddpbLW_deviceError{grid-column:1}}";
|
|
1706
|
+
const css = ".ddpbLW_trigger{flex:none;width:28px;padding:0}.ddpbLW_triggerAnchor{flex:none;display:inline-flex}.ddpbLW_captureRow{align-items:center;gap:12px;width:100%;min-width:0;min-height:34px;display:flex}.ddpbLW_roundButton{corner-shape:round;background:var(--dsw-specific-selector);border-radius:50%;flex:none;width:32px;height:32px;padding:0}@media (hover:hover){.ddpbLW_roundButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}}.ddpbLW_waveform{width:0;min-width:24px;height:24px;color:var(--dsw-alias-label-secondary);flex:1;display:block}.ddpbLW_activityMessage{min-width:0;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;font-size:12px;display:flex;overflow:hidden}.ddpbLW_inlineAction{flex:none}.ddpbLW_preparation{border:.5px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;gap:10px;margin:12px 0;padding:14px;font-size:13px;display:flex}.ddpbLW_preparation p{margin:0}.ddpbLW_preparationActions{gap:8px;display:flex}.ddpbLW_preparationActions:empty{display:none}.ddpbLW_preparationError{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;font-size:12px}.ddpbLW_downloadFailure{overflow-wrap:anywhere;gap:6px;display:grid}.ddpbLW_summaryRow{flex-wrap:wrap;gap:4px;height:auto;min-height:28px}.ddpbLW_summaryTitle{flex:1;min-width:0}.ddpbLW_metric{color:var(--dsw-alias-label-tertiary);font-size:12px}.ddpbLW_progress{width:100%;height:6px;accent-color:var(--dsw-alias-state-business-primary)}.ddpbLW_steps{flex-direction:column;gap:14px;margin:0;padding:16px 0 2px;list-style:none;display:flex}.ddpbLW_steps li{align-items:flex-start;gap:10px;line-height:18px;display:flex}.ddpbLW_steps li>:first-child{margin-top:1px}.ddpbLW_steps li[data-step-state=pending]{color:var(--dsw-alias-label-tertiary)}.ddpbLW_stepBody{flex:1;min-width:0}.ddpbLW_stepProgress{flex-direction:column;gap:6px;margin-top:6px;display:flex}.ddpbLW_stepProgress small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:11px}.ddpbLW_preferences{gap:12px;margin:18px 0;font-size:13px;display:grid}.ddpbLW_deviceRow,.ddpbLW_preferences label,.ddpbLW_sourceChoice label{grid-template-columns:100px minmax(120px,280px);align-items:center;gap:12px;display:grid}.ddpbLW_preferences select,.ddpbLW_sourceChoice select{border:.5px solid var(--dsw-alias-border-l1);color:inherit;font:inherit;background:0 0;border-radius:6px;padding:6px 10px}.ddpbLW_sourceChoice{gap:6px;display:grid}.ddpbLW_preferences p{margin:0}.ddpbLW_settingsCard{border:.5px solid var(--dsw-alias-border-l1);border-radius:10px;padding:16px;list-style:none}.ddpbLW_settingsCard>p{color:var(--dsw-alias-label-secondary);margin:8px 0 0;font-size:13px}.ddpbLW_setupEstimate{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;gap:10px;padding:12px;line-height:1.6;display:grid}.ddpbLW_setupEstimate dl{gap:6px;margin:0;display:grid}.ddpbLW_setupEstimate dl>div{grid-template-columns:72px minmax(0,1fr);gap:10px;display:grid}.ddpbLW_setupEstimate dt{color:var(--dsw-alias-label-tertiary)}.ddpbLW_setupEstimate dd{margin:0}.ddpbLW_setupEstimate small{color:var(--dsw-alias-label-tertiary);font-size:12px}.ddpbLW_deviceField{min-width:0;display:block;position:relative}.ddpbLW_deviceField select{width:100%}.ddpbLW_deviceField select.ddpbLW_deviceSelectMeter{padding-right:72px}.ddpbLW_deviceMeter{pointer-events:none;display:inline-flex;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.ddpbLW_deviceError{min-width:0;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;grid-column:2;font-size:12px}.ddpbLW_inputLevel{flex:none;align-items:center;gap:3px;display:inline-flex}.ddpbLW_inputLevel>span{background:var(--dsw-alias-border-l1);border-radius:1px;width:3px;height:12px}.ddpbLW_inputLevel>span[data-active=true]{background:var(--dsw-alias-state-success-primary)}@media (width<=480px){.ddpbLW_deviceRow,.ddpbLW_preferences label,.ddpbLW_sourceChoice label{grid-template-columns:minmax(0,1fr);gap:6px}.ddpbLW_deviceError{grid-column:1}}";
|
|
1707
1707
|
const tagId = "@deepseek-ai/dsh-experimental-client-ui-voice-input/VoiceInput.module.css";
|
|
1708
1708
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
1709
1709
|
const tag = document.createElement("style");
|
|
@@ -1811,7 +1811,7 @@ window.__ModuleLoader__.load({
|
|
|
1811
1811
|
variant: "ghost",
|
|
1812
1812
|
onClick: onDismiss,
|
|
1813
1813
|
children: t("setupPrompt.later")
|
|
1814
|
-
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1814
|
+
}), onOpenDetails !== void 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1815
1815
|
variant: "primary",
|
|
1816
1816
|
"data-modal-autofocus": true,
|
|
1817
1817
|
onClick: onOpenDetails,
|
|
@@ -1829,8 +1829,9 @@ window.__ModuleLoader__.load({
|
|
|
1829
1829
|
} catch (_error) {}
|
|
1830
1830
|
}
|
|
1831
1831
|
/** Render a compact microphone or an expanded capture, transcription, or retry row. */
|
|
1832
|
-
function VoiceInput({ sessionId, inputActions, locked, onActiveChange, createRecording, transcribe, openSettings, useSpeechReadiness, t }) {
|
|
1832
|
+
function VoiceInput({ sessionId, inputActions, locked, onActiveChange, createRecording, transcribe, openSettings, useSpeechReadiness, usePluginNavigation, t }) {
|
|
1833
1833
|
const readiness = useSpeechReadiness((value) => value), catalog = readiness.catalog;
|
|
1834
|
+
const navigable = usePluginNavigation((present) => present);
|
|
1834
1835
|
const provider = catalog?.providers.find((item) => item.id === catalog.selection.providerId);
|
|
1835
1836
|
const usable = readiness.connected && (provider?.preparation.phase === "ready" || provider?.preparation.phase === "standby" || provider?.preparation.phase === "waking");
|
|
1836
1837
|
const [phase, setPhase] = (0, react.useState)("idle"), [message, setMessage] = (0, react.useState)(""), [pending, setPending] = (0, react.useState)("");
|
|
@@ -2005,10 +2006,10 @@ window.__ModuleLoader__.load({
|
|
|
2005
2006
|
onDismiss: () => {
|
|
2006
2007
|
setSetupOpen(false);
|
|
2007
2008
|
},
|
|
2008
|
-
onOpenDetails: () => {
|
|
2009
|
+
onOpenDetails: navigable ? () => {
|
|
2009
2010
|
setSetupOpen(false);
|
|
2010
2011
|
openSettings();
|
|
2011
|
-
},
|
|
2012
|
+
} : void 0,
|
|
2012
2013
|
t
|
|
2013
2014
|
})] });
|
|
2014
2015
|
return (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2183,6 +2184,11 @@ window.__ModuleLoader__.load({
|
|
|
2183
2184
|
en: "英语",
|
|
2184
2185
|
yue: "粤语",
|
|
2185
2186
|
ja: "日语",
|
|
2187
|
+
es: "西班牙语",
|
|
2188
|
+
fr: "法语",
|
|
2189
|
+
de: "德语",
|
|
2190
|
+
ru: "俄语",
|
|
2191
|
+
pt: "葡萄牙语",
|
|
2186
2192
|
ko: "韩语",
|
|
2187
2193
|
start: "开始录音",
|
|
2188
2194
|
stop: "停止并识别",
|
|
@@ -2295,6 +2301,11 @@ window.__ModuleLoader__.load({
|
|
|
2295
2301
|
en: "English",
|
|
2296
2302
|
yue: "Cantonese",
|
|
2297
2303
|
ja: "Japanese",
|
|
2304
|
+
es: "Spanish",
|
|
2305
|
+
fr: "French",
|
|
2306
|
+
de: "German",
|
|
2307
|
+
ru: "Russian",
|
|
2308
|
+
pt: "Portuguese",
|
|
2298
2309
|
ko: "Korean",
|
|
2299
2310
|
start: "Start recording",
|
|
2300
2311
|
stop: "Stop and transcribe",
|
|
@@ -2314,6 +2325,708 @@ window.__ModuleLoader__.load({
|
|
|
2314
2325
|
permission: "Microphone access is disabled. Allow it in browser and system settings.",
|
|
2315
2326
|
tooLarge: "The recording exceeds the service limit. Try a shorter recording."
|
|
2316
2327
|
};
|
|
2328
|
+
/** Japanese copy, checked against the English keys. */
|
|
2329
|
+
const ja = {
|
|
2330
|
+
"dictate": "ディクテーション",
|
|
2331
|
+
"setupPrompt.title": "録音前に音声入力を設定してください",
|
|
2332
|
+
"setupPrompt.body": "音声入力が有効です。初回利用時はローカル認識モデルのダウンロードと準備が必要です。プラグインの詳細を開き、セットアップを開始する前にディスク容量、メモリ、所要時間の目安を確認してください。",
|
|
2333
|
+
"setupPrompt.later": "後で",
|
|
2334
|
+
"setupPrompt.open": "セットアップへ",
|
|
2335
|
+
"setupPrompt.trigger": "音声入力のセットアップを開く",
|
|
2336
|
+
"setupPrompt.details": "音声プラグイン設定を開く",
|
|
2337
|
+
"setupPrompt.unavailableTitle": "音声認識の準備ができていません",
|
|
2338
|
+
"setupPrompt.unavailableBody": "音声プラグインの詳細を開き、認識状態、準備の進捗、エラーを確認してください。",
|
|
2339
|
+
"setup.local": "ローカルモデルはDSHを実行しているマシンにダウンロードされます。Pythonやコンパイラは不要です。",
|
|
2340
|
+
"setup.disk": "ディスク容量",
|
|
2341
|
+
"setup.diskValue": "モデル、ランタイム、ダウンロードキャッシュに約{gb} GBを確保してください",
|
|
2342
|
+
"setup.memory": "メモリ",
|
|
2343
|
+
"setup.memoryValue": "モデル読み込み時で約{gb} GB。認識処理ではさらに使用する場合があります",
|
|
2344
|
+
"setup.time": "初回セットアップ",
|
|
2345
|
+
"setup.timeValue": "ネットワークとマシンに応じて、おおよそ{min}〜{max}分かかります",
|
|
2346
|
+
"setup.estimateNote": "これらは目安です。ネットワークが遅い場合はさらに時間がかかることがあります。ダウンロード済みデータは再利用され、アイドル状態のモデルはデフォルトでメモリを解放します。",
|
|
2347
|
+
"step.check": "ローカルリソースを確認",
|
|
2348
|
+
"step.model": "認識モデルを準備",
|
|
2349
|
+
"step.vad": "音声検出モデルを準備",
|
|
2350
|
+
"step.verify": "モデルファイルを検証",
|
|
2351
|
+
"step.load": "{name}を読み込み",
|
|
2352
|
+
"stepStatus.pending": "未開始",
|
|
2353
|
+
"stepStatus.running": "進行中",
|
|
2354
|
+
"stepStatus.complete": "完了",
|
|
2355
|
+
"stepStatus.failed": "失敗",
|
|
2356
|
+
"stepStatus.cancelled": "キャンセル済み",
|
|
2357
|
+
"short.downloading": "ダウンロード中",
|
|
2358
|
+
"short.failed": "セットアップに失敗しました",
|
|
2359
|
+
"retryRecording": "もう一度録音",
|
|
2360
|
+
"preparationSteps": "準備手順",
|
|
2361
|
+
"prepare": "ダウンロードして準備",
|
|
2362
|
+
"retryPrepare": "準備を再試行",
|
|
2363
|
+
"cancelPrepare": "準備をキャンセル",
|
|
2364
|
+
"downloadProgress": "ダウンロード進捗",
|
|
2365
|
+
"downloadBytes": "ダウンロード: {completed} / {total} MB、{percent}%",
|
|
2366
|
+
"downloadUnknown": "{completed} MBダウンロード済み",
|
|
2367
|
+
"elapsed": "{seconds}秒待機中",
|
|
2368
|
+
"preparationFailed": "準備に失敗しました: {message}",
|
|
2369
|
+
"download.network": "{resource}をダウンロードできません: ダウンロードサービスへの接続に失敗しました。",
|
|
2370
|
+
"download.dns": "{resource}をダウンロードできません: ダウンロード先のアドレスを解決できませんでした。",
|
|
2371
|
+
"download.timeout": "{resource}のダウンロードがタイムアウトしました。",
|
|
2372
|
+
"download.certificate": "{resource}をダウンロードできません: 証明書の検証に失敗しました。",
|
|
2373
|
+
"download.http": "{resource}をダウンロードできません: ダウンロードサービスがHTTP {status}を返しました。",
|
|
2374
|
+
"download.integrity": "{resource}のダウンロードが不完全か、検証に失敗しました。",
|
|
2375
|
+
"download.storage": "{resource}を保存できません: ディスク容量不足または書き込み権限がありません。",
|
|
2376
|
+
"download.unknown": "{resource}を準備できませんでした。",
|
|
2377
|
+
"downloadAdvice.network": "DSHを実行しているマシンがダウンロード元とそのモデルダウンロードサービスに到達できることを確認してください。必要に応じてそのマシンでプロキシを設定してから再試行してください。",
|
|
2378
|
+
"downloadAdvice.dns": "DSHを実行しているマシンのDNSとプロキシ設定を確認してください。ダウンロード元ドメインを解決できることを確認してから再試行してください。",
|
|
2379
|
+
"downloadAdvice.timeout": "DSHを実行しているマシンのネットワークまたはプロキシ接続を確認してから、後で再試行してください。検証済みのダウンロード済みファイルは保持されます。",
|
|
2380
|
+
"downloadAdvice.certificate": "DSHを実行しているマシンのシステム時計、信頼された証明書、プロキシ設定を確認してから再試行してください。",
|
|
2381
|
+
"downloadAdvice.http": "ダウンロード先のアドレスが利用可能で、プロキシがダウンロードサービスに到達できることを確認するか、後で再試行してください。",
|
|
2382
|
+
"downloadAdvice.integrity": "ダウンロードを再試行してください。完了かつ検証済みの他のファイルは保持されます。",
|
|
2383
|
+
"downloadAdvice.storage": "DSHを実行しているマシンのモデルディレクトリの空き容量と書き込み権限を確認してから再試行してください。",
|
|
2384
|
+
"downloadAdvice.unknown": "DSHを実行しているマシンのネットワーク、ディスク容量、モデルディレクトリの権限を確認してから再試行してください。",
|
|
2385
|
+
"downloadSource": "ダウンロード元: {source}",
|
|
2386
|
+
"sourceChoice": "モデルのダウンロード元",
|
|
2387
|
+
"sourceAuto": "自動(推奨)",
|
|
2388
|
+
"sourceHuggingFace": "Hugging Face",
|
|
2389
|
+
"sourceMirror": "HF-Mirror(中国ミラー)",
|
|
2390
|
+
"sourceAutoHelp": "最初に応答したダウンロード元を優先し、ダウンロードに失敗した場合は別のダウンロード元を試します。",
|
|
2391
|
+
"sourceManualHelp": "選択したダウンロード元からのみダウンロードします。検証済みのダウンロード済みファイルは再利用されます。",
|
|
2392
|
+
"downloadCode": "エラーコード: {code}",
|
|
2393
|
+
"reconnecting": "音声認識に接続しています…",
|
|
2394
|
+
"preparation.unprepared": "初回利用時にローカル認識モデルをダウンロードします。",
|
|
2395
|
+
"preparation.checking": "ローカルリソースを確認しています…",
|
|
2396
|
+
"preparation.loading": "{name}を読み込んでいます…",
|
|
2397
|
+
"preparation.waking": "ローカル音声認識を起動中…",
|
|
2398
|
+
"preparation.ready": "ローカル音声認識の準備ができました。",
|
|
2399
|
+
"preparation.standby": "ローカルリソースの準備が完了しました。録音を開始すると認識エンジンが起動します。",
|
|
2400
|
+
"preparation.cancelled": "準備をキャンセルしました。完了済みのダウンロードは保持されます。",
|
|
2401
|
+
"preparation.cancelling": "準備をキャンセル中…",
|
|
2402
|
+
"cloudReady": "クラウド音声認識の準備ができました。",
|
|
2403
|
+
"discard": "文字起こしを破棄",
|
|
2404
|
+
"transcribingShort": "文字起こし中…",
|
|
2405
|
+
"wakingShort": "起動中…",
|
|
2406
|
+
"provider": "認識サービス",
|
|
2407
|
+
"language": "認識言語",
|
|
2408
|
+
"inputDevice": "入力デバイス",
|
|
2409
|
+
"systemMicrophone": "システムデフォルト",
|
|
2410
|
+
"systemMicrophoneNamed": "システムデフォルト({name})",
|
|
2411
|
+
"unnamedSelectedMicrophone": "マイク",
|
|
2412
|
+
"unnamedMicrophone": "マイク {number}",
|
|
2413
|
+
"inputLevel": "マイク入力レベル",
|
|
2414
|
+
"deviceUnavailable": "利用不可",
|
|
2415
|
+
"deviceMissing": "マイクを利用できません。別の入力デバイスを選択してください。",
|
|
2416
|
+
"auto": "自動検出",
|
|
2417
|
+
"zh": "中国語",
|
|
2418
|
+
"en": "英語",
|
|
2419
|
+
"yue": "広東語",
|
|
2420
|
+
"ja": "日本語",
|
|
2421
|
+
es: "スペイン語",
|
|
2422
|
+
fr: "フランス語",
|
|
2423
|
+
de: "ドイツ語",
|
|
2424
|
+
ru: "ロシア語",
|
|
2425
|
+
pt: "ポルトガル語",
|
|
2426
|
+
"ko": "韓国語",
|
|
2427
|
+
"start": "録音を開始",
|
|
2428
|
+
"stop": "停止して文字起こし",
|
|
2429
|
+
"cancel": "キャンセル",
|
|
2430
|
+
"insert": "テキストを挿入",
|
|
2431
|
+
"loading": "認識サービスを読み込み中…",
|
|
2432
|
+
"requesting": "続行するにはマイクへのアクセスを許可してください…",
|
|
2433
|
+
"recording": "録音中…",
|
|
2434
|
+
"interrupted": "録音が中断されました。もう一度お試しください。",
|
|
2435
|
+
"local": "音声はDSHを実行しているマシン上で認識されます。モデルのダウンロードが必要な場合、そのマシンは選択したソースとそのファイルサービスに接続できる必要があります。必要に応じてそのマシンでプロキシを設定してください。",
|
|
2436
|
+
"cloud": "音声は選択したクラウドサービスに送信されます。",
|
|
2437
|
+
"empty": "音声が認識されませんでした",
|
|
2438
|
+
"cancelled": "音声入力をキャンセルしました。",
|
|
2439
|
+
"conflict": "下書きが変更されました。文字起こしは保持されており、現在のカーソル位置に挿入できます。",
|
|
2440
|
+
"failed": "音声認識に失敗しました: {message}",
|
|
2441
|
+
"unavailable": "このブラウザは音声を録音できません。マイクに対応したブラウザを使用してください。",
|
|
2442
|
+
"permission": "マイクへのアクセスが無効になっています。ブラウザとシステムの設定で許可してください。",
|
|
2443
|
+
"tooLarge": "録音がサービスの上限を超えています。短い録音をお試しください。"
|
|
2444
|
+
};
|
|
2445
|
+
/** Spanish dictionary, checked against the English keys. */
|
|
2446
|
+
const es = {
|
|
2447
|
+
dictate: "Dictar",
|
|
2448
|
+
"setupPrompt.title": "Configurar la entrada de voz antes de grabar",
|
|
2449
|
+
"setupPrompt.body": "La entrada de voz está habilitada. El primer uso requiere descargar y preparar modelos de reconocimiento local. Abra los detalles del complemento para revisar las estimaciones de espacio en disco, memoria y tiempo antes de comenzar la configuración.",
|
|
2450
|
+
"setupPrompt.later": "Más tarde",
|
|
2451
|
+
"setupPrompt.open": "Ir a configuración",
|
|
2452
|
+
"setupPrompt.trigger": "Abrir configuración de entrada de voz",
|
|
2453
|
+
"setupPrompt.details": "Abrir la configuración del complemento de voz",
|
|
2454
|
+
"setupPrompt.unavailableTitle": "El reconocimiento de voz no está listo",
|
|
2455
|
+
"setupPrompt.unavailableBody": "Abra los detalles del complemento de voz para verificar el estado del reconocimiento, el progreso de la preparación o los errores.",
|
|
2456
|
+
"setup.local": "Los modelos locales se descargarán en la máquina que ejecuta DSH. No se requiere Python ni compilador.",
|
|
2457
|
+
"setup.disk": "Espacio en disco",
|
|
2458
|
+
"setup.diskValue": "Permitir aproximadamente {gb} GB para modelos, tiempo de ejecución y cachés de descarga",
|
|
2459
|
+
"setup.memory": "Memoria",
|
|
2460
|
+
"setup.memoryValue": "Aproximadamente {gb} GB con el modelo cargado; el reconocimiento puede utilizar más",
|
|
2461
|
+
"setup.time": "Primera configuración",
|
|
2462
|
+
"setup.timeValue": "Espere aproximadamente {min}–{max} minutos, dependiendo de la red y la máquina",
|
|
2463
|
+
"setup.estimateNote": "Éstas son estimaciones; las redes lentas pueden tardar más. Las descargas se reutilizan; Los modelos inactivos liberan memoria de forma predeterminada.",
|
|
2464
|
+
"step.check": "Consulta los recursos locales",
|
|
2465
|
+
"step.model": "Preparar modelo de reconocimiento.",
|
|
2466
|
+
"step.vad": "Preparar modelo de detección de voz.",
|
|
2467
|
+
"step.verify": "Verificar archivos de modelo",
|
|
2468
|
+
"step.load": "Cargar {name}",
|
|
2469
|
+
"stepStatus.pending": "No iniciado",
|
|
2470
|
+
"stepStatus.running": "En progreso",
|
|
2471
|
+
"stepStatus.complete": "Completado",
|
|
2472
|
+
"stepStatus.failed": "Fallido",
|
|
2473
|
+
"stepStatus.cancelled": "Cancelado",
|
|
2474
|
+
"short.downloading": "Descargando",
|
|
2475
|
+
"short.failed": "Error de configuración",
|
|
2476
|
+
retryRecording: "Grabar de nuevo",
|
|
2477
|
+
preparationSteps: "Pasos de preparación",
|
|
2478
|
+
"prepare": "Descargar y preparar",
|
|
2479
|
+
"retryPrepare": "Reintentar la preparación",
|
|
2480
|
+
"cancelPrepare": "Cancelar preparación",
|
|
2481
|
+
"downloadProgress": "Descargar progreso",
|
|
2482
|
+
"downloadBytes": "Descargar: {completed} / {total} MB, {percent}%",
|
|
2483
|
+
"downloadUnknown": "Descargado {completed} MB",
|
|
2484
|
+
"elapsed": "Esperando {seconds} segundos",
|
|
2485
|
+
"preparationFailed": "Error de preparación: {message}",
|
|
2486
|
+
"download.network": "No se puede descargar {resource}: falló la conexión al servicio de descarga.",
|
|
2487
|
+
"download.dns": "No se puede descargar {resource}: no se pudo resolver la dirección de descarga.",
|
|
2488
|
+
"download.timeout": "Se agotó el tiempo de descarga de {resource}.",
|
|
2489
|
+
"download.certificate": "No se puede descargar {resource}: falló la verificación del certificado.",
|
|
2490
|
+
"download.http": "No se puede descargar {resource}: el servicio de descarga devolvió HTTP {status}.",
|
|
2491
|
+
"download.integrity": "La descarga de {resource} está incompleta o falló la verificación.",
|
|
2492
|
+
"download.storage": "No se puede guardar {resource}: espacio en disco insuficiente o permiso de escritura.",
|
|
2493
|
+
"download.unknown": "No se pudo preparar {resource}.",
|
|
2494
|
+
"downloadAdvice.network": "Verifique que la máquina que ejecuta DSH pueda acceder a la fuente de descarga y sus servicios de descarga de modelos. Configure un proxy en esa máquina si es necesario y luego vuelva a intentarlo.",
|
|
2495
|
+
"downloadAdvice.dns": "Verifique la configuración de DNS y proxy en la máquina que ejecuta DSH. Confirme que puede resolver el dominio de origen de la descarga y luego vuelva a intentarlo.",
|
|
2496
|
+
"downloadAdvice.timeout": "Verifique la conexión de red o proxy en la máquina que ejecuta DSH y vuelva a intentarlo más tarde. Los archivos descargados verificados se conservan.",
|
|
2497
|
+
"downloadAdvice.certificate": "Verifique el reloj del sistema, los certificados confiables y la configuración del proxy en la máquina que ejecuta DSH, luego vuelva a intentarlo.",
|
|
2498
|
+
"downloadAdvice.http": "Confirme que la dirección de descarga esté disponible y que el proxy pueda comunicarse con el servicio de descarga, o vuelva a intentarlo más tarde.",
|
|
2499
|
+
"downloadAdvice.integrity": "Vuelva a intentar la descarga. Se conservan otros archivos completos y verificados.",
|
|
2500
|
+
"downloadAdvice.storage": "Verifique el espacio disponible en disco y el permiso de escritura para el directorio del modelo en la máquina que ejecuta DSH, luego vuelva a intentarlo.",
|
|
2501
|
+
"downloadAdvice.unknown": "Verifique los permisos de red, espacio en disco y directorio de modelos en la máquina que ejecuta DSH, luego vuelva a intentarlo.",
|
|
2502
|
+
downloadSource: "Fuente de descarga: {source}",
|
|
2503
|
+
sourceChoice: "Fuente de descarga del modelo",
|
|
2504
|
+
sourceAuto: "Automático (recomendado)",
|
|
2505
|
+
sourceHuggingFace: "abrazando la cara",
|
|
2506
|
+
sourceMirror: "Espejo HF (espejo chino)",
|
|
2507
|
+
sourceAutoHelp: "Prefiere la primera fuente que respondió y prueba con otra si falla la descarga.",
|
|
2508
|
+
sourceManualHelp: "Descargue solo desde la fuente seleccionada. Los archivos descargados verificados se reutilizan.",
|
|
2509
|
+
downloadCode: "Código de error: {code}",
|
|
2510
|
+
"reconnecting": "Conectándose al reconocimiento de voz...",
|
|
2511
|
+
"preparation.unprepared": "El primer uso descarga los modelos de reconocimiento local.",
|
|
2512
|
+
"preparation.checking": "Comprobando los recursos locales...",
|
|
2513
|
+
"preparation.loading": "Cargando {name}…",
|
|
2514
|
+
"preparation.waking": "Activando el reconocimiento de voz local...",
|
|
2515
|
+
"preparation.ready": "El reconocimiento de voz local está listo.",
|
|
2516
|
+
"preparation.standby": "Los recursos locales están preparados. La grabación despierta el reconocedor.",
|
|
2517
|
+
"preparation.cancelled": "Preparación cancelada. Las descargas completadas se conservan.",
|
|
2518
|
+
"preparation.cancelling": "Cancelando preparación…",
|
|
2519
|
+
cloudReady: "El reconocimiento de voz en la nube está listo.",
|
|
2520
|
+
discard: "Descartar transcripción",
|
|
2521
|
+
transcribingShort: "Transcribiendo…",
|
|
2522
|
+
wakingShort: "Despertando…",
|
|
2523
|
+
provider: "Servicio de reconocimiento",
|
|
2524
|
+
language: "Idioma de reconocimiento",
|
|
2525
|
+
inputDevice: "Dispositivo de entrada",
|
|
2526
|
+
systemMicrophone: "Valor predeterminado del sistema",
|
|
2527
|
+
systemMicrophoneNamed: "Valor predeterminado del sistema ({name})",
|
|
2528
|
+
unnamedSelectedMicrophone: "micrófono",
|
|
2529
|
+
unnamedMicrophone: "Micrófono {number}",
|
|
2530
|
+
inputLevel: "Nivel de entrada del micrófono",
|
|
2531
|
+
deviceUnavailable: "No disponible",
|
|
2532
|
+
deviceMissing: "Micrófono no disponible. Elija otro dispositivo de entrada.",
|
|
2533
|
+
auto: "Detectar automáticamente",
|
|
2534
|
+
zh: "chino",
|
|
2535
|
+
en: "ingles",
|
|
2536
|
+
yue: "cantonés",
|
|
2537
|
+
ja: "japonés",
|
|
2538
|
+
es: "español",
|
|
2539
|
+
fr: "francés",
|
|
2540
|
+
de: "alemán",
|
|
2541
|
+
ru: "ruso",
|
|
2542
|
+
pt: "portugués",
|
|
2543
|
+
ko: "coreano",
|
|
2544
|
+
start: "Empezar a grabar",
|
|
2545
|
+
stop: "Detener y transcribir",
|
|
2546
|
+
cancel: "Cancelar",
|
|
2547
|
+
insert: "Insertar texto",
|
|
2548
|
+
loading: "Cargando servicios de reconocimiento…",
|
|
2549
|
+
requesting: "Permitir el acceso al micrófono para continuar...",
|
|
2550
|
+
recording: "Grabando…",
|
|
2551
|
+
interrupted: "La grabación fue interrumpida. Por favor inténtalo de nuevo.",
|
|
2552
|
+
local: "El audio se reconoce en la máquina que ejecuta DSH. Si es necesario descargar modelos, esa máquina debe poder acceder a la fuente seleccionada y sus servicios de archivos. Configure un proxy en esa máquina si es necesario.",
|
|
2553
|
+
cloud: "El audio se enviará al servicio en la nube seleccionado.",
|
|
2554
|
+
empty: "No se reconoce ningún discurso",
|
|
2555
|
+
cancelled: "Entrada de voz cancelada.",
|
|
2556
|
+
conflict: "Tu borrador cambió. La transcripción se conserva y se puede insertar en el cursor actual.",
|
|
2557
|
+
failed: "Error en el reconocimiento de voz: {message}",
|
|
2558
|
+
unavailable: "Este navegador no puede grabar audio. Utilice un navegador compatible con micrófono.",
|
|
2559
|
+
permission: "El acceso al micrófono está deshabilitado. Permitirlo en la configuración del navegador y del sistema.",
|
|
2560
|
+
tooLarge: "La grabación excede el límite del servicio. Pruebe con una grabación más corta."
|
|
2561
|
+
};
|
|
2562
|
+
/** French dictionary, checked against the English keys. */
|
|
2563
|
+
const fr = {
|
|
2564
|
+
dictate: "Dicter",
|
|
2565
|
+
"setupPrompt.title": "Configurer la saisie vocale avant l'enregistrement",
|
|
2566
|
+
"setupPrompt.body": "La saisie vocale est activée. La première utilisation nécessite le téléchargement et la préparation de modèles de reconnaissance locaux. Ouvrez les détails du plugin pour consulter les estimations d'espace disque, de mémoire et de temps avant de démarrer l'installation.",
|
|
2567
|
+
"setupPrompt.later": "Plus tard",
|
|
2568
|
+
"setupPrompt.open": "Aller à la configuration",
|
|
2569
|
+
"setupPrompt.trigger": "Ouvrir la configuration de la saisie vocale",
|
|
2570
|
+
"setupPrompt.details": "Ouvrir les paramètres du plugin vocal",
|
|
2571
|
+
"setupPrompt.unavailableTitle": "La reconnaissance vocale n'est pas prête",
|
|
2572
|
+
"setupPrompt.unavailableBody": "Ouvrez les détails du plug-in vocal pour vérifier l'état de reconnaissance, la progression de la préparation ou les erreurs.",
|
|
2573
|
+
"setup.local": "Les modèles locaux seront téléchargés sur la machine exécutant DSH. Aucun Python ou compilateur n'est requis.",
|
|
2574
|
+
"setup.disk": "Espace disque",
|
|
2575
|
+
"setup.diskValue": "Autoriser environ {gb}\xA0Go pour les modèles, l'environnement d'exécution et les caches de téléchargement",
|
|
2576
|
+
"setup.memory": "Mémoire",
|
|
2577
|
+
"setup.memoryValue": "À propos de {gb} GB avec le modèle chargé\xA0; la reconnaissance peut utiliser plus",
|
|
2578
|
+
"setup.time": "Première configuration",
|
|
2579
|
+
"setup.timeValue": "Prévoyez environ des minutes {min} à {max}, en fonction du réseau et de la machine.",
|
|
2580
|
+
"setup.estimateNote": "Ce sont des estimations\xA0; les réseaux lents peuvent prendre plus de temps. Les téléchargements sont réutilisés\xA0; les modèles inactifs libèrent de la mémoire par défaut.",
|
|
2581
|
+
"step.check": "Vérifiez les ressources locales",
|
|
2582
|
+
"step.model": "Préparer le modèle de reconnaissance",
|
|
2583
|
+
"step.vad": "Préparer le modèle de détection vocale",
|
|
2584
|
+
"step.verify": "Vérifier les fichiers de modèle",
|
|
2585
|
+
"step.load": "Charger {name}",
|
|
2586
|
+
"stepStatus.pending": "Pas démarré",
|
|
2587
|
+
"stepStatus.running": "En cours",
|
|
2588
|
+
"stepStatus.complete": "Terminé",
|
|
2589
|
+
"stepStatus.failed": "Échec",
|
|
2590
|
+
"stepStatus.cancelled": "Annulé",
|
|
2591
|
+
"short.downloading": "Téléchargement",
|
|
2592
|
+
"short.failed": "Échec de l'installation",
|
|
2593
|
+
retryRecording: "Enregistrer à nouveau",
|
|
2594
|
+
preparationSteps: "Étapes de préparation",
|
|
2595
|
+
"prepare": "Téléchargez et préparez",
|
|
2596
|
+
"retryPrepare": "Réessayer la préparation",
|
|
2597
|
+
"cancelPrepare": "Annuler la préparation",
|
|
2598
|
+
"downloadProgress": "Progression du téléchargement",
|
|
2599
|
+
"downloadBytes": "Télécharger : {completed} / {total} MB, {percent}%",
|
|
2600
|
+
"downloadUnknown": "Téléchargé {completed} MB",
|
|
2601
|
+
"elapsed": "En attente de {seconds} secondes",
|
|
2602
|
+
"preparationFailed": "Échec de la préparation\xA0: {message}",
|
|
2603
|
+
"download.network": "Impossible de télécharger {resource}\xA0: la connexion au service de téléchargement a échoué.",
|
|
2604
|
+
"download.dns": "Impossible de télécharger {resource}\xA0: l'adresse de téléchargement n'a pas pu être résolue.",
|
|
2605
|
+
"download.timeout": "Le téléchargement de {resource} a expiré.",
|
|
2606
|
+
"download.certificate": "Impossible de télécharger {resource}\xA0: la vérification du certificat a échoué.",
|
|
2607
|
+
"download.http": "Impossible de télécharger {resource}\xA0: le service de téléchargement a renvoyé HTTP {status}.",
|
|
2608
|
+
"download.integrity": "Le téléchargement de {resource} est incomplet ou la vérification a échoué.",
|
|
2609
|
+
"download.storage": "Impossible d'enregistrer {resource}\xA0: espace disque ou autorisation d'écriture insuffisante.",
|
|
2610
|
+
"download.unknown": "Impossible de préparer {resource}.",
|
|
2611
|
+
"downloadAdvice.network": "Vérifiez que la machine exécutant DSH peut accéder à la source de téléchargement et à ses services de téléchargement de modèles. Configurez un proxy sur cette machine si nécessaire, puis réessayez.",
|
|
2612
|
+
"downloadAdvice.dns": "Vérifiez les paramètres DNS et proxy sur la machine exécutant DSH. Confirmez qu'il peut résoudre le domaine source de téléchargement, puis réessayez.",
|
|
2613
|
+
"downloadAdvice.timeout": "Vérifiez la connexion réseau ou proxy sur la machine exécutant DSH, puis réessayez plus tard. Les fichiers téléchargés vérifiés sont conservés.",
|
|
2614
|
+
"downloadAdvice.certificate": "Vérifiez l'horloge système, les certificats de confiance et les paramètres de proxy sur la machine exécutant DSH, puis réessayez.",
|
|
2615
|
+
"downloadAdvice.http": "Confirmez que l'adresse de téléchargement est disponible et que le proxy peut accéder au service de téléchargement, ou réessayez plus tard.",
|
|
2616
|
+
"downloadAdvice.integrity": "Réessayez le téléchargement. Les autres dossiers complétés et vérifiés sont conservés.",
|
|
2617
|
+
"downloadAdvice.storage": "Vérifiez l'espace disque disponible et les autorisations d'écriture pour le répertoire modèle sur la machine exécutant DSH, puis réessayez.",
|
|
2618
|
+
"downloadAdvice.unknown": "Vérifiez les autorisations du réseau, de l'espace disque et du répertoire modèle sur la machine exécutant DSH, puis réessayez.",
|
|
2619
|
+
downloadSource: "Source du téléchargement\xA0: {source}",
|
|
2620
|
+
sourceChoice: "Source de téléchargement du modèle",
|
|
2621
|
+
sourceAuto: "Automatique (recommandé)",
|
|
2622
|
+
sourceHuggingFace: "Visage câlin",
|
|
2623
|
+
sourceMirror: "Miroir HF (miroir chinois)",
|
|
2624
|
+
sourceAutoHelp: "Préférez la première source qui répond et essayez-en une autre si un téléchargement échoue.",
|
|
2625
|
+
sourceManualHelp: "Téléchargez uniquement à partir de la source sélectionnée. Les fichiers téléchargés vérifiés sont réutilisés.",
|
|
2626
|
+
downloadCode: "Code d'erreur\xA0: {code}",
|
|
2627
|
+
"reconnecting": "Connexion à la reconnaissance vocale…",
|
|
2628
|
+
"preparation.unprepared": "La première utilisation télécharge les modèles de reconnaissance locaux.",
|
|
2629
|
+
"preparation.checking": "Vérification des ressources locales…",
|
|
2630
|
+
"preparation.loading": "Chargement de {name}…",
|
|
2631
|
+
"preparation.waking": "Réveiller la reconnaissance vocale locale…",
|
|
2632
|
+
"preparation.ready": "La reconnaissance vocale locale est prête.",
|
|
2633
|
+
"preparation.standby": "Des ressources locales sont préparées. L'enregistrement réveille le module de reconnaissance.",
|
|
2634
|
+
"preparation.cancelled": "Préparation annulée. Les téléchargements terminés sont conservés.",
|
|
2635
|
+
"preparation.cancelling": "Annulation de la préparation…",
|
|
2636
|
+
cloudReady: "La reconnaissance vocale dans le cloud est prête.",
|
|
2637
|
+
discard: "Supprimer la transcription",
|
|
2638
|
+
transcribingShort: "Transcription…",
|
|
2639
|
+
wakingShort: "Le réveil…",
|
|
2640
|
+
provider: "Service de reconnaissance",
|
|
2641
|
+
language: "Langue de reconnaissance",
|
|
2642
|
+
inputDevice: "Périphérique d'entrée",
|
|
2643
|
+
systemMicrophone: "Valeur par défaut du système",
|
|
2644
|
+
systemMicrophoneNamed: "Valeur par défaut du système ({name})",
|
|
2645
|
+
unnamedSelectedMicrophone: "Micro",
|
|
2646
|
+
unnamedMicrophone: "Micro {number}",
|
|
2647
|
+
inputLevel: "Niveau d'entrée du microphone",
|
|
2648
|
+
deviceUnavailable: "Indisponible",
|
|
2649
|
+
deviceMissing: "Micro indisponible. Choisissez un autre périphérique d'entrée.",
|
|
2650
|
+
auto: "Détecter automatiquement",
|
|
2651
|
+
zh: "Chinois",
|
|
2652
|
+
en: "Anglais",
|
|
2653
|
+
yue: "Cantonais",
|
|
2654
|
+
ja: "Japonais",
|
|
2655
|
+
es: "Espagnol",
|
|
2656
|
+
fr: "Français",
|
|
2657
|
+
de: "Allemand",
|
|
2658
|
+
ru: "Russe",
|
|
2659
|
+
pt: "Portugais",
|
|
2660
|
+
ko: "Coréen",
|
|
2661
|
+
start: "Commencer l'enregistrement",
|
|
2662
|
+
stop: "Arrêtez et transcrivez",
|
|
2663
|
+
cancel: "Annuler",
|
|
2664
|
+
insert: "Insérer du texte",
|
|
2665
|
+
loading: "Chargement des services de reconnaissance…",
|
|
2666
|
+
requesting: "Autoriser l’accès au microphone pour continuer…",
|
|
2667
|
+
recording: "Enregistrement…",
|
|
2668
|
+
interrupted: "L'enregistrement a été interrompu. Veuillez réessayer.",
|
|
2669
|
+
local: "L'audio est reconnu sur la machine exécutant DSH. Si les modèles doivent être téléchargés, cette machine doit pouvoir accéder à la source sélectionnée et à ses services de fichiers. Configurez un proxy sur cette machine si nécessaire.",
|
|
2670
|
+
cloud: "L'audio sera envoyé au service cloud sélectionné.",
|
|
2671
|
+
empty: "Aucun discours reconnu",
|
|
2672
|
+
cancelled: "Saisie vocale annulée.",
|
|
2673
|
+
conflict: "Votre brouillon a changé. La transcription est conservée et peut être insérée au niveau du curseur actuel.",
|
|
2674
|
+
failed: "Échec de la reconnaissance vocale\xA0: {message}",
|
|
2675
|
+
unavailable: "Ce navigateur ne peut pas enregistrer de son. Utilisez un navigateur prenant en charge le microphone.",
|
|
2676
|
+
permission: "L'accès au microphone est désactivé. Autorisez-le dans les paramètres du navigateur et du système.",
|
|
2677
|
+
tooLarge: "L'enregistrement dépasse la limite du service. Essayez un enregistrement plus court."
|
|
2678
|
+
};
|
|
2679
|
+
/** German dictionary, checked against the English keys. */
|
|
2680
|
+
const de = {
|
|
2681
|
+
dictate: "Diktieren",
|
|
2682
|
+
"setupPrompt.title": "Richten Sie vor der Aufnahme die Spracheingabe ein",
|
|
2683
|
+
"setupPrompt.body": "Die Spracheingabe ist aktiviert. Für die erste Verwendung müssen lokale Erkennungsmodelle heruntergeladen und vorbereitet werden. Öffnen Sie die Plugin-Details, um die Schätzungen zu Speicherplatz, Speicher und Zeit zu überprüfen, bevor Sie mit der Einrichtung beginnen.",
|
|
2684
|
+
"setupPrompt.later": "Später",
|
|
2685
|
+
"setupPrompt.open": "Gehen Sie zum Setup",
|
|
2686
|
+
"setupPrompt.trigger": "Öffnen Sie die Einrichtung der Spracheingabe",
|
|
2687
|
+
"setupPrompt.details": "Öffnen Sie die Sprach-Plugin-Einstellungen",
|
|
2688
|
+
"setupPrompt.unavailableTitle": "Die Spracherkennung ist noch nicht bereit",
|
|
2689
|
+
"setupPrompt.unavailableBody": "Öffnen Sie die Details des Sprach-Plugins, um den Erkennungsstatus, den Vorbereitungsfortschritt oder Fehler zu überprüfen.",
|
|
2690
|
+
"setup.local": "Lokale Modelle werden auf den Computer heruntergeladen, auf dem DSH ausgeführt wird. Es ist kein Python oder Compiler erforderlich.",
|
|
2691
|
+
"setup.disk": "Speicherplatz",
|
|
2692
|
+
"setup.diskValue": "Planen Sie etwa {gb} GB für Modelle, Laufzeit und Download-Caches ein",
|
|
2693
|
+
"setup.memory": "Erinnerung",
|
|
2694
|
+
"setup.memoryValue": "Über {gb} GB mit geladenem Modell; Anerkennung kann mehr gebrauchen",
|
|
2695
|
+
"setup.time": "Erste Einrichtung",
|
|
2696
|
+
"setup.timeValue": "Planen Sie je nach Netzwerk und Maschine etwa {min}–{max} Minuten ein",
|
|
2697
|
+
"setup.estimateNote": "Es handelt sich hierbei um Schätzungen; Bei langsamen Netzwerken kann es länger dauern. Downloads werden wiederverwendet; Leerlaufmodelle geben standardmäßig Speicher frei.",
|
|
2698
|
+
"step.check": "Überprüfen Sie lokale Ressourcen",
|
|
2699
|
+
"step.model": "Erkennungsmodell vorbereiten",
|
|
2700
|
+
"step.vad": "Bereiten Sie ein Spracherkennungsmodell vor",
|
|
2701
|
+
"step.verify": "Modelldateien überprüfen",
|
|
2702
|
+
"step.load": "Laden Sie {name}",
|
|
2703
|
+
"stepStatus.pending": "Nicht gestartet",
|
|
2704
|
+
"stepStatus.running": "In Bearbeitung",
|
|
2705
|
+
"stepStatus.complete": "Abgeschlossen",
|
|
2706
|
+
"stepStatus.failed": "Fehlgeschlagen",
|
|
2707
|
+
"stepStatus.cancelled": "Abgesagt",
|
|
2708
|
+
"short.downloading": "Herunterladen",
|
|
2709
|
+
"short.failed": "Die Einrichtung ist fehlgeschlagen",
|
|
2710
|
+
retryRecording: "Nochmals aufnehmen",
|
|
2711
|
+
preparationSteps: "Vorbereitungsschritte",
|
|
2712
|
+
"prepare": "Herunterladen und vorbereiten",
|
|
2713
|
+
"retryPrepare": "Wiederholen Sie die Vorbereitung",
|
|
2714
|
+
"cancelPrepare": "Vorbereitung abbrechen",
|
|
2715
|
+
"downloadProgress": "Download-Fortschritt",
|
|
2716
|
+
"downloadBytes": "Herunterladen: {completed} / {total} MB, {percent}%",
|
|
2717
|
+
"downloadUnknown": "{completed} MB heruntergeladen",
|
|
2718
|
+
"elapsed": "Warten {seconds} Sekunden",
|
|
2719
|
+
"preparationFailed": "Vorbereitung fehlgeschlagen: {message}",
|
|
2720
|
+
"download.network": "{resource} kann nicht heruntergeladen werden: Die Verbindung zum Download-Dienst ist fehlgeschlagen.",
|
|
2721
|
+
"download.dns": "{resource} kann nicht heruntergeladen werden: Die Download-Adresse konnte nicht aufgelöst werden.",
|
|
2722
|
+
"download.timeout": "Beim Herunterladen von {resource} ist eine Zeitüberschreitung aufgetreten.",
|
|
2723
|
+
"download.certificate": "{resource} kann nicht heruntergeladen werden: Zertifikatüberprüfung fehlgeschlagen.",
|
|
2724
|
+
"download.http": "{resource} kann nicht heruntergeladen werden: Der Download-Dienst hat HTTP {status} zurückgegeben.",
|
|
2725
|
+
"download.integrity": "Der Download von {resource} ist unvollständig oder die Überprüfung ist fehlgeschlagen.",
|
|
2726
|
+
"download.storage": "{resource} kann nicht gespeichert werden: nicht genügend Speicherplatz oder Schreibberechtigung.",
|
|
2727
|
+
"download.unknown": "{resource} konnte nicht vorbereitet werden.",
|
|
2728
|
+
"downloadAdvice.network": "Überprüfen Sie, ob der Computer, auf dem DSH ausgeführt wird, die Download-Quelle und ihre Modell-Download-Dienste erreichen kann. Konfigurieren Sie bei Bedarf einen Proxy auf diesem Computer und versuchen Sie es dann erneut.",
|
|
2729
|
+
"downloadAdvice.dns": "Überprüfen Sie die DNS- und Proxy-Einstellungen auf dem Computer, auf dem DSH ausgeführt wird. Bestätigen Sie, dass die Download-Quelldomäne aufgelöst werden kann, und versuchen Sie es dann erneut.",
|
|
2730
|
+
"downloadAdvice.timeout": "Überprüfen Sie die Netzwerk- oder Proxy-Verbindung auf dem Computer, auf dem DSH ausgeführt wird, und versuchen Sie es später erneut. Verifizierte heruntergeladene Dateien bleiben erhalten.",
|
|
2731
|
+
"downloadAdvice.certificate": "Überprüfen Sie die Systemuhr, vertrauenswürdige Zertifikate und Proxy-Einstellungen auf dem Computer, auf dem DSH ausgeführt wird, und versuchen Sie es dann erneut.",
|
|
2732
|
+
"downloadAdvice.http": "Bestätigen Sie, dass die Download-Adresse verfügbar ist und der Proxy den Download-Dienst erreichen kann, oder versuchen Sie es später noch einmal.",
|
|
2733
|
+
"downloadAdvice.integrity": "Versuchen Sie den Download erneut. Andere abgeschlossene und überprüfte Dateien bleiben erhalten.",
|
|
2734
|
+
"downloadAdvice.storage": "Überprüfen Sie den verfügbaren Speicherplatz und die Schreibberechtigung für das Modellverzeichnis auf dem Computer, auf dem DSH ausgeführt wird, und versuchen Sie es dann erneut.",
|
|
2735
|
+
"downloadAdvice.unknown": "Überprüfen Sie die Netzwerk-, Festplattenspeicher- und Modellverzeichnisberechtigungen auf dem Computer, auf dem DSH ausgeführt wird, und versuchen Sie es dann erneut.",
|
|
2736
|
+
downloadSource: "Download-Quelle: {source}",
|
|
2737
|
+
sourceChoice: "Modell-Downloadquelle",
|
|
2738
|
+
sourceAuto: "Automatisch (empfohlen)",
|
|
2739
|
+
sourceHuggingFace: "Umarmendes Gesicht",
|
|
2740
|
+
sourceMirror: "HF-Spiegel (China-Spiegel)",
|
|
2741
|
+
sourceAutoHelp: "Bevorzugen Sie die erste antwortende Quelle und versuchen Sie es mit einer anderen, wenn ein Download fehlschlägt.",
|
|
2742
|
+
sourceManualHelp: "Nur von der ausgewählten Quelle herunterladen. Verifizierte heruntergeladene Dateien werden wiederverwendet.",
|
|
2743
|
+
downloadCode: "Fehlercode: {code}",
|
|
2744
|
+
"reconnecting": "Verbindung zur Spracherkennung herstellen…",
|
|
2745
|
+
"preparation.unprepared": "Bei der ersten Verwendung werden die lokalen Erkennungsmodelle heruntergeladen.",
|
|
2746
|
+
"preparation.checking": "Lokale Ressourcen prüfen…",
|
|
2747
|
+
"preparation.loading": "Laden {name}…",
|
|
2748
|
+
"preparation.waking": "Lokale Spracherkennung aktivieren…",
|
|
2749
|
+
"preparation.ready": "Die lokale Spracherkennung ist bereit.",
|
|
2750
|
+
"preparation.standby": "Lokale Ressourcen werden vorbereitet. Durch die Aufnahme wird der Erkenner aktiviert.",
|
|
2751
|
+
"preparation.cancelled": "Vorbereitung abgebrochen. Abgeschlossene Downloads bleiben erhalten.",
|
|
2752
|
+
"preparation.cancelling": "Vorbereitung abbrechen…",
|
|
2753
|
+
cloudReady: "Die Cloud-Spracherkennung ist fertig.",
|
|
2754
|
+
discard: "Transkript verwerfen",
|
|
2755
|
+
transcribingShort: "Transkribieren…",
|
|
2756
|
+
wakingShort: "Aufwachen…",
|
|
2757
|
+
provider: "Anerkennungsdienst",
|
|
2758
|
+
language: "Erkennungssprache",
|
|
2759
|
+
inputDevice: "Eingabegerät",
|
|
2760
|
+
systemMicrophone: "Systemstandard",
|
|
2761
|
+
systemMicrophoneNamed: "Systemstandard ({name})",
|
|
2762
|
+
unnamedSelectedMicrophone: "Mikrofon",
|
|
2763
|
+
unnamedMicrophone: "Mikrofon {number}",
|
|
2764
|
+
inputLevel: "Mikrofoneingangspegel",
|
|
2765
|
+
deviceUnavailable: "Nicht verfügbar",
|
|
2766
|
+
deviceMissing: "Mikrofon nicht verfügbar. Wählen Sie ein anderes Eingabegerät.",
|
|
2767
|
+
auto: "Automatisch erkennen",
|
|
2768
|
+
zh: "Chinesisch",
|
|
2769
|
+
en: "Englisch",
|
|
2770
|
+
yue: "Kantonesisch",
|
|
2771
|
+
ja: "Japanisch",
|
|
2772
|
+
es: "Spanisch",
|
|
2773
|
+
fr: "Französisch",
|
|
2774
|
+
de: "Deutsch",
|
|
2775
|
+
ru: "Russisch",
|
|
2776
|
+
pt: "Portugiesisch",
|
|
2777
|
+
ko: "Koreanisch",
|
|
2778
|
+
start: "Starten Sie die Aufnahme",
|
|
2779
|
+
stop: "Stoppen Sie und transkribieren Sie",
|
|
2780
|
+
cancel: "Abbrechen",
|
|
2781
|
+
insert: "Text einfügen",
|
|
2782
|
+
loading: "Erkennungsdienste werden geladen…",
|
|
2783
|
+
requesting: "Mikrofonzugriff erlauben, um fortzufahren…",
|
|
2784
|
+
recording: "Aufnahme…",
|
|
2785
|
+
interrupted: "Die Aufnahme wurde unterbrochen. Bitte versuchen Sie es erneut.",
|
|
2786
|
+
local: "Audio wird auf dem Computer erkannt, auf dem DSH ausgeführt wird. Wenn Modelle heruntergeladen werden müssen, muss dieser Computer in der Lage sein, die ausgewählte Quelle und ihre Dateidienste zu erreichen. Konfigurieren Sie bei Bedarf einen Proxy auf diesem Computer.",
|
|
2787
|
+
cloud: "Audio wird an den ausgewählten Cloud-Dienst gesendet.",
|
|
2788
|
+
empty: "Keine Sprache erkannt",
|
|
2789
|
+
cancelled: "Spracheingabe abgebrochen.",
|
|
2790
|
+
conflict: "Ihr Entwurf wurde geändert. Das Transkript bleibt erhalten und kann am aktuellen Cursor eingefügt werden.",
|
|
2791
|
+
failed: "Spracherkennung fehlgeschlagen: {message}",
|
|
2792
|
+
unavailable: "Dieser Browser kann keine Audiodaten aufzeichnen. Verwenden Sie einen Browser mit Mikrofonunterstützung.",
|
|
2793
|
+
permission: "Der Mikrofonzugriff ist deaktiviert. Erlauben Sie es in den Browser- und Systemeinstellungen.",
|
|
2794
|
+
tooLarge: "Die Aufnahme überschreitet das Dienstlimit. Versuchen Sie es mit einer kürzeren Aufnahme."
|
|
2795
|
+
};
|
|
2796
|
+
/** Russian dictionary, checked against the English keys. */
|
|
2797
|
+
const ru = {
|
|
2798
|
+
dictate: "Диктовать",
|
|
2799
|
+
"setupPrompt.title": "Настройте голосовой ввод перед записью",
|
|
2800
|
+
"setupPrompt.body": "Голосовой ввод включен. Для первого использования требуется загрузка и подготовка моделей локального распознавания. Откройте сведения о плагине, чтобы просмотреть оценки дискового пространства, памяти и времени перед началом установки.",
|
|
2801
|
+
"setupPrompt.later": "Позже",
|
|
2802
|
+
"setupPrompt.open": "Перейти к настройке",
|
|
2803
|
+
"setupPrompt.trigger": "Открыть настройку голосового ввода",
|
|
2804
|
+
"setupPrompt.details": "Открыть настройки голосового плагина",
|
|
2805
|
+
"setupPrompt.unavailableTitle": "Распознавание речи не готово",
|
|
2806
|
+
"setupPrompt.unavailableBody": "Откройте сведения о голосовом плагине, чтобы проверить статус распознавания, ход подготовки или наличие ошибок.",
|
|
2807
|
+
"setup.local": "Локальные модели будут загружены на машину под управлением DSH. Никакой Python или компилятор не требуется.",
|
|
2808
|
+
"setup.disk": "Дисковое пространство",
|
|
2809
|
+
"setup.diskValue": "Разрешить около {gb} ГБ для моделей, среды выполнения и кешей загрузки.",
|
|
2810
|
+
"setup.memory": "Память",
|
|
2811
|
+
"setup.memoryValue": "О {gb} ГБ с загруженной моделью; признание может использовать больше",
|
|
2812
|
+
"setup.time": "Первая настройка",
|
|
2813
|
+
"setup.timeValue": "Разрешите примерно {min}–{max} минут, в зависимости от сети и машины.",
|
|
2814
|
+
"setup.estimateNote": "Это оценки; медленные сети могут занять больше времени. Загрузки используются повторно; Неработающие модели освобождают память по умолчанию.",
|
|
2815
|
+
"step.check": "Проверьте местные ресурсы",
|
|
2816
|
+
"step.model": "Подготовьте модель распознавания",
|
|
2817
|
+
"step.vad": "Подготовьте модель обнаружения голоса",
|
|
2818
|
+
"step.verify": "Проверка файлов модели",
|
|
2819
|
+
"step.load": "Загрузить {name}",
|
|
2820
|
+
"stepStatus.pending": "Не запущено",
|
|
2821
|
+
"stepStatus.running": "В процессе",
|
|
2822
|
+
"stepStatus.complete": "Завершено",
|
|
2823
|
+
"stepStatus.failed": "Не удалось",
|
|
2824
|
+
"stepStatus.cancelled": "Отменено",
|
|
2825
|
+
"short.downloading": "Загрузка",
|
|
2826
|
+
"short.failed": "Установка не удалась",
|
|
2827
|
+
retryRecording: "Записать еще раз",
|
|
2828
|
+
preparationSteps: "Этапы подготовки",
|
|
2829
|
+
"prepare": "Скачайте и подготовьте",
|
|
2830
|
+
"retryPrepare": "Повторить подготовку",
|
|
2831
|
+
"cancelPrepare": "Отменить подготовку",
|
|
2832
|
+
"downloadProgress": "Прогресс загрузки",
|
|
2833
|
+
"downloadBytes": "Скачать: {completed} / {total} MB, {percent}%",
|
|
2834
|
+
"downloadUnknown": "Скачал {completed} МБ.",
|
|
2835
|
+
"elapsed": "Ожидание {seconds} секунд.",
|
|
2836
|
+
"preparationFailed": "Подготовка не удалась: {message}",
|
|
2837
|
+
"download.network": "Невозможно загрузить {resource}: не удалось подключиться к службе загрузки.",
|
|
2838
|
+
"download.dns": "Невозможно загрузить {resource}: не удалось определить адрес загрузки.",
|
|
2839
|
+
"download.timeout": "Время загрузки {resource} истекло.",
|
|
2840
|
+
"download.certificate": "Невозможно загрузить {resource}: проверка сертификата не удалась.",
|
|
2841
|
+
"download.http": "Невозможно загрузить {resource}: служба загрузки вернула HTTP {status}.",
|
|
2842
|
+
"download.integrity": "Загрузка {resource} является неполной или не прошла проверку.",
|
|
2843
|
+
"download.storage": "Невозможно сохранить {resource}: недостаточно места на диске или разрешения на запись.",
|
|
2844
|
+
"download.unknown": "Не удалось подготовить {resource}.",
|
|
2845
|
+
"downloadAdvice.network": "Убедитесь, что машина, на которой работает DSH, может получить доступ к источнику загрузки и службам загрузки своей модели. При необходимости настройте прокси-сервер на этом компьютере, а затем повторите попытку.",
|
|
2846
|
+
"downloadAdvice.dns": "Проверьте настройки DNS и прокси на машине под управлением DSH. Убедитесь, что он может разрешить домен источника загрузки, затем повторите попытку.",
|
|
2847
|
+
"downloadAdvice.timeout": "Проверьте сетевое или прокси-соединение на компьютере, на котором работает DSH, затем повторите попытку позже. Проверенные загруженные файлы сохраняются.",
|
|
2848
|
+
"downloadAdvice.certificate": "Проверьте системные часы, доверенные сертификаты и настройки прокси-сервера на компьютере, на котором работает DSH, затем повторите попытку.",
|
|
2849
|
+
"downloadAdvice.http": "Убедитесь, что адрес загрузки доступен и прокси-сервер может связаться со службой загрузки, или повторите попытку позже.",
|
|
2850
|
+
"downloadAdvice.integrity": "Повторите загрузку. Остальные заполненные и проверенные файлы сохраняются.",
|
|
2851
|
+
"downloadAdvice.storage": "Проверьте доступное дисковое пространство и разрешение на запись для каталога модели на компьютере, на котором работает DSH, затем повторите попытку.",
|
|
2852
|
+
"downloadAdvice.unknown": "Проверьте сеть, дисковое пространство и права доступа к каталогу модели на компьютере, на котором работает DSH, затем повторите попытку.",
|
|
2853
|
+
downloadSource: "Источник загрузки: {source}",
|
|
2854
|
+
sourceChoice: "Источник загрузки модели",
|
|
2855
|
+
sourceAuto: "Автоматический (рекомендуется)",
|
|
2856
|
+
sourceHuggingFace: "Обнимающее лицо",
|
|
2857
|
+
sourceMirror: "ВЧ-Зеркало (Китайское зеркало)",
|
|
2858
|
+
sourceAutoHelp: "Отдайте предпочтение первому ответившему источнику и попробуйте другой, если загрузка не удалась.",
|
|
2859
|
+
sourceManualHelp: "Скачивайте только из выбранного источника. Проверенные загруженные файлы используются повторно.",
|
|
2860
|
+
downloadCode: "Код ошибки: {code}",
|
|
2861
|
+
"reconnecting": "Подключение к распознаванию речи…",
|
|
2862
|
+
"preparation.unprepared": "При первом использовании загружаются модели локального распознавания.",
|
|
2863
|
+
"preparation.checking": "Проверка местных ресурсов…",
|
|
2864
|
+
"preparation.loading": "Загрузка {name}…",
|
|
2865
|
+
"preparation.waking": "Пробуждение локального распознавания речи…",
|
|
2866
|
+
"preparation.ready": "Локальное распознавание речи готово.",
|
|
2867
|
+
"preparation.standby": "Подготовлены местные ресурсы. Запись будит распознаватель.",
|
|
2868
|
+
"preparation.cancelled": "Подготовка отменена. Завершенные загрузки сохраняются.",
|
|
2869
|
+
"preparation.cancelling": "Отмена подготовки…",
|
|
2870
|
+
cloudReady: "Облачное распознавание речи готово.",
|
|
2871
|
+
discard: "Удалить расшифровку",
|
|
2872
|
+
transcribingShort: "Расшифровка…",
|
|
2873
|
+
wakingShort: "Пробуждение…",
|
|
2874
|
+
provider: "Служба распознавания",
|
|
2875
|
+
language: "Язык распознавания",
|
|
2876
|
+
inputDevice: "Устройство ввода",
|
|
2877
|
+
systemMicrophone: "Система по умолчанию",
|
|
2878
|
+
systemMicrophoneNamed: "Системное значение по умолчанию ({name})",
|
|
2879
|
+
unnamedSelectedMicrophone: "Микрофон",
|
|
2880
|
+
unnamedMicrophone: "Микрофон {number}",
|
|
2881
|
+
inputLevel: "Входной уровень микрофона",
|
|
2882
|
+
deviceUnavailable: "Недоступно",
|
|
2883
|
+
deviceMissing: "Микрофон недоступен. Выберите другое устройство ввода.",
|
|
2884
|
+
auto: "Обнаруживать автоматически",
|
|
2885
|
+
zh: "китайский",
|
|
2886
|
+
en: "английский",
|
|
2887
|
+
yue: "Кантонский диалект",
|
|
2888
|
+
ja: "японский",
|
|
2889
|
+
es: "испанский",
|
|
2890
|
+
fr: "французский",
|
|
2891
|
+
de: "немецкий",
|
|
2892
|
+
ru: "русский",
|
|
2893
|
+
pt: "португальский",
|
|
2894
|
+
ko: "корейский",
|
|
2895
|
+
start: "Начать запись",
|
|
2896
|
+
stop: "Остановись и перепиши",
|
|
2897
|
+
cancel: "Отмена",
|
|
2898
|
+
insert: "Вставить текст",
|
|
2899
|
+
loading: "Загрузка служб распознавания…",
|
|
2900
|
+
requesting: "Разрешите доступ к микрофону, чтобы продолжить…",
|
|
2901
|
+
recording: "Запись…",
|
|
2902
|
+
interrupted: "Запись была прервана. Пожалуйста, попробуйте еще раз.",
|
|
2903
|
+
local: "Звук распознается на машине под управлением DSH. Если модели необходимо загрузить, этот компьютер должен иметь доступ к выбранному источнику и его файловым службам. При необходимости настройте прокси-сервер на этом компьютере.",
|
|
2904
|
+
cloud: "Аудио будет отправлено в выбранный облачный сервис.",
|
|
2905
|
+
empty: "Речь не распознается",
|
|
2906
|
+
cancelled: "Голосовой ввод отменен.",
|
|
2907
|
+
conflict: "Ваш черновик изменился. Транскрипт сохраняется и может быть вставлен под текущий курсор.",
|
|
2908
|
+
failed: "Не удалось распознать речь: {message}.",
|
|
2909
|
+
unavailable: "Этот браузер не может записывать звук. Используйте браузер с поддержкой микрофона.",
|
|
2910
|
+
permission: "Доступ к микрофону отключен. Разрешите это в настройках браузера и системы.",
|
|
2911
|
+
tooLarge: "Запись превышает лимит обслуживания. Попробуйте более короткую запись."
|
|
2912
|
+
};
|
|
2913
|
+
/** Portuguese dictionary, checked against the English keys. */
|
|
2914
|
+
const pt = {
|
|
2915
|
+
dictate: "Ditar",
|
|
2916
|
+
"setupPrompt.title": "Configure a entrada de voz antes de gravar",
|
|
2917
|
+
"setupPrompt.body": "A entrada de voz está habilitada. A primeira utilização requer o download e a preparação de modelos de reconhecimento local. Abra os detalhes do plug-in para revisar as estimativas de espaço em disco, memória e tempo antes de iniciar a configuração.",
|
|
2918
|
+
"setupPrompt.later": "Mais tarde",
|
|
2919
|
+
"setupPrompt.open": "Vá para configuração",
|
|
2920
|
+
"setupPrompt.trigger": "Abra a configuração de entrada de voz",
|
|
2921
|
+
"setupPrompt.details": "Abra as configurações do plugin de voz",
|
|
2922
|
+
"setupPrompt.unavailableTitle": "O reconhecimento de fala não está pronto",
|
|
2923
|
+
"setupPrompt.unavailableBody": "Abra os detalhes do plugin de voz para verificar o status do reconhecimento, o progresso da preparação ou erros.",
|
|
2924
|
+
"setup.local": "Os modelos locais serão baixados para a máquina que executa DSH. Nenhum Python ou compilador é necessário.",
|
|
2925
|
+
"setup.disk": "Espaço em disco",
|
|
2926
|
+
"setup.diskValue": "Permitir cerca de {gb} GB para modelos, tempo de execução e caches de download",
|
|
2927
|
+
"setup.memory": "Memória",
|
|
2928
|
+
"setup.memoryValue": "Cerca de {gb} GB com o modelo carregado; o reconhecimento pode usar mais",
|
|
2929
|
+
"setup.time": "Primeira configuração",
|
|
2930
|
+
"setup.timeValue": "Aguarde aproximadamente {min}–{max} minutos, dependendo da rede e da máquina",
|
|
2931
|
+
"setup.estimateNote": "Estas são estimativas; redes lentas podem demorar mais. Os downloads são reutilizados; modelos inativos liberam memória por padrão.",
|
|
2932
|
+
"step.check": "Verifique os recursos locais",
|
|
2933
|
+
"step.model": "Preparar modelo de reconhecimento",
|
|
2934
|
+
"step.vad": "Preparar modelo de detecção de voz",
|
|
2935
|
+
"step.verify": "Verifique os arquivos do modelo",
|
|
2936
|
+
"step.load": "Carregar {name}",
|
|
2937
|
+
"stepStatus.pending": "Não iniciado",
|
|
2938
|
+
"stepStatus.running": "Em andamento",
|
|
2939
|
+
"stepStatus.complete": "Concluído",
|
|
2940
|
+
"stepStatus.failed": "Falha",
|
|
2941
|
+
"stepStatus.cancelled": "Cancelado",
|
|
2942
|
+
"short.downloading": "Baixando",
|
|
2943
|
+
"short.failed": "Falha na configuração",
|
|
2944
|
+
retryRecording: "Grave novamente",
|
|
2945
|
+
preparationSteps: "Etapas de preparação",
|
|
2946
|
+
"prepare": "Baixe e prepare",
|
|
2947
|
+
"retryPrepare": "Tentar novamente a preparação",
|
|
2948
|
+
"cancelPrepare": "Cancelar preparação",
|
|
2949
|
+
"downloadProgress": "Progresso do download",
|
|
2950
|
+
"downloadBytes": "Baixar: {completed} / {total} MB, {percent}%",
|
|
2951
|
+
"downloadUnknown": "Download de {completed} MB",
|
|
2952
|
+
"elapsed": "Aguardando {seconds} segundos",
|
|
2953
|
+
"preparationFailed": "Falha na preparação: {message}",
|
|
2954
|
+
"download.network": "Não é possível fazer download de {resource}: falha na conexão com o serviço de download.",
|
|
2955
|
+
"download.dns": "Não é possível fazer download de {resource}: o endereço de download não pôde ser resolvido.",
|
|
2956
|
+
"download.timeout": "O download de {resource} expirou.",
|
|
2957
|
+
"download.certificate": "Não é possível fazer download de {resource}: falha na verificação do certificado.",
|
|
2958
|
+
"download.http": "Não é possível fazer download de {resource}: o serviço de download retornou HTTP {status}.",
|
|
2959
|
+
"download.integrity": "O download de {resource} está incompleto ou falhou na verificação.",
|
|
2960
|
+
"download.storage": "Não é possível salvar {resource}: espaço em disco ou permissão de gravação insuficientes.",
|
|
2961
|
+
"download.unknown": "Não foi possível preparar {resource}.",
|
|
2962
|
+
"downloadAdvice.network": "Verifique se a máquina que executa DSH pode acessar a origem de download e seus serviços de download de modelo. Configure um proxy nessa máquina, se necessário, e tente novamente.",
|
|
2963
|
+
"downloadAdvice.dns": "Verifique as configurações de DNS e proxy na máquina que executa DSH. Confirme se ele pode resolver o domínio de origem do download e tente novamente.",
|
|
2964
|
+
"downloadAdvice.timeout": "Verifique a conexão de rede ou proxy na máquina que executa DSH e tente novamente mais tarde. Os arquivos baixados verificados são retidos.",
|
|
2965
|
+
"downloadAdvice.certificate": "Verifique o relógio do sistema, os certificados confiáveis e as configurações de proxy na máquina que executa DSH e tente novamente.",
|
|
2966
|
+
"downloadAdvice.http": "Confirme se o endereço de download está disponível e se o proxy pode acessar o serviço de download ou tente novamente mais tarde.",
|
|
2967
|
+
"downloadAdvice.integrity": "Tente novamente o download. Outros arquivos concluídos e verificados são retidos.",
|
|
2968
|
+
"downloadAdvice.storage": "Verifique o espaço em disco disponível e a permissão de gravação para o diretório de modelo na máquina que executa DSH e tente novamente.",
|
|
2969
|
+
"downloadAdvice.unknown": "Verifique as permissões de rede, espaço em disco e diretório de modelo na máquina que executa DSH e tente novamente.",
|
|
2970
|
+
downloadSource: "Fonte de download: {source}",
|
|
2971
|
+
sourceChoice: "Fonte de download do modelo",
|
|
2972
|
+
sourceAuto: "Automático (recomendado)",
|
|
2973
|
+
sourceHuggingFace: "Abraçando o rosto",
|
|
2974
|
+
sourceMirror: "Espelho HF (espelho da China)",
|
|
2975
|
+
sourceAutoHelp: "Prefira a primeira fonte de resposta e tente outra se o download falhar.",
|
|
2976
|
+
sourceManualHelp: "Baixe apenas da fonte selecionada. Os arquivos baixados verificados são reutilizados.",
|
|
2977
|
+
downloadCode: "Código de erro: {code}",
|
|
2978
|
+
"reconnecting": "Conectando ao reconhecimento de fala…",
|
|
2979
|
+
"preparation.unprepared": "O primeiro uso baixa os modelos de reconhecimento local.",
|
|
2980
|
+
"preparation.checking": "Verificando recursos locais…",
|
|
2981
|
+
"preparation.loading": "Carregando {name}…",
|
|
2982
|
+
"preparation.waking": "Ativando o reconhecimento de fala local…",
|
|
2983
|
+
"preparation.ready": "O reconhecimento de fala local está pronto.",
|
|
2984
|
+
"preparation.standby": "Os recursos locais estão preparados. A gravação desperta o reconhecedor.",
|
|
2985
|
+
"preparation.cancelled": "Preparação cancelada. Os downloads concluídos são retidos.",
|
|
2986
|
+
"preparation.cancelling": "Cancelando a preparação…",
|
|
2987
|
+
cloudReady: "O reconhecimento de fala na nuvem está pronto.",
|
|
2988
|
+
discard: "Descartar transcrição",
|
|
2989
|
+
transcribingShort: "Transcrevendo…",
|
|
2990
|
+
wakingShort: "Acordando…",
|
|
2991
|
+
provider: "Serviço de reconhecimento",
|
|
2992
|
+
language: "Linguagem de reconhecimento",
|
|
2993
|
+
inputDevice: "Dispositivo de entrada",
|
|
2994
|
+
systemMicrophone: "Padrão do sistema",
|
|
2995
|
+
systemMicrophoneNamed: "Padrão do sistema ({name})",
|
|
2996
|
+
unnamedSelectedMicrophone: "Microfone",
|
|
2997
|
+
unnamedMicrophone: "Microfone {number}",
|
|
2998
|
+
inputLevel: "Nível de entrada do microfone",
|
|
2999
|
+
deviceUnavailable: "Indisponível",
|
|
3000
|
+
deviceMissing: "Microfone indisponível. Escolha outro dispositivo de entrada.",
|
|
3001
|
+
auto: "Detectar automaticamente",
|
|
3002
|
+
zh: "Chinês",
|
|
3003
|
+
en: "Inglês",
|
|
3004
|
+
yue: "cantonês",
|
|
3005
|
+
ja: "Japonês",
|
|
3006
|
+
es: "espanhol",
|
|
3007
|
+
fr: "francês",
|
|
3008
|
+
de: "alemão",
|
|
3009
|
+
ru: "russo",
|
|
3010
|
+
pt: "português",
|
|
3011
|
+
ko: "Coreano",
|
|
3012
|
+
start: "Comece a gravar",
|
|
3013
|
+
stop: "Pare e transcreva",
|
|
3014
|
+
cancel: "Cancelar",
|
|
3015
|
+
insert: "Inserir texto",
|
|
3016
|
+
loading: "Carregando serviços de reconhecimento…",
|
|
3017
|
+
requesting: "Permitir que o acesso ao microfone continue…",
|
|
3018
|
+
recording: "Gravando…",
|
|
3019
|
+
interrupted: "A gravação foi interrompida. Por favor, tente novamente.",
|
|
3020
|
+
local: "O áudio é reconhecido na máquina que executa DSH. Se os modelos precisarem ser baixados, essa máquina deverá ser capaz de acessar a fonte selecionada e seus serviços de arquivo. Configure um proxy nessa máquina, se necessário.",
|
|
3021
|
+
cloud: "O áudio será enviado para o serviço de nuvem selecionado.",
|
|
3022
|
+
empty: "Nenhuma fala reconhecida",
|
|
3023
|
+
cancelled: "Entrada de voz cancelada.",
|
|
3024
|
+
conflict: "Seu rascunho foi alterado. A transcrição é preservada e pode ser inserida no cursor atual.",
|
|
3025
|
+
failed: "Falha no reconhecimento de fala: {message}",
|
|
3026
|
+
unavailable: "Este navegador não pode gravar áudio. Use um navegador com suporte para microfone.",
|
|
3027
|
+
permission: "O acesso ao microfone está desativado. Permita nas configurações do navegador e do sistema.",
|
|
3028
|
+
tooLarge: "A gravação excede o limite de serviço. Experimente uma gravação mais curta."
|
|
3029
|
+
};
|
|
2317
3030
|
//#endregion
|
|
2318
3031
|
//#region lib/types/client/readiness.js
|
|
2319
3032
|
/**
|
|
@@ -2785,6 +3498,11 @@ window.__ModuleLoader__.load({
|
|
|
2785
3498
|
en: props.t("en"),
|
|
2786
3499
|
yue: props.t("yue"),
|
|
2787
3500
|
ja: props.t("ja"),
|
|
3501
|
+
es: props.t("es"),
|
|
3502
|
+
fr: props.t("fr"),
|
|
3503
|
+
de: props.t("de"),
|
|
3504
|
+
ru: props.t("ru"),
|
|
3505
|
+
pt: props.t("pt"),
|
|
2788
3506
|
ko: props.t("ko")
|
|
2789
3507
|
};
|
|
2790
3508
|
return (0, react_jsx_runtime.jsxs)("div", { children: [
|
|
@@ -2869,13 +3587,18 @@ window.__ModuleLoader__.load({
|
|
|
2869
3587
|
const inject = [
|
|
2870
3588
|
"remote",
|
|
2871
3589
|
"slots",
|
|
2872
|
-
"locale"
|
|
2873
|
-
"pluginNavigation"
|
|
3590
|
+
"locale"
|
|
2874
3591
|
];
|
|
2875
3592
|
function registerUi(ctx) {
|
|
2876
3593
|
ctx.effect(() => ctx.locale.register(NS, {
|
|
2877
3594
|
zh,
|
|
2878
|
-
en
|
|
3595
|
+
en,
|
|
3596
|
+
ja,
|
|
3597
|
+
es,
|
|
3598
|
+
fr,
|
|
3599
|
+
de,
|
|
3600
|
+
ru,
|
|
3601
|
+
pt
|
|
2879
3602
|
}));
|
|
2880
3603
|
const recordings = /* @__PURE__ */ new Set();
|
|
2881
3604
|
const microphone = createMicrophoneDeviceStore();
|
|
@@ -2884,13 +3607,23 @@ window.__ModuleLoader__.load({
|
|
|
2884
3607
|
ctx.effect(() => async () => {
|
|
2885
3608
|
await Promise.all([...recordings].map((recording) => recording.dispose()));
|
|
2886
3609
|
});
|
|
3610
|
+
const pluginNavigation = (0, _deepseek_ai_dsh_client_store.createSnapshotStore)(false);
|
|
3611
|
+
ctx.inject(["pluginNavigation"], (scope) => {
|
|
3612
|
+
scope.effect(() => {
|
|
3613
|
+
pluginNavigation.set(true);
|
|
3614
|
+
return () => {
|
|
3615
|
+
pluginNavigation.set(false);
|
|
3616
|
+
};
|
|
3617
|
+
}, "voice-input: plugin navigation presence");
|
|
3618
|
+
});
|
|
2887
3619
|
const actions = {
|
|
2888
3620
|
openSettings: () => {
|
|
2889
|
-
ctx.pluginNavigation
|
|
3621
|
+
ctx.get("pluginNavigation")?.openBundle("@deepseek-ai/dsh-experimental-voice-input-bundle");
|
|
2890
3622
|
},
|
|
2891
3623
|
hooks: {
|
|
2892
3624
|
speechReadiness: readiness.state,
|
|
2893
|
-
microphoneDevice: microphone
|
|
3625
|
+
microphoneDevice: microphone,
|
|
3626
|
+
pluginNavigation
|
|
2894
3627
|
},
|
|
2895
3628
|
selectMicrophone: (device) => {
|
|
2896
3629
|
microphone.set(device);
|
|
@@ -2945,8 +3678,7 @@ window.__ModuleLoader__.load({
|
|
|
2945
3678
|
const ui = ctx.inject([
|
|
2946
3679
|
"remote.speech",
|
|
2947
3680
|
"slots",
|
|
2948
|
-
"locale"
|
|
2949
|
-
"pluginNavigation"
|
|
3681
|
+
"locale"
|
|
2950
3682
|
], registerUi);
|
|
2951
3683
|
try {
|
|
2952
3684
|
await ui;
|