+
+
+
+
diff --git a/openless-all/app/assets/remote-input/mic.png b/openless-all/app/assets/remote-input/mic.png
new file mode 100644
index 000000000..1e0570ee8
Binary files /dev/null and b/openless-all/app/assets/remote-input/mic.png differ
diff --git a/openless-all/app/assets/remote-input/style.css b/openless-all/app/assets/remote-input/style.css
new file mode 100644
index 000000000..911b4f791
--- /dev/null
+++ b/openless-all/app/assets/remote-input/style.css
@@ -0,0 +1,740 @@
+/* ===== OpenLess 远程输入 — 移动端样式 =====
+ * 配色 / 圆角 / 阴影 / 字体对齐 PC 端 design tokens(src/styles/tokens.css):
+ * 黑 + 白 + 电光蓝,浅色 glassy 风格(与桌面端保持一致)。
+ */
+
+:root {
+ /* 中性色 */
+ --bg: #f7f7f8;
+ --surface: #ffffff;
+ --surface-2: #fafafa;
+ --line: rgba(0, 0, 0, 0.08);
+ --line-strong: rgba(0, 0, 0, 0.14);
+
+ /* 墨色文字 */
+ --ink: #0a0a0b;
+ --ink-2: #2a2a2d;
+ --ink-3: rgba(10, 10, 11, 0.62);
+ --ink-4: rgba(10, 10, 11, 0.58);
+
+ /* 蓝色强调 */
+ --blue: #2563eb;
+ --blue-hover: #1d4ed8;
+ --blue-soft: #eff4ff;
+ --blue-ring: rgba(37, 99, 235, 0.22);
+ --on-accent: #ffffff;
+ --accent-solid-bg: var(--blue);
+ --accent-solid-bg-hover: var(--blue-hover);
+ --accent-solid-ink: var(--on-accent);
+
+ /* 状态色 */
+ --ok: #16a34a;
+ --ok-soft: #ecfdf5;
+ --warn: #d97706;
+ --danger: #dc2626;
+
+ /* 阴影 */
+ --shadow-sm: 0 1px 2px rgba(15, 17, 22, 0.04), 0 0 0 0.5px rgba(0, 0, 0, 0.04);
+ --shadow-md:
+ 0 1px 2px rgba(15, 17, 22, 0.05), 0 6px 24px -12px rgba(15, 17, 22, 0.1),
+ 0 0 0 0.5px rgba(0, 0, 0, 0.04);
+ --shadow-lg:
+ 0 20px 60px -20px rgba(15, 17, 22, 0.18), 0 8px 32px -16px rgba(15, 17, 22, 0.1),
+ 0 0 0 0.5px rgba(0, 0, 0, 0.06);
+
+ /* 圆角 */
+ --control-radius: 8px;
+ --r-sm: 6px;
+ --r-md: 10px;
+ --r-lg: 14px;
+ --r-xl: 18px;
+ --bubble-radius: var(--r-lg);
+ --modal-radius: var(--r-xl);
+ --r-2xl: 22px;
+ --r-pill: 999px;
+
+ /* 字体 */
+ --font-sans:
+ system-ui, -apple-system, 'PingFang SC', 'Microsoft YaHei', Roboto, Helvetica, Arial, sans-serif;
+
+ --safe-bottom: env(safe-area-inset-bottom, 0px);
+}
+
+[data-ol-theme='dark'] {
+ --bg: #0b0e13;
+ --surface: #141922;
+ --surface-2: #1a202b;
+ --line: rgba(255, 255, 255, 0.09);
+ --line-strong: rgba(255, 255, 255, 0.16);
+ --ink: #f4f7fb;
+ --ink-2: #d8dfeb;
+ --ink-3: rgba(244, 247, 251, 0.74);
+ --ink-4: rgba(244, 247, 251, 0.58);
+ --blue: #60a5fa;
+ --blue-hover: #3b82f6;
+ --blue-soft: rgba(96, 165, 250, 0.14);
+ --blue-ring: rgba(96, 165, 250, 0.3);
+ --on-accent: #f8fbff;
+ --accent-solid-bg: #2563eb;
+ --accent-solid-bg-hover: #3b82f6;
+ --accent-solid-ink: #f8fbff;
+}
+
+* {
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: transparent;
+}
+
+/* 关键:很多元素用 hidden 属性控制显隐,但元素自带 display(flex/inline-flex)会覆盖浏览器
+ 默认的 [hidden]{display:none},导致空框照常显示。这条强制 hidden 优先(结果框/三点/图标都靠它)。 */
+[hidden] {
+ display: none !important;
+}
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
+
+body {
+ background:
+ radial-gradient(120% 80% at 50% -10%, #eef2fb 0%, var(--bg) 55%) fixed,
+ var(--bg);
+ color: var(--ink);
+ font-family: var(--font-sans);
+ font-size: 16px;
+ line-height: 1.5;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-feature-settings: 'cv11', 'ss01', 'ss03';
+ user-select: none;
+ -webkit-user-select: none;
+ overscroll-behavior: none;
+}
+
+#app {
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+ padding-bottom: calc(24px + var(--safe-bottom));
+}
+
+/* ===== 屏幕切换 ===== */
+.screen {
+ display: none;
+ flex: 1;
+ flex-direction: column;
+ padding: 24px 20px;
+ animation: fadeIn 0.25s ease;
+}
+.screen.active {
+ display: flex;
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ transform: translateY(6px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+/* ===== 品牌头 ===== */
+.brand {
+ text-align: center;
+ margin: 28px 0 22px;
+}
+.brand-logo-img {
+ width: 72px;
+ height: 72px;
+ border-radius: var(--r-xl);
+ object-fit: cover;
+ box-shadow: var(--shadow-lg);
+}
+.brand-title {
+ font-size: 22px;
+ font-weight: 700;
+ margin: 16px 0 4px;
+ letter-spacing: 0.2px;
+ color: var(--ink);
+}
+.brand-sub {
+ margin: 0;
+ color: var(--ink-3);
+ font-size: 14px;
+}
+
+/* ===== 卡片 ===== */
+.card {
+ background: var(--surface);
+ border: 0.5px solid var(--line);
+ border-radius: var(--r-2xl);
+ padding: 22px 20px;
+ box-shadow: var(--shadow-lg);
+}
+.card-center {
+ text-align: center;
+}
+
+.field-label {
+ display: block;
+ font-size: 13px;
+ color: var(--ink-3);
+ margin-bottom: 10px;
+}
+
+/* ===== PIN 输入 ===== */
+.pin-input {
+ width: 100%;
+ font-size: 30px;
+ letter-spacing: 14px;
+ text-align: center;
+ padding: 16px 12px;
+ color: var(--ink);
+ background: var(--surface-2);
+ border: 1.5px solid var(--line-strong);
+ border-radius: var(--r-lg);
+ outline: none;
+ font-variant-numeric: tabular-nums;
+ transition:
+ border-color 0.15s ease,
+ box-shadow 0.15s ease;
+}
+.pin-input::placeholder {
+ color: var(--ink-4);
+ letter-spacing: 14px;
+}
+.pin-input:focus {
+ border-color: var(--blue);
+ box-shadow: 0 0 0 3px var(--blue-ring);
+}
+
+/* ===== 按钮 ===== */
+.btn {
+ -webkit-appearance: none;
+ appearance: none;
+ display: block;
+ width: 100%;
+ margin-top: 16px;
+ padding: 15px 18px;
+ font-size: 17px;
+ font-weight: 600;
+ color: var(--on-accent);
+ border: none;
+ border-radius: var(--r-lg);
+ cursor: pointer;
+ transition:
+ transform 0.08s ease,
+ background 0.15s ease,
+ opacity 0.15s ease;
+}
+.btn:active {
+ transform: scale(0.98);
+}
+.btn:disabled {
+ opacity: 0.5;
+ cursor: default;
+}
+
+.btn-primary {
+ background: var(--accent-solid-bg);
+ box-shadow: 0 6px 18px -6px var(--blue-ring);
+}
+.btn-primary:active {
+ background: var(--accent-solid-bg-hover);
+}
+
+.hint-error {
+ color: var(--danger);
+ font-size: 13px;
+ margin: 12px 2px 0;
+ min-height: 1em;
+}
+
+/* ===== 连接帮助(配对屏) ===== */
+.help {
+ margin-top: 18px;
+ padding: 16px 16px 18px;
+ border-radius: var(--r-xl);
+ background: var(--surface-2);
+ border: 0.5px solid var(--line);
+}
+.help-title {
+ font-size: 13.5px;
+ font-weight: 600;
+ color: var(--ink-2);
+ margin-bottom: 10px;
+ cursor: pointer;
+}
+.help:not([open]) .help-title { margin-bottom: 0; }
+.help-step {
+ font-size: 12.5px;
+ color: var(--ink-3);
+ line-height: 1.65;
+ margin: 0 0 9px;
+}
+.help-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ margin-top: 6px;
+}
+.help-verify {
+ color: var(--ink);
+ padding: 10px;
+ border-left: 3px solid var(--blue);
+ background: var(--surface);
+ border-radius: 4px;
+}
+.help-link {
+ display: inline-block;
+ padding: 9px 16px;
+ border-radius: var(--control-radius);
+ border: none;
+ background: var(--accent-solid-bg);
+ color: var(--accent-solid-ink);
+ font-size: 13px;
+ font-weight: 600;
+ font-family: inherit;
+ text-decoration: none;
+ cursor: pointer;
+ -webkit-appearance: none;
+ appearance: none;
+}
+.help-link:active {
+ background: var(--accent-solid-bg-hover);
+}
+.help-link-ghost {
+ background: var(--surface);
+ color: var(--blue);
+ border: 1px solid var(--blue);
+}
+.help-link-ghost:active {
+ background: var(--blue-soft);
+}
+
+/* ===== 录音屏头部 ===== */
+.rec-header {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ padding-bottom: 8px;
+}
+.app-icon {
+ width: 26px;
+ height: 26px;
+ border-radius: var(--control-radius);
+ flex: none;
+ box-shadow: var(--shadow-sm);
+}
+.rec-header-title {
+ font-weight: 700;
+ font-size: 16px;
+ letter-spacing: 0.2px;
+ color: var(--ink);
+}
+.mode-switch {
+ margin-left: auto;
+ display: inline-flex;
+ background: var(--surface-2);
+ border: 0.5px solid var(--line);
+ border-radius: var(--r-lg);
+ padding: 3px;
+ gap: 2px;
+}
+.mode-btn {
+ -webkit-appearance: none;
+ appearance: none;
+ border: none;
+ background: transparent;
+ color: var(--ink-3);
+ font-size: 13px;
+ font-weight: 600;
+ padding: 7px 14px;
+ border-radius: var(--control-radius);
+ cursor: pointer;
+ transition:
+ background 0.15s ease,
+ color 0.15s ease;
+}
+.mode-btn.active {
+ background: var(--accent-solid-bg);
+ color: var(--accent-solid-ink);
+}
+
+/* ===== 录音主区 ===== */
+.rec-main {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: 26px;
+}
+
+/* 录音大按钮 —— 默认蓝色实心(对齐 PC 主操作蓝),录音中转红 */
+.record-btn {
+ position: relative;
+ width: 168px;
+ height: 168px;
+ border-radius: 50%;
+ border: none;
+ cursor: pointer;
+ color: var(--accent-solid-ink);
+ background: linear-gradient(180deg, var(--accent-solid-bg-hover) 0%, var(--accent-solid-bg) 100%);
+ box-shadow:
+ 0 16px 36px -10px rgba(37, 99, 235, 0.5),
+ inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: 6px;
+ transition:
+ transform 0.1s ease,
+ box-shadow 0.2s ease,
+ background 0.2s ease;
+ user-select: none;
+ -webkit-user-select: none;
+}
+.record-btn:active {
+ transform: scale(0.97);
+}
+
+.record-btn-ring {
+ position: absolute;
+ inset: -6px;
+ border-radius: 50%;
+ border: 2px solid rgba(37, 99, 235, 0.35);
+ opacity: 0;
+ pointer-events: none;
+}
+.record-btn-icon {
+ width: 60px;
+ height: 60px;
+ object-fit: contain;
+ line-height: 1;
+ transition: transform 0.15s ease;
+}
+.record-btn-label {
+ font-size: 14px;
+ font-weight: 600;
+ color: rgba(255, 255, 255, 0.92);
+ letter-spacing: 0.3px;
+}
+
+/* 录音中:红色 + 呼吸脉冲动画 */
+.record-btn.recording {
+ background: linear-gradient(180deg, #f87171 0%, #dc2626 100%);
+ box-shadow: 0 16px 36px -10px rgba(220, 38, 38, 0.5);
+ animation: breathe 1.6s ease-in-out infinite;
+}
+.record-btn.recording .record-btn-label {
+ color: var(--on-accent);
+}
+.record-btn.recording .record-btn-ring {
+ opacity: 1;
+ border-color: rgba(220, 38, 38, 0.4);
+ animation: pulseRing 1.6s ease-out infinite;
+}
+
+@keyframes breathe {
+ 0%,
+ 100% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(1.04);
+ }
+}
+@keyframes pulseRing {
+ 0% {
+ transform: scale(1);
+ opacity: 0.7;
+ }
+ 70% {
+ transform: scale(1.28);
+ opacity: 0;
+ }
+ 100% {
+ transform: scale(1.28);
+ opacity: 0;
+ }
+}
+
+/* 忙/禁用态 */
+.record-btn.busy {
+ opacity: 0.5;
+ cursor: default;
+ animation: none;
+}
+
+/* ===== 音量条 ===== */
+.level-wrap {
+ width: 78%;
+ max-width: 320px;
+ height: 8px;
+ border-radius: var(--r-pill);
+ background: #e9ebf0;
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
+ overflow: hidden;
+ /* 平时淡化成一个浅凹槽;录音时才高亮(下方规则),避免像一根无意义的白条 */
+ opacity: 0.45;
+ transition: opacity 0.2s ease;
+}
+.record-btn.recording ~ .level-wrap {
+ opacity: 1;
+}
+.level-bar {
+ height: 100%;
+ width: 0%;
+ border-radius: var(--r-pill);
+ background: linear-gradient(90deg, var(--ok), var(--blue));
+ transition: width 0.08s linear;
+}
+
+/* ===== 状态条 ===== */
+.status-bar {
+ min-height: 28px;
+ padding: 8px 18px;
+ border-radius: var(--r-pill);
+ background: var(--surface);
+ border: 0.5px solid var(--line);
+ box-shadow: var(--shadow-sm);
+ font-size: 15px;
+ font-weight: 600;
+ color: var(--ink);
+ text-align: center;
+ max-width: 90%;
+}
+.status-bar.is-error {
+ color: var(--danger);
+ border-color: rgba(220, 38, 38, 0.35);
+}
+.status-bar.is-ok {
+ color: var(--ok);
+ border-color: rgba(22, 163, 74, 0.35);
+}
+.status-bar.is-work {
+ color: var(--blue);
+ border-color: var(--blue-ring);
+}
+
+/* 状态图标(如完成对勾) */
+.status-icon {
+ width: 18px;
+ height: 18px;
+ object-fit: contain;
+ vertical-align: -3px;
+ margin-right: 3px;
+}
+
+/* 识别中三点加载动效(替代旋转 emoji) */
+.dots {
+ display: inline-flex;
+ align-items: center;
+ gap: 3px;
+ margin-right: 5px;
+ vertical-align: middle;
+ color: var(--blue);
+}
+.dots i {
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ background: currentColor;
+ display: inline-block;
+ animation: dotPulse 1.2s infinite ease-in-out both;
+}
+.dots i:nth-child(1) {
+ animation-delay: -0.32s;
+}
+.dots i:nth-child(2) {
+ animation-delay: -0.16s;
+}
+@keyframes dotPulse {
+ 0%,
+ 80%,
+ 100% {
+ transform: scale(0.5);
+ opacity: 0.35;
+ }
+ 40% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/* ===== 识别结果文字(电脑回传) ===== */
+.result-wrap {
+ max-width: 90%;
+ margin-top: 2px;
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ animation: fadeIn 0.25s ease;
+}
+.result-text {
+ padding: 12px 16px;
+ border-radius: var(--r-lg);
+ background: var(--surface);
+ border: 0.5px solid var(--line);
+ box-shadow: var(--shadow-sm);
+ font-size: 15px;
+ line-height: 1.55;
+ color: var(--ink);
+ text-align: left;
+ white-space: pre-wrap;
+ word-break: break-word;
+ /* 结果文字允许选中复制(其余 UI 默认禁选) */
+ user-select: text;
+ -webkit-user-select: text;
+}
+.result-copy {
+ align-self: flex-end;
+ -webkit-appearance: none;
+ appearance: none;
+ border: 1px solid var(--blue);
+ background: var(--blue-soft);
+ color: var(--blue);
+ font-size: 13px;
+ font-weight: 600;
+ font-family: inherit;
+ padding: 8px 18px;
+ border-radius: var(--r-lg);
+ cursor: pointer;
+ transition:
+ background 0.15s ease,
+ color 0.15s ease;
+}
+.result-copy:active {
+ background: var(--accent-solid-bg);
+ color: var(--accent-solid-ink);
+}
+.result-copy.copied {
+ background: var(--ok-soft);
+ border-color: var(--ok);
+ color: var(--ok);
+}
+
+/* ===== 提示文字 ===== */
+.rec-tip {
+ text-align: center;
+ color: var(--ink-4);
+ font-size: 13px;
+ margin: 18px 0 0;
+}
+
+/* ===== 电脑落字开关 ===== */
+.insert-toggle {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 10px;
+ margin: 14px 0 0;
+ font-size: 13px;
+ color: var(--ink-3);
+ cursor: pointer;
+}
+.insert-switch {
+ position: absolute;
+ opacity: 0;
+ width: 0;
+ height: 0;
+ pointer-events: none;
+}
+.insert-track {
+ position: relative;
+ width: 42px;
+ height: 24px;
+ border-radius: 999px;
+ background: var(--line-strong);
+ transition: background 0.2s ease;
+ flex: none;
+}
+.insert-track::after {
+ content: '';
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background: #fff;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
+ transition: transform 0.2s ease;
+}
+.insert-switch:checked ~ .insert-track {
+ background: var(--blue);
+}
+.insert-switch:checked ~ .insert-track::after {
+ transform: translateX(18px);
+}
+.insert-switch:focus-visible ~ .insert-track {
+ outline: 2px solid var(--blue);
+ outline-offset: 3px;
+}
+.wake-lock-hint {
+ margin: 7px auto 0;
+ max-width: 340px;
+ color: var(--ink-3);
+ font-size: 12px;
+ line-height: 1.5;
+ text-align: center;
+}
+
+/* ===== 断线屏 ===== */
+.offline-icon {
+ font-size: 48px;
+}
+.offline-title {
+ font-size: 20px;
+ margin: 12px 0 6px;
+ color: var(--ink);
+}
+.offline-sub {
+ color: var(--ink-3);
+ font-size: 14px;
+ margin: 0 0 8px;
+}
+
+/* ===== 底部证书提示(固定) ===== */
+.cert-tip {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 12px 16px calc(12px + var(--safe-bottom));
+ font-size: 12px;
+ line-height: 1.5;
+ color: var(--ink-4);
+ background: rgba(255, 255, 255, 0.92);
+ backdrop-filter: blur(12px) saturate(160%);
+ -webkit-backdrop-filter: blur(12px) saturate(160%);
+ border-top: 0.5px solid var(--line);
+ text-align: center;
+}
+
+/* 小屏微调 */
+@media (max-height: 640px) {
+ .brand {
+ margin: 14px 0;
+ }
+ .brand-logo-img {
+ width: 56px;
+ height: 56px;
+ }
+ .record-btn {
+ width: 148px;
+ height: 148px;
+ }
+ .record-btn-icon {
+ width: 52px;
+ height: 52px;
+ }
+}
diff --git a/openless-all/app/assets/vocab-presets.json b/openless-all/app/assets/vocab-presets.json
new file mode 100644
index 000000000..704b6ad80
--- /dev/null
+++ b/openless-all/app/assets/vocab-presets.json
@@ -0,0 +1,36 @@
+[
+ {
+ "id": "programmer",
+ "name": "程序员",
+ "phrases": [
+ "PR",
+ "CI",
+ "tag",
+ "release",
+ "issue",
+ "Rust",
+ "TypeScript",
+ "Claude",
+ "Codex",
+ "Copilot",
+ "Cursor",
+ "Windsurf",
+ "Anthropic",
+ "OpenAI",
+ "GPT",
+ "ChatGPT",
+ "Gemini",
+ "DeepSeek"
+ ]
+ },
+ {
+ "id": "chef",
+ "name": "厨师",
+ "phrases": ["出品", "备料", "火候", "刀工", "摆盘", "sous vide"]
+ },
+ {
+ "id": "civil-servant",
+ "name": "公务员",
+ "phrases": ["公文", "批示", "督办", "政务", "会签", "材料"]
+ }
+]
diff --git a/openless-all/app/crates/openless-core/src/asr/bailian.rs b/openless-all/app/crates/openless-core/src/asr/bailian.rs
index 9e2850e32..963d81480 100644
--- a/openless-all/app/crates/openless-core/src/asr/bailian.rs
+++ b/openless-all/app/crates/openless-core/src/asr/bailian.rs
@@ -16,6 +16,7 @@ use tokio::net::{lookup_host, TcpStream};
use tokio::sync::{mpsc, oneshot, Mutex as AsyncMutex, Notify};
use tokio_tungstenite::client_async_tls;
use tokio_tungstenite::tungstenite::client::IntoClientRequest;
+use tokio_tungstenite::tungstenite::error::UrlError;
use tokio_tungstenite::tungstenite::http::header::HeaderValue;
use tokio_tungstenite::tungstenite::Error as WsError;
use tokio_tungstenite::tungstenite::Message;
@@ -46,15 +47,11 @@ const PER_ADDR_TCP_TIMEOUT: Duration = Duration::from_millis(1500);
fn default_port_for_request(
request: &tokio_tungstenite::tungstenite::handshake::client::Request,
-) -> Result {
+) -> Result {
let default_port = match request.uri().scheme_str() {
Some("ws") => 80,
Some("wss") => 443,
- _ => {
- return Err(WsError::Url(
- tokio_tungstenite::tungstenite::error::UrlError::UnsupportedUrlScheme,
- ))
- }
+ _ => return Err(UrlError::UnsupportedUrlScheme),
};
Ok(request.uri().port_u16().unwrap_or(default_port))
}
@@ -118,7 +115,7 @@ async fn connect_ws_prefer_ipv4(
),
WsError,
> {
- let port = default_port_for_request(&request)?;
+ let port = default_port_for_request(&request).map_err(WsError::Url)?;
let host = request.uri().host().unwrap_or("").to_string();
let addrs = lookup_host((host.as_str(), port))
.await
@@ -870,15 +867,11 @@ mod tests {
let explicit_port = "https://localhost:443/path".into_client_request().unwrap();
assert!(matches!(
default_port_for_request(&request),
- Err(WsError::Url(
- tokio_tungstenite::tungstenite::error::UrlError::UnsupportedUrlScheme
- ))
+ Err(UrlError::UnsupportedUrlScheme)
));
assert!(matches!(
default_port_for_request(&explicit_port),
- Err(WsError::Url(
- tokio_tungstenite::tungstenite::error::UrlError::UnsupportedUrlScheme
- ))
+ Err(UrlError::UnsupportedUrlScheme)
));
}
diff --git a/openless-all/app/crates/openless-core/src/cloud_sync.rs b/openless-all/app/crates/openless-core/src/cloud_sync.rs
index 83569a9be..bf8f159b6 100644
--- a/openless-all/app/crates/openless-core/src/cloud_sync.rs
+++ b/openless-all/app/crates/openless-core/src/cloud_sync.rs
@@ -162,7 +162,7 @@ impl CloudSyncService {
.parse::()
.is_ok_and(|ip| ip.is_loopback())
});
- if (!matches!(url.scheme(), "https") && !(url.scheme() == "http" && loopback))
+ if !(url.scheme() == "https" || url.scheme() == "http" && loopback)
|| !url.username().is_empty()
|| url.password().is_some()
{
diff --git a/openless-all/app/crates/openless-core/src/domains.rs b/openless-all/app/crates/openless-core/src/domains.rs
index 4b73d88ec..1397aa38e 100644
--- a/openless-all/app/crates/openless-core/src/domains.rs
+++ b/openless-all/app/crates/openless-core/src/domains.rs
@@ -282,7 +282,7 @@ pub trait LocalAsrApi: Send + Sync {
fn delete_model(&self, target: LocalAsrTarget) -> BoxFuture<'static, Result<(), BackendError>>;
fn cleanup_incomplete(
&self,
- target: LocalAsrTarget,
+ _target: LocalAsrTarget,
) -> BoxFuture<'static, Result<(), BackendError>> {
unsupported("local ASR incomplete download cleanup")
}
diff --git a/openless-all/app/crates/openless-core/src/external_audio.rs b/openless-all/app/crates/openless-core/src/external_audio.rs
index 24d0cbf8d..977ba1d44 100644
--- a/openless-all/app/crates/openless-core/src/external_audio.rs
+++ b/openless-all/app/crates/openless-core/src/external_audio.rs
@@ -299,8 +299,10 @@ mod tests {
std::env::temp_dir().join(format!("openless-remote-archive-{}", uuid::Uuid::new_v4()));
let recorder = ExternalAudioRecorder::with_recordings_directory(directory.clone());
let id = SessionId::new();
- let mut context = DictationContext::default();
- context.audio_source = DictationAudioSource::External;
+ let mut context = DictationContext {
+ audio_source: DictationAudioSource::External,
+ ..DictationContext::default()
+ };
context.recording.archive_enabled = true;
let consumer = Arc::new(RecordingConsumer::default());
let recording = recorder
@@ -356,8 +358,10 @@ mod tests {
}
let recorder = ExternalAudioRecorder::with_recordings_directory(directory.clone());
let id = SessionId::new();
- let mut context = DictationContext::default();
- context.audio_source = DictationAudioSource::External;
+ let mut context = DictationContext {
+ audio_source: DictationAudioSource::External,
+ ..DictationContext::default()
+ };
context.recording.archive_enabled = enabled;
let consumer = Arc::new(RecordingConsumer::default());
let recording = recorder
@@ -389,8 +393,10 @@ mod tests {
std::fs::create_dir_all(&directory).unwrap();
std::fs::write(directory.join("user.wav"), b"keep").unwrap();
let recorder = ExternalAudioRecorder::with_recordings_directory(directory.clone());
- let mut context = DictationContext::default();
- context.audio_source = DictationAudioSource::External;
+ let mut context = DictationContext {
+ audio_source: DictationAudioSource::External,
+ ..DictationContext::default()
+ };
context.recording.archive_enabled = true;
context.recording.max_entries = Some(2);
for _ in 0..4 {
diff --git a/openless-all/app/crates/openless-core/src/lib.rs b/openless-all/app/crates/openless-core/src/lib.rs
index 3dc2d6c42..e317e953c 100644
--- a/openless-all/app/crates/openless-core/src/lib.rs
+++ b/openless-all/app/crates/openless-core/src/lib.rs
@@ -355,4 +355,7 @@ pub use types::{
SelectionVoiceIntentMode, SelectionVoiceManualIntent, SessionId, StylePackChange,
TranscriptAccumulator, TranscriptDelta, VocabPreset, VocabPresetStore, VocabularyChange,
};
-pub use vocabulary::{list_vocab_presets, save_vocab_presets, DictionaryStore};
+pub use vocabulary::{
+ builtin_vocab_presets, list_vocab_presets, resolve_vocab_presets, save_vocab_presets,
+ DictionaryStore,
+};
diff --git a/openless-all/app/crates/openless-core/src/provider_service.rs b/openless-all/app/crates/openless-core/src/provider_service.rs
index 102f657dc..bf16e7e39 100644
--- a/openless-all/app/crates/openless-core/src/provider_service.rs
+++ b/openless-all/app/crates/openless-core/src/provider_service.rs
@@ -513,8 +513,8 @@ fn validate_provider_endpoint(endpoint: &str, allow_websocket: bool) -> Result<(
let url =
url::Url::parse(endpoint).map_err(|_| invalid_request("provider endpoint is invalid"))?;
if url.host_str().is_none()
- || !matches!(url.scheme(), "http" | "https")
- && !(allow_websocket && matches!(url.scheme(), "ws" | "wss"))
+ || !(matches!(url.scheme(), "http" | "https")
+ || allow_websocket && matches!(url.scheme(), "ws" | "wss"))
{
return Err(invalid_request("provider endpoint is invalid"));
}
diff --git a/openless-all/app/crates/openless-core/src/settings.rs b/openless-all/app/crates/openless-core/src/settings.rs
index 37d0f7ccf..6ca1579c6 100644
--- a/openless-all/app/crates/openless-core/src/settings.rs
+++ b/openless-all/app/crates/openless-core/src/settings.rs
@@ -52,6 +52,10 @@ pub struct HotkeyRuntimeTarget {
pub selection_polish: Option,
pub coding_agent_enabled: bool,
pub coding_agent_voice: Option,
+ #[serde(default)]
+ pub coding_agent_panel: Option,
+ #[serde(default)]
+ pub coding_agent_quick: Option,
pub style_packs: Vec,
}
@@ -67,6 +71,8 @@ impl From<&UserPreferences> for HotkeyRuntimeTarget {
selection_polish: preferences.selection_polish_hotkey.clone(),
coding_agent_enabled: preferences.coding_agent_enabled,
coding_agent_voice: preferences.coding_agent_voice_hotkey.clone(),
+ coding_agent_panel: preferences.coding_agent_panel_hotkey.clone(),
+ coding_agent_quick: preferences.coding_agent_quick_hotkey.clone(),
style_packs: preferences.style_pack_hotkeys.clone(),
}
}
@@ -105,6 +111,8 @@ pub struct SettingsEffectPlan {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub active_asr_provider: Option>,
#[serde(default, skip_serializing_if = "Option::is_none")]
+ pub launch_at_login: Option>,
+ #[serde(default, skip_serializing_if = "Option::is_none")]
pub windows_keyboard: Option>,
}
@@ -120,6 +128,7 @@ impl SettingsEffectPlan {
previous.active_asr_provider.clone(),
next.active_asr_provider.clone(),
),
+ launch_at_login: changed(previous.launch_at_login, next.launch_at_login),
windows_keyboard: changed(previous.into(), next.into()),
}
}
@@ -127,6 +136,7 @@ impl SettingsEffectPlan {
pub fn is_empty(&self) -> bool {
self.hotkeys.is_none()
&& self.active_asr_provider.is_none()
+ && self.launch_at_login.is_none()
&& self.windows_keyboard.is_none()
}
}
@@ -136,6 +146,7 @@ impl SettingsEffectPlan {
pub enum SettingsEffectKind {
WindowsKeyboard,
ActiveAsrProvider,
+ LaunchAtLogin,
Hotkeys,
}
diff --git a/openless-all/app/crates/openless-core/src/vocabulary.rs b/openless-all/app/crates/openless-core/src/vocabulary.rs
index 2066964ae..6d8229830 100644
--- a/openless-all/app/crates/openless-core/src/vocabulary.rs
+++ b/openless-all/app/crates/openless-core/src/vocabulary.rs
@@ -8,7 +8,7 @@ use chrono::Utc;
use crate::errors::{BackendError, BackendErrorCode};
use crate::persistence::{atomic_write, persistence_error, read_or_default};
use crate::shared_types::LEARNED_VOCAB_NOTE;
-use crate::types::{DictionaryEntry, VocabPresetStore};
+use crate::types::{DictionaryEntry, VocabPreset, VocabPresetStore};
/// Number of recently added manual entries that are guaranteed ASR hotword
/// seats before hit-count ranking is applied.
@@ -266,6 +266,34 @@ pub fn list_vocab_presets(data_dir: &Path) -> Result Vec {
+ serde_json::from_str(include_str!("../../../assets/vocab-presets.json"))
+ .expect("bundled vocabulary presets must be valid JSON")
+}
+
+pub fn resolve_vocab_presets(store: &VocabPresetStore) -> Vec {
+ let mut presets = builtin_vocab_presets()
+ .into_iter()
+ .filter(|preset| !store.disabled_builtin_preset_ids.contains(&preset.id))
+ .collect::>();
+ for replacement in &store.overrides {
+ if let Some(existing) = presets
+ .iter_mut()
+ .find(|preset| preset.id == replacement.id)
+ {
+ *existing = replacement.clone();
+ }
+ }
+ presets.extend(
+ store
+ .custom
+ .iter()
+ .filter(|preset| !preset.id.is_empty())
+ .cloned(),
+ );
+ presets
+}
+
pub fn save_vocab_presets(data_dir: &Path, store: &VocabPresetStore) -> Result<(), BackendError> {
let json = serde_json::to_vec_pretty(store)
.map_err(|_| persistence_error("encode vocabulary presets"))?;
@@ -355,6 +383,29 @@ mod tests {
let _ = std::fs::remove_dir_all(dir);
}
+ #[test]
+ fn bundled_presets_resolve_disables_overrides_and_custom_entries() {
+ let store = VocabPresetStore {
+ custom: vec![VocabPreset {
+ id: "custom".into(),
+ name: "自定义".into(),
+ phrases: vec!["OpenLess".into()],
+ }],
+ overrides: vec![VocabPreset {
+ id: "programmer".into(),
+ name: "工程师".into(),
+ phrases: vec!["Rust".into()],
+ }],
+ disabled_builtin_preset_ids: vec!["chef".into()],
+ };
+ let resolved = resolve_vocab_presets(&store);
+ assert!(resolved.iter().any(|preset| preset.id == "custom"));
+ assert!(resolved
+ .iter()
+ .any(|preset| preset.id == "programmer" && preset.name == "工程师"));
+ assert!(!resolved.iter().any(|preset| preset.id == "chef"));
+ }
+
#[test]
fn asr_priority_preserves_fresh_manual_entries_and_dedupes_case_variants() {
let entry = |phrase: &str, hits: u64, note: Option<&str>| DictionaryEntry {
diff --git a/openless-all/app/linux-egui/Cargo.toml b/openless-all/app/linux-egui/Cargo.toml
index 1e35030d1..6e65d94ba 100644
--- a/openless-all/app/linux-egui/Cargo.toml
+++ b/openless-all/app/linux-egui/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "openless-linux-egui"
-version = "0.1.0"
+version = "2.0.0-Beta.1"
license = "AGPL-3.0-only"
description = "Linux host seam for the OpenLess egui frontend"
edition = "2021"
@@ -13,16 +13,27 @@ tokio = { version = "1", features = ["io-util", "macros", "net", "process", "rt-
fs2 = "0.4"
futures-util = "0.3"
log = "0.4"
+simplelog = "0.12"
+base64 = "0.22"
+minisign-verify = "0.2.5"
+reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream"] }
+semver = "1"
+chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
uuid = { version = "1", features = ["v4"] }
[target.'cfg(target_os = "linux")'.dependencies]
dbus = "0.9"
-arboard = { version = "3", features = ["wayland-data-control"] }
+x11rb = { version = "0.13.2", features = ["randr", "xinput"] }
keyring = { version = "3.6.3", default-features = false, features = ["linux-native-sync-persistent", "crypto-rust"] }
-cpal = "0.15"
-eframe = { version = "0.31", default-features = false, features = ["default_fonts", "glow", "wayland", "x11"] }
+# PipeWire's PulseAudio protocol also supports the GNOME 42 / Ubuntu 22.04
+# baseline (native cpal PipeWire requires libpipewire >= 0.3.53).
+cpal = { version = "0.18.2", default-features = false, features = ["pulseaudio"] }
+rfd = { version = "0.16", default-features = false, features = ["xdg-portal", "tokio"] }
+egui = "=0.33.3"
+eframe = { version = "=0.33.3", default-features = false, features = ["accesskit", "default_fonts", "glow", "wayland", "x11"] }
+image = { version = "0.25.10", default-features = false, features = ["png"] }
libc = "0.2"
axum = { version = "0.7", default-features = false, features = ["ws", "http1", "tokio"] }
hyper-util = { version = "0.1", features = ["tokio", "server-auto", "server", "http1"] }
diff --git a/openless-all/app/linux-egui/assets/ui-locales.json b/openless-all/app/linux-egui/assets/ui-locales.json
new file mode 100644
index 000000000..b15ac5f09
--- /dev/null
+++ b/openless-all/app/linux-egui/assets/ui-locales.json
@@ -0,0 +1 @@
+{"zh-CN":{"cloudSync.title":"云同步","cloudSync.description":"使用 GitHub 账号,在设备之间同步词典、风格与个人偏好。","cloudSync.signIn":"使用 GitHub 登录","cloudSync.account":"同步账号","cloudSync.refresh":"刷新状态","cloudSync.loading":"正在读取云端状态…","cloudSync.noBackup":"云端尚无备份","cloudSync.available":"云端备份已就绪","cloudSync.summary":"{{dictionary}} 个词条 · {{corrections}} 条纠正规则 · {{stylePacks}} 个风格","cloudSync.updated":"更新于 {{time}}","cloudSync.upload":"备份到云端","cloudSync.restore":"从云端恢复","cloudSync.delete":"删除云端备份","cloudSync.working":"正在同步…","cloudSync.uploadSuccess":"已备份到云端","cloudSync.restoreSuccess":"已恢复云端配置","cloudSync.deleteSuccess":"云端备份已删除","cloudSync.failed":"同步失败:{{error}}","cloudSync.conflict":"云端已有更新。请刷新状态后,再决定备份或恢复。","cloudSync.unavailable":"官方同步服务暂不可用,请稍后重试。","cloudSync.signInRequired":"请先登录 GitHub。","cloudSync.restoreTitle":"恢复云端备份?","cloudSync.restoreDescription":"云端的词典、纠正规则、风格和同步偏好将覆盖本机对应内容。API 密钥、设备目录与权限保持本机设置。","cloudSync.deleteTitle":"删除云端备份?","cloudSync.deleteDescription":"仅删除这个 GitHub 账号的云端备份,本机数据会保留。","cloudSync.confirmRestore":"恢复并替换","cloudSync.confirmDelete":"删除备份","cloudSync.scope":"同步词典、纠正规则、风格图标与常用偏好。API 密钥、登录凭据及设备专属设置保留在本机。","macDictationKey.Changed":"保存期间快捷键已改变,请重试。","macDictationKey.label":"Mac 听写键","macDictationKey.description":"用麦克风图标键替换当前听写快捷键。退出 OpenLess 后,此键交回 macOS。","macDictationKey.Permission":"请在 macOS「隐私与安全性 → 辅助功能」中允许 OpenLess 后重试。","macDictationKey.Busy":"请先结束当前听写,再更改快捷键。","macDictationKey.Unavailable":"无法启用此快捷键,已保存的绑定未改变。请重试或选择其他键。","app.name":"OpenLess","app.tagline":"自然说话,完美书写","common.loading":"加载中…","common.retry":"重试","common.settingsLoadFailed":"设置加载失败","common.refresh":"刷新","common.clear":"清空","common.copy":"复制","common.delete":"删除","common.later":"稍后","common.cancel":"取消","common.close":"关闭","common.show":"显示","common.hide":"隐藏","common.saved":"已保存","common.saving":"保存中","common.experimental":"实验性","common.copied":"已复制","common.operationFailed":"操作失败","common.add":"添加","common.durationSeconds":"{{value}} 秒","common.durationMillis":"{{value}} 毫秒","common.durationMinutes":"{{value}} 分钟","capsule.thinking":"thinking","capsule.using":"using","capsule.cancelled":"已取消","capsule.error":"出错了","capsule.inserted":"已插入 {{count}}","capsule.translating":"正在翻译","capsule.selectionPolish.polishing":"正在润色...","capsule.selectionPolish.replaced":"已替换","capsule.selectionPolish.noSelection":"未选中内容","capsule.selectionPolish.failed":"润色失败,请重试","selectionPolishPreview.title":"选区润色预览","selectionPolishPreview.subtitle":"可直接编辑;点击确认后才会替换原选区。","selectionPolishPreview.cancel":"取消","selectionPolishPreview.resultLabel":"润色结果","selectionPolishPreview.sourcePrefix":"原文:","selectionPolishPreview.applyError":"未能应用:","selectionPolishPreview.confirmReplace":"确认并替换","selectionVoiceIntent.title":"你想做什么?","selectionVoiceIntent.subtitle":"已识别你的语音指令,请选择处理方式。","selectionVoiceIntent.loading":"加载中…","selectionVoiceIntent.sourcePrefix":"选区:","selectionVoiceIntent.errorPrefix":"未能继续:","selectionVoiceIntent.question":"提问","selectionVoiceIntent.edit":"编辑选区","selectionVoiceIntent.cancel":"取消","qa.title":"划词追问","qa.headerHint":"随时提问","qa.thinking":"思考中…","qa.error":"出错了,请稍后再试。","qa.errorRetry":"重试","qa.errorRetryHint":"请再试一次。","qa.pinTooltip":"固定(不自动关闭)","qa.unpinTooltip":"取消固定","qa.closeTooltip":"关闭","qa.micLabel":"语音提问","qa.micStop":"结束录音","qa.selectionPreview":"基于选中文本:","qa.emptyTitle":"有什么可以帮你?","qa.emptyDesc":"选中任意文字后开始追问,或直接在下方输入问题。回答会显示在这里,可以连续多轮。","qa.recordingHint":"录音中…再按一次 {{recordHotkey}} 结束并提问","qa.mobileRecordLabel":"录音按钮","qa.mobileRecordStart":"开始录音","qa.mobileRecordStop":"结束并提交","qa.composerPlaceholder":"输入问题,Enter 发送","qa.composerSend":"发送","qa.statusIdle":"按 {{recordHotkey}} 提问","qa.statusRecording":"录音中","qa.statusThinking":"思考中","qa.statusError":"出错了","qa.jumpToLatest":"跳到最新","qa.editApplyReplace":"预览并确认插入","qa.editApplyUnavailable":"没有可替换的编辑结果","qa.editRevertPrevious":"保留上一版本","qa.editInstructionMode":"编辑指令","lessComputer.title":"Less Computer","lessComputer.subtitle":"想让电脑做什么?","lessComputer.you":"你","lessComputer.working":"正在操控电脑…","lessComputer.tool":"调用了 {{name}}","lessComputer.compaction":"上下文已压缩","lessComputer.done":"完成","lessComputer.cost":"${{cost}}","lessComputer.error":"失败,请重试。","lessComputer.closeTooltip":"关闭","lessComputer.jumpToLatest":"跳到最新","lessComputer.inputPlaceholder":"输入指令,Enter 发送","lessComputer.send":"发送","lessComputer.approvalTitle":"执行被拦截的命令?","lessComputer.approvalRerunWarning":"注意:批准后将在已被修改的工作区上重新运行,可能对不可重入操作产生副作用","lessComputer.approve":"允许","lessComputer.deny":"拒绝","lessComputer.approved":"已允许","lessComputer.denied":"已拒绝","nav.overview":"概览","nav.history":"历史","nav.vocab":"词典","nav.style":"风格","nav.marketplace":"风格市场","nav.translation":"翻译","nav.selectionAsk":"划词追问","nav.corrections":"纠正规则","nav.polishMode":"润色模式","nav.group.style":"风格","nav.group.tools":"工具","nav.localAsr":"模型设置","nav.more":"更多","marketplace.kicker":"风格市场","marketplace.title":"风格包市场","marketplace.desc":"浏览、安装和分享社区风格包。","marketplace.searchPlaceholder":"搜索名称 / 描述 / 标签…","marketplace.sortPopular":"按热度","marketplace.sortNew":"最新","marketplace.uploadBtn":"上传","marketplace.uploadDisabledHint":"请先在 设置 → 风格市场 配置 GitHub 用户名","marketplace.refreshBtn":"刷新","marketplace.empty":"还没有风格包","marketplace.emptyHint":"换个搜索词,或自己上传一个分享给社区","marketplace.loadFailed":"加载失败:{{err}}","marketplace.noDescription":"(暂无描述)","marketplace.installBtn":"安装到本地","marketplace.installingBtn":"安装中…","marketplace.downloadZipBtn":"下载 ZIP","marketplace.downloadingZipBtn":"下载中…","marketplace.downloadAria":"下载「{{name}}」ZIP","marketplace.likeBtn":"点赞","marketplace.installed":"已安装「{{name}}」到本地风格包","marketplace.downloaded":"已下载「{{name}}」ZIP","marketplace.uploaded":"上传成功,等待审核","marketplace.uploadTitle":"选择要上传的风格包","marketplace.uploadHint":"上传以 {{login}} 身份登录。包内容会发到云端审核队列。","marketplace.uploadNoLocal":"本地没有可上传的风格包","marketplace.errors.detail":"加载详情失败:{{err}}","marketplace.errors.install":"安装失败:{{err}}","marketplace.errors.download":"下载 ZIP 失败:{{err}}","marketplace.errors.like":"点赞失败:{{err}}","marketplace.errors.upload":"上传失败:{{err}}","marketplace.errors.loadLocal":"加载本地风格包失败:{{err}}","marketplace.sortLiked":"我赞过的","marketplace.likedEmpty":"你还没有赞过任何风格包","marketplace.likedEmptyHint":"点开任一风格包,红色星星点亮后会出现在这里","marketplace.derivativeBadge":"衍生自 @{{login}}","marketplace.detail.withdrawBtn":"撤回发布","marketplace.detail.withdrawConfirm":"确认从风格市场撤回「{{name}}」?本地副本不会被删除。","marketplace.detail.withdrawSuccess":"已从风格市场撤回","marketplace.detail.withdrawFailed":"撤回失败:{{err}}","marketplace.myPacks.buttonLabel":"我的发布","marketplace.myPacks.buttonTitle":"查看 {{login}} 的发布","marketplace.myPacks.buttonTitleEmpty":"先在 Settings → 风格市场 填写发布身份","marketplace.myPacks.searchPlaceholder":"搜索名称、标签","marketplace.myPacks.notLoggedIn":"请先在 Settings → 风格市场 填写发布身份","marketplace.myPacks.emptyTitle":"你还没有发布过风格包","marketplace.myPacks.emptyHint":"在「风格」页面编辑后点「发布到风格市场」,或点击右上角上传本地风格包。","marketplace.myPacks.noMatch":"没有匹配的风格包","marketplace.myPacks.summary":"已发布 {{count}} 个风格包","marketplace.myPacks.summaryPending":"已发布 {{count}} 个风格包 · {{pending}} 个审核中","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"更新","marketplace.myPacks.actions.withdraw":"下架","marketplace.myPacks.loadFailed":"我的发布加载失败:{{err}}","marketplace.myPacks.loadingTitle":"正在拉取,请稍后…","marketplace.myPacks.loadingHint":"从风格市场获取你最新发布的风格包。","marketplace.myPacks.loadErrorTitle":"加载失败","marketplace.myPacks.loadErrorRetry":"重试","marketplace.upload.confirmBtn":"确定上传","marketplace.upload.updateTitle":"更新「{{name}}」","marketplace.upload.updateHint":"选中要上传的本地新版本风格包,下方点「确定上传」。同名包默认预选。","marketplace.upload.recommendedBadge":"建议更新","marketplace.state.pending":"审核中","marketplace.state.approved":"已上架","marketplace.state.rejected":"未通过","marketplace.state.withdrawn":"已下架","marketplace.state.superseded":"已被新版替换","marketplace.state.unknown":"未知","marketplace.oauth.title":"用 GitHub 登录","marketplace.oauth.generating":"正在生成设备验证码…","marketplace.oauth.browserHint":"在浏览器中打开 {{uri}} 并输入下方代码:","marketplace.oauth.copyBtn":"复制","marketplace.oauth.copied":"已复制设备码","marketplace.oauth.copyFailed":"复制失败:{{err}}","marketplace.oauth.openBrowserBtn":"打开浏览器","marketplace.oauth.cancelBtn":"取消","marketplace.oauth.waiting":"等待你在浏览器中授权…","marketplace.oauth.successAs":"已登录为 @{{login}}","marketplace.oauth.retryBtn":"重试","marketplace.oauth.closeBtn":"关闭","marketplace.oauth.loginBtn":"登录","marketplace.oauth.loginTooltip":"点击用 GitHub 登录","marketplace.oauth.reloginTooltip":"点击重新登录 / 切换账号(当前 @{{login}})","marketplace.modal.loggedIn":"当前登录身份 —— 在 Settings → 录音 → 风格市场 修改","marketplace.modal.notLoggedIn":"未登录 —— 去 Settings → 录音 → 风格市场 填一个发布者名","marketplace.modal.notLoggedInLabel":"未登录","shell.shortcutLabel":"录音快捷键","shell.shortcutHint":"开始 / 停止","shell.betaTag":"BETA","shell.betaNote":"本地存储,可选云端备份","shell.navHint.overview":"状态总览:用量统计、提供商与权限健康检查","shell.navHint.history":"听写历史:搜索、回放与复制过往转写","shell.navHint.vocab":"词典:自定义热词,提升专有名词识别率","shell.navHint.style":"润色风格:管理输出风格与自定义提示词","shell.navHint.translation":"翻译:按住 Shift 说话,译成目标语言插入","shell.navHint.selectionAsk":"划词追问:选中文字后语音提问","shell.navHint.settings":"偏好设置:快捷键、提供商、隐私与更新","shell.footer.account":"账户","shell.footer.feedback":"反馈","shell.footer.settings":"设置","shell.footer.help":"帮助","shell.footer.version":"版本 {{version}}","shell.footer.helpPopover.tagline":"本地驱动的语音输入层","shell.footer.helpPopover.releaseNotes":"查看发布日志 ↗","shell.footer.helpPopover.docs":"帮助中心 ↗","shell.providerPrompt.title":"设置语音提供商","shell.providerPrompt.body":"还没有配置 ASR 或 LLM 提供商,语音输入和润色暂时无法正常工作。","shell.providerPrompt.later":"稍后","shell.providerPrompt.openSettings":"去设置","shell.hotkeyModePrompt.title":"检查录音方式","shell.hotkeyModePrompt.body":"默认已改为切换式。如果之前改过触发方式,请到录音设置确认一次。","shell.hotkeyModePrompt.later":"稍后提醒","shell.hotkeyModePrompt.openSettings":"去录音设置","onboarding.welcome":"欢迎使用 OpenLess","onboarding.intro":"本地说出,本地落字。开始前需要两个系统权限。","onboarding.accessibilityTitle":"辅助功能","onboarding.hotkeyTitle":"全局快捷键","onboarding.accessibilityDesc":"用于监听全局快捷键(默认 {{trigger}})并把识别结果写入光标位置。","onboarding.hotkeyDesc":"用于确认全局快捷键监听可用。","onboarding.micTitle":"麦克风","onboarding.micDesc":"用于捕获你的语音输入。","onboarding.actionNotApplicable":"无需授权","onboarding.actionGranted":"已授权","onboarding.actionOpenSystem":"打开系统设置","onboarding.actionRestart":"重置授权并重启 OpenLess","onboarding.actionGrant":"授权","onboarding.actionRequestMic":"弹出授权","onboarding.micNoDeviceHint":"未检测到麦克风,请连接并启用麦克风后重试。","onboarding.accessibilityHint":"授权后必须**完全退出 OpenLess** 再重新打开(macOS TCC 规则)。","onboarding.footerHint":"授权全部完成后此引导自动关闭。如果一直不消失,从菜单栏 OpenLess → 退出,重新打开 App。","onboarding.continueToSettings":"仅进入设置(语音与全局快捷键暂不可用)","onboarding.androidContinue":"先进入应用","onboarding.androidFooterHint":"听写需要麦克风权限。可点击上方「弹出授权」,或先进入应用后在概览页继续授权。","onboarding.androidTitle":"配置 OpenLess","onboarding.androidIntro":"按步骤完成移动端权限和服务配置。","onboarding.androidStepCounter":"第 {{current}} / {{total}} 项","onboarding.androidBack":"上一步","onboarding.androidNext":"下一步","onboarding.androidFinish":"完成并进入","onboarding.androidSteps.microphoneTitle":"麦克风权限","onboarding.androidSteps.microphoneDesc":"调用 Android 系统授权卡片,允许 OpenLess 录制语音。","onboarding.androidSteps.accessibilityTitle":"无障碍服务","onboarding.androidSteps.accessibilityDesc":"用于把识别结果粘贴回当前输入框,并辅助检测输入环境。","onboarding.androidSteps.overlayPermissionTitle":"悬浮窗权限","onboarding.androidSteps.overlayPermissionDesc":"允许 OpenLess 在其他应用上显示录音控制按钮。","onboarding.androidSteps.overlayConfigTitle":"悬浮窗配置","onboarding.androidSteps.overlayConfigDesc":"设置悬浮窗显示时机、触发方式、滑动动作和按钮大小。","onboarding.androidSteps.asrTitle":"ASR 云服务","onboarding.androidSteps.asrDesc":"配置语音转文字服务的供应商、密钥、接口地址和模型。","onboarding.androidSteps.llmTitle":"LLM 服务","onboarding.androidSteps.llmDesc":"配置文本润色、翻译和问答使用的语言模型服务。","overview.refresh":"刷新状态","overview.servicesTitle":"当前语音服务","overview.statsTitle":"使用记录","overview.omniKind":"多模态语音","overview.omniName":"当前 Omni 模型","overview.statusLoading":"正在读取服务配置…","overview.configureProvider":"去配置","overview.manageProvider":"管理服务","overview.recentEmptyHint":"还没有听写记录。跟着上方的引导试一次,结果会显示在这里。","overview.providerHelp.asr":"将语音转成文字。","overview.providerHelp.llm":"按你的风格整理和润色文字。","overview.providerHelp.omni":"由一个模型完成语音识别和文字处理。","overview.actions.refresh":"重新读取","overview.actions.services":"AI 服务与模型","overview.actions.general":"录音与输入","overview.actions.shortcuts":"快捷键","overview.actions.privacy":"权限与数据","overview.guide.nextStep":"下一步","overview.guide.loadingTitle":"正在读取你的配置","overview.guide.loadingDesc":"稍等一下,马上显示当前服务和下一步操作。","overview.guide.unavailableTitle":"暂时无法读取服务状态","overview.guide.unavailableDesc":"重新读取,或进入 AI 服务查看配置。","overview.guide.servicesTitle":"先配置语音服务","overview.guide.servicesDesc":"推荐从这里开始:选择语音识别和文字处理服务;使用 Omni 时,只需配置当前多模态模型。","overview.guide.permissionsTitle":"先检查快捷键状态","overview.guide.permissionsDesc":"当前快捷键适配器不可用。打开权限与数据,查看状态和可用的处理方式。","overview.guide.shortcutsTitle":"设置一个录音快捷键","overview.guide.shortcutsDesc":"选择顺手的快捷键,之后就能在输入时发起听写。","overview.guide.recordingTitle":"确认你的录音方式","overview.guide.recordingDesc":"服务配置已保存。打开录音设置,选择麦克风和适合你的录音方式。","overview.guide.tryDictationTitle":"试一次听写","overview.guide.tryDictationDesc":"把光标放到要输入的地方。{{shortcut}}","overview.guide.permissionsHint":"录音或快捷键没有反应?在「权限与数据」中查看权限、麦克风和快捷键状态。","overview.kicker":"概览","overview.title":"今日概览","overview.desc":"今日口述统计与系统状态。","overview.pressPrefix":"按","overview.pressSuffix":"开始录音","overview.asrKind":"语音识别","overview.llmKind":"文字处理","overview.asrName":"火山引擎","overview.asrSubname":"bigmodel","overview.llmName":"OpenAI 兼容","overview.llmConfigured":"已配置 active LLM","overview.llmNotConfigured":"未配置","overview.statusConfigured":"已配置","overview.statusNotConfigured":"未配置","overview.statusUnknown":"无法读取","overview.credentialsLoadError":"无法读取凭据状态","overview.metricChars":"今日字数","overview.metricSegments":"{{count}} 段","overview.metricDuration":"今日总时长","overview.metricAvg":"平均段落","overview.metricAvgTrend":"今日均值","overview.metricNoData":"暂无数据","overview.historyLoadError":"历史读取失败","overview.metricTotal":"累计记录","overview.metricTotalTrend":"本机存档 (上限 200)","overview.activityTitle":"年度活动","overview.activityCount":"{{count}} 次听写","overview.activityLoadError":"活动数据读取失败","overview.period.ariaLabel":"统计周期","overview.period.last7Days":"近 7 天","overview.period.last30Days":"近 30 天","overview.period.dailyAverage":"日均 {{value}}","overview.period.minutes":"{{value}} 分钟","overview.period.hoursMinutes":"{{hours}} 小时 {{minutes}} 分","overview.metricName.ariaLabel":"统计指标","overview.metricName.count":"条数","overview.metricName.chars":"字数","overview.metricName.duration":"时长","overview.recentTitle":"最近识别","overview.recentAll":"全部记录 →","overview.recentEmpty":"还没有记录。按 {{trigger}} 开始第一次录音。","overview.recentLoadFailed":"无法读取最近识别,请重试。","overview.historyRetry":"重试","overview.weekDays.0":"日","overview.weekDays.1":"一","overview.weekDays.2":"二","overview.weekDays.3":"三","overview.weekDays.4":"四","overview.weekDays.5":"五","overview.weekDays.6":"六","overview.inAppDictation.title":"应用内录音","overview.inAppDictation.start":"开始录音","overview.inAppDictation.stop":"停止录音","overview.inAppDictation.idle":"点击开始录音","overview.inAppDictation.recording":"录音中…","overview.inAppDictation.processing":"处理中…","overview.androidMicBanner.title":"需要麦克风权限","overview.androidMicBanner.desc":"授权麦克风后可使用应用内录音与语音输入。","overview.androidMicBanner.grant":"弹出授权","overview.androidMicBanner.openSettings":"打开系统设置","history.exportError":"导出录音失败,请重试。","history.kicker":"历史记录","history.title":"历史记录","history.desc":"本机保存的识别记录。","history.filterAll":"全部","history.summary":"共 {{total}} 条 · 显示 {{shown}}","history.searchPlaceholder":"搜索转写内容…({{shortcut}})","history.searchNoMatch":"没有匹配「{{query}}」的记录。","history.empty":"还没有历史记录。按 {{trigger}} 录一段试试。","history.loadFailed":"加载历史失败:{{err}}","history.retry":"重试","history.clearFailed":"清空失败:{{err}}","history.deleteFailed":"删除失败:{{err}}","history.copyFailed":"复制失败:{{err}}","history.playRecording":"播放录音","history.audioLoading":"加载中…","history.audioDecodeFailed":"音频解码失败:{{err}}","history.exportRecording":"导出录音","history.exportFailed":"导出失败:{{err}}","history.retranscribe":"重新转录","history.retranscribing":"转录中…","history.retranscribeFailed":"重新转录失败:{{err}}","history.rawLabel":"原文","history.rawEmpty":"(空)","history.selectHint":"左侧选一条查看详情。","history.recorded":"录音 {{duration}}","history.stepAsr":"识别","history.multimodalPipeline":"多模态","history.stepAsrHint":"松键后等待识别结果的耗时。流式识别边录边转,此值通常远小于录音时长。","history.stepPolish":"润色","history.stepInsert":"插入","history.chars":"{{count}} 字","history.vocabHits":"{{count}} 个热词","history.inserted":"已插入","history.pasteSent":"已尝试粘贴","history.copiedFallback":"已复制(需 {{shortcut}})","history.insertFailed":"插入失败","history.confirmClear":"确定清空全部 {{count}} 条记录?此操作不可恢复。","history.backToList":"返回列表","history.repolish.title":"重新润色","history.repolish.hint":"基于上面的原文再跑一次润色。结果只在本次查看时显示,不写回这条记录。原风格包已删除或旧记录时,重试将使用当前风格。","history.repolish.retry":"用原风格重试","history.repolish.retrying":"重试中…","history.repolish.apply":"应用","history.repolish.applying":"润色中…","history.repolish.pickStyle":"选择风格包","history.repolish.noPacks":"没有可用的风格包。","history.repolish.packsLoadFailed":"读取风格包失败:{{err}}","history.repolish.failed":"重新润色失败:{{err}}","history.repolish.timeout":"当前 LLM 提供商 30 秒内没有返回结果。换个更快的提供商,或稍后重试 —— 免费模型池经常排队。","history.repolish.resultTitle":"{{name}} 的结果","history.repolish.retryResultTitle":"重试结果","history.repolish.empty":"(模型返回了空结果)","history.repolish.clear":"清除结果","vocabCard.title":"要记住这个词吗?","vocabCard.accept":"记住","vocabCard.reject":"不用","insertFallbackCard.copy":"复制","insertFallbackCard.copied":"已复制","insertFallbackCard.copyFailed":"复制失败","insertFallbackCard.dismiss":"关闭","vocab.selectAllVisible":"选择当前结果","vocab.selectedCount":"已选择 {{count}} 个词","vocab.selectWord":"选择「{{phrase}}」","vocab.deleteSelected":"删除已选({{count}})","vocab.batchDeleteFailed":"{{count}} 个词条删除失败,已保留选中,可重试。","vocab.kicker":"词典","vocab.title":"词典","vocab.desc":"添加生词或专业术语,提高识别准确率。","vocab.sectionTitle":"词条","vocab.placeholder":"输入词语,按 Enter 或点添加…","vocab.tip":"支持中英混合 · 数字开头按字面识别 · 命中次数自动计数","vocab.loadFailed":"加载失败:{{err}}","vocab.empty":"还没有词条。在上面输入一个生词或专业术语,让模型在听写时优先匹配。","vocab.tipDisabled":"点击禁用此词条","vocab.tipEnabled":"点击启用此词条","vocab.removeAria":"删除","vocab.edit":"编辑","vocab.editTitle":"编辑词汇","vocab.editSave":"保存","vocab.editEmpty":"词条不能为空。","vocab.filter.all":"所有","vocab.filter.auto":"自动添加","vocab.filter.manual":"手动添加","vocab.searchPlaceholder":"搜索","vocab.searchEmpty":"没有匹配的词条。","vocab.newWord":"新词","vocab.newWordTitle":"添加新词","vocab.newWordDesc":"直接输入新词,或从预设模板批量导入。","vocab.newWordInputPlaceholder":"输入词语,按 Enter 添加…","vocab.newWordTemplates":"预设模板","vocab.newWordTemplateCount":"{{count}} 词","vocab.newWordAddSelected":"添加所选","vocab.learnedSection":"自动收集({{count}})","vocab.removeAllLearned":"全部删除","vocab.corrections.title":"纠正规则","vocab.corrections.tip":"修正常见 ASR 误识别,支持 {num} 数字通配。","vocab.corrections.patternPlaceholder":"误识别写法,如 {num}粒","vocab.corrections.replacementPlaceholder":"目标写法,如 {num}例","vocab.corrections.empty":"还没有纠正规则。","vocab.corrections.invalid":"仅支持字面替换,或一个 {num} 通配数字的规则,例如 {num}粒 → {num}例。","vocab.corrections.tipDisabled":"点击禁用此规则","vocab.corrections.tipEnabled":"点击启用此规则","vocab.corrections.removeAria":"删除纠正规则","vocab.corrections.learnedBadge":"自动","vocab.corrections.learnedTip":"从你的手改中自动收集。可以随时删掉。","vocab.corrections.onlyLearned":"只看自动收集的({{count}})","vocab.corrections.removeAllLearned":"删除全部自动收集的","vocab.corrections.suggestTitle":"要记住这个改法吗?","vocab.corrections.suggestAccept":"记住","vocab.corrections.suggestDismiss":"不用","vocab.presets.title":"场景预设","vocab.presets.tip":"可多选批量启用,支持编辑和新建。","vocab.presets.create":"新建预设","vocab.presets.apply":"启用所选","vocab.presets.save":"保存预设","vocab.presets.edit":"编辑 {{name}}","vocab.presets.newPreset":"新预设","vocab.presets.namePlaceholder":"预设名称","vocab.presets.wordsPlaceholder":"词条(用逗号或换行分隔)","style.kicker":"风格","style.title":"输出风格","style.desc":"选择录音的默认输出风格。","style.masterToggle":"整体启用","style.currentDefault":"当前默认","style.ariaSetDefault":"设为默认","style.saveFailed":"保存失败:{{error}}","style.customPromptTitle":"自定义提示词","style.customPromptPlaceholder":"可选,追加到这个风格的内置 system prompt 末尾。","style.customPromptHint":"留空则保持当前行为不变。保存后会在该风格的润色和 repolish 中生效;按 Ctrl/Cmd+Enter 也可保存。","style.customPromptSave":"保存提示词","style.customPromptDirty":"未保存","style.systemPromptMovedHint":"完整 System Prompt 已移到 设置 -> Providers 页面统一编辑。这里现在只负责风格启停和默认风格。","style.modes.raw.name":"原文","style.modes.raw.desc":"只补标点和必要分句,不改写不扩写。","style.modes.raw.sample":"保留原始口语;嗯、那个等口癖会被去除,但不会重组语句。","style.modes.light.name":"轻度润色","style.modes.light.desc":"去口癖、补标点,整理为可发送的自然文字。","style.modes.light.sample":"让转写听起来不像念稿——保留语气和表达习惯,但行文流畅。","style.modes.structured.name":"清晰结构","style.modes.structured.desc":"面向编程协作、技术排障和产品反馈,准确保留术语并梳理结构。","style.modes.structured.sample":"1. 主题一\na. 要点\nb. 要点\n2. 主题二\na. 要点\nb. 要点","style.modes.formal.name":"正式表达","style.modes.formal.desc":"工作沟通和邮件场景,更专业更完整。","style.modes.formal.sample":"邮件场景自动识别问候 / 落款;不引入空泛客套。","style.pack.builtinTags.minimalEdits":"最小改写","style.pack.builtinTags.strongCorrection":"强纠错","style.pack.builtinTags.communication":"沟通","style.pack.builtinTags.natural":"自然","style.pack.builtinTags.organized":"条理","style.pack.builtinTags.workplaceCommunication":"工作沟通","style.pack.builtinTags.aiCoding":"AI 编程","style.pack.builtinTags.technicalStructure":"技术结构化","style.pack.newName":"未命名风格","style.pack.newDescription":"简短描述这个风格的使用场景。","style.pack.uploadIcon":"为「{{name}}」上传 SVG 图标","style.pack.resetIcon":"恢复默认图标","style.pack.iconSaved":"图标已保存","style.pack.iconInvalid":"请选择不含外部资源的有效 SVG 图标(最大 256 KB)。","style.pack.iconSaveFailed":"图标保存失败,请重试。","style.pack.selectionListTitle":"选区书面润色风格","style.pack.selectionListDesc":"用于无需 ASR 的已选文字:单纯语法、清晰度和格式润色。可为它单独选择风格与 Prompt。","style.pack.dictationTab":"录音 / ASR 风格","style.pack.selectionTab":"选区润色","style.pack.current":"当前","style.pack.useForSelection":"用于选区","style.pack.writtenPolish":"书面润色","style.pack.selectionPromptTitle":"选区润色 Prompt(无 ASR)","style.pack.selectionPromptHint":"用于用户主动选中的书面文字;不经过 ASR,不把内容当成转写,也不回答其中的问题。","style.pack.selectionPromptEditorDesc":"当前编辑选区润色 Prompt;输入对象是用户主动选中的书面文字,不经过 ASR。","style.pack.dictationPromptEditorDesc":"当前编辑录音 / ASR 风格 Prompt;输入对象是语音识别后的转写文本。","style.pack.dictationPromptTitle":"录音 / ASR Prompt","style.pack.dictationPromptHint":"用于录音转写后的 ASR 文本;这里可以写口语整理、ASR 错字纠正和专有名词还原规则。","style.pack.selectionPromptFallback":"尚未配置书面润色 Prompt;将使用安全默认规则。","style.pack.selectionActivated":"已将「{{name}}」用于选区润色","style.pack.selectionActivateFailed":"选区润色风格切换失败:{{err}}","style.pack.selectionChars":"{{count}} 字符","style.pack.kicker":"风格包","style.pack.title":"风格包","style.pack.desc":"管理本地风格包。","style.pack.marketplaceBtn":"风格市场","style.pack.loadFailed":"加载风格包失败:{{err}}","style.pack.importZip":"导入 ZIP","style.pack.exportZip":"导出 ZIP","style.pack.exportShort":"导出","style.pack.publishMarketplace":"发布到风格市场","style.pack.updateMarketplace":"更新到风格市场新版本","style.pack.publishDisabledHint":"请先在 设置 → 风格市场 配置 GitHub 用户名","style.pack.publishSuccess":"发布成功,等待 marketplace 审核","style.pack.publishFailed":"发布失败:{{err}}","style.pack.publishBuiltinRejected":"内置风格包不能直接发布,请先编辑生成一份导入版。","style.pack.builtin":"内置","style.pack.imported":"导入","style.pack.active":"当前","style.pack.activate":"激活","style.pack.edit":"编辑","style.pack.closeEditor":"关闭","style.pack.unsaved":"未保存","style.pack.listTitle":"本地风格包","style.pack.listDesc":"浏览和切换风格包。","style.pack.listCount":"{{count}} 个风格包","style.pack.addPackTileTitle":"新建风格包","style.pack.addPackTileHint":"从空白模板开始。","style.pack.createSuccess":"已创建新风格包","style.pack.createFailed":"创建风格包失败:{{err}}","style.pack.save":"保存","style.pack.revert":"撤销","style.pack.saveSuccess":"风格包已保存","style.pack.saveFailed":"保存风格包失败:{{err}}","style.pack.activateSuccess":"已将\"{{name}}\"设为当前风格","style.pack.activateFailed":"设为当前风格失败:{{err}}","style.pack.importSuccess":"已导入\"{{name}}\"","style.pack.importFailed":"导入 ZIP 失败:{{err}}","style.pack.exportSuccess":"已导出到 {{path}}","style.pack.exportFailed":"导出 ZIP 失败:{{err}}","style.pack.exportDirtyFirst":"请先保存当前风格包,再导出 ZIP。","style.pack.resetBuiltin":"重置","style.pack.resetSuccess":"已重置\"{{name}}\"","style.pack.resetFailed":"重置风格包失败:{{err}}","style.pack.deleteImported":"删除","style.pack.deleteConfirm":"确定删除\"{{name}}\"吗?删除后无法恢复。","style.pack.deleteSuccess":"已删除\"{{name}}\"","style.pack.deleteFailed":"删除风格包失败:{{err}}","style.pack.summaryCurrentEmpty":"还没有选中风格包","style.pack.editorTitle":"编辑风格","style.pack.editorDesc":"编辑当前风格包。","style.pack.metaTitle":"安装信息","style.pack.metaSource":"来源","style.pack.metaBaseMode":"基础模式","style.pack.metaUpdatedAt":"更新时间","style.pack.fieldName":"名称","style.pack.fieldAuthor":"作者","style.pack.fieldAuthorPlaceholder":"可选,方便标注来源","style.pack.fieldVersion":"版本","style.pack.fieldTags":"标签","style.pack.fieldTagsPlaceholder":"用英文逗号分隔,例如 community, voiceover, formal","style.pack.fieldDescription":"描述","style.pack.fieldModel":"推荐模型(仅元数据)","style.pack.fieldModelPlaceholder":"可选,例如 gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"仅作说明,不会切换实际模型。","style.pack.fieldCompatibility":"兼容版本","style.pack.fieldCompatibilityPlaceholder":"可选,例如 >=1.3.0","style.pack.fullPromptTitle":"System Prompt","style.pack.fullPromptHint":"这就是这套风格包自己的 Prompt。","style.pack.promptChars":"{{count}} 字符","style.pack.runtimeTitle":"OpenLess 运行时附加指令","style.pack.runtimeDesc":"只读的运行时辅助项。","style.pack.runtimeContextTitle":"上下文前提","style.pack.runtimeContextDesc":"来自语言与应用上下文","style.pack.runtimeContextEmpty":"当前不会附加","style.pack.runtimeHotwordTitle":"热词提示段","style.pack.runtimeHotwordDesc":"来自已启用热词","style.pack.runtimeHotwordEmpty":"当前不会附加","style.pack.runtimeHistoryTitle":"多轮历史保护段","style.pack.runtimeHistoryDesc":"仅用于实时多轮 polish","style.pack.runtimeHistoryEmpty":"只有存在 prior turns 时才会附加","style.pack.runtimeActive":"当前生效","style.pack.runtimeInactive":"当前未生效","style.pack.runtimePreviewFailed":"生成运行时预览失败:{{err}}","style.pack.runtimePreviewOmittedFrontApp":"预览已省略前台 app 标签。","style.pack.examplesTitle":"效果示例","style.pack.examplesDesc":"会随风格包一起导出。","style.pack.addExample":"新增示例","style.pack.examplesEmpty":"还没有示例。","style.pack.exampleTitlePlaceholder":"示例 {{index}} 标题","style.pack.exampleInput":"输入","style.pack.exampleOutput":"输出","style.pack.examplesCount":"{{count}} 个示例","style.pack.discardCloseConfirm":"关闭编辑面板前要放弃未保存修改吗?","style.pack.discardSwitchConfirm":"要放弃当前未保存修改,并切换到\"{{name}}\"吗?","style.pack.derivativeBadge":"衍生自 @{{login}}","translation.searchLanguages":"搜索语言…","translation.noMatchingLanguages":"没有匹配的语言","translation.selectedLanguages":"已选择 {{count}} 种语言","translation.languageSupportHint":"语音服务支持的语种可能不同;翻译目标不受界面语言限制。","translation.kicker":"翻译","translation.title":"翻译","translation.desc":"录音后自动翻译为目标语言再插入。","translation.statusEnabled":"已启用","translation.statusDisabled":"未启用","translation.working.title":"工作语言","translation.working.desc":"勾选日常使用的语言,影响润色与翻译效果。","translation.target.title":"翻译目标语言","translation.target.desc":"录音时按 Shift 触发翻译。选「不启用」则 Shift 无效。","translation.target.disabled":"不启用(Shift 按下不触发翻译)","translation.target.sameAsWorking":"目标语言与你唯一的工作语言相同,翻译不会生效:按 Shift 仍按普通润色处理。换一个目标语言,或在上方多勾选一个工作语言。","translation.style.title":"翻译风格","translation.style.desc":"自动继承「风格」页当前激活的风格包。","translation.style.unavailable":"暂不可用","translation.save.workingFailed":"工作语言保存失败,请重试。","translation.save.targetFailed":"翻译目标语言保存失败,请重试。","translation.save.hotkeyRegisterFailed":"翻译快捷键注册失败,未继续保存。","translation.save.hotkeySaveFailed":"翻译快捷键保存失败,请重试。","translation.howto.title":"使用方法","translation.howto.step1":"在任意输入框聚焦光标。","translation.howto.step2":"按 {{trigger}} 开始录音。","translation.howto.step3":"录音中按一下 {{shortcut}} 激活翻译。","translation.howto.step4":"再按 {{trigger}} 停止录音。","translation.howto.step5":"翻译结果自动插入到光标位置。","translation.howto.indicatorTitle":"翻译模式指示","translation.howto.indicatorDesc":"按 Shift 后屏幕底部会显示蓝色「正在翻译」标识。","translation.howto.fallbackTitle":"安全兜底","translation.howto.fallbackDesc":"翻译失败时回退为插入原始转写,不会丢字。","selectionAsk.title":"划词追问","selectionAsk.desc":"选中文字后语音提问,支持多轮追问。","selectionAsk.shortcutSettings":"快捷键设置","selectionAsk.guide.openTitle":"打开追问浮窗","selectionAsk.guide.openDesc":"按 {{hotkey}},开始一轮对话。","selectionAsk.guide.unsetDesc":"先在快捷键设置中,为划词追问设置一个快捷键。","selectionAsk.guide.selectTitle":"选中想了解的内容","selectionAsk.guide.askTitle":"开口说出问题","selectionAsk.guide.askDesc":"按 {{recordHotkey}} 录音,再按一次提交。","selectionAsk.guide.followup":"继续使用录音快捷键,即可多轮追问。","selectionAsk.guide.dismiss":"关闭浮窗,结束本次对话","selectionAsk.hotkey.title":"弹出浮窗的快捷键","selectionAsk.save.historySaveFailed":"Q&A 历史保存设置保存失败,请重试。","selectionAsk.history.title":"保存历史","selectionAsk.history.desc":"开启后在本地保存问答记录,默认关闭。","selectionAsk.howto.title":"使用方法","selectionAsk.howto.step2":"在任意 app 选中文字。","settings.selectionWorkspace.title":"选区助手","settings.selectionWorkspace.hint":"选中文字后按同一快捷键:关闭语音编辑时直接润色;开启后口述指令,说完再选择「提问」或「编辑选区」。","settings.selectionWorkspace.polishHotkey":"选区助手快捷键","settings.selectionWorkspace.polishHotkeyDesc":"关闭语音编辑时直接润色;开启语音编辑时按住口述指令(录音方式跟随全局设置)。","settings.selectionWorkspace.polishDelivery":"结果处理","settings.selectionWorkspace.voiceDeliveryDesc":"语音编辑完成后:直接替换选区,或在华词面板中预览后再确认。","settings.selectionWorkspace.voiceEnable":"语音编辑","settings.selectionWorkspace.voiceEnableDesc":"与上方同一快捷键;录音方式跟随全局设置(当前:{{recordingLabel}})。","settings.selectionWorkspace.autoIntent":"自动判断意图","settings.selectionWorkspace.autoIntentDesc":"开启后默认用服务配置的模型判断问句 vs 编辑;模型不可用或解析失败时回退到问句启发式。","settings.selectionWorkspace.editKeywords":"额外问句线索","settings.selectionWorkspace.editKeywordsDesc":"关闭自动判断时生效;每行一个,指令中包含则视为提问,否则仍按问句启发式(?/吗/什么…)判定。","settings.selectionPolish.title":"选区润色","settings.selectionPolish.hotkey":"触发快捷键","settings.selectionPolish.hotkeyDesc":"录制后立即生效;与录音、追问等全局快捷键冲突时会被拒绝。","settings.selectionPolish.delivery":"结果处理方式","settings.selectionPolish.hint":"选择任意文字后触发。它不依赖麦克风或 ASR,使用当前风格包与独立的选区 Prompt。","settings.selectionPolish.directReplace":"直接覆盖","settings.selectionPolish.directReplaceHint":"模型完成后安全替换原选区。","settings.selectionPolish.previewConfirm":"预览确认","settings.selectionPolish.previewConfirmHint":"在可编辑弹窗中核对结果,再确认覆盖原选区。","settings.kicker":"设置","settings.title":"设置","settings.desc":"录音、提供商、快捷键与权限配置。","settings.network.title":"网络","settings.network.useSystemProxyLabel":"使用系统代理","settings.network.useSystemProxyDesc":"开启时请求跟随系统代理;关闭后所有网络请求直连(国内服务延迟通常更低),GitHub 登录、更新等境外服务可能连不上。实时语音流与 Less Computer 不受此开关影响。","settings.dataStorage.title":"数据存储","settings.dataStorage.desc":"本机保留的历史会话与对话上下文。","settings.dataStorage.cursorContextLabel":"光标上下文(实验)","settings.dataStorage.cursorContextDesc":"润色时读取你正在写的那篇文档中光标附近的原文,帮模型判断同音词、专名和代词该怎么写。开启后这段文字会随请求发送给你配置的 LLM 服务商;关闭时一个字都不读。密码输入框、Secure Input、密码管理器与终端始终不读。仅 macOS。","settings.codingConsole.title":"Claude 控制台","settings.codingConsole.desc":"检测本机 Claude Code 与 MCP(computer use)状态,并护栏化地无头跑一次 Claude、流式查看输出与用量。","settings.codingConsole.guardNote":"默认放行可恢复操作;rm -rf / sudo / 强制推送等高风险命令被拦截;若工作目录是 git 仓库,运行前自动生成快照可回滚。","settings.codingConsole.status":"状态","settings.codingConsole.detect":"检测","settings.codingConsole.detecting":"检测中…","settings.codingConsole.installed":"已检测到 Claude","settings.codingConsole.notInstalled":"未检测到 claude","settings.codingConsole.notInstalledHint":"请先安装 Claude Code(参见 docs.anthropic.com/claude-code),或在下方填写其可执行文件完整路径。","settings.codingConsole.mcpServers":"已配置 {{count}} 个 MCP 服务","settings.codingConsole.computerUsePresent":"已配置桌面控制(computer use)MCP","settings.codingConsole.computerUseAbsent":"未配置桌面控制 MCP(复制/粘贴等轻动作用 Bash 即可,无需此项)","settings.codingConsole.exePath":"可执行文件","settings.codingConsole.workdir":"工作目录","settings.codingConsole.workdirDesc":"可选。Claude 在此目录内运行;填写 git 仓库可启用运行前快照回滚。","settings.codingConsole.workdirPlaceholder":"留空则在临时目录运行","settings.codingConsole.permissionMode":"权限模式","settings.codingConsole.mode.acceptEdits":"放行(可恢复操作)","settings.codingConsole.mode.plan":"只读 / 计划","settings.codingConsole.mode.default":"默认(逐项确认)","settings.codingConsole.mode.bypassPermissions":"完全放行(高风险)","settings.codingConsole.promptPlaceholder":"让 Claude 做点什么,例如:把当前目录的文件名列出来","settings.codingConsole.run":"运行","settings.codingConsole.running":"运行中…","settings.codingConsole.cancel":"取消","settings.codingConsole.clear":"清空","settings.codingConsole.riskWarn":"检测到高风险意图:{{reason}}。护栏会在执行层拦截高风险命令。","settings.codingConsole.toolUse":"调用工具 {{name}}","settings.codingConsole.done":"完成","settings.codingConsole.doneCost":"完成 · 用量 ${{cost}}","settings.codingConsole.cancelled":"已取消","settings.codingConsole.outputPlaceholder":"输出会流式显示在这里…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"按住一个键说话,由所选 Agent 帮你操作电脑。仅 macOS。","settings.codingAgent.enable":"启用 Less Computer","settings.codingAgent.comingSoonNote":"配置即时保存;热键触发与执行链路随后续版本生效。","settings.codingAgent.hotkeyHint":"开启后,按住快捷键说话,松开后由所选 Agent 处理并把结果显示在胶囊里。","settings.codingAgent.voiceHotkey":"按住说话键","settings.codingAgent.voiceHotkeyDesc":"按住说话、松开执行。支持 Ctrl/Option/Fn 等单键。功能说明参见「高级」设置页。","settings.codingAgent.provider":"Agent 后端","settings.codingAgent.opencodeReady":"已检测到 OpenCode v{{version}}。","settings.codingAgent.opencodeMissing":"未检测到 opencode 命令。请先安装(npm i -g opencode-ai)并用 opencode auth login 登录后再使用。","settings.codingAgent.cliReady":"已检测到 {{name}} v{{version}}。","settings.codingAgent.cliMissing":"未检测到 {{name}} 命令。请先安装并登录,或在下方「可执行文件」里填它的绝对路径。","settings.codingAgent.sandboxGuardHint":"该后端只有粗粒度沙箱档位,没有逐命令的高风险清单:撞到限制时会直接如实报错,不会弹出「批准这条命令」的卡片。","settings.codingAgent.codexModelHint":"填 Codex 的模型名(如 gpt-5);留空则用 ~/.codex/config.toml 里的设置。","settings.codingAgent.codexBudgetHint":"Codex 没有单次美元预算上限;费用取决于你配置的服务商。","settings.codingAgent.codexMode.plan":"只读 / 计划","settings.codingAgent.codexMode.workspaceWrite":"允许工作区写入","settings.codingAgent.codexModelPlaceholder":"留空 = 用 Codex 自己的默认","settings.codingAgent.dshModelHint":"dsh 的 headless 配置里没有模型开关:模型由 dsh 自己的 profile 决定,在这里改不了。","settings.codingAgent.panelHotkey":"面板键(语音 Agent)","settings.codingAgent.panelHotkeyDesc":"录音 → ASR → Claude → 结果流式进面板。默认 Cmd/Ctrl+Shift+Enter。","settings.codingAgent.quickHotkey":"快取用键","settings.codingAgent.quickHotkeyDesc":"拿当前选中文本 → Claude → 结果回插光标处。不开面板、更快。","settings.codingAgent.model":"模型","settings.codingAgent.modelPlaceholder":"默认 sonnet","settings.codingAgent.modelDefault":"默认(自动 sonnet)","settings.codingAgent.modelHint":"Haiku 最快 · Sonnet 均衡 · Opus 最强","settings.codingAgent.opencodeModelDefault":"使用 OpenCode 默认模型","settings.codingAgent.opencodeModelHint":"自动拉取 OpenCode 当前账号可用的 provider/model;选择后立即保存。","settings.codingAgent.opencodeModelsRefresh":"重新拉取模型","settings.codingAgent.opencodeModelsRefreshing":"正在拉取 OpenCode 模型…","settings.codingAgent.opencodeModelsLoaded":"已拉取 {{count}} 个模型。","settings.codingAgent.opencodeModelsEmpty":"没有返回可用模型,请先完成 OpenCode 登录或配置模型提供商。","settings.codingAgent.opencodeModelsError":"拉取模型失败:{{message}}","settings.codingAgent.exe":"可执行文件路径","settings.codingAgent.openPanel":"文字测试","settings.codingAgent.openPanelHint":"直接打开 Less Computer 浮窗,用文字验证当前 Agent 与模型配置。","settings.codingAgent.openPanelAction":"打开 Less Computer","settings.debug.cursorLabel":"光标","settings.debug.title":"调试工具","settings.debug.desc":"排查识别问题时使用,平时无需开启。","settings.debug.cursorProbeLabel":"光标上下文探针","settings.debug.cursorProbeDesc":"点一下,然后在倒计时内切到目标 app 并点进输入框——探针会读那里的光标附近原文,用来确认哪些 app 读得到、哪些被安全闸门拦住。只读一次,不发给任何服务商。","settings.debug.cursorProbeBtn":"探测(5 秒后)","settings.debug.cursorProbeCountdown":"{{n}} 秒后读取…","settings.marketplace.title":"扩展市场","settings.marketplace.desc":"风格市场的上传身份。浏览与安装风格在「风格」页内完成。","settings.marketplace.github.signIn":"用 GitHub 账号登录","settings.marketplace.github.signedIn":"已通过 GitHub 登录","settings.marketplace.github.signedOut":"登录后即可上传风格、给风格点赞。","settings.marketplace.github.signOut":"退出登录","settings.marketplace.github.starting":"正在发起登录…","settings.marketplace.github.codeHint":"在打开的 GitHub 页面输入这个验证码:","settings.marketplace.github.openGithub":"打开 GitHub","settings.marketplace.github.waiting":"已打开 GitHub,完成授权后会自动登录…","settings.marketplace.github.failed":"登录失败,请重试","settings.recording.title":"录音与输入","settings.recording.desc":"全局录音的快捷键与触发方式。","settings.recording.hotkeyLabel":"录音快捷键","settings.recording.hotkeyDescAcc":"按下开始捕获语音,全局生效(需辅助功能权限)。","settings.recording.hotkeyDescNoAcc":"按下开始捕获语音,全局生效。","settings.recording.modeLabel":"录音方式","settings.recording.modeDesc":"切换式按一次开始、再按一次结束;按住说话按下保持、松开结束。","settings.recording.modeToggle":"切换式","settings.recording.modeHold":"按住说话","settings.recording.modeAuto":"自动","settings.recording.silenceAutoStopLabel":"静音后自动停止","settings.recording.silenceAutoStopDesc":"仅切换模式生效。检测到语音后,连续静音达到所选时长即自动结束并提交;一直没说话则 10 秒后取消。默认关闭;第二次按键停止和 Esc 取消仍然有效。","settings.recording.silenceAutoStopSecondsLabel":"静音时长","settings.recording.silenceAutoStopSecondsValue":"{{value}} 秒","settings.recording.migrationNoticeTitle":"默认已改为切换式说话","settings.recording.migrationNoticeDesc":"本次更新调整了默认值,如果习惯按住说话,请在此处切回。","settings.recording.microphoneLabel":"首选麦克风","settings.recording.microphoneDesc":"选择优先输入设备。设备断开时自动切到系统默认。","settings.recording.microphoneDefault":"系统默认麦克风","settings.recording.microphoneDefaultDesc":"使用系统默认输入设备","settings.recording.microphoneSystemDefault":"系统默认","settings.recording.microphoneUnavailable":"不可用","settings.recording.microphoneLoadError":"麦克风列表读取失败:{{message}}","settings.recording.microphoneDialogTitle":"麦克风","settings.recording.microphoneDialogDesc":"选择能捕捉到您声音的麦克风。","settings.recording.microphoneMonitorError":"输入电平监听失败:{{message}}","settings.recording.capsuleLabel":"录音胶囊","settings.recording.capsuleDesc":"录音 / 转写时显示屏幕底部胶囊。","settings.recording.capsuleStyleTypeless":"Typeless 传统风格","settings.recording.capsuleStyleLabel":"胶囊样式","settings.recording.capsuleStyleSiri":"流光 Siri 风格","settings.recording.capsuleStyleClassic":"Openless 默认风格","settings.recording.muteDuringRecordingLabel":"录音时静音","settings.recording.muteDuringRecordingDesc":"录音期间临时静音系统输出,避免扬声器回音。","settings.recording.audioCueLabel":"录音提示音","settings.recording.audioCueDesc":"按下热键开始录音时播放一段合成提示音,提醒已开始录音。胶囊隐藏时也会响。","settings.recording.audioCuePreview":"试听","settings.recording.insertGroupTitle":"插入与剪贴板","settings.recording.restoreClipboardLabel":"插入后恢复剪贴板","settings.recording.restoreClipboardDesc":"粘贴成功后恢复你原来的剪贴板内容(仅 Windows / Linux)。","settings.recording.pasteShortcutLabel":"模拟粘贴快捷键","settings.recording.pasteShortcutDesc":"插入时模拟按下的粘贴键,部分终端类应用需要 Ctrl+Shift+V(仅 Windows / Linux)。","settings.recording.pasteShortcutCtrlV":"Ctrl+V(默认 / 多数应用)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V(kitty / alacritty / wezterm / 多数终端)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert(xterm / urxvt)","settings.recording.comboRecordLabel":"录制快捷键","settings.recording.comboRecordDesc":"点击后按下想要的快捷键组合(如 ⌘⇧D)。","settings.recording.comboRecordBtn":"录制快捷键","settings.recording.comboResetBtn":"重置","settings.recording.comboMenuToggle":"更多操作","settings.recording.comboDisableHint":"核心快捷键不可停用,录音必须绑定一个热键","settings.recording.comboRecordHint":"请按下快捷键组合…","settings.recording.comboNeedKey":"请配组合键(如 ⌘⇧J),不支持单独的修饰键","settings.recording.comboRecorded":"已录制","settings.recording.comboClear":"清除","settings.recording.comboConflict":"该快捷键组合不可用","settings.recording.allowNonTsfFallbackLabel":"允许非 TSF 兜底","settings.recording.allowNonTsfFallbackDesc":"Windows:TSF 失败时使用分批 Unicode SendInput;如果仍失败,再复制到剪贴板。","settings.recording.windowsInsertionModeLabel":"Windows 插入方式","settings.recording.windowsInsertionModeDesc":"听写结果如何插入到当前光标位置。剪贴板粘贴模式使用上方「模拟粘贴快捷键」,可完整保留换行。","settings.recording.windowsInsertionModeTsf":"TSF 输入法(默认)","settings.recording.windowsInsertionModeSendInput":"SendInput 逐字模拟","settings.recording.windowsInsertionModePaste":"剪贴板粘贴(Ctrl+V 等)","settings.recording.macosNewlineModeLabel":"换行怎么落","settings.recording.macosNewlineModeDesc":"自动会在已知终端应用中使用 Line Feed(U+000A / Ctrl+J),其他应用使用 Shift+Return;Return 会直接发送。","settings.recording.macosNewlineModeAuto":"自动(终端使用 Line Feed)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return(聊天框换行)","settings.recording.macosNewlineModeLineFeed":"Line Feed(终端 CLI / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return(拆成多条消息)","settings.recording.windowsSendInputNewlineModeLabel":"SendInput 换行模拟","settings.recording.windowsSendInputNewlineModeDesc":"SendInput 模式下如何把换行符模拟成按键。聊天框通常选 Shift+Enter;记事本 / VS Code 等选 Enter。","settings.recording.windowsSendInputNewlineModeEnter":"Enter(多数编辑器)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter(聊天输入框)","settings.recording.windowsSendInputNewlineModeCrLf":"CR+LF Unicode","settings.recording.windowsShowOpenlessInKeyboardListLabel":"在键盘列表中显示 OpenLess","settings.recording.windowsShowOpenlessInKeyboardListDesc":"关闭后 Win+Space 切换输入法时不会出现 OpenLess;SendInput 与剪贴板粘贴插入不受影响。重新开启本项可恢复显示。","settings.recording.windowsShowOpenlessInKeyboardListError":"无法更新键盘列表:系统拒绝更改 OpenLess 语言配置文件。","settings.recording.historyGroupTitle":"历史与上下文","settings.recording.historyRetentionLabel":"历史保留天数","settings.recording.historyRetentionDesc":"超过保留天数的历史在写入新条目时被清理;0 = 不按时间清理。","settings.recording.historyMaxEntriesLabel":"历史条数上限","settings.recording.historyMaxEntriesDesc":"本地保留会话上限,留空 = 200。范围 5–200。","settings.recording.polishContextWindowLabel":"对话上下文窗口(分钟)","settings.recording.polishContextWindowDesc":"把最近 N 分钟内已润色的转写作为多轮上下文,0 = 关闭。","settings.recording.recordAudioForDebugLabel":"保留原始录音(调试)","settings.recording.recordAudioForDebugDesc":"保存原始麦克风音频为 wav,便于排查识别问题。","settings.recording.audioRecordingMaxEntriesLabel":"原始录音保留条数","settings.recording.audioRecordingMaxEntriesDesc":"本地保留 wav 文件数上限,留空 = 200。","settings.recording.startupGroupTitle":"启动","settings.recording.startMinimizedLabel":"启动时静默运行","settings.recording.startMinimizedDesc":"所有启动路径都不弹主窗口,仅菜单栏 / 托盘运行。","settings.recording.autoUpdateCheckLabel":"自动检查更新","settings.recording.autoUpdateCheckDesc":"启动时及每 60 分钟自动检查更新。","settings.recording.marketplaceGroupTitle":"风格市场","settings.recording.marketplaceBaseUrlLabel":"云端服务地址","settings.recording.marketplaceBaseUrlDesc":"风格市场后端 URL,留空使用默认值。","settings.recording.marketplaceDevLoginLabel":"GitHub 用户名(上传身份)","settings.recording.marketplaceDevLoginDesc":"标识上传者身份,为空时无法上传或点赞。","settings.recording.startupAtBoot":"开机自启","settings.recording.startupAtBootDesc":"登录系统时自动启动 OpenLess。","settings.recording.startupAtBootError":"开机自启切换失败:{{message}}","settings.channels.backToList":"返回渠道列表","settings.channels.done":"完成","settings.channels.llmTitle":"文字处理渠道","settings.channels.asrTitle":"语音识别渠道","settings.channels.current":"当前使用","settings.channels.enabled":"启用","settings.channels.disabled":"已停用","settings.channels.enabledFor":"启用 {{name}}","settings.channels.modelNotSet":"模型未单独设置","settings.channels.localModelManaged":"模型由系统或「本地模型」页管理","settings.channels.lastCheck":"上次验证","settings.channels.verifying":"正在验证…","settings.channels.notVerified":"尚未验证","settings.channels.passed":"验证通过","settings.channels.failed":"验证失败 · {{reason}}","settings.channels.elapsed":"耗时 {{ms}} ms","settings.channels.staleResult":"结果已超过 24 小时","settings.channels.connectionTitle":"服务连接","settings.channels.modelTitle":"模型设置","settings.channels.modelHint":"直接输入模型名称,或拉取并选择供应商的可用模型。","settings.channels.availableModels":"可用模型","settings.channels.validationTitle":"连接验证","settings.channels.validationHint":"手动发起一次真实请求,检查当前配置;可能消耗服务额度。保存设置不会自动验证。","settings.channels.autoSaveHint":"字段修改后自动保存;完成配置后,可手动验证连接。","settings.channels.nameHint":"名称仅用于区分同一供应商的多个渠道,不影响模型或连接。","settings.channels.errModel":"模型","settings.channels.verify":"验证","settings.channels.verifyHint":"点一下真实调用一次接口,确认这张卡现在能用","settings.channels.errTimeout":"超时","settings.channels.errNetwork":"网络","settings.channels.errEndpoint":"地址","settings.channels.errGeneric":"失败","settings.channels.dragHint":"按住拖动可调整优先级","settings.channels.orderHint":"列表中第一个启用的渠道用于请求。拖动调整顺序;停用的渠道移到末尾。","settings.channels.empty":"还没有渠道。点击「添加渠道」,连接你的第一个服务。","settings.channels.add":"添加渠道","settings.channels.edit":"编辑","settings.channels.createTitle":"添加渠道","settings.channels.editTitle":"编辑渠道","settings.channels.providerLabel":"供应商","settings.channels.nameLabel":"渠道名称(可选)","settings.channels.namePlaceholder":"例如:硅基流动-主号","settings.channels.create":"创建","settings.channels.delete":"删除渠道","settings.channels.deleteConfirm":"删除后该渠道保存的密钥也会一并清除。","settings.channels.confirmDelete":"确认删除","settings.channels.justNow":"刚刚","settings.channels.minutesAgo":"{{count}} 分钟前","settings.channels.hoursAgo":"{{count}} 小时前","settings.channels.daysAgo":"{{count}} 天前","settings.channels.localEngineModelHint":"可在「AI 服务与模型 → 本地模型」中下载和切换本地模型。","settings.providers.localEngineNoCredentials":"本地引擎无需 API Key 与地址。","settings.providers.localModelLabel":"本地模型","settings.providers.localModelEmpty":"尚未下载本地模型","settings.providers.appleSpeechLocalNote":"Apple 语音识别使用系统内置引擎,无需选择模型。","settings.providers.localEngineNote":"已下载的本地模型在上方下拉里直接选择;更多模型在「本地模型」看板下载与管理。","settings.providers.localTag":"本地","settings.providers.llmTitle":"LLM 模型(润色)","settings.providers.llmDesc":"OpenAI 兼容协议,支持多家供应商切换。","settings.providers.providerLabel":"供应商","settings.providers.llmProviderDesc":"选择后将自动填入 Base URL 默认值。","settings.providers.credentialStorageNotice":"凭据保存在系统凭据库中。","settings.providers.codexOAuthNotice":"Codex OAuth 使用本机 Codex 登录状态(~/.codex/auth.json),无需在 OpenLess 中保存 API Key 或 Base URL。","settings.providers.asrProviderDesc":"切换后将自动选用对应凭据。","settings.providers.asrTitle":"ASR 语音(转写)","settings.providers.asrDesc":"用于将录制的语音转写为文本。","settings.providers.omniTitle":"多模态模型","settings.providers.omniDesc":"一个模型直接接收「提示词 + 音频」一步输出最终文本(实验性管线)。","settings.providers.pipelineModeLabel":"识别管线","settings.providers.pipelineModeHint":"传统 = ASR 转写 + LLM 润色两段式;多模态 = 单个多模态模型一次完成。","settings.providers.pipelineModeTraditional":"传统模式","settings.providers.pipelineModeMultimodal":"多模态模式","settings.providers.pipelineIsolationNotice":"两种模式使用完全独立的凭据配置。切换模式不会删除另一套配置,只是暂时停用;切回即恢复。","settings.providers.presets.ark":"ARK(火山方舟)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"硅基流动","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"小米 MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter(免费模型)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"阿里云 Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax(M3)","settings.providers.presets.stepfun":"StepFun(阶跃星辰)","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"腾讯云 TokenHub","settings.providers.presets.customChatCompletions":"自定义 · Chat Completions","settings.providers.presets.customResponses":"自定义 · Responses","settings.providers.presets.customMessages":"自定义 · Messages","settings.providers.presets.custom":"自定义","settings.providers.presets.asrVolcengine":"火山引擎 bigasr","settings.providers.presets.asrBailian":"阿里云百炼实时 ASR","settings.providers.presets.asrBailianQwen3":"阿里云百炼 Qwen3 实时 ASR","settings.providers.presets.asrBailianFunAsrFlash":"阿里云百炼 Fun-ASR-Flash(录音文件)","settings.providers.presets.asrSiliconflow":"硅基流动 SenseVoice","settings.providers.presets.asrStepfun":"阶跃星辰 StepAudio","settings.providers.presets.asrZhipu":"智谱 GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper(兼容)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"自定义 OpenAI 兼容","settings.providers.presets.asrXiaomiMimo":"小米 MiMo ASR","settings.providers.presets.asrIflytek":"讯飞实时语音转写","settings.providers.presets.asrTencentCloud":"腾讯云混元实时 ASR","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"本地 sherpa-onnx(实验性)","settings.providers.presets.asrFoundryLocalWhisper":"本地 Whisper(Foundry Local)","settings.providers.presets.asrLocalWhisper":"本地 Whisper(批量解码)","settings.providers.presets.asrLocalQwen3":"本地 Qwen3-ASR","settings.providers.presets.asrLocalQwen3Mlx":"本地 Qwen3-ASR(MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"本地 Qwen3-ASR(C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple 语音(macOS)","settings.providers.presets.omniOpenai":"OpenAI(支持音频)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"阿里云百炼 Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs 会将录音上传到所配置的端点进行批量转写。","settings.providers.zenmuxVocabularyNote":"ZenMux 走 JSON 转写协议,不发送词典热词(prompt/hotwords);词典仍会进入润色链路,但不会参与语音识别偏置。","settings.providers.asrAdvancedNote":"以下高级选项仅影响「自定义 OpenAI 兼容」与「ZenMux」预设;其余命名厂商预设保持内置行为。","settings.providers.asrAdvancedVerboseJsonLabel":"分段指标 (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"服务端支持时返回 segments 指标,用于幻听过滤;自建服务若不支持请保持关闭。","settings.providers.asrAdvancedChunkLabel":"分片时长 (ms)","settings.providers.asrAdvancedChunkHint":"0 = 不分片,整段发送;按片段多次请求,适合长录音或服务端单次请求时长受限。","settings.providers.asrAdvancedEnableItnLabel":"数字归一化 (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"把口语数字/单位归一化为阿拉伯数字(如“二零二六年”→“2026年”)。关闭后保留原始文字。","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"API Key","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"鉴权模式","settings.providers.volcengineAuthModeAppIdToken":"旧版应用(APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"新版控制台 API Key","settings.providers.volcengineMappingNote":"Secret Key 当前无需填写。Resource ID 默认使用 volc.seedasr.sauc.duration。","settings.providers.volcengineApiKeyNote":"使用新版语音控制台创建的 API Key 鉴权,无需 APP ID。API Key 在语音控制台「API Key 管理」中创建:console.volcengine.com/speech/new/setting/apikeys。Resource ID 默认使用 volc.seedasr.sauc.duration。","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"API Key","settings.providers.xfyunNote":"在讯飞开放平台「实时语音转写」服务页获取 AppID 与 API Key。音频为 16kHz/16bit/单声道 PCM;标准版接口暂不支持热词参数(可在讯飞控制台配置个性化热词),语种默认中文普通话。","settings.providers.tencentCloudAppIdLabel":"腾讯云 AppID","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"使用腾讯云「语音识别」服务的 API 密钥。默认 Hy-ASR-3.0-preview 支持中英与 20 种方言;Preview 仅支持 60 秒以内的 16kHz 单声道 PCM,暂不支持上下文或热词增强。","settings.providers.tencentTokenHubNote":"仅显示当前在线的语言模型。部分模型始终启用思考;关闭思考开关时将沿用该模型的固定行为。","settings.providers.localAsrActiveNotice":"当前已启用「{{name}}」,可在「高级」中切换或禁用。","settings.providers.localAsrTakeoverHint":"启动「{{name}}」后,ASR 提供商将被接管。","settings.providers.asrProviderTakenOver":"当前用的是本地引擎,在上方下拉直接选其它供应商即可切换(本地引擎会自动停用);本地模型在「服务 → 本地模型」里管理。","settings.providers.localAsrHint":"在本机运行,无需 API Key。从 HuggingFace 下载模型即可使用。","settings.providers.foundryLocalAsrHint":"在本机运行,无需 ASR API Key。首次使用需下载运行组件和模型。","settings.providers.localAsrPerformanceWarning":"本地推理比云端慢,中文准确率可能更低。适合离线或隐私敏感场景。","settings.providers.localAsrReady":"{{model}} 已下载","settings.providers.localAsrNotReady":"{{model}} 未下载","settings.providers.localAsrGoDownload":"前往模型设置下载","settings.providers.localAsrManage":"前往模型设置","settings.providers.localAsrDownloadedTitle":"已下载模型","settings.providers.localAsrDelete":"删除","settings.providers.fillDefault":"填入默认值","settings.providers.readFailed":"读取失败","settings.providers.apiKeyLabel":"API 密钥","settings.providers.baseUrlLabel":"接口地址","settings.providers.modelLabel":"模型","settings.providers.customModelLabel":"自定义模型…","settings.providers.presetListLabel":"返回预设列表","settings.providers.searchModels":"搜索模型…","settings.providers.noMatchingModels":"没有匹配的模型","settings.providers.orcarouterCatalogHint":"模型来自 OrcaRouter /models;此供应商只允许从目录中选择,不支持手动填写模型 ID。","settings.providers.orcarouterAsrCatalogHint":"模型来自 OrcaRouter /models,并仅显示兼容音频输入的 Gemini;不支持手动填写模型 ID。","settings.providers.temperatureLabel":"Temperature","settings.providers.temperaturePlaceholder":"留空则不发送;范围 0~2(含边界),例如 0.3","settings.providers.extraHeadersLabel":"额外 Headers","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"思考","settings.providers.thinkingModeOn":"开启","settings.providers.thinkingModeOff":"关闭","settings.providers.requestFormatLabel":"请求格式","settings.providers.messagesThinkingLabel":"思考方式","settings.providers.thinkingAdaptive":"自适应","settings.providers.thinkingBudget":"固定预算","settings.providers.maxTokensLabel":"最大输出 tokens","settings.providers.thinkingBudgetLabel":"思考预算 tokens","settings.providers.responsesThinkingHint":"部分模型只能降低思考,不能完全关闭。推理请求不发送温度参数。","settings.providers.messagesThinkingHint":"旧模型或兼容网关可能需要固定预算;思考预算必须小于最大输出。开启思考时不发送温度参数。","settings.providers.llmRequestFormatInvalid":"请求格式无效,请重新选择。","settings.providers.llmThinkingModeInvalid":"思考方式无效,请重新选择。","settings.providers.llmTokenLimitInvalid":"Token 上限必须为正整数。","settings.providers.llmThinkingBudgetInvalid":"思考预算至少为 1024,且固定预算必须小于最大输出。","settings.providers.llmResponseIncomplete":"响应未完整结束或达到输出上限;已输出正文会保留。","settings.providers.llmProtocolHeaderConflict":"Messages 已自动设置鉴权和版本请求头,请移除额外 Headers 中的 x-api-key 和 anthropic-version。","settings.providers.llmStreamError":"服务端返回流式错误,请检查模型和请求参数。","settings.providers.saveProtocol":"保存协议设置","settings.providers.thinkingModeHint":"按所选请求格式和模型支持的参数启用、关闭或降低思考,不向提示词注入控制指令。","settings.providers.bailianVocabularyIdLabel":"热词 Vocabulary ID(可选)","settings.providers.bailianVocabularyIdNote":"如已在百炼创建热词表,可填写 vocab-...;留空则不下发热词。","settings.providers.bailianModelRealtimeHint":"实时模型 · 边说边出字。","settings.providers.bailianModelSyncFileHint":"同步录音模型 · 说完后整段转写(单条 ≤ 5 分钟)。","settings.providers.bailianModelAsyncFileHint":"异步文件模型 · 录音上传后等待转写任务完成。","settings.providers.appIdLabel":"App ID(应用 ID)","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"资源 ID","settings.providers.toolsLabel":"连接检查","settings.providers.toolsDesc":"先保存上方配置,再验证当前模型连通性或拉取模型;失败时仍可手动填写模型 ID。","settings.providers.validate":"验证","settings.providers.validating":"验证中…","settings.providers.fetchModels":"拉取模型","settings.providers.loadingModels":"拉取模型中…","settings.providers.modelMissing":"未配置模型,请先填写模型 ID。","settings.providers.modelsEmpty":"鉴权成功,但没有返回可用模型。","settings.providers.modelsLoaded":"已拉取 {{count}} 个模型。","settings.providers.selectModel":"选择一个模型写入上方字段","settings.providers.modelSaved":"已保存模型 {{model}}。","settings.providers.validateSuccess":"连接检查通过。","settings.providers.validateFailed":"连接检查未通过。","settings.providers.providerHttpStatus":"供应商接口返回 {{status}},请检查 API Key 权限或 Endpoint。","settings.providers.endpointMustUseHttps":"允许使用 HTTP Endpoint,但请注意:API Key 和音频内容可能在传输中泄漏。","settings.providers.endpointHttpWarning":"允许使用 HTTP Endpoint,但请注意:API Key 和请求内容可能在传输中泄漏。","settings.providers.endpointInvalid":"Endpoint 格式不合法。","settings.providers.bailianEndpointSchemeInvalid":"百炼实时 ASR 走 DashScope WebSocket 网关,接口地址必须以 wss:// 开头(默认 wss://dashscope.aliyuncs.com/api-ws/v1/inference/);https:// 的兼容模式地址在此不可用。","settings.providers.qwen3EndpointSchemeInvalid":"Qwen3 实时 ASR 走 DashScope Realtime WebSocket 网关,接口地址必须以 wss:// 开头(默认 wss://dashscope.aliyuncs.com/api-ws/v1/realtime);https:// 地址在此不可用。","settings.providers.responseTooLarge":"供应商响应过大,已停止验证以保证安全。","settings.providers.asrInvalidJson":"ASR 响应不是有效 JSON。","settings.providers.asrMissingTextField":"ASR 响应缺少 text 字段。","settings.providers.apiKeyMissing":"API Key 为空。","settings.providers.endpointMissing":"Endpoint 为空。","settings.providers.volcengineAppIdMissing":"APP ID 为空。","settings.providers.volcengineAccessTokenMissing":"Access Token 为空。","settings.providers.requestTimeout":"请求超时,请稍后重试。","settings.shortcuts.title":"快捷键设置","settings.shortcuts.descAcc":"所有快捷键全局生效,需要在权限设置中开启辅助功能。","settings.shortcuts.descNoAcc":"所有快捷键全局生效。若无响应,请在权限页查看全局快捷键监听状态。","settings.shortcuts.startStop":"开始 / 停止录音","settings.shortcuts.cancel":"取消本次录音","settings.shortcuts.confirm":"胶囊确认插入","settings.shortcuts.switchStyle":"切换到上一个风格","settings.shortcuts.openApp":"打开 OpenLess","settings.shortcuts.stylePackTitle":"风格直达快捷键","settings.shortcuts.stylePackDesc":"为常用风格包各配一个快捷键,按下直接切换;停用中的包会自动启用。","settings.shortcuts.stylePackAdd":"添加风格快捷键","settings.shortcuts.stylePackSelect":"选择风格包","settings.shortcuts.stylePackDisabledSuffix":"(已停用)","settings.shortcuts.stylePackRemove":"移除","settings.shortcuts.agentPolish":"选中文本润色","settings.shortcuts.agentPolishDesc":"选中文本 → 按键 → Claude 润色 → 替换选区。","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"按住自定义按键 → 说话 → Claude 执行任务 → 结果弹胶囊显示。","settings.shortcuts.agentVoiceHint":"在「高级 → Less Computer」里设置按住说话键。","settings.shortcuts.agentVoiceTrigger":"Less Computer 按住说话键","settings.shortcuts.enable":"启用","settings.shortcuts.disable":"停用","settings.shortcuts.confirmHint":"点击右侧 ✓","settings.shortcuts.notSupported":"暂未支持","settings.shortcuts.androidReadOnly":"Android 不支持全局快捷键,请在概览页使用录音按钮。","settings.permissions.title":"权限","settings.permissions.descAcc":"OpenLess 需要以下系统权限。授权后通常要完全退出 App 重启一次才生效。","settings.permissions.descNoAcc":"麦克风必需;全局快捷键状态用来检测 native hook 是否运行。","settings.permissions.micLabel":"麦克风","settings.permissions.micDesc":"用于捕获你的语音输入。","settings.permissions.accLabel":"辅助功能","settings.permissions.accDesc":"监听全局快捷键并把识别结果写入光标。","settings.permissions.hotkeyLabel":"全局快捷键","settings.permissions.hotkeyDescWithAdapter":"适配器:{{adapter}}。","settings.permissions.hotkeyDescPlain":"判断快捷键监听是否已安装。","settings.permissions.networkLabel":"网络","settings.permissions.networkDesc":"云端 ASR / LLM 必需,本地模式可关。","settings.permissions.networkOk":"可用","settings.permissions.networkOffline":"不可用","settings.permissions.checking":"检查中…","settings.permissions.granted":"已授权","settings.permissions.notApplicable":"无需授权","settings.permissions.denied":"未授权","settings.permissions.indeterminate":"未确定","settings.permissions.micNoDevice":"未检测到麦克风","settings.permissions.openSystem":"打开系统设置","settings.permissions.restart":"重置授权并重启","settings.permissions.grant":"授权","settings.permissions.rerunAndroidSetup":"重新运行设置向导","settings.permissions.hotkeyInstalled":"已安装","settings.permissions.hotkeyStarting":"安装中…","settings.permissions.hotkeyFailed":"监听失败","settings.permissions.windowsImeLabel":"Windows 输入法后端","settings.permissions.windowsImeDesc":"语音输入时临时切到 OpenLess TSF,绕过剪贴板限制。","settings.permissions.windowsImeInstalled":"已安装","settings.permissions.windowsImeUnavailable":"不可用","settings.permissions.androidImeLabel":"输入法 (IME)","settings.permissions.androidImeSelected":"已选中","settings.permissions.androidImeEnabled":"已启用","settings.permissions.androidImeDisabled":"未启用","settings.permissions.androidOverlayLabel":"悬浮窗","settings.permissions.androidAccessibilityLabel":"无障碍服务","settings.permissions.androidAccessibilityImpact":"开启后可在不切换键盘的情况下把结果输出到当前输入框;不开启时仍会复制到剪贴板,需要手动粘贴。","settings.permissions.androidAccessibilityGrantedStale":"已授权,未连接","settings.permissions.androidAccessibilityMessages.not_android":"无障碍状态仅在 Android 上可用。","settings.permissions.androidAccessibilityMessages.not_enabled":"请在系统无障碍设置中启用 OpenLess。","settings.permissions.androidAccessibilityMessages.operational":"无障碍服务正在运行。","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"无障碍已授权但未连接,请在系统设置中重新开启 OpenLess。","settings.permissions.androidAccessibilityMessages.status_read_failed":"无法读取无障碍状态。","settings.permissions.androidShizukuLabel":"Shizuku 增强模式","settings.permissions.androidShizukuHint":"可选功能,在部分机型无法手动开启无障碍时尽力恢复;无法完全消除跨应用竞态。设备重启后可能需要重新启动 Shizuku。","settings.permissions.androidShizukuOpenApp":"打开 Shizuku","settings.permissions.androidShizukuRequestPermission":"请求授权","settings.permissions.androidShizukuRecover":"恢复无障碍服务","settings.permissions.androidShizukuRecoverConfirm":"是否通过 Shizuku 尝试重新启用 OpenLess 无障碍服务?写入时会合并当时已启用的服务。若全局开关为关闭,启用后可能同时启动列表中已登记的其他无障碍服务。","settings.permissions.androidShizukuYes":"是","settings.permissions.androidShizukuNo":"否","settings.permissions.androidShizukuAccessibilityOperational":"无障碍服务已注册且正在运行。","settings.permissions.androidShizukuAccessibilityRegistered":"已注册:{{registered}} · 运行中:{{operational}}","settings.permissions.androidShizukuState.notInstalled":"未安装","settings.permissions.androidShizukuState.notRunning":"未运行","settings.permissions.androidShizukuState.notAuthorized":"未授权","settings.permissions.androidShizukuState.authorized":"已授权","settings.permissions.androidShizukuState.binderDead":"连接断开","settings.permissions.androidShizukuState.notAndroid":"不可用","settings.permissions.androidShizukuMessages.not_android":"Shizuku 仅在 Android 上可用。","settings.permissions.androidShizukuMessages.not_installed":"未安装 Shizuku 或 Sui 后端。","settings.permissions.androidShizukuMessages.unsupported_backend":"当前 Shizuku 后端版本过旧,请更新 Shizuku 或 Sui 至 v11 及以上。","settings.permissions.androidShizukuMessages.not_running":"Shizuku 未运行,请先启动 Shizuku 或 Sui。","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku 未授权,请授予 OpenLess 权限。","settings.permissions.androidShizukuMessages.binder_dead":"Shizuku 连接已断开,请重新启动 Shizuku。","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku 已授权,无障碍服务运行正常。","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku 已授权,无障碍服务已注册但未运行。","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku 已授权,可尝试恢复无障碍服务。","settings.permissions.androidShizukuMessages.operational":"无障碍服务已注册且正在运行。","settings.permissions.androidShizukuMessages.registered_stale":"无障碍服务已注册,但服务当前不可用。","settings.permissions.androidShizukuMessages.not_registered":"无障碍服务未在系统设置中启用。","settings.permissions.androidShizukuMessages.already_granted":"Shizuku 权限已授予。","settings.permissions.androidShizukuMessages.binder_unavailable":"请求授权时 Shizuku 服务不可用。","settings.permissions.androidShizukuMessages.request_cancelled":"已取消 Shizuku 授权请求。","settings.permissions.androidShizukuMessages.granted":"Shizuku 权限已授予。","settings.permissions.androidShizukuMessages.denied":"Shizuku 权限被拒绝。","settings.permissions.androidShizukuMessages.permission_permanently_denied":"Shizuku 授权已被阻止。请打开 Shizuku 并手动允许 OpenLess。","settings.permissions.androidShizukuMessages.launched":"已打开 Shizuku 授权界面。","settings.permissions.androidShizukuMessages.launch_failed":"无法打开 Shizuku 授权界面。","settings.permissions.androidShizukuMessages.open_shizuku":"已打开 Shizuku 管理器。","settings.permissions.androidShizukuMessages.jni_error":"无法连接 Android Shizuku 后端。","settings.permissions.androidShizukuMessages.status_parse_failed":"无法解析 Shizuku 状态。","settings.permissions.androidShizukuMessages.user_not_confirmed":"需要用户确认后才能恢复无障碍服务。","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku 未授权或不可用。","settings.permissions.androidShizukuMessages.invalid_component":"无效的无障碍服务组件 ID。","settings.permissions.androidShizukuMessages.service_connect_failed":"无法连接 Shizuku 特权服务。","settings.permissions.androidShizukuMessages.recovery_in_progress":"已有恢复操作正在进行,请稍后再试。","settings.permissions.androidShizukuMessages.parse_failed":"无法解析恢复结果。","settings.permissions.androidShizukuMessages.service_not_bound":"设置已写入,但无障碍服务尚未运行。","settings.permissions.androidShizukuMessages.success":"无障碍服务已恢复。","settings.permissions.androidShizukuMessages.read_failed":"无法读取无障碍服务设置。","settings.permissions.androidShizukuMessages.read_enabled_failed":"无法读取无障碍总开关。","settings.permissions.androidShizukuMessages.merge_failed":"无法合并无障碍服务列表。","settings.permissions.androidShizukuMessages.write_services_failed":"无法写入已启用无障碍服务列表。","settings.permissions.androidShizukuMessages.write_enabled_failed":"无法启用无障碍总开关。","settings.permissions.androidShizukuMessages.readback_failed":"写入后无法验证无障碍设置。","settings.permissions.androidShizukuMessages.oem_rollback":"厂商系统回滚了无障碍写入。","settings.permissions.androidShizukuMessages.concurrent_change":"恢复过程中无障碍设置被其他应用修改。","settings.permissions.androidShizukuMessages.partial_rollback":"恢复失败,且设置只能部分回滚。请检查系统无障碍设置。","settings.permissions.androidShizukuMessages.manual_required":"全局开关关闭且列表中已有其他无障碍服务时,无法安全自动恢复。请前往系统设置手动操作。","settings.permissions.androidShizukuMessages.max_retries":"多次尝试后恢复失败。","settings.permissions.androidShizukuMessages.internal_error":"恢复因内部错误失败。","settings.permissions.androidShizukuMessages.unknown":"未知 Shizuku 状态。","settings.permissions.androidInsertStrategyLabel":"文本插入策略","settings.permissions.androidOverlayTriggerLabel":"悬浮窗显示时机","settings.permissions.androidOverlayActivationModeLabel":"悬浮窗激活方式","settings.permissions.androidOverlayLeftSwipeActionLabel":"左滑动作","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"取消录音滑向","settings.permissions.androidOverlaySizeLabel":"悬浮窗大小","settings.permissions.androidOverlaySizeHint":"调整悬浮按钮直径,保存后在当前悬浮窗上生效并保留位置。","settings.permissions.androidInsertStrategy.accessibility":"自动输出到输入框","settings.permissions.androidInsertStrategy.clipboard":"仅剪贴板","settings.permissions.androidInsertStrategyHint.accessibility":"需要开启无障碍服务;不可用时会复制到剪贴板。","settings.permissions.androidInsertStrategyHint.clipboard":"不需要无障碍权限,结果只复制到剪贴板,由你手动粘贴。","settings.permissions.androidOverlayTrigger.background":"应用退到后台","settings.permissions.androidOverlayTrigger.keyboard":"弹出键盘时","settings.permissions.androidOverlayTrigger.always":"始终显示","settings.permissions.androidOverlayTriggerHint.background":"省电、实现简单;其他 App 输入时不会自动出现。","settings.permissions.androidOverlayTriggerHint.keyboard":"该模式已暂缓,历史配置会自动改为“应用退到后台”。","settings.permissions.androidOverlayTriggerHint.always":"入口始终可见,但会一直占屏。","settings.permissions.androidOverlayTriggerDisabled.keyboard":"“弹出键盘时”暂缓开放,后续将以悬浮窗手势替代键盘检测。","settings.permissions.androidOverlayActivationMode.tap":"点按激活","settings.permissions.androidOverlayActivationMode.long_press":"长按激活","settings.permissions.androidOverlayActivationModeHint.tap":"第一次点按进入激活态,第二次点按开始普通听写。","settings.permissions.androidOverlayActivationModeHint.long_press":"按住进入激活态;松开时结束当前录音或问答轮次。","settings.permissions.androidOverlayLeftSwipeAction.translation":"翻译听写","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"切换风格包","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"激活态左滑后按翻译模式录音。","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"激活态左滑后切换到上一个风格包。","settings.permissions.androidOverlayCancelSwipeDirection.up":"向上滑","settings.permissions.androidOverlayCancelSwipeDirection.down":"向下滑","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"录音中向上滑取消本次听写,不转写、不插入。","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"录音中向下滑取消本次听写,不转写、不插入。","settings.permissions.windowsIme.installed":"已安装,按需切到 OpenLess 输入法。","settings.permissions.windowsIme.notInstalled":"未安装,走剪贴板 / WM_PASTE 兜底。","settings.permissions.windowsIme.registrationBroken":"注册损坏,请重装 OpenLess 输入法。","settings.permissions.windowsIme.notWindows":"仅 Windows 可用。","settings.advanced.multimodalPipelineTitle":"多模态识别管线","settings.advanced.multimodalPipelineTitleHint":"用单个多模态模型一步完成语音识别;与传统 ASR + LLM 配置完全隔离。","settings.advanced.multimodalPipelineLabel":"启用多模态识别管线","settings.advanced.multimodalPipelineHint":"开启后,「服务 → AI 提供商」页出现「传统模式 / 多模态模式」切换。传统 = ASR + LLM;多模态 = 单个支持音频的模型。两套配置分开存储、绝不共享凭据。","settings.advanced.streamingInsertTitle":"流式输入","settings.advanced.streamingInsertTitleLinux":"流式输入(实验性)","settings.advanced.streamingInsertDesc":"逐字实时插入,降低感知延迟。不满足条件时回落到一次性粘贴。","settings.advanced.streamingInsertLabel":"流式输入","settings.advanced.streamingInsertHintMac":"临时切到 ABC 输入源,避免 CJK IME 拦截,会话结束后自动切回。","settings.advanced.streamingInsertHintWindows":"SendInput Unicode 直接送字符,绕过 TSF / IME,不切输入法。","settings.advanced.streamingInsertHintLinux":"通过 fcitx5 插件提交文字;流式输入使用 enigo + XTest 合成按键。","settings.advanced.streamingInsertSaveClipboardLabel":"同步到剪贴板","settings.advanced.streamingInsertSaveClipboardHint":"插入成功后把最终文本写入剪贴板,方便 Cmd+V 再次粘贴;关闭后流式过程不动剪贴板。","settings.advanced.localAsrTitle":"本地 ASR 模型","settings.advanced.localAsrDesc":"把转写从云端切到本机推理。仅推荐离线 / 隐私敏感场景。","settings.advanced.localAsrWarningShort":"本地推理较慢,配置不足时可能吞字。","settings.advanced.qwen3Desc":"启动之后,ASR 提供商将被接管。","settings.advanced.sherpaDesc":"启动之后,ASR 提供商将被接管。","settings.advanced.foundryDesc":"启动之后,ASR 提供商将被接管。","settings.advanced.notSupportedHere":"本平台暂不支持,未集成推理模块。","settings.advanced.enable":"启用","settings.advanced.alreadyActive":"已启用","settings.advanced.disableLocalLabel":"禁用本地 ASR","settings.advanced.disableLocalDesc":"切回云端 ASR(默认火山引擎 bigasr)。","settings.advanced.disable":"禁用","settings.advanced.platformNotSupported":"该平台暂未支持本地 ASR 模型集成。","settings.advanced.confirmEnableLocalTitle":"启用本地 ASR?","settings.advanced.confirmEnableLocalBody":"启用后转写会比云端慢,准确率可能更低。","settings.advanced.confirm":"确认启用","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"界面语言","settings.language.desc":"切换 UI 显示语言。当前会话即时生效,下次启动自动沿用。","settings.language.label":"语言","settings.language.labelDesc":"选择「跟随系统」时按操作系统当前语言显示。","settings.language.followSystem":"跟随系统","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"部分原生菜单(系统托盘等)可能需要重启 App 才会切换。","settings.layout.title":"布局","settings.theme.title":"外观","settings.theme.label":"主题","settings.theme.activityHeatmapLabel":"概览页显示年度活动热力图","settings.theme.stackedRowLayoutLabel":"易读布局(防溢出换行)","settings.theme.stackedRowLayoutDesc":"小屏或大字时,同一行放不下的按钮和选项会自动换到下一行,避免横向挤出屏幕或文字被压扁。","settings.theme.conservativeLayoutLabel":"保守排版","settings.theme.conservativeLayoutDesc":"除首页、顶栏与底栏外,设置与功能页改为单列满宽,最大程度避免横向溢出。","settings.theme.system":"跟随系统","settings.theme.light":"浅色","settings.theme.dark":"深色","settings.remoteInput.title":"远程输入","settings.remoteInput.enableLabel":"启用远程输入","settings.remoteInput.enableDesc":"手机/平板浏览器连到电脑录音,语音实时落到电脑光标处(需 HTTPS,首次访问要信任证书)","settings.remoteInput.portLabel":"监听端口","settings.remoteInput.defaultModeLabel":"默认录音方式","settings.remoteInput.modeToggle":"点击切换","settings.remoteInput.modeHold":"按住说话","settings.remoteInput.urlLabel":"访问网址","settings.remoteInput.pinLabel":"配对码","settings.remoteInput.regeneratePin":"重新生成","settings.remoteInput.portInUse":"端口 {{port}} 被占用,请更换","settings.remoteInput.startError":"远程输入服务启动失败:{{reason}}","settings.remoteInput.securityHint":"仅同一局域网可访问,需输入配对码;不用时建议关闭。","settings.remoteInput.certHint":"首次连接需核对根证书指纹后再信任。升级旧版需设置一次;以后重启和换 IP 会保留信任。","settings.remoteInput.certFingerprintLabel":"本机根证书 SHA-256","settings.remoteInput.certFingerprintCopy":"复制完整指纹","settings.remoteInput.certFingerprintCopied":"指纹已复制","settings.remoteInput.certFingerprintUnavailable":"完整指纹不可用。请勿安装或信任下载的证书。","settings.remoteInput.certVerifyHint":"在手机系统的证书详情中找到 SHA-256,与这里的全部 64 个字符逐一核对(忽略空格和冒号)。必须在开启完全信任前完成。网页、描述文件名称和标识不能证明证书身份;若不一致或无法查看完整指纹,请停止并移除已下载或安装的描述文件。","settings.remoteInput.certProfileHint":"描述文件应只包含一张根证书。若有其他证书、VPN 或设备管理配置,请勿安装。","settings.remoteInput.certTrustWarning":"首次证书下载无法验证电脑身份,恶意局域网设备可能通过中间人攻击替换根证书。仅在可信的家庭或私人网络中安装,勿在公共或共享网络操作。根证书具备签发能力,私钥保存在这台电脑;不再使用时请从手机移除。","settings.remoteInput.certSetupLink":"复制 iPhone 证书链接","settings.remoteInput.waitingStart":"服务尚未启动。请关闭开关再打开一次,不要重启软件。","settings.remoteInput.starting":"正在启动远程输入服务…","settings.remoteInput.urlsStale":"这些地址来自上次运行,可能已经过期。","settings.about.tagline":"自然说话,完美书写","settings.about.checkUpdate":"检查更新","settings.about.checkUpdateBtn":"检查","settings.about.checkStableUpdateBtn":"检查正式版更新","settings.about.checkBetaUpdateBtn":"检查 Beta 更新","settings.about.checkingUpdate":"检查中…","settings.about.upToDate":"当前已是最新版本。","settings.about.updateError":"检查或更新失败,请稍后重试。","settings.about.retryBtn":"重试","settings.about.openReleases":"打开 Releases","settings.about.source":"源码","settings.about.docs":"文档","settings.about.feedback":"反馈","settings.about.qq":"社区 QQ 群","settings.about.qqDesc":"使用 QQ 搜索群号加入,或扫码进群。","settings.about.copyQq":"复制群号","settings.about.privacy":"隐私","settings.about.privacyDesc":"录音可能会发送到你配置的云端服务商进行转写。","settings.about.localFirst":"本地优先","settings.about.linksTitle":"文档链接","settings.about.betaChannelLabel":"加入 Beta 渠道","settings.about.betaChannelToggleLabel":"启用 Beta 渠道","settings.about.betaChannelDesc":"开启后,后台自动更新将跟随 Beta 渠道;关闭则回到正式版。下方按钮可随时手动检查 Beta 更新。","settings.about.autoUpdateSectionTitle":"自动更新","settings.about.autoUpdateCheckLabelAndroid":"自动检查并下载更新","settings.about.autoUpdateCheckDescAndroid":"启动后及每 60 分钟自动检查更新;发现新版本后自动下载并打开系统安装器。渠道跟随上方 Beta 开关。","settings.about.betaChannelFetching":"正在获取最新 Beta 版本…","settings.about.betaChannelFetchBtn":"查询最新 Beta","settings.about.betaChannelLatestPrefix":"最新 Beta:","settings.about.betaChannelDownloadBtn":"前往下载","settings.about.betaChannelRefresh":"重新查询","settings.about.betaChannelNoBeta":"暂无已发布的 Beta 版。","settings.about.betaChannelFetchError":"获取 Beta 版本信息失败,请稍后重试。","settings.about.betaChannelUpToDate":"已是最新","settings.about.betaChannelUpdateNow":"立即更新","settings.about.betaChannelUpdateNowTitle":"检查并下载最新 Beta,然后弹出更新对话框","settings.about.betaChannelChecking":"检查中…","settings.about.updateDialog.available.title":"发现新版本","settings.about.updateDialog.available.desc":"发现 OpenLess {{version}},是否现在更新?","settings.about.updateDialog.stableChannelSwitch.title":"切换到正式版","settings.about.updateDialog.stableChannelSwitch.desc":"当前版本:OpenLess {{currentVersion}}\n目标版本:OpenLess {{version}}\n这是从 Beta 渠道切换到正式版,是否继续?","settings.about.updateDialog.downloading.title":"正在下载更新","settings.about.updateDialog.downloading.desc":"正在下载 OpenLess {{version}},请保持应用打开。","settings.about.updateDialog.downloaded.title":"更新已准备好","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} 已安装完成。是否现在自动重启以应用更新?","settings.about.updateDialog.installing.title":"正在安装更新","settings.about.updateDialog.installing.desc":"正在安装 OpenLess {{version}},请保持应用打开。","settings.about.updateDialog.install":"现在更新","settings.about.updateDialog.androidInstall":"下载并打开安装器","settings.about.updateDialog.androidInstalled.title":"系统安装器已打开","settings.about.updateDialog.androidInstalled.desc":"请按系统提示完成安装。安装后重新打开 OpenLess 即可使用 {{version}}。","settings.about.updateDialog.downloadingLabel":"下载中…","settings.about.updateDialog.installingLabel":"安装中…","settings.about.updateDialog.later":"稍后手动重启","settings.about.updateDialog.restartNow":"现在重启","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"已下载 {{downloaded}}","settings.about.updateDialog.installError.title":"更新失败","settings.about.updateDialog.installError.desc":"自动更新没能完成:{{error}}。你可以前往下载页手动下载安装最新版本。","settings.about.updateDialog.manualDownload":"手动下载","startup.loading":"正在启动 OpenLess…","startup.loadingDesc":"正在连接本地服务并检查兼容性。","startup.failed":"OpenLess 暂时无法启动","startup.recovery":"请重新检查。如果仍然失败,请完全退出后重开应用;升级后出现此问题时,确认已安装完整的同一版本。","startup.retry":"重新检查","startup.details":"查看错误详情","modal.serviceViews.label":"服务设置分类","modal.serviceViews.llm":"语言模型","modal.serviceViews.asr":"语音识别","modal.serviceViews.omni":"多模态模型","modal.serviceViews.models":"本地模型","modal.serviceViews.connections":"连接与扩展","modal.serviceViews.statusConfigured":"已配置","modal.serviceViews.statusMissing":"未配置","modal.searchPlaceholder":"查找设置分类…","modal.clearSearch":"清除搜索","modal.categoriesLabel":"设置分类","modal.searchResults":"查找结果","modal.searchCount":"找到 {{count}} 个相关分类","modal.noResults":"没有找到相关分类。试试“麦克风”“模型”或“主题”。","modal.autoSaveHint":"修改后自动保存","modal.backToAdvanced":"返回实验与扩展","modal.advancedPages.lessComputer":"选择 Agent,配置模型、权限与工作目录。","modal.advancedPages.claudeConsole":"检测 Claude Code,并查看测试任务的运行输出。","modal.advancedPages.multimodal":"管理多模态识别的实验性开关。","modal.advancedPages.debug":"保留调试录音、探测光标上下文和导出日志。","modal.descriptions.general":"选择麦克风、设置录音方式与文字输入,也可连接手机输入。","modal.descriptions.shortcuts":"设置各功能的触发方式,以及选中文字后的操作。","modal.descriptions.services":"选择语音识别与文字处理服务,管理渠道、本地模型和网络连接。","modal.descriptions.appearance":"调整主题、页面排版和界面语言,让阅读更舒服。","modal.descriptions.privacy":"检查系统权限与连接状态,管理历史、录音和本地数据。","modal.descriptions.advanced":"按需配置 Less Computer、多模态与调试功能。","modal.descriptions.about":"查看当前版本、更新渠道与自动更新设置。","modal.searchKeywords.general":"麦克风 录音 输入 手机 远程 局域网 PIN 胶囊 静音 自启 开机","modal.searchKeywords.shortcuts":"快捷键 热键 组合键 选区 润色 语音编辑","modal.searchKeywords.services":"ASR LLM API 渠道 模型 云 本地 网络 代理 市场","modal.searchKeywords.appearance":"主题 深色 浅色 暗色 语言 字号 排版 布局 热力图","modal.searchKeywords.privacy":"权限 麦克风 辅助功能 历史 录音 存储 隐私 导出","modal.searchKeywords.advanced":"Less Computer Claude Agent 多模态 Omni 调试 日志 实验","modal.searchKeywords.about":"版本 Beta 稳定 更新 升级","modal.sections.appearance":"外观与语言","modal.sections.shortcuts":"快捷键与选区","modal.sections.general":"录音与输入","modal.sections.services":"AI 服务与模型","modal.sections.privacy":"权限与数据","modal.sections.advanced":"实验与扩展","modal.sections.personalize":"个性化","modal.sections.about":"关于与更新","modal.sections.helpCenter":"帮助中心","modal.sections.releaseNotes":"发布日志","modal.personalize.font":"字体大小","modal.personalize.fontDesc":"整体缩放界面字号,立即生效。","modal.personalize.fontSmall":"小","modal.personalize.fontMedium":"中","modal.personalize.fontLarge":"大","modal.personalize.blur":"毛玻璃强度","modal.personalize.blurDesc":"影响窗口内层 backdrop-filter 强度(macOS 系统磨砂层无法运行时调)。","modal.about.tagline":"自然说话,完美书写","modal.about.checkUpdate":"检查更新","modal.about.checkUpdateBtn":"检查","modal.about.docs":"文档","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"反馈渠道","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"源码","modal.about.qq":"社区 QQ 群","modal.about.qqDesc":"使用 QQ 搜索群号加入,或扫码进群。","modal.about.copyQq":"复制群号","modal.about.exportErrorLog":"导出错误日志","modal.about.exportErrorLogDesc":"把当前会话的运行日志保存到本地,便于排查问题或反馈给我们。","modal.about.exportErrorLogBtn":"导出","modal.about.exporting":"导出中…","modal.about.exportSuccess":"已保存","modal.about.exportFailed":"导出失败","modal.about.privacy":"隐私","modal.about.privacyDesc":"识别结果保存在本机;所配置的云端服务商可能接收录音以完成转写。","modal.about.localFirst":"本地优先","windowChrome.restore":"还原","windowChrome.minimize":"最小化","windowChrome.maximize":"最大化","windowChrome.close":"关闭","hotkey.triggers.rightOption":"右 Option","hotkey.triggers.leftOption":"左 Option","hotkey.triggers.rightControl":"右 Control","hotkey.triggers.leftControl":"左 Control","hotkey.triggers.rightCommand":"右 Command","hotkey.triggers.leftCommand":"左 Command","hotkey.triggers.leftShift":"左 Shift","hotkey.triggers.rightShift":"右 Shift","hotkey.triggers.fn":"Fn (地球键)","hotkey.triggers.rightAlt":"右 Alt","hotkey.triggers.mediaPlayPause":"⏯ 媒体播放/暂停","hotkey.triggers.custom":"自定义组合键…","hotkey.fallback":"全局快捷键","hotkey.modeHoldSuffix":"(按住说话)","hotkey.modeToggleSuffix":"(开始 / 停止)","hotkey.modeAutoSuffix":"(自动识别)","hotkey.usageHold":"按住 {{trigger}} 说话,松开结束。","hotkey.usageToggle":"按 {{trigger}} 开始录音,再按一次结束。","hotkey.usageAuto":"短按 {{trigger}} 切换开始 / 停止,按住则说完松开即停。","hotkey.adapter.macEventTap":"macOS Event Tap","hotkey.adapter.windowsLowLevel":"Windows 低层键盘 hook","hotkey.adapter.fcitx5":"fcitx5 输入法插件","hotkey.adapter.unavailable":"不可用","localAsr.kicker":"本地 ASR","localAsr.title":"模型设置","localAsr.desc":"管理本机语音识别模型。","localAsr.storageTitle":"模型存储位置","localAsr.storageBaseDir":"选择的父目录","localAsr.storageModelsRoot":"实际模型目录","localAsr.storageDefault":"系统默认目录","localAsr.storageChoose":"更改目录","localAsr.storageReset":"恢复默认","localAsr.storageReveal":"打开模型总目录","localAsr.storageDesc":"自定义目录会在所选位置下创建 OpenLess/models,并自动迁移现有模型;迁移前会取消下载和释放已加载模型。","localAsr.storageChooseTitle":"选择本地模型存储父目录","localAsr.storageChangeConfirm":"将把现有本地模型迁移到 {{path}}/OpenLess/models。迁移前会自动取消下载并释放已加载模型。是否继续?","localAsr.storageResetConfirm":"将把现有本地模型迁回系统默认目录。当前目录:{{path}}。是否继续?","localAsr.modelDir":"模型目录","localAsr.revealDir":"打开目录","localAsr.deleteConfirm":"确定删除 {{name}} 的本地模型文件吗?此操作无法撤销。","localAsr.appleSpeechTitle":"Apple 语音识别(macOS)","localAsr.appleSpeechDesc":"macOS 系统自带的语音识别,在本机把语音转成文字:不用下载模型、不用填 API Key,主流语言可完全离线、音频不出本机。适合作云端 ASR 网络不稳时的本地兜底;首次使用会弹出系统语音识别授权。","localAsr.appleSpeechUse":"使用 Apple 语音","localAsr.qwenTitle":"Qwen3-ASR 模型管理","localAsr.qwenExperimentalBadge":"实验性","localAsr.engineUnavailable":"当前平台暂未集成 Qwen3-ASR 推理引擎。可下载模型,但暂时无法启用 Qwen3-ASR。","localAsr.qwenUnavailableOnWindows":"Windows 暂不支持 Qwen3-ASR,请使用上方 Foundry Local Whisper。","localAsr.foundryTitle":"Windows Foundry Local Whisper","localAsr.foundryDesc":"在本机识别语音,无需 ASR API Key。首次使用需下载运行组件和模型。","localAsr.foundryAvailable":"Windows 可用","localAsr.foundryUnavailable":"仅 Windows 可用","localAsr.foundryRuntimeReady":"运行组件已下载","localAsr.foundryRuntimeMissing":"运行组件未下载","localAsr.foundryRuntimeSourceLabel":"运行组件下载源","localAsr.foundryRuntimeSourceAuto":"自动(NuGet 优先)","localAsr.foundryRuntimeSourceNuget":"NuGet 官方源","localAsr.foundryRuntimeSourceOrtNightly":"Microsoft ORT-Nightly 源","localAsr.foundryRuntimeSourceDesc":"首次使用前需下载运行组件。","localAsr.foundrySelectedModel":"选择模型","localAsr.foundryActiveModel":"当前默认 alias","localAsr.foundryLoadedModel":"已加载模型","localAsr.foundryNotLoaded":"未加载","localAsr.foundryError":"Foundry 状态","localAsr.foundrySetDefault":"设为默认 / 启用 Windows 本地 ASR","localAsr.foundryEnabling":"正在启用…","localAsr.foundryPrepare":"准备 / 下载 / 加载","localAsr.foundryPreparing":"正在准备…","localAsr.foundryReleasing":"正在释放…","localAsr.foundryRetryPrepare":"继续准备 / 重试","localAsr.foundryCancelPrepare":"取消准备","localAsr.foundryCancelRequested":"已请求取消","localAsr.foundryCancelling":"正在取消…","localAsr.foundryCancelBestEffort":"已请求取消,会在当前步骤完成后停止。可稍后重试。","localAsr.foundryPrepareRuntime":"准备运行时组件","localAsr.foundryPrepareModel":"下载模型","localAsr.foundryPrepareLoad":"加载模型","localAsr.foundryPrepareModelSkipped":"模型已下载,跳过下载阶段","localAsr.foundryPrepareDone":"已完成","localAsr.foundryPrepareWaiting":"等待中","localAsr.foundryApproxSizeMb":"约 {{mb}} MB","localAsr.foundryLanguageLabel":"识别语言","localAsr.foundryLanguageAuto":"自动","localAsr.foundryLanguageZh":"中文 zh","localAsr.foundryLanguageEn":"英文 en","localAsr.foundryLanguageDesc":"中文听写选中文,中英混用选自动。","localAsr.foundryModelSmall":"Whisper Small(默认 / 平衡)","localAsr.foundryModelSmallDesc":"默认平衡选项,兼顾质量与资源占用。","localAsr.foundryModelMedium":"Whisper Medium(更高质量)","localAsr.foundryModelMediumDesc":"更高准确率,适合性能更强、可接受更大下载和更慢推理的设备。","localAsr.foundryModelLarge":"Whisper Large V3 Turbo(最高质量)","localAsr.foundryModelLargeDesc":"更高质量的大模型选项,适合高配设备和质量优先场景。","localAsr.foundryModelBase":"Whisper Base(更快 / 更省资源)","localAsr.foundryModelBaseDesc":"更快、资源占用更低,适合日常轻量使用。","localAsr.foundryModelTiny":"Whisper Tiny(最快 / 冒烟测试)","localAsr.foundryModelTinyDesc":"最快的检查选项,适合确认 Foundry 路径可用。","localAsr.sherpaTitle":"Windows sherpa-onnx Local(实验性)","localAsr.sherpaDesc":"Windows 使用 sherpa-onnx 在本机离线批量识别,无需 ASR API Key。","localAsr.sherpaRuntimeReady":"模型已加载","localAsr.sherpaRuntimeMissing":"模型未加载","localAsr.sherpaSetDefault":"设为默认 / 启用 sherpa-onnx","localAsr.sherpaPrepare":"检查本地文件 / 加载","localAsr.sherpaPreparing":"加载中…","localAsr.sherpaPrepareLocalFiles":"检查本地模型文件","localAsr.sherpaModelDir":"模型目录","localAsr.sherpaRevealDir":"打开模型目录","localAsr.sherpaError":"sherpa-onnx 状态","localAsr.sherpaLanguageJa":"日语 ja","localAsr.sherpaLanguageKo":"韩语 ko","localAsr.sherpaLanguageYue":"粤语 yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small(默认 / 中文优先)","localAsr.sherpaModelSenseVoiceDesc":"默认实验模型,适合中文与中英混合听写。","localAsr.sherpaModelParaformer":"Paraformer 中文","localAsr.sherpaModelParaformerDesc":"面向中文的实验模型。","localAsr.sherpaModelWhisper":"Whisper Small 多语言","localAsr.sherpaModelWhisperDesc":"与 Whisper 系列行为一致的多语言实验兜底模型。","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3(多语)","localAsr.sherpaModelWhisperLargeV3Desc":"开源多语通用里效果最好的 Whisper 档,质量高、体积大,适合高质量转写。","localAsr.sherpaModelZipformer":"Zipformer 流式(中英)","localAsr.sherpaModelZipformerDesc":"边说边出的流式中英模型,延迟最低,适合实时听写。","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"转换后的 sherpa-onnx Qwen3-ASR 模型,支持多语言识别与更强的长上下文能力。","localAsr.modelSelectTitle":"本机模型","localAsr.modelSelectDesc":"查看下载状态、管理文件,或加载模型进行测试。","localAsr.modelSelectPlaceholder":"选择已下载的模型…","localAsr.modelSelectEmpty":"还没有已下载的模型,先到「下载与管理」下载一个。","localAsr.groupDownload":"下载与管理","localAsr.groupOther":"其他","localAsr.mirrorLabel":"下载镜像源","localAsr.mirrorDesc":"官方源在国外网络更稳;hf-mirror.com 是国内社区维护的镜像。","localAsr.mirrorHuggingface":"HuggingFace 官方 (huggingface.co)","localAsr.mirrorHfMirror":"国内镜像 (hf-mirror.com)","localAsr.activeBadge":"当前使用","localAsr.downloadedBadge":"已下载","localAsr.notDownloadedBadge":"未下载","localAsr.download":"下载","localAsr.resume":"继续下载","localAsr.cancel":"取消","localAsr.delete":"删除","localAsr.setActive":"设为默认","localAsr.failed":"失败","localAsr.cancelled":"已取消","localAsr.files":"文件","localAsr.sizeLoading":"正在查询尺寸…","localAsr.sizeUnknown":"尺寸未知","localAsr.performanceWarning":"本地 ASR 适合离线或隐私敏感场景,首次使用需下载模型。","localAsr.test":"加载并测试","localAsr.testRunning":"测试中…","localAsr.testHeading":"内置音频测试","localAsr.testExpected":"原文","localAsr.testActual":"识别","localAsr.testStats":"音频时长 {{audio}}s · 加载 {{load}}s · 推理 {{transcribe}}s · 后端 {{backend}}","localAsr.testFailed":"测试失败","localAsr.engineStatusLabel":"内存中的引擎","localAsr.engineLoaded":"已加载:{{model}}","localAsr.engineUnloaded":"未加载(首次听写需先加载模型)","localAsr.loadNow":"立即加载","localAsr.releaseNow":"立即释放","localAsr.keepLoadedLabel":"保持加载多久","localAsr.keepLoadedDesc":"决定 Qwen3-ASR 用完后多久从内存释放,避免长期占用内存。","localAsr.keepImmediate":"说完话立即释放","localAsr.keep1min":"上次使用后 1 分钟","localAsr.keep5min":"上次使用后 5 分钟(默认)","localAsr.keep30min":"上次使用后 30 分钟","localAsr.keepForever":"不释放(始终保留)","localAsr.sidebarTitle":"已下载与下载中","localAsr.activePill":"当前使用","localAsr.setDefault":"设为默认","localAsr.downloading":"下载中","localAsr.startDownload":"开始下载","localAsr.downloadNewModel":"下载新模型","localAsr.activeModelLabel":"使用中的模型","localAsr.pickerNoModelDownloaded":"还没有已下载的模型,请先在本地模型页下载。","localAsr.partialDownloadsLabel":"未完成下载","localAsr.partialDownloadsDesc":"存在中断下载的临时残留,可一键清理,不影响已安装模型。","localAsr.cleanupIncomplete":"清理未完成下载","localAsr.languagesLabel":"语言","localAsr.partialBytesLabel":"残留文件","localAsr.downloadDialogTitle":"下载模型","localAsr.downloadDialogAlreadyHave":"模型文件已下载。可回到模型页加载并测试,或在「ASR 语音转写」中选择对应供应商。","localAsr.downloadDialogDesc":"查看模型大小与简介,选择后开始下载。下载完成后,在「语音识别」中选择对应的本地服务。","localAsr.detailRepo":"模型仓库","localAsr.hfDownloads":"下载量","localAsr.hfLikes":"收藏数","localAsr.hfDescription":"模型简介","localAsr.hfNoDescription":"暂无简介","localAsr.hfCardFailed":"模型信息获取失败","localAsr.detailFiles":"个文件","localAsr.detailDownloaded":"已下载","localAsr.detailEmpty":"选择一个模型查看详情","localAsr.foundryLanguage":"语言","localAsr.foundryRuntimeSource":"运行时来源","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"保持加载","localAsr.downloadSettingsTitle":"下载与存储设置","localAsr.downloadSettingsDesc":"镜像源 · 模型存储位置 · 内存引擎","localAsr.libraryEmptyTitle":"还没有本地模型","localAsr.libraryEmptyDesc":"下载一个语音识别模型,让音频在本机处理。已有模型却没有显示时,可重新读取目录。","localAsr.catalogTitle":"模型目录","localAsr.catalogEmpty":"当前没有可显示的模型。重新读取目录后再试。","localAsr.reloadCatalog":"重新读取","localAsr.engineLabel":"识别引擎","localAsr.sizeLabel":"模型大小","localAsr.allEngines":"全部","localAsr.backToCatalog":"返回模型目录","localAsr.detailsTitle":"模型详情","localAsr.testActivateHint":"「加载并测试」会将此模型设为当前使用,再运行内置音频测试。","localAsr.downloadProgressHint":"开始后返回模型页查看进度,也可随时取消下载。","localAsr.errorDetails":"错误详情"},"zh-TW":{"cloudSync.title":"雲端同步","cloudSync.description":"使用 GitHub 帳號,在裝置之間同步詞典、風格與個人偏好。","cloudSync.signIn":"使用 GitHub 登入","cloudSync.account":"同步帳號","cloudSync.refresh":"重新整理狀態","cloudSync.loading":"正在讀取雲端狀態…","cloudSync.noBackup":"雲端尚無備份","cloudSync.available":"雲端備份已就緒","cloudSync.summary":"{{dictionary}} 個詞條 · {{corrections}} 條修正规則 · {{stylePacks}} 個風格","cloudSync.updated":"更新於 {{time}}","cloudSync.upload":"備份至雲端","cloudSync.restore":"從雲端還原","cloudSync.delete":"刪除雲端備份","cloudSync.working":"正在同步…","cloudSync.uploadSuccess":"已備份至雲端","cloudSync.restoreSuccess":"已還原雲端設定","cloudSync.deleteSuccess":"已刪除雲端備份","cloudSync.failed":"同步失敗:{{error}}","cloudSync.conflict":"雲端已有更新。請重新整理狀態後,再決定備份或還原。","cloudSync.unavailable":"官方同步服務暫時無法使用,請稍後重試。","cloudSync.signInRequired":"請先登入 GitHub。","cloudSync.restoreTitle":"還原雲端備份?","cloudSync.restoreDescription":"雲端的詞典、修正规則、風格和同步偏好將覆蓋本機對應內容。API 金鑰、裝置目錄與權限維持本機設定。","cloudSync.deleteTitle":"刪除雲端備份?","cloudSync.deleteDescription":"僅刪除此 GitHub 帳號的雲端備份,本機資料會保留。","cloudSync.confirmRestore":"還原並取代","cloudSync.confirmDelete":"刪除備份","cloudSync.scope":"同步詞典、修正规則、風格圖示與常用偏好。API 金鑰、登入憑據與裝置專屬設定保留在本機。","macDictationKey.Changed":"儲存期間快捷鍵已變更,請重試。","macDictationKey.label":"Mac 聽寫鍵","macDictationKey.description":"用麥克風圖示鍵替換目前的聽寫快捷鍵。結束 OpenLess 後,此鍵交回 macOS。","macDictationKey.Permission":"請在 macOS「隱私權與安全性 → 輔助使用」中允許 OpenLess 後重試。","macDictationKey.Busy":"請先結束目前的聽寫,再變更快捷鍵。","macDictationKey.Unavailable":"無法啟用此快捷鍵,已儲存的綁定未變更。請重試或選擇其他鍵。","app.name":"OpenLess","app.tagline":"自然說話,完美書寫","common.loading":"加載中…","common.retry":"重試","common.settingsLoadFailed":"設置加載失敗","common.refresh":"刷新","common.clear":"清空","common.copy":"複製","common.delete":"刪除","common.later":"稍後","common.cancel":"取消","common.close":"關閉","common.show":"顯示","common.hide":"隱藏","common.saved":"已保存","common.saving":"保存中","common.experimental":"實驗性","common.copied":"已複製","common.operationFailed":"操作失敗","common.add":"添加","common.durationSeconds":"{{value}} 秒","common.durationMillis":"{{value}} 毫秒","common.durationMinutes":"{{value}} 分鐘","capsule.thinking":"thinking","capsule.using":"using","capsule.cancelled":"已取消","capsule.error":"出錯了","capsule.inserted":"已插入 {{count}}","capsule.translating":"正在翻譯","capsule.selectionPolish.polishing":"正在潤色...","capsule.selectionPolish.replaced":"已替換","capsule.selectionPolish.noSelection":"未選中內容","capsule.selectionPolish.failed":"潤色失敗,請重試","selectionPolishPreview.title":"選區潤色預覽","selectionPolishPreview.subtitle":"可直接編輯;點擊確認後才會替換原選區。","selectionPolishPreview.cancel":"取消","selectionPolishPreview.resultLabel":"潤色結果","selectionPolishPreview.sourcePrefix":"原文:","selectionPolishPreview.applyError":"未能應用:","selectionPolishPreview.confirmReplace":"確認並替換","selectionVoiceIntent.title":"你想做什麼?","selectionVoiceIntent.subtitle":"已識別你的語音指令,請選擇處理方式。","selectionVoiceIntent.loading":"載入中…","selectionVoiceIntent.sourcePrefix":"選區:","selectionVoiceIntent.errorPrefix":"未能繼續:","selectionVoiceIntent.question":"提問","selectionVoiceIntent.edit":"編輯選區","selectionVoiceIntent.cancel":"取消","qa.title":"劃詞追問","qa.headerHint":"隨時提問","qa.thinking":"思考中…","qa.error":"出錯了,請稍後再試。","qa.errorRetry":"重試","qa.errorRetryHint":"請再試一次。","qa.pinTooltip":"固定(不自動關閉)","qa.unpinTooltip":"取消固定","qa.closeTooltip":"關閉","qa.micLabel":"語音提問","qa.micStop":"結束錄音","qa.selectionPreview":"基於選中文本:","qa.emptyTitle":"有什麼可以幫你?","qa.emptyDesc":"選中任意文字後開始追問,或直接在下方輸入問題。回答會顯示在這裏,可以連續多輪。","qa.recordingHint":"錄音中…再按一次 {{recordHotkey}} 結束並提問","qa.mobileRecordLabel":"錄音按鈕","qa.mobileRecordStart":"開始錄音","qa.mobileRecordStop":"結束並提交","qa.composerPlaceholder":"輸入問題,Enter 發送","qa.composerSend":"發送","qa.statusIdle":"按 {{recordHotkey}} 提問","qa.statusRecording":"錄音中","qa.statusThinking":"思考中","qa.statusError":"出錯了","qa.jumpToLatest":"跳到最新","qa.editApplyReplace":"確認並替換選區","qa.editApplyUnavailable":"沒有可替換的編輯結果","qa.editRevertPrevious":"保留上一版本","qa.editInstructionMode":"編輯指令","lessComputer.title":"Less Computer","lessComputer.subtitle":"想讓電腦做什麼?","lessComputer.you":"你","lessComputer.working":"正在操控電腦…","lessComputer.tool":"呼叫了 {{name}}","lessComputer.compaction":"上下文已壓縮","lessComputer.done":"完成","lessComputer.cost":"${{cost}}","lessComputer.error":"失敗,請重試。","lessComputer.closeTooltip":"關閉","lessComputer.jumpToLatest":"跳到最新","lessComputer.inputPlaceholder":"輸入指令,Enter 傳送","lessComputer.send":"傳送","lessComputer.approvalTitle":"執行被攔截的指令?","lessComputer.approvalRerunWarning":"注意:批准後將在已被修改的工作區上重新執行,可能對不可重入操作產生副作用","lessComputer.approve":"允許","lessComputer.deny":"拒絕","lessComputer.approved":"已允許","lessComputer.denied":"已拒絕","nav.overview":"概覽","nav.history":"歷史","nav.vocab":"詞典","nav.style":"風格","nav.marketplace":"風格市場","nav.translation":"翻譯","nav.selectionAsk":"劃詞追問","nav.corrections":"糾正規則","nav.polishMode":"潤色模式","nav.group.style":"風格","nav.group.tools":"工具","nav.localAsr":"模型設置","nav.more":"更多","marketplace.kicker":"風格市場","marketplace.title":"風格包市場","marketplace.desc":"瀏覽、安裝和分享社區風格包。","marketplace.searchPlaceholder":"搜尋名稱 / 描述 / 標籤…","marketplace.sortPopular":"按熱度","marketplace.sortNew":"最新","marketplace.uploadBtn":"上傳","marketplace.uploadDisabledHint":"請先在 設定 → 風格市場 配置 GitHub 使用者名稱","marketplace.refreshBtn":"重新整理","marketplace.empty":"還沒有風格包","marketplace.emptyHint":"換個搜尋詞,或自己上傳一個分享給社群","marketplace.loadFailed":"載入失敗:{{err}}","marketplace.noDescription":"(暫無描述)","marketplace.installBtn":"安裝到本機","marketplace.installingBtn":"安裝中…","marketplace.downloadZipBtn":"下載 ZIP","marketplace.downloadingZipBtn":"下載中…","marketplace.downloadAria":"下載「{{name}}」ZIP","marketplace.likeBtn":"點讚","marketplace.installed":"已安裝「{{name}}」到本機風格包","marketplace.downloaded":"已下載「{{name}}」ZIP","marketplace.uploaded":"上傳成功,等待審核","marketplace.uploadTitle":"選擇要上傳的風格包","marketplace.uploadHint":"以 {{login}} 身份上傳。包內容會發送到雲端審核佇列。","marketplace.uploadNoLocal":"本機沒有可上傳的風格包","marketplace.errors.detail":"載入詳情失敗:{{err}}","marketplace.errors.install":"安裝失敗:{{err}}","marketplace.errors.download":"下載 ZIP 失敗:{{err}}","marketplace.errors.like":"點讚失敗:{{err}}","marketplace.errors.upload":"上傳失敗:{{err}}","marketplace.errors.loadLocal":"載入本機風格包失敗:{{err}}","marketplace.sortLiked":"我讚過的","marketplace.likedEmpty":"你還沒有讚過任何風格包","marketplace.likedEmptyHint":"點開任一風格包,紅色星星點亮後會出現在這裡","marketplace.derivativeBadge":"衍生自 @{{login}}","marketplace.detail.withdrawBtn":"撤回發布","marketplace.detail.withdrawConfirm":"確認從風格市場撤回「{{name}}」?本機副本不會被刪除。","marketplace.detail.withdrawSuccess":"已從風格市場撤回","marketplace.detail.withdrawFailed":"撤回失敗:{{err}}","marketplace.myPacks.buttonLabel":"我的發布","marketplace.myPacks.buttonTitle":"查看 {{login}} 的發布","marketplace.myPacks.buttonTitleEmpty":"先在 Settings → 風格市場 填寫發布身份","marketplace.myPacks.searchPlaceholder":"搜尋名稱、標籤","marketplace.myPacks.notLoggedIn":"請先在 Settings → 風格市場 填寫發布身份","marketplace.myPacks.emptyTitle":"你還沒有發布過風格包","marketplace.myPacks.emptyHint":"在「風格」頁面編輯後點「發布到風格市場」,或點擊右上角上傳本機風格包。","marketplace.myPacks.noMatch":"沒有符合的風格包","marketplace.myPacks.summary":"已發布 {{count}} 個風格包","marketplace.myPacks.summaryPending":"已發布 {{count}} 個風格包 · {{pending}} 個審核中","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"更新","marketplace.myPacks.actions.withdraw":"下架","marketplace.myPacks.loadFailed":"我的發布載入失敗:{{err}}","marketplace.myPacks.loadingTitle":"正在拉取,請稍後…","marketplace.myPacks.loadingHint":"從風格市場獲取你最新發布的風格包。","marketplace.myPacks.loadErrorTitle":"載入失敗","marketplace.myPacks.loadErrorRetry":"重試","marketplace.upload.confirmBtn":"確定上傳","marketplace.upload.updateTitle":"更新「{{name}}」","marketplace.upload.updateHint":"選中要上傳的本機新版本風格包,下方點「確定上傳」。同名包預設預選。","marketplace.upload.recommendedBadge":"建議更新","marketplace.state.pending":"審核中","marketplace.state.approved":"已上架","marketplace.state.rejected":"未通過","marketplace.state.withdrawn":"已下架","marketplace.state.superseded":"已被新版替換","marketplace.state.unknown":"未知","marketplace.oauth.title":"用 GitHub 登入","marketplace.oauth.generating":"正在產生裝置驗證碼…","marketplace.oauth.browserHint":"在瀏覽器中開啟 {{uri}} 並輸入下方代碼:","marketplace.oauth.copyBtn":"複製","marketplace.oauth.copied":"已複製裝置碼","marketplace.oauth.copyFailed":"複製失敗:{{err}}","marketplace.oauth.openBrowserBtn":"開啟瀏覽器","marketplace.oauth.cancelBtn":"取消","marketplace.oauth.waiting":"等待你在瀏覽器中授權…","marketplace.oauth.successAs":"已登入為 @{{login}}","marketplace.oauth.retryBtn":"重試","marketplace.oauth.closeBtn":"關閉","marketplace.oauth.loginBtn":"登入","marketplace.oauth.loginTooltip":"點擊用 GitHub 登入","marketplace.oauth.reloginTooltip":"點擊重新登入 / 切換帳號(目前 @{{login}})","marketplace.modal.loggedIn":"目前登入身份 —— 在 Settings → 錄音 → 風格市場 修改","marketplace.modal.notLoggedIn":"未登入 —— 去 Settings → 錄音 → 風格市場 填一個發布者名","marketplace.modal.notLoggedInLabel":"未登入","shell.shortcutLabel":"錄音快捷鍵","shell.shortcutHint":"開始 / 停止","shell.betaTag":"BETA","shell.betaNote":"本機儲存,可選雲端備份","shell.navHint.overview":"狀態總覽:用量統計、提供商與權限健康檢查","shell.navHint.history":"聽寫歷史:搜尋、回放與複製過往轉寫","shell.navHint.vocab":"詞典:自訂熱詞,提升專有名詞辨識率","shell.navHint.style":"潤色風格:管理輸出風格與自訂提示詞","shell.navHint.translation":"翻譯:按住 Shift 說話,譯成目標語言插入","shell.navHint.selectionAsk":"劃詞追問:選取文字後語音提問","shell.navHint.settings":"偏好設定:快捷鍵、提供商、隱私與更新","shell.footer.account":"賬戶","shell.footer.feedback":"反饋","shell.footer.settings":"設置","shell.footer.help":"幫助","shell.footer.version":"版本 {{version}}","shell.footer.helpPopover.tagline":"本地驅動的語音輸入層","shell.footer.helpPopover.releaseNotes":"查看發佈日誌 ↗","shell.footer.helpPopover.docs":"幫助中心 ↗","shell.providerPrompt.title":"設置語音提供商","shell.providerPrompt.body":"還沒有配置 ASR 或 LLM 提供商,語音輸入和潤色暫時無法正常工作。","shell.providerPrompt.later":"稍後","shell.providerPrompt.openSettings":"去設置","shell.hotkeyModePrompt.title":"檢查錄音方式","shell.hotkeyModePrompt.body":"預設已改為切換式。如果之前改過觸發方式,請到錄音設定確認一次。","shell.hotkeyModePrompt.later":"稍後提醒","shell.hotkeyModePrompt.openSettings":"去錄音設置","onboarding.welcome":"歡迎使用 OpenLess","onboarding.intro":"本地說出,本地落字。開始前需要兩個系統權限。","onboarding.accessibilityTitle":"輔助功能","onboarding.hotkeyTitle":"全局快捷鍵","onboarding.accessibilityDesc":"用於監聽全局快捷鍵(默認 {{trigger}})並把識別結果寫入光標位置。","onboarding.hotkeyDesc":"用於確認全局快捷鍵監聽可用。","onboarding.micTitle":"麥克風","onboarding.micDesc":"用於捕獲你的語音輸入。","onboarding.actionNotApplicable":"無需授權","onboarding.actionGranted":"已授權","onboarding.actionOpenSystem":"打開系統設置","onboarding.actionRestart":"重置授權並重新啟動 OpenLess","onboarding.actionGrant":"授權","onboarding.actionRequestMic":"彈出授權","onboarding.micNoDeviceHint":"未偵測到麥克風,請連接並啟用麥克風後重試。","onboarding.accessibilityHint":"授權後必須**完全退出 OpenLess** 再重新打開(macOS TCC 規則)。","onboarding.footerHint":"授權全部完成後此引導自動關閉。如果一直不消失,從菜單欄 OpenLess → 退出,重新打開 App。","onboarding.continueToSettings":"僅進入設定(語音與全域快速鍵暫不可用)","onboarding.androidContinue":"先進入應用","onboarding.androidFooterHint":"聽寫需要麥克風權限。可點擊上方「彈出授權」,或先進入應用後在概覽頁繼續授權。","onboarding.androidTitle":"配置 OpenLess","onboarding.androidIntro":"按步驟完成移動端權限和服務配置。","onboarding.androidStepCounter":"第 {{current}} / {{total}} 項","onboarding.androidBack":"上一步","onboarding.androidNext":"下一步","onboarding.androidFinish":"完成並進入","onboarding.androidSteps.microphoneTitle":"麥克風權限","onboarding.androidSteps.microphoneDesc":"調用 Android 系統授權卡片,允許 OpenLess 錄製語音。","onboarding.androidSteps.accessibilityTitle":"無障礙服務","onboarding.androidSteps.accessibilityDesc":"用於把識別結果貼回當前輸入框,並輔助檢測輸入環境。","onboarding.androidSteps.overlayPermissionTitle":"懸浮窗權限","onboarding.androidSteps.overlayPermissionDesc":"允許 OpenLess 在其他應用上顯示錄音控制按鈕。","onboarding.androidSteps.overlayConfigTitle":"懸浮窗配置","onboarding.androidSteps.overlayConfigDesc":"設置懸浮窗顯示時機、觸發方式、滑動動作和按鈕大小。","onboarding.androidSteps.asrTitle":"ASR 雲服務","onboarding.androidSteps.asrDesc":"配置語音轉文字服務的供應商、密鑰、接口地址和模型。","onboarding.androidSteps.llmTitle":"LLM 服務","onboarding.androidSteps.llmDesc":"配置文本潤色、翻譯和問答使用的語言模型服務。","overview.refresh":"重新整理狀態","overview.servicesTitle":"目前的語音服務","overview.statsTitle":"使用紀錄","overview.omniKind":"多模態語音","overview.omniName":"目前的 Omni 模型","overview.statusLoading":"正在讀取服務設定…","overview.configureProvider":"前往設定","overview.manageProvider":"管理服務","overview.recentEmptyHint":"還沒有聽寫紀錄。依照上方引導試一次,結果就會顯示在這裡。","overview.providerHelp.asr":"將語音轉成文字。","overview.providerHelp.llm":"依照你的風格整理和潤飾文字。","overview.providerHelp.omni":"由一個模型完成語音辨識和文字處理。","overview.actions.refresh":"重新讀取","overview.actions.services":"AI 服務與模型","overview.actions.general":"錄音與輸入","overview.actions.shortcuts":"快捷鍵","overview.actions.privacy":"權限與資料","overview.guide.nextStep":"下一步","overview.guide.loadingTitle":"正在讀取你的設定","overview.guide.loadingDesc":"請稍候,馬上顯示目前的服務和下一步操作。","overview.guide.unavailableTitle":"暫時無法讀取服務狀態","overview.guide.unavailableDesc":"重新讀取,或前往 AI 服務檢查設定。","overview.guide.servicesTitle":"先設定語音服務","overview.guide.servicesDesc":"建議從這裡開始:選擇語音辨識和文字處理服務;使用 Omni 時,只需設定目前的多模態模型。","overview.guide.permissionsTitle":"先檢查快捷鍵狀態","overview.guide.permissionsDesc":"目前無法使用快捷鍵介面。請開啟權限與資料,查看狀態和可用的處理方式。","overview.guide.shortcutsTitle":"設定一個錄音快捷鍵","overview.guide.shortcutsDesc":"選擇順手的快捷鍵,之後就能在輸入時開始聽寫。","overview.guide.recordingTitle":"確認你的錄音方式","overview.guide.recordingDesc":"服務設定已儲存。開啟錄音設定,選擇麥克風和適合你的錄音方式。","overview.guide.tryDictationTitle":"試一次聽寫","overview.guide.tryDictationDesc":"將游標放到要輸入的位置。{{shortcut}}","overview.guide.permissionsHint":"錄音或快捷鍵沒有反應?在「權限與資料」中查看權限、麥克風和快捷鍵狀態。","overview.kicker":"概覽","overview.title":"今日概覽","overview.desc":"今日口述統計與系統狀態。","overview.pressPrefix":"按","overview.pressSuffix":"開始錄音","overview.asrKind":"語音辨識","overview.llmKind":"文字處理","overview.asrName":"火山引擎","overview.asrSubname":"bigmodel","overview.llmName":"OpenAI 兼容","overview.llmConfigured":"已配置 active LLM","overview.llmNotConfigured":"未配置","overview.statusConfigured":"已配置","overview.statusNotConfigured":"未配置","overview.statusUnknown":"無法讀取","overview.credentialsLoadError":"無法讀取憑據狀態","overview.metricChars":"今日字數","overview.metricSegments":"{{count}} 段","overview.metricDuration":"今日總時長","overview.metricAvg":"平均段落","overview.metricAvgTrend":"今日均值","overview.metricNoData":"暫無數據","overview.historyLoadError":"歷史讀取失敗","overview.metricTotal":"累計記錄","overview.metricTotalTrend":"本機存檔 (上限 200)","overview.activityTitle":"年度活動","overview.activityCount":"{{count}} 次聽寫","overview.activityLoadError":"活動數據讀取失敗","overview.period.ariaLabel":"統計週期","overview.period.last7Days":"近 7 天","overview.period.last30Days":"近 30 天","overview.period.dailyAverage":"日均 {{value}}","overview.period.minutes":"{{value}} 分鐘","overview.period.hoursMinutes":"{{hours}} 小時 {{minutes}} 分","overview.metricName.ariaLabel":"統計指標","overview.metricName.count":"條數","overview.metricName.chars":"字數","overview.metricName.duration":"時長","overview.recentTitle":"最近識別","overview.recentAll":"全部記錄 →","overview.recentEmpty":"還沒有記錄。按 {{trigger}} 開始第一次錄音。","overview.recentLoadFailed":"無法讀取最近識別,請重試。","overview.historyRetry":"重試","overview.weekDays.0":"日","overview.weekDays.1":"一","overview.weekDays.2":"二","overview.weekDays.3":"三","overview.weekDays.4":"四","overview.weekDays.5":"五","overview.weekDays.6":"六","overview.inAppDictation.title":"應用內錄音","overview.inAppDictation.start":"開始錄音","overview.inAppDictation.stop":"停止錄音","overview.inAppDictation.idle":"點擊開始錄音","overview.inAppDictation.recording":"錄音中…","overview.inAppDictation.processing":"處理中…","overview.androidMicBanner.title":"需要麥克風權限","overview.androidMicBanner.desc":"授權麥克風後可使用應用內錄音與語音輸入。","overview.androidMicBanner.grant":"彈出授權","overview.androidMicBanner.openSettings":"打開系統設置","history.exportError":"匯出錄音失敗,請重試。","history.kicker":"歷史記錄","history.title":"歷史記錄","history.desc":"本機保存的識別記錄。","history.filterAll":"全部","history.summary":"共 {{total}} 條 · 顯示 {{shown}}","history.searchPlaceholder":"搜尋轉寫內容…({{shortcut}})","history.searchNoMatch":"沒有符合「{{query}}」的記錄。","history.empty":"還沒有歷史記錄。按 {{trigger}} 錄一段試試。","history.loadFailed":"加載歷史失敗:{{err}}","history.retry":"重試","history.clearFailed":"清空失敗:{{err}}","history.deleteFailed":"刪除失敗:{{err}}","history.copyFailed":"複製失敗:{{err}}","history.playRecording":"播放錄音","history.audioLoading":"載入中…","history.audioDecodeFailed":"音訊解碼失敗:{{err}}","history.exportRecording":"匯出錄音","history.exportFailed":"匯出失敗:{{err}}","history.retranscribe":"重新轉錄","history.retranscribing":"轉錄中…","history.retranscribeFailed":"重新轉錄失敗:{{err}}","history.rawLabel":"原文","history.rawEmpty":"(空)","history.selectHint":"左側選一條查看詳情。","history.recorded":"錄音 {{duration}}","history.stepAsr":"辨識","history.multimodalPipeline":"多模態","history.stepAsrHint":"放開按鍵後等待辨識結果的耗時。串流辨識邊錄邊轉,此值通常遠小於錄音時長。","history.stepPolish":"潤飾","history.stepInsert":"插入","history.chars":"{{count}} 字","history.vocabHits":"{{count}} 個熱詞","history.inserted":"已插入","history.pasteSent":"已嘗試粘貼","history.copiedFallback":"已複製(需 {{shortcut}})","history.insertFailed":"插入失敗","history.confirmClear":"確定清空全部 {{count}} 條記錄?此操作不可恢復。","history.backToList":"返回列表","history.repolish.title":"重新潤色","history.repolish.hint":"基於上面的原文再跑一次潤色。結果只在本次查看時顯示,不寫回這條記錄。原風格包已刪除或舊記錄時,重試將使用當前風格。","history.repolish.retry":"用原風格重試","history.repolish.retrying":"重試中…","history.repolish.apply":"套用","history.repolish.applying":"潤色中…","history.repolish.pickStyle":"選擇風格包","history.repolish.noPacks":"沒有可用的風格包。","history.repolish.packsLoadFailed":"讀取風格包失敗:{{err}}","history.repolish.failed":"重新潤色失敗:{{err}}","history.repolish.timeout":"當前 LLM 提供商 30 秒內沒有返回結果。換個更快的提供商,或稍後重試 —— 免費模型池經常排隊。","history.repolish.resultTitle":"{{name}} 的結果","history.repolish.retryResultTitle":"重試結果","history.repolish.empty":"(模型返回了空結果)","history.repolish.clear":"清除結果","vocabCard.title":"要記住這個詞嗎?","vocabCard.accept":"記住","vocabCard.reject":"不用","insertFallbackCard.copy":"複製","insertFallbackCard.copied":"已複製","insertFallbackCard.copyFailed":"複製失敗","insertFallbackCard.dismiss":"關閉","vocab.selectAllVisible":"選取目前結果","vocab.selectedCount":"已選取 {{count}} 個詞","vocab.selectWord":"選取「{{phrase}}」","vocab.deleteSelected":"刪除已選({{count}})","vocab.batchDeleteFailed":"{{count}} 個詞條刪除失敗,已保留選取,可重試。","vocab.kicker":"詞典","vocab.title":"詞典","vocab.desc":"添加生詞或專業術語,提高識別準確率。","vocab.sectionTitle":"詞條","vocab.placeholder":"輸入詞語,按 Enter 或點添加…","vocab.tip":"支持中英混合 · 數字開頭按字面識別 · 命中次數自動計數","vocab.loadFailed":"加載失敗:{{err}}","vocab.empty":"還沒有詞條。在上面輸入一個生詞或專業術語,讓模型在聽寫時優先匹配。","vocab.tipDisabled":"點擊禁用此詞條","vocab.tipEnabled":"點擊啓用此詞條","vocab.removeAria":"刪除","vocab.edit":"編輯","vocab.editTitle":"編輯詞彙","vocab.editSave":"儲存","vocab.editEmpty":"詞條不能為空。","vocab.filter.all":"所有","vocab.filter.auto":"自動新增","vocab.filter.manual":"手動新增","vocab.searchPlaceholder":"搜尋","vocab.searchEmpty":"沒有符合的詞條。","vocab.newWord":"新詞","vocab.newWordTitle":"新增新詞","vocab.newWordDesc":"直接輸入新詞,或從預設範本批次匯入。","vocab.newWordInputPlaceholder":"輸入詞語,按 Enter 新增…","vocab.newWordTemplates":"預設範本","vocab.newWordTemplateCount":"{{count}} 詞","vocab.newWordAddSelected":"新增所選","vocab.learnedSection":"自動收集({{count}})","vocab.removeAllLearned":"全部刪除","vocab.corrections.title":"糾正規則","vocab.corrections.tip":"修正常見 ASR 誤識別,支援 {num} 數字通配。","vocab.corrections.patternPlaceholder":"誤識別寫法,如 {num}粒","vocab.corrections.replacementPlaceholder":"目標寫法,如 {num}例","vocab.corrections.empty":"還沒有糾正規則。","vocab.corrections.invalid":"僅支援字面替換,或一個 {num} 通配數字的規則,例如 {num}粒 → {num}例。","vocab.corrections.tipDisabled":"點擊停用此規則","vocab.corrections.tipEnabled":"點擊啟用此規則","vocab.corrections.removeAria":"刪除糾正規則","vocab.corrections.learnedBadge":"自動","vocab.corrections.learnedTip":"從你的手動修改中自動收集。可以隨時刪掉。","vocab.corrections.onlyLearned":"只看自動收集的({{count}})","vocab.corrections.removeAllLearned":"刪除全部自動收集的","vocab.corrections.suggestTitle":"要記住這個改法嗎?","vocab.corrections.suggestAccept":"記住","vocab.corrections.suggestDismiss":"不用","vocab.presets.title":"場景預設","vocab.presets.tip":"可多選批量啟用,支援編輯和新建。","vocab.presets.create":"新建預設","vocab.presets.apply":"啓用所選","vocab.presets.save":"保存預設","vocab.presets.edit":"編輯 {{name}}","vocab.presets.newPreset":"新預設","vocab.presets.namePlaceholder":"預設名稱","vocab.presets.wordsPlaceholder":"詞條(用逗號或換行分隔)","style.kicker":"風格","style.title":"輸出風格","style.desc":"選擇錄音的預設輸出風格。","style.masterToggle":"整體啓用","style.currentDefault":"當前默認","style.ariaSetDefault":"設爲默認","style.saveFailed":"保存失敗:{{error}}","style.customPromptTitle":"自定義提示詞","style.customPromptPlaceholder":"可選,追加到這個風格的內建 system prompt 末尾。","style.customPromptHint":"留空則保持當前行為不變。保存後會在該風格的潤色和 repolish 中生效;按 Ctrl/Cmd+Enter 也可保存。","style.customPromptSave":"保存提示詞","style.customPromptDirty":"未保存","style.systemPromptMovedHint":"完整 System Prompt 已移到 設定 -> Providers 頁面統一編輯。這裡現在只負責風格啟停和預設風格。","style.modes.raw.name":"原文","style.modes.raw.desc":"只補標點和必要分句,不改寫不擴寫。","style.modes.raw.sample":"保留原始口語;嗯、那個等口癖會被去除,但不會重組語句。","style.modes.light.name":"輕度潤色","style.modes.light.desc":"去口癖、補標點,整理爲可發送的自然文字。","style.modes.light.sample":"讓轉寫聽起來不像念稿——保留語氣和表達習慣,但行文流暢。","style.modes.structured.name":"清晰結構","style.modes.structured.desc":"面向程式協作、技術排障和產品回饋,準確保留術語並整理結構。","style.modes.structured.sample":"1. 主題一\na. 要點\nb. 要點\n2. 主題二\na. 要點\nb. 要點","style.modes.formal.name":"正式表達","style.modes.formal.desc":"工作溝通和郵件場景,更專業更完整。","style.modes.formal.sample":"郵件場景自動識別問候 / 落款;不引入空泛客套。","style.pack.builtinTags.minimalEdits":"最小改寫","style.pack.builtinTags.strongCorrection":"強糾錯","style.pack.builtinTags.communication":"溝通","style.pack.builtinTags.natural":"自然","style.pack.builtinTags.organized":"條理","style.pack.builtinTags.workplaceCommunication":"工作溝通","style.pack.builtinTags.aiCoding":"AI 程式開發","style.pack.builtinTags.technicalStructure":"技術結構化","style.pack.newName":"未命名風格","style.pack.newDescription":"簡短描述這個風格的使用情境。","style.pack.uploadIcon":"為「{{name}}」上傳 SVG 圖示","style.pack.resetIcon":"還原預設圖示","style.pack.iconSaved":"圖示已儲存","style.pack.iconInvalid":"請選擇不含外部資源的有效 SVG 圖示(最大 256 KB)。","style.pack.iconSaveFailed":"圖示儲存失敗,請再試一次。","style.pack.selectionListTitle":"選區書面潤色風格","style.pack.selectionListDesc":"用於無需 ASR 的已選文字:單純語法、清晰度和格式潤色。可為它單獨選擇風格與 Prompt。","style.pack.dictationTab":"錄音 / ASR 風格","style.pack.selectionTab":"選區潤色","style.pack.current":"目前","style.pack.useForSelection":"用於選區","style.pack.writtenPolish":"書面潤色","style.pack.selectionPromptTitle":"選區潤色 Prompt(無 ASR)","style.pack.selectionPromptHint":"用於使用者主動選中的書面文字;不經過 ASR,不把內容當成轉寫,也不回答其中的問題。","style.pack.selectionPromptEditorDesc":"目前編輯選區潤色 Prompt;輸入對象是使用者主動選中的書面文字,不經過 ASR。","style.pack.dictationPromptEditorDesc":"目前編輯錄音 / ASR 風格 Prompt;輸入對象是語音辨識後的轉寫文本。","style.pack.dictationPromptTitle":"錄音 / ASR Prompt","style.pack.dictationPromptHint":"用於錄音轉寫後的 ASR 文本;這裡可以寫口語整理、ASR 錯字糾正和專有名詞還原規則。","style.pack.selectionPromptFallback":"尚未配置書面潤色 Prompt;將使用安全預設規則。","style.pack.selectionActivated":"已將「{{name}}」用於選區潤色","style.pack.selectionActivateFailed":"選區潤色風格切換失敗:{{err}}","style.pack.selectionChars":"{{count}} 字元","style.pack.kicker":"風格包","style.pack.title":"風格包","style.pack.desc":"管理本機風格包。","style.pack.marketplaceBtn":"風格市場","style.pack.loadFailed":"載入風格包失敗:{{err}}","style.pack.importZip":"匯入 ZIP","style.pack.exportZip":"匯出 ZIP","style.pack.exportShort":"匯出","style.pack.publishMarketplace":"發布到風格市場","style.pack.updateMarketplace":"更新到風格市場新版本","style.pack.publishDisabledHint":"請先在 設定 → 風格市場 設定 GitHub 使用者名稱","style.pack.publishSuccess":"發布成功,等待 marketplace 審核","style.pack.publishFailed":"發布失敗:{{err}}","style.pack.publishBuiltinRejected":"內建風格包不能直接發布,請先編輯產生一份匯入版。","style.pack.builtin":"內建","style.pack.imported":"匯入","style.pack.active":"目前","style.pack.activate":"啟用","style.pack.edit":"編輯","style.pack.closeEditor":"關閉","style.pack.unsaved":"未儲存","style.pack.listTitle":"本機風格包","style.pack.listDesc":"瀏覽和切換風格包。","style.pack.listCount":"{{count}} 個風格包","style.pack.addPackTileTitle":"新建風格包","style.pack.addPackTileHint":"從空白範本開始。","style.pack.createSuccess":"已建立新風格包","style.pack.createFailed":"建立風格包失敗:{{err}}","style.pack.save":"儲存","style.pack.revert":"還原","style.pack.saveSuccess":"風格包已儲存","style.pack.saveFailed":"儲存風格包失敗:{{err}}","style.pack.activateSuccess":"已將\"{{name}}\"設為目前風格","style.pack.activateFailed":"設為目前風格失敗:{{err}}","style.pack.importSuccess":"已匯入\"{{name}}\"","style.pack.importFailed":"匯入 ZIP 失敗:{{err}}","style.pack.exportSuccess":"已匯出到 {{path}}","style.pack.exportFailed":"匯出 ZIP 失敗:{{err}}","style.pack.exportDirtyFirst":"請先儲存目前風格包,再匯出 ZIP。","style.pack.resetBuiltin":"重設","style.pack.resetSuccess":"已重設\"{{name}}\"","style.pack.resetFailed":"重設風格包失敗:{{err}}","style.pack.deleteImported":"刪除","style.pack.deleteConfirm":"確定刪除\"{{name}}\"嗎?刪除後無法復原。","style.pack.deleteSuccess":"已刪除\"{{name}}\"","style.pack.deleteFailed":"刪除風格包失敗:{{err}}","style.pack.summaryCurrentEmpty":"還沒有選中風格包","style.pack.editorTitle":"編輯風格","style.pack.editorDesc":"編輯目前風格包。","style.pack.metaTitle":"安裝資訊","style.pack.metaSource":"來源","style.pack.metaBaseMode":"基礎模式","style.pack.metaUpdatedAt":"更新時間","style.pack.fieldName":"名稱","style.pack.fieldAuthor":"作者","style.pack.fieldAuthorPlaceholder":"可選,方便標註來源","style.pack.fieldVersion":"版本","style.pack.fieldTags":"標籤","style.pack.fieldTagsPlaceholder":"用英文逗號分隔,例如 community, voiceover, formal","style.pack.fieldDescription":"描述","style.pack.fieldModel":"建議模型(僅元資料)","style.pack.fieldModelPlaceholder":"可選,例如 gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"僅作說明,不會切換實際模型。","style.pack.fieldCompatibility":"相容版本","style.pack.fieldCompatibilityPlaceholder":"可選,例如 >=1.3.0","style.pack.fullPromptTitle":"System Prompt","style.pack.fullPromptHint":"這就是這套風格包自己的 Prompt。","style.pack.promptChars":"{{count}} 字元","style.pack.runtimeTitle":"OpenLess 執行時附加指令","style.pack.runtimeDesc":"只讀的執行時輔助項。","style.pack.runtimeContextTitle":"上下文前提","style.pack.runtimeContextDesc":"來自語言與應用上下文","style.pack.runtimeContextEmpty":"目前不會附加","style.pack.runtimeHotwordTitle":"熱詞提示段","style.pack.runtimeHotwordDesc":"來自已啟用熱詞","style.pack.runtimeHotwordEmpty":"目前不會附加","style.pack.runtimeHistoryTitle":"多輪歷史保護段","style.pack.runtimeHistoryDesc":"僅用於即時多輪 polish","style.pack.runtimeHistoryEmpty":"只有存在 prior turns 時才會附加","style.pack.runtimeActive":"目前生效","style.pack.runtimeInactive":"目前未生效","style.pack.runtimePreviewFailed":"產生執行時預覽失敗:{{err}}","style.pack.runtimePreviewOmittedFrontApp":"預覽已省略前台 app 標籤。","style.pack.examplesTitle":"效果範例","style.pack.examplesDesc":"會隨風格包一起匯出。","style.pack.addExample":"新增範例","style.pack.examplesEmpty":"還沒有範例。","style.pack.exampleTitlePlaceholder":"範例 {{index}} 標題","style.pack.exampleInput":"輸入","style.pack.exampleOutput":"輸出","style.pack.examplesCount":"{{count}} 個範例","style.pack.discardCloseConfirm":"關閉編輯面板前要捨棄未儲存修改嗎?","style.pack.discardSwitchConfirm":"要捨棄目前未儲存修改,並切換到\"{{name}}\"嗎?","style.pack.derivativeBadge":"衍生自 @{{login}}","translation.searchLanguages":"搜尋語言…","translation.noMatchingLanguages":"沒有符合的語言","translation.selectedLanguages":"已選擇 {{count}} 種語言","translation.languageSupportHint":"語音服務支援的語種可能不同;翻譯目標不受介面語言限制。","translation.kicker":"翻譯","translation.title":"翻譯","translation.desc":"錄音後自動翻譯為目標語言再插入。","translation.statusEnabled":"已啓用","translation.statusDisabled":"未啓用","translation.working.title":"工作語言","translation.working.desc":"勾選日常使用的語言,影響潤色與翻譯效果。","translation.target.title":"翻譯目標語言","translation.target.desc":"錄音時按 Shift 觸發翻譯。選「不啟用」則 Shift 無效。","translation.target.disabled":"不啓用(Shift 按下不觸發翻譯)","translation.target.sameAsWorking":"目標語言與你唯一的工作語言相同,翻譯不會生效:按 Shift 仍按普通潤色處理。換一個目標語言,或在上方多勾選一個工作語言。","translation.style.title":"翻譯風格","translation.style.desc":"自動沿用「風格」頁目前啓用的風格包。","translation.style.unavailable":"暫時無法取得","translation.save.workingFailed":"工作語言保存失敗,請重試。","translation.save.targetFailed":"翻譯目標語言保存失敗,請重試。","translation.save.hotkeyRegisterFailed":"翻譯快捷鍵註冊失敗,未繼續保存。","translation.save.hotkeySaveFailed":"翻譯快捷鍵保存失敗,請重試。","translation.howto.title":"使用方法","translation.howto.step1":"在任意輸入框聚焦游標。","translation.howto.step2":"按 {{trigger}} 開始錄音。","translation.howto.step3":"錄音中按一下 {{shortcut}} 啟動翻譯。","translation.howto.step4":"再按 {{trigger}} 停止錄音。","translation.howto.step5":"翻譯結果自動插入到游標位置。","translation.howto.indicatorTitle":"怎麼知道翻譯模式生效了","translation.howto.indicatorDesc":"按 Shift 後螢幕底部會顯示藍色「正在翻譯」標識。","translation.howto.fallbackTitle":"安全兜底","translation.howto.fallbackDesc":"翻譯失敗時回退為插入原始轉寫,不會丟字。","selectionAsk.title":"劃詞追問","selectionAsk.desc":"選中文字後語音提問,支援多輪追問。","selectionAsk.shortcutSettings":"快捷鍵設定","selectionAsk.guide.openTitle":"開啟追問浮窗","selectionAsk.guide.openDesc":"按 {{hotkey}},開始一輪對話。","selectionAsk.guide.unsetDesc":"先到快捷鍵設定中,為劃詞追問設定快捷鍵。","selectionAsk.guide.selectTitle":"選取想了解的內容","selectionAsk.guide.askTitle":"開口說出問題","selectionAsk.guide.askDesc":"按 {{recordHotkey}} 錄音,再按一次提交。","selectionAsk.guide.followup":"繼續使用錄音快捷鍵,即可多輪追問。","selectionAsk.guide.dismiss":"關閉浮窗,結束本次對話","selectionAsk.hotkey.title":"彈出浮窗的快捷鍵","selectionAsk.save.historySaveFailed":"Q&A 歷史保存設置保存失敗,請重試。","selectionAsk.history.title":"保存歷史","selectionAsk.history.desc":"開啟後在本地保存問答記錄,預設關閉。","selectionAsk.howto.title":"使用方法","selectionAsk.howto.step2":"在任意 app 選中文字。","settings.selectionWorkspace.title":"選區助手","settings.selectionWorkspace.hint":"選中文字後按同一快捷鍵:關閉語音編輯時直接潤色;開啟後口述指令,說完再選擇「提問」或「編輯選區」。","settings.selectionWorkspace.polishHotkey":"選區助手快捷鍵","settings.selectionWorkspace.polishHotkeyDesc":"關閉語音編輯時直接潤色;開啟語音編輯時按住口述指令(錄音方式跟隨全域設定)。","settings.selectionWorkspace.polishDelivery":"結果處理","settings.selectionWorkspace.voiceDeliveryDesc":"語音編輯完成後:直接替換選區,或在華詞面板中預覽後再確認。","settings.selectionWorkspace.voiceEnable":"語音編輯","settings.selectionWorkspace.voiceEnableDesc":"與上方同一快捷鍵;錄音方式跟隨全域設定(目前:{{recordingLabel}})。","settings.selectionWorkspace.autoIntent":"自動判斷意圖","settings.selectionWorkspace.autoIntentDesc":"開啟後預設用服務配置的模型判斷問句 vs 編輯;模型不可用或解析失敗時回退到問句啟發式。","settings.selectionWorkspace.editKeywords":"額外問句線索","settings.selectionWorkspace.editKeywordsDesc":"關閉自動判斷時生效;每行一個,指令含則視為提問,否則仍按問句啟發式判定。","settings.selectionPolish.title":"選區潤色","settings.selectionPolish.hotkey":"觸發快捷鍵","settings.selectionPolish.hotkeyDesc":"錄製後立即生效;與錄音、追問等全域快捷鍵衝突時會被拒絕。","settings.selectionPolish.delivery":"結果處理方式","settings.selectionPolish.hint":"選取任意文字後觸發。它不依賴麥克風或 ASR,使用目前風格包與獨立的選區 Prompt。","settings.selectionPolish.directReplace":"直接覆蓋","settings.selectionPolish.directReplaceHint":"模型完成後安全替換原選區。","settings.selectionPolish.previewConfirm":"預覽確認","settings.selectionPolish.previewConfirmHint":"在可編輯彈窗中核對結果,再確認覆蓋原選區。","settings.kicker":"設定","settings.title":"設置","settings.desc":"錄音、提供商、快捷鍵與權限配置。","settings.network.title":"網路","settings.network.useSystemProxyLabel":"使用系統代理","settings.network.useSystemProxyDesc":"開啟時請求跟隨系統代理;關閉後所有網路請求直連(國內服務延遲通常更低),GitHub 登入、更新等境外服務可能連不上。即時語音串流與 Less Computer 不受此開關影響。","settings.dataStorage.title":"資料儲存","settings.dataStorage.desc":"本機保留的歷史會話與對話上下文。","settings.dataStorage.cursorContextLabel":"游標上下文(實驗)","settings.dataStorage.cursorContextDesc":"潤稿時讀取你正在寫的那篇文件中游標附近的原文,幫模型判斷同音詞、專有名詞與代詞該怎麼寫。開啟後這段文字會隨請求送給你設定的 LLM 服務商;關閉時一個字都不讀。密碼輸入框、Secure Input、密碼管理器與終端機始終不讀。僅 macOS。","settings.codingConsole.title":"Claude 主控台","settings.codingConsole.desc":"偵測本機 Claude Code 與 MCP(computer use)狀態,並以護欄方式無頭執行一次 Claude、串流檢視輸出與用量。","settings.codingConsole.guardNote":"預設放行可復原操作;rm -rf / sudo / 強制推送等高風險指令會被攔截;若工作目錄為 git 儲存庫,執行前自動建立快照可回滾。","settings.codingConsole.status":"狀態","settings.codingConsole.detect":"偵測","settings.codingConsole.detecting":"偵測中…","settings.codingConsole.installed":"已偵測到 Claude","settings.codingConsole.notInstalled":"未偵測到 claude","settings.codingConsole.notInstalledHint":"請先安裝 Claude Code(參見 docs.anthropic.com/claude-code),或在下方填入其執行檔完整路徑。","settings.codingConsole.mcpServers":"已設定 {{count}} 個 MCP 服務","settings.codingConsole.computerUsePresent":"已設定桌面控制(computer use)MCP","settings.codingConsole.computerUseAbsent":"未設定桌面控制 MCP(複製/貼上等輕動作用 Bash 即可,無需此項)","settings.codingConsole.exePath":"執行檔","settings.codingConsole.workdir":"工作目錄","settings.codingConsole.workdirDesc":"選填。Claude 在此目錄內執行;填入 git 儲存庫可啟用執行前快照回滾。","settings.codingConsole.workdirPlaceholder":"留空則於暫存目錄執行","settings.codingConsole.permissionMode":"權限模式","settings.codingConsole.mode.acceptEdits":"放行(可復原操作)","settings.codingConsole.mode.plan":"唯讀 / 計畫","settings.codingConsole.mode.default":"預設(逐項確認)","settings.codingConsole.mode.bypassPermissions":"完全放行(高風險)","settings.codingConsole.promptPlaceholder":"讓 Claude 做點什麼,例如:列出目前目錄的檔名","settings.codingConsole.run":"執行","settings.codingConsole.running":"執行中…","settings.codingConsole.cancel":"取消","settings.codingConsole.clear":"清空","settings.codingConsole.riskWarn":"偵測到高風險意圖:{{reason}}。護欄會在執行層攔截高風險指令。","settings.codingConsole.toolUse":"呼叫工具 {{name}}","settings.codingConsole.done":"完成","settings.codingConsole.doneCost":"完成 · 用量 ${{cost}}","settings.codingConsole.cancelled":"已取消","settings.codingConsole.outputPlaceholder":"輸出會串流顯示在這裡…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"按住一個鍵說話,由所選 Agent 幫你操作電腦。僅 macOS。","settings.codingAgent.enable":"啟用 Less Computer","settings.codingAgent.comingSoonNote":"設定即時儲存;熱鍵觸發與執行鏈路隨後續版本生效。","settings.codingAgent.hotkeyHint":"開啟後,按住快捷鍵說話,放開後由所選 Agent 處理並把結果顯示在膠囊裡。","settings.codingAgent.voiceHotkey":"按住說話鍵","settings.codingAgent.voiceHotkeyDesc":"按住說話、放開執行。支援 Ctrl/Option/Fn 等單鍵。功能說明參見「進階」設定頁。","settings.codingAgent.provider":"Agent 後端","settings.codingAgent.opencodeReady":"已偵測到 OpenCode v{{version}}。","settings.codingAgent.opencodeMissing":"未偵測到 opencode 指令。請先安裝(npm i -g opencode-ai)並用 opencode auth login 登入後再使用。","settings.codingAgent.cliReady":"已偵測到 {{name}} v{{version}}。","settings.codingAgent.cliMissing":"未偵測到 {{name}} 指令。請先安裝並登入,或在下方「執行檔」欄填它的絕對路徑。","settings.codingAgent.sandboxGuardHint":"此後端只有粗粒度沙箱層級,沒有逐指令的高風險清單:碰到限制時會直接據實回報錯誤,不會跳出「核准這條指令」的卡片。","settings.codingAgent.codexModelHint":"填 Codex 的模型名稱(如 gpt-5);留空則使用 ~/.codex/config.toml 的設定。","settings.codingAgent.codexBudgetHint":"Codex 沒有單次美元預算上限;費用取決於你設定的服務商。","settings.codingAgent.codexMode.plan":"唯讀 / 計畫","settings.codingAgent.codexMode.workspaceWrite":"允許工作目錄寫入","settings.codingAgent.codexModelPlaceholder":"留空 = 使用 Codex 自己的預設","settings.codingAgent.dshModelHint":"dsh 的 headless 設定沒有模型開關:模型由 dsh 自己的 profile 決定,這裡改不了。","settings.codingAgent.panelHotkey":"面板鍵(語音 Agent)","settings.codingAgent.panelHotkeyDesc":"錄音 → ASR → Claude → 結果串流進面板。預設 Cmd/Ctrl+Shift+Enter。","settings.codingAgent.quickHotkey":"快取用鍵","settings.codingAgent.quickHotkeyDesc":"取目前選取文字 → Claude → 結果回插游標處。不開面板、更快。","settings.codingAgent.model":"模型","settings.codingAgent.modelPlaceholder":"預設 sonnet","settings.codingAgent.modelDefault":"預設(自動 sonnet)","settings.codingAgent.modelHint":"Haiku 最快 · Sonnet 均衡 · Opus 最強","settings.codingAgent.opencodeModelDefault":"使用 OpenCode 預設模型","settings.codingAgent.opencodeModelHint":"自動拉取 OpenCode 目前帳號可用的 provider/model;選取後立即儲存。","settings.codingAgent.opencodeModelsRefresh":"重新拉取模型","settings.codingAgent.opencodeModelsRefreshing":"正在拉取 OpenCode 模型…","settings.codingAgent.opencodeModelsLoaded":"已拉取 {{count}} 個模型。","settings.codingAgent.opencodeModelsEmpty":"沒有回傳可用模型,請先完成 OpenCode 登入或設定模型提供商。","settings.codingAgent.opencodeModelsError":"拉取模型失敗:{{message}}","settings.codingAgent.exe":"可執行檔路徑","settings.codingAgent.openPanel":"文字測試","settings.codingAgent.openPanelHint":"直接開啟 Less Computer 浮窗,以文字驗證目前的 Agent 與模型設定。","settings.codingAgent.openPanelAction":"開啟 Less Computer","settings.debug.cursorLabel":"游標","settings.debug.title":"除錯工具","settings.debug.desc":"排查辨識問題時使用,平時無需開啟。","settings.debug.cursorProbeLabel":"游標上下文探針","settings.debug.cursorProbeDesc":"點一下,然後在倒數內切到目標 app 並點進輸入框——探針會讀那裡的游標附近原文,用來確認哪些 app 讀得到、哪些被安全閘門擋住。只讀一次,不送給任何服務商。","settings.debug.cursorProbeBtn":"探測(5 秒後)","settings.debug.cursorProbeCountdown":"{{n}} 秒後讀取…","settings.marketplace.title":"擴充市集","settings.marketplace.desc":"風格市集的上傳身份。瀏覽與安裝風格在「風格」頁內完成。","settings.marketplace.github.signIn":"用 GitHub 帳號登入","settings.marketplace.github.signedIn":"已透過 GitHub 登入","settings.marketplace.github.signedOut":"登入後即可上傳風格、為風格按讚。","settings.marketplace.github.signOut":"登出","settings.marketplace.github.starting":"正在發起登入…","settings.marketplace.github.codeHint":"在開啟的 GitHub 頁面輸入這個驗證碼:","settings.marketplace.github.openGithub":"開啟 GitHub","settings.marketplace.github.waiting":"已開啟 GitHub,完成授權後會自動登入…","settings.marketplace.github.failed":"登入失敗,請重試","settings.recording.title":"錄音與輸入","settings.recording.desc":"定義全局錄音的快捷鍵與觸發方式。","settings.recording.hotkeyLabel":"錄音快捷鍵","settings.recording.hotkeyDescAcc":"按下即開始捕獲語音,全局生效。需要授予輔助功能權限。","settings.recording.hotkeyDescNoAcc":"按下即開始捕獲語音,全局生效。無需額外輔助功能授權。","settings.recording.modeLabel":"錄音方式","settings.recording.modeDesc":"切換式 = 按一次開始、再按一次結束;按住說話 = 按住開始、鬆開結束。","settings.recording.modeToggle":"切換式","settings.recording.modeHold":"按住說話","settings.recording.modeAuto":"自動","settings.recording.silenceAutoStopLabel":"靜音後自動停止","settings.recording.silenceAutoStopDesc":"僅切換模式生效。偵測到語音後,連續靜音達到所選時長即自動結束並提交;一直沒說話則 10 秒後取消。預設關閉;第二次按鍵停止和 Esc 取消仍然有效。","settings.recording.silenceAutoStopSecondsLabel":"靜音時長","settings.recording.silenceAutoStopSecondsValue":"{{value}} 秒","settings.recording.migrationNoticeTitle":"默認已改爲切換式說話","settings.recording.migrationNoticeDesc":"如果你之前改過快捷鍵觸發方式,請在這裏手動確認一次。本次更新調整了快捷鍵方式的默認值與讀取邏輯;如果你更習慣按住說話,可以重新切回“按住說話”。","settings.recording.comboRecordLabel":"錄製快捷鍵","settings.recording.comboRecordDesc":"點擊後按下你想要的快捷鍵組合(如 ⌘⇧D),支援 Toggle 與 Hold 模式。","settings.recording.comboRecordBtn":"錄製快捷鍵","settings.recording.comboResetBtn":"重置","settings.recording.comboMenuToggle":"更多操作","settings.recording.comboDisableHint":"核心快捷鍵不可停用,錄音必須綁定一個快捷鍵","settings.recording.comboRecordHint":"請按下快捷鍵組合…","settings.recording.comboNeedKey":"請設定組合鍵(如 ⌘⇧J),不支援單獨的修飾鍵","settings.recording.comboRecorded":"已錄製","settings.recording.comboClear":"清除","settings.recording.comboConflict":"此快捷鍵組合不可用","settings.recording.microphoneLabel":"首選麥克風","settings.recording.microphoneDesc":"選擇優先使用的輸入設備。設備暫時不可用時會使用系統默認麥克風,重新連接後自動切回首選設備。","settings.recording.microphoneDefault":"系統默認麥克風","settings.recording.microphoneDefaultDesc":"使用系統默認輸入設備","settings.recording.microphoneSystemDefault":"系統默認","settings.recording.microphoneUnavailable":"不可用","settings.recording.microphoneLoadError":"麥克風列表讀取失敗:{{message}}","settings.recording.microphoneDialogTitle":"麥克風","settings.recording.microphoneDialogDesc":"選擇能捕捉到您聲音的麥克風。如果指示條沒有移動,請嘗試其他麥克風。","settings.recording.microphoneMonitorError":"輸入電平監聽失敗:{{message}}","settings.recording.capsuleLabel":"錄音膠囊","settings.recording.capsuleDesc":"錄音 / 轉寫時在屏幕底部顯示半透明膠囊。","settings.recording.capsuleStyleTypeless":"Typeless 傳統風格","settings.recording.capsuleStyleLabel":"膠囊樣式","settings.recording.capsuleStyleSiri":"流光 Siri 風格","settings.recording.capsuleStyleClassic":"Openless 預設風格","settings.recording.muteDuringRecordingLabel":"錄音時靜音","settings.recording.muteDuringRecordingDesc":"錄音期間臨時靜音系統輸出,避免揚聲器回音。","settings.recording.audioCueLabel":"錄音提示音","settings.recording.audioCueDesc":"按下熱鍵開始錄音時播放一段合成提示音,提醒已開始錄音。膠囊隱藏時也會響。","settings.recording.audioCuePreview":"試聽","settings.recording.insertGroupTitle":"插入與剪貼板","settings.recording.restoreClipboardLabel":"插入後恢復剪貼板","settings.recording.restoreClipboardDesc":"粘貼成功後恢復你原來的剪貼板內容(僅 Windows / Linux)。","settings.recording.pasteShortcutLabel":"模擬粘貼快捷鍵","settings.recording.pasteShortcutDesc":"插入時模擬按下的粘貼鍵,部分終端類應用需要 Ctrl+Shift+V(僅 Windows / Linux)。","settings.recording.pasteShortcutCtrlV":"Ctrl+V(默認 / 多數應用)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V(kitty / alacritty / wezterm / 多數終端)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert(xterm / urxvt)","settings.recording.allowNonTsfFallbackLabel":"允許非 TSF 兜底","settings.recording.allowNonTsfFallbackDesc":"Windows:TSF 失敗時使用分批 Unicode SendInput;如果仍失敗,再複製到剪貼簿。","settings.recording.windowsInsertionModeLabel":"Windows 插入方式","settings.recording.windowsInsertionModeDesc":"聽寫結果如何插入到目前游標位置。剪貼簿貼上模式使用上方「模擬粘貼快捷鍵」,可完整保留換行。","settings.recording.windowsInsertionModeTsf":"TSF 輸入法(預設)","settings.recording.windowsInsertionModeSendInput":"SendInput 逐字模擬","settings.recording.windowsInsertionModePaste":"剪貼簿貼上(Ctrl+V 等)","settings.recording.macosNewlineModeLabel":"換行怎麼落","settings.recording.macosNewlineModeDesc":"自動會在已知終端應用中使用 Line Feed(U+000A / Ctrl+J),其他應用使用 Shift+Return;Return 會直接發送。","settings.recording.macosNewlineModeAuto":"自動(終端使用 Line Feed)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return(聊天框換行)","settings.recording.macosNewlineModeLineFeed":"Line Feed(終端 CLI / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return(拆成多條訊息)","settings.recording.windowsSendInputNewlineModeLabel":"SendInput 換行模擬","settings.recording.windowsSendInputNewlineModeDesc":"SendInput 模式下如何把換行符模擬成按鍵。聊天框通常選 Shift+Enter;記事本 / VS Code 等選 Enter。","settings.recording.windowsSendInputNewlineModeEnter":"Enter(多數編輯器)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter(聊天輸入框)","settings.recording.windowsSendInputNewlineModeCrLf":"CR+LF Unicode","settings.recording.windowsShowOpenlessInKeyboardListLabel":"在鍵盤列表中顯示 OpenLess","settings.recording.windowsShowOpenlessInKeyboardListDesc":"關閉後 Win+Space 切換輸入法時不會出現 OpenLess;SendInput 與剪貼簿貼上插入不受影響。重新開啟本項可恢復顯示。","settings.recording.windowsShowOpenlessInKeyboardListError":"無法更新鍵盤列表:系統拒絕更改 OpenLess 語言設定檔。","settings.recording.historyGroupTitle":"歷史與上下文","settings.recording.historyRetentionLabel":"歷史保留天數","settings.recording.historyRetentionDesc":"超過保留天數的歷史在寫入新條目時被清理;0 = 不按時間清理。","settings.recording.historyMaxEntriesLabel":"歷史條數上限","settings.recording.historyMaxEntriesDesc":"本地保留會話上限,留空 = 200。範圍 5–200。","settings.recording.polishContextWindowLabel":"對話上下文窗口(分鐘)","settings.recording.polishContextWindowDesc":"把最近 N 分鐘內已潤色的轉寫作為多輪上下文,0 = 關閉。","settings.recording.recordAudioForDebugLabel":"保留原始錄音(除錯)","settings.recording.recordAudioForDebugDesc":"保存原始麥克風音訊為 wav,便於排查識別問題。","settings.recording.audioRecordingMaxEntriesLabel":"原始錄音保留條數","settings.recording.audioRecordingMaxEntriesDesc":"本地保留 wav 檔案數上限,留空 = 200。","settings.recording.startupGroupTitle":"啟動","settings.recording.startMinimizedLabel":"啓動時靜默運行","settings.recording.startMinimizedDesc":"所有啓動路徑都不彈主窗口,僅選單欄 / 托盤運行。","settings.recording.autoUpdateCheckLabel":"自動檢查更新","settings.recording.autoUpdateCheckDesc":"啟動時及每 60 分鐘自動檢查更新。","settings.recording.marketplaceGroupTitle":"風格市場","settings.recording.marketplaceBaseUrlLabel":"雲端服務位址","settings.recording.marketplaceBaseUrlDesc":"風格市場後端 URL,留空使用預設值。","settings.recording.marketplaceDevLoginLabel":"GitHub 使用者名稱(上傳身份)","settings.recording.marketplaceDevLoginDesc":"標識上傳者身分,為空時無法上傳或按讚。","settings.recording.startupAtBoot":"開機自啓","settings.recording.startupAtBootDesc":"登錄系統時自動啓動 OpenLess。","settings.recording.startupAtBootError":"開機自啓切換失敗:{{message}}","settings.channels.backToList":"返回渠道列表","settings.channels.done":"完成","settings.channels.llmTitle":"文字處理渠道","settings.channels.asrTitle":"語音辨識渠道","settings.channels.current":"目前使用","settings.channels.enabled":"啟用","settings.channels.disabled":"已停用","settings.channels.enabledFor":"啟用 {{name}}","settings.channels.modelNotSet":"未單獨設定模型","settings.channels.localModelManaged":"模型由系統或「本地模型」頁管理","settings.channels.lastCheck":"上次驗證","settings.channels.verifying":"正在驗證…","settings.channels.notVerified":"尚未驗證","settings.channels.passed":"驗證通過","settings.channels.failed":"驗證失敗 · {{reason}}","settings.channels.elapsed":"耗時 {{ms}} ms","settings.channels.staleResult":"結果已超過 24 小時","settings.channels.connectionTitle":"服務連線","settings.channels.modelTitle":"模型設定","settings.channels.modelHint":"直接輸入模型名稱,或取得並選擇供應商的可用模型。","settings.channels.availableModels":"可用模型","settings.channels.validationTitle":"連線驗證","settings.channels.validationHint":"手動發出一次實際請求,檢查目前設定;可能消耗服務額度。儲存設定不會自動驗證。","settings.channels.autoSaveHint":"修改欄位後會自動儲存;完成設定後,可手動驗證連線。","settings.channels.nameHint":"名稱僅用於區分同一供應商的多個渠道,不影響模型或連線。","settings.channels.errModel":"模型","settings.channels.verify":"驗證","settings.channels.verifyHint":"點一下會真實呼叫一次介面,確認這張卡現在可用","settings.channels.errTimeout":"逾時","settings.channels.errNetwork":"網路","settings.channels.errEndpoint":"網址","settings.channels.errGeneric":"失敗","settings.channels.dragHint":"按住拖曳可調整優先順序","settings.channels.orderHint":"請求會使用列表中第一個啟用的渠道。拖曳可調整順序;停用的渠道會移到末尾。","settings.channels.empty":"還沒有渠道。點選「新增渠道」,連接你的第一個服務。","settings.channels.add":"新增渠道","settings.channels.edit":"編輯","settings.channels.createTitle":"新增渠道","settings.channels.editTitle":"編輯渠道","settings.channels.providerLabel":"供應商","settings.channels.nameLabel":"渠道名稱(選填)","settings.channels.namePlaceholder":"例如:矽基流動-主帳號","settings.channels.create":"建立","settings.channels.delete":"刪除渠道","settings.channels.deleteConfirm":"刪除後該渠道儲存的金鑰也會一併清除。","settings.channels.confirmDelete":"確認刪除","settings.channels.justNow":"剛剛","settings.channels.minutesAgo":"{{count}} 分鐘前","settings.channels.hoursAgo":"{{count}} 小時前","settings.channels.daysAgo":"{{count}} 天前","settings.channels.localEngineModelHint":"可在「AI 服務與模型 → 本地模型」中下載和切換本地模型。","settings.providers.localEngineNoCredentials":"本機引擎不需要 API Key 與網址。","settings.providers.localModelLabel":"本地模型","settings.providers.localModelEmpty":"尚未下載本地模型","settings.providers.appleSpeechLocalNote":"Apple 語音辨識使用系統內建引擎,無需選擇模型。","settings.providers.localEngineNote":"已下載的本地模型在上方下拉中直接選擇;更多模型在「本地模型」看板下載與管理。","settings.providers.localTag":"本地","settings.providers.llmTitle":"LLM 模型(潤色)","settings.providers.llmDesc":"OpenAI 兼容協議,支持多家供應商切換。","settings.providers.providerLabel":"供應商","settings.providers.llmProviderDesc":"選擇後將自動填入 Base URL 默認值。","settings.providers.credentialStorageNotice":"憑據保存在系統憑據庫中。","settings.providers.codexOAuthNotice":"Codex OAuth 使用本機 Codex 登入狀態(~/.codex/auth.json),無需在 OpenLess 中保存 API Key 或 Base URL。","settings.providers.asrProviderDesc":"切換後將自動選用對應憑據。","settings.providers.asrTitle":"ASR 語音(轉寫)","settings.providers.asrDesc":"用於將錄製的語音轉寫為文字。","settings.providers.omniTitle":"多模態模型","settings.providers.omniDesc":"一個模型直接接收「提示詞 + 音訊」一步輸出最終文字(實驗性管線)。","settings.providers.pipelineModeLabel":"識別管線","settings.providers.pipelineModeHint":"傳統 = ASR 轉寫 + LLM 潤色兩段式;多模態 = 單一多模態模型一次完成。","settings.providers.pipelineModeTraditional":"傳統模式","settings.providers.pipelineModeMultimodal":"多模態模式","settings.providers.pipelineIsolationNotice":"兩種模式使用完全獨立的憑證設定。切換模式不會刪除另一套設定,只是暫時停用;切回即恢復。","settings.providers.presets.ark":"ARK(火山方舟)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"硅基流動","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"小米 MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter(免費模型)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"阿里雲 Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax(M3)","settings.providers.presets.stepfun":"StepFun(階躍星辰)","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"騰訊雲 TokenHub","settings.providers.presets.customChatCompletions":"自訂 · Chat Completions","settings.providers.presets.customResponses":"自訂 · Responses","settings.providers.presets.customMessages":"自訂 · Messages","settings.providers.presets.custom":"自定義","settings.providers.presets.asrVolcengine":"火山引擎 bigasr","settings.providers.presets.asrBailian":"阿里雲百煉即時 ASR","settings.providers.presets.asrBailianQwen3":"阿里雲百煉 Qwen3 即時 ASR","settings.providers.presets.asrBailianFunAsrFlash":"阿里雲百煉 Fun-ASR-Flash(錄音檔)","settings.providers.presets.asrSiliconflow":"硅基流動 SenseVoice","settings.providers.presets.asrStepfun":"階躍星辰 StepAudio","settings.providers.presets.asrZhipu":"智譜 GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper(兼容)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"自訂 OpenAI 相容","settings.providers.presets.asrXiaomiMimo":"小米 MiMo ASR","settings.providers.presets.asrIflytek":"訊飛即時語音轉寫","settings.providers.presets.asrTencentCloud":"騰訊雲混元即時 ASR","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"本地 sherpa-onnx(實驗性)","settings.providers.presets.asrFoundryLocalWhisper":"本地 Whisper(Foundry Local)","settings.providers.presets.asrLocalWhisper":"本地 Whisper(批次解碼)","settings.providers.presets.asrLocalQwen3":"本地 Qwen3-ASR","settings.providers.presets.asrLocalQwen3Mlx":"本地 Qwen3-ASR(MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"本地 Qwen3-ASR(C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple 語音(macOS)","settings.providers.presets.omniOpenai":"OpenAI(支援音訊)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"阿里雲百煉 Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs 會將錄音上傳至已設定的端點進行批次轉寫。","settings.providers.zenmuxVocabularyNote":"ZenMux 走 JSON 轉寫協定,不傳送詞典熱詞(prompt/hotwords);詞典仍會進入潤色鏈路,但不會參與語音辨識偏置。","settings.providers.asrAdvancedNote":"以下進階選項僅影響「自訂 OpenAI 相容」與「ZenMux」預設;其餘具名廠商預設維持內建行為。","settings.providers.asrAdvancedVerboseJsonLabel":"分段指標 (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"服務端支援時回傳 segments 指標,用於幻聽過濾;自建服務若不支援請保持關閉。","settings.providers.asrAdvancedChunkLabel":"分片時長 (ms)","settings.providers.asrAdvancedChunkHint":"0 = 不分片,整段傳送;按片段多次請求,適合長錄音或服務端單次請求時長受限。","settings.providers.asrAdvancedEnableItnLabel":"數字正規化 (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"把口語數字/單位正規化為阿拉伯數字(如「二零二六年」→「2026年」)。關閉後保留原始文字。","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"API Key","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"鑑權模式","settings.providers.volcengineAuthModeAppIdToken":"舊版應用(APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"新版控制台 API Key","settings.providers.volcengineMappingNote":"Secret Key 當前無需填寫。Resource ID 默認使用 volc.seedasr.sauc.duration。","settings.providers.volcengineApiKeyNote":"使用新版語音控制台建立的 API Key 鑑權,無需 APP ID。API Key 可在語音控制台「API Key 管理」建立:console.volcengine.com/speech/new/setting/apikeys。Resource ID 預設使用 volc.seedasr.sauc.duration。","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"API Key","settings.providers.xfyunNote":"在訊飛開放平台「即時語音轉寫」服務頁取得 AppID 與 API Key。音訊為 16kHz/16bit/單聲道 PCM;標準版介面暫不支援熱詞參數(可在訊飛控制台設定個人化熱詞),語種預設中文普通話。","settings.providers.tencentCloudAppIdLabel":"騰訊雲 AppID","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"使用騰訊雲「語音辨識」服務的 API 金鑰。預設 Hy-ASR-3.0-preview 支援中英與 20 種方言;Preview 僅支援 60 秒內的 16kHz 單聲道 PCM,暫不支援上下文或熱詞增強。","settings.providers.tencentTokenHubNote":"僅顯示目前在線的語言模型。部分模型始終啟用思考;關閉思考開關時將沿用該模型的固定行為。","settings.providers.localAsrActiveNotice":"當前已啓用「{{name}}」,可在「高級」中切換或停用。","settings.providers.localAsrTakeoverHint":"啓動「{{name}}」後,ASR 提供商將被接管。","settings.providers.asrProviderTakenOver":"目前使用的是本地引擎,在上方下拉直接選其他供應商即可切換(本地引擎會自動停用);本地模型在「服務 → 本地模型」裡管理。","settings.providers.localAsrHint":"在本機運行,無需 API Key。從 HuggingFace 下載模型即可使用。","settings.providers.foundryLocalAsrHint":"在本機運行,無需 ASR API Key。首次使用需下載運行元件和模型。","settings.providers.localAsrPerformanceWarning":"本地推理比雲端慢,中文準確率可能更低。適合離線或隱私敏感場景。","settings.providers.localAsrReady":"{{model}} 已下載","settings.providers.localAsrNotReady":"{{model}} 未下載","settings.providers.localAsrGoDownload":"前往模型設置下載","settings.providers.localAsrManage":"前往模型設置","settings.providers.localAsrDownloadedTitle":"已下載模型","settings.providers.localAsrDelete":"刪除","settings.providers.fillDefault":"填入默認值","settings.providers.readFailed":"讀取失敗","settings.providers.apiKeyLabel":"API 密鑰","settings.providers.baseUrlLabel":"接口地址","settings.providers.modelLabel":"模型","settings.providers.customModelLabel":"自訂模型…","settings.providers.presetListLabel":"返回預設清單","settings.providers.searchModels":"搜尋模型…","settings.providers.noMatchingModels":"沒有符合的模型","settings.providers.orcarouterCatalogHint":"模型來自 OrcaRouter /models;此供應商只允許從目錄中選擇,不支援手動填寫模型 ID。","settings.providers.orcarouterAsrCatalogHint":"模型來自 OrcaRouter /models,並僅顯示相容音訊輸入的 Gemini;不支援手動填寫模型 ID。","settings.providers.temperatureLabel":"Temperature","settings.providers.temperaturePlaceholder":"留空則不發送;範圍 0~2(含邊界),例如 0.3","settings.providers.extraHeadersLabel":"額外 Headers","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"思考","settings.providers.thinkingModeOn":"開啟","settings.providers.thinkingModeOff":"關閉","settings.providers.requestFormatLabel":"請求格式","settings.providers.messagesThinkingLabel":"思考方式","settings.providers.thinkingAdaptive":"自適應","settings.providers.thinkingBudget":"固定預算","settings.providers.maxTokensLabel":"最大輸出 tokens","settings.providers.thinkingBudgetLabel":"思考預算 tokens","settings.providers.responsesThinkingHint":"部分模型只能降低思考,無法完全關閉。推理請求不傳送溫度參數。","settings.providers.messagesThinkingHint":"舊模型或相容閘道可能需要固定預算;思考預算必須小於最大輸出。開啟思考時不傳送溫度參數。","settings.providers.llmRequestFormatInvalid":"請求格式無效,請重新選擇。","settings.providers.llmThinkingModeInvalid":"思考方式無效,請重新選擇。","settings.providers.llmTokenLimitInvalid":"Token 上限必須為正整數。","settings.providers.llmThinkingBudgetInvalid":"思考預算至少為 1024,且固定預算必須小於最大輸出。","settings.providers.llmResponseIncomplete":"回應未完整結束或達到輸出上限;已輸出正文會保留。","settings.providers.llmProtocolHeaderConflict":"Messages 已自動設定驗證與版本標頭,請移除額外 Headers 中的 x-api-key 與 anthropic-version。","settings.providers.llmStreamError":"伺服器回傳串流錯誤,請檢查模型和請求參數。","settings.providers.saveProtocol":"儲存協定設定","settings.providers.thinkingModeHint":"依所選請求格式與模型支援的參數啟用、關閉或降低思考,不在提示詞注入控制指令。","settings.providers.bailianVocabularyIdLabel":"熱詞 Vocabulary ID(可選)","settings.providers.bailianVocabularyIdNote":"如已在百煉建立熱詞表,可填寫 vocab-...;留空則不下發熱詞。","settings.providers.bailianModelRealtimeHint":"即時模型 · 邊說邊出字。","settings.providers.bailianModelSyncFileHint":"同步錄音模型 · 說完後整段轉寫(單條 ≤ 5 分鐘)。","settings.providers.bailianModelAsyncFileHint":"非同步檔案模型 · 錄音上傳後等待轉寫工作完成。","settings.providers.appIdLabel":"App ID(應用 ID)","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"資源 ID","settings.providers.toolsLabel":"連接檢查","settings.providers.toolsDesc":"先保存上方配置,再驗證當前模型連通性或拉取模型;失敗時仍可手動填寫模型 ID。","settings.providers.validate":"驗證","settings.providers.validating":"驗證中…","settings.providers.fetchModels":"拉取模型","settings.providers.loadingModels":"拉取模型中…","settings.providers.modelMissing":"未配置模型,請先填寫模型 ID。","settings.providers.modelsEmpty":"鑑權成功,但沒有返回可用模型。","settings.providers.modelsLoaded":"已拉取 {{count}} 個模型。","settings.providers.selectModel":"選擇一個模型寫入上方字段","settings.providers.modelSaved":"已保存模型 {{model}}。","settings.providers.validateSuccess":"連接檢查通過。","settings.providers.validateFailed":"連接檢查未通過。","settings.providers.providerHttpStatus":"供應商接口返回 {{status}},請檢查 API Key 權限或 Endpoint。","settings.providers.endpointMustUseHttps":"允許使用 HTTP Endpoint,但請注意:API Key 和音訊內容可能在傳輸中外洩。","settings.providers.endpointHttpWarning":"允許使用 HTTP Endpoint,但請注意:API Key 和請求內容可能在傳輸中外洩。","settings.providers.endpointInvalid":"Endpoint 格式不合法。","settings.providers.bailianEndpointSchemeInvalid":"百煉即時 ASR 走 DashScope WebSocket 閘道,接口地址必須以 wss:// 開頭(預設 wss://dashscope.aliyuncs.com/api-ws/v1/inference/);https:// 的相容模式地址在此不可用。","settings.providers.qwen3EndpointSchemeInvalid":"Qwen3 即時 ASR 走 DashScope Realtime WebSocket 閘道,接口地址必須以 wss:// 開頭(預設 wss://dashscope.aliyuncs.com/api-ws/v1/realtime);https:// 地址在此不可用。","settings.providers.responseTooLarge":"供應商響應過大,已停止驗證以保證安全。","settings.providers.asrInvalidJson":"ASR 響應不是有效 JSON。","settings.providers.asrMissingTextField":"ASR 響應缺少 text 字段。","settings.providers.apiKeyMissing":"API Key 爲空。","settings.providers.endpointMissing":"Endpoint 爲空。","settings.providers.volcengineAppIdMissing":"APP ID 爲空。","settings.providers.volcengineAccessTokenMissing":"Access Token 爲空。","settings.providers.requestTimeout":"請求超時,請稍後重試。","settings.shortcuts.title":"快捷鍵設定","settings.shortcuts.descAcc":"所有快捷鍵全局生效,需要在權限設置中開啓輔助功能。","settings.shortcuts.descNoAcc":"所有快捷鍵全局生效。若無響應,請在權限頁查看全局快捷鍵監聽狀態。","settings.shortcuts.startStop":"開始 / 停止錄音","settings.shortcuts.cancel":"取消本次錄音","settings.shortcuts.confirm":"膠囊確認插入","settings.shortcuts.switchStyle":"切換到上一個風格","settings.shortcuts.openApp":"打開 OpenLess","settings.shortcuts.stylePackTitle":"風格直達快捷鍵","settings.shortcuts.stylePackDesc":"為常用風格包各配一個快捷鍵,按下直接切換;停用中的包會自動啟用。","settings.shortcuts.stylePackAdd":"新增風格快捷鍵","settings.shortcuts.stylePackSelect":"選擇風格包","settings.shortcuts.stylePackDisabledSuffix":"(已停用)","settings.shortcuts.stylePackRemove":"移除","settings.shortcuts.agentPolish":"選取文字潤色","settings.shortcuts.agentPolishDesc":"選取文字 → 按鍵 → Claude 潤色 → 取代選取。","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"按住自訂按鍵 → 說話 → Claude 執行任務 → 結果彈膠囊顯示。","settings.shortcuts.agentVoiceHint":"在「進階 → Less Computer」裡設定按住說話鍵。","settings.shortcuts.agentVoiceTrigger":"Less Computer 按住說話鍵","settings.shortcuts.enable":"啟用","settings.shortcuts.disable":"停用","settings.shortcuts.confirmHint":"點擊右側 ✓","settings.shortcuts.notSupported":"暫未支持","settings.shortcuts.androidReadOnly":"Android 不支援全域快捷鍵,請在概覽頁使用錄音按鈕。","settings.permissions.title":"權限","settings.permissions.descAcc":"OpenLess 需要以下系統權限才能正常工作。授權後通常需要完全退出 App 重啓一次才生效。","settings.permissions.descNoAcc":"OpenLess 需要麥克風可用,並依賴全局快捷鍵監聽狀態判斷 native hook 是否正常工作。","settings.permissions.micLabel":"麥克風","settings.permissions.micDesc":"用於捕獲你的語音輸入。","settings.permissions.accLabel":"輔助功能","settings.permissions.accDesc":"用於監聽全局快捷鍵並將識別結果寫入光標位置。","settings.permissions.hotkeyLabel":"全局快捷鍵","settings.permissions.hotkeyDescWithAdapter":"當前適配器:{{adapter}}。用於判斷快捷鍵監聽是否已經安裝。","settings.permissions.hotkeyDescPlain":"用於判斷快捷鍵監聽是否已經安裝。","settings.permissions.networkLabel":"網絡","settings.permissions.networkDesc":"雲端 ASR / LLM 調用所必需。本地模式可關閉。","settings.permissions.networkOk":"可用","settings.permissions.networkOffline":"不可用","settings.permissions.checking":"檢查中…","settings.permissions.granted":"已授權","settings.permissions.notApplicable":"無需授權","settings.permissions.denied":"未授權","settings.permissions.indeterminate":"未確定","settings.permissions.micNoDevice":"未偵測到麥克風","settings.permissions.openSystem":"打開系統設置","settings.permissions.restart":"重置授權並重新啟動","settings.permissions.grant":"授權","settings.permissions.rerunAndroidSetup":"重新執行設定向導","settings.permissions.hotkeyInstalled":"已安裝","settings.permissions.hotkeyStarting":"安裝中…","settings.permissions.hotkeyFailed":"監聽失敗","settings.permissions.windowsImeLabel":"Windows 輸入法後端","settings.permissions.windowsImeDesc":"用於在語音會話期間臨時切換到 OpenLess TSF 輸入法,避免剪貼板插入限制。","settings.permissions.windowsImeInstalled":"已安裝","settings.permissions.windowsImeUnavailable":"不可用","settings.permissions.androidImeLabel":"輸入法 (IME)","settings.permissions.androidImeSelected":"已選中","settings.permissions.androidImeEnabled":"已啟用","settings.permissions.androidImeDisabled":"未啟用","settings.permissions.androidOverlayLabel":"懸浮窗","settings.permissions.androidAccessibilityLabel":"無障礙服務","settings.permissions.androidAccessibilityImpact":"開啟後可在不切換鍵盤的情況下把結果輸出到目前輸入框;未開啟時仍會複製到剪貼簿,需要手動貼上。","settings.permissions.androidAccessibilityGrantedStale":"已授權,未連線","settings.permissions.androidAccessibilityMessages.not_android":"無障礙狀態僅在 Android 上可用。","settings.permissions.androidAccessibilityMessages.not_enabled":"請在系統無障礙設定中啟用 OpenLess。","settings.permissions.androidAccessibilityMessages.operational":"無障礙服務正在執行。","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"無障礙已授權但未連線,請在系統設定中重新開啟 OpenLess。","settings.permissions.androidAccessibilityMessages.status_read_failed":"無法讀取無障礙狀態。","settings.permissions.androidShizukuLabel":"Shizuku 增強模式","settings.permissions.androidShizukuHint":"可選功能,在部分機型無法手動開啟無障礙時盡力恢復;無法完全消除跨應用競態。裝置重啟後可能需要重新啟動 Shizuku。","settings.permissions.androidShizukuOpenApp":"開啟 Shizuku","settings.permissions.androidShizukuRequestPermission":"請求授權","settings.permissions.androidShizukuRecover":"恢復無障礙服務","settings.permissions.androidShizukuRecoverConfirm":"是否透過 Shizuku 嘗試重新啟用 OpenLess 無障礙服務?寫入時會合併當時已啟用的服務。若全域開關為關閉,啟用後可能同時啟動清單中已登記的其他無障礙服務。","settings.permissions.androidShizukuYes":"是","settings.permissions.androidShizukuNo":"否","settings.permissions.androidShizukuAccessibilityOperational":"無障礙服務已註冊且正在執行。","settings.permissions.androidShizukuAccessibilityRegistered":"已註冊:{{registered}} · 執行中:{{operational}}","settings.permissions.androidShizukuState.notInstalled":"未安裝","settings.permissions.androidShizukuState.notRunning":"未執行","settings.permissions.androidShizukuState.notAuthorized":"未授權","settings.permissions.androidShizukuState.authorized":"已授權","settings.permissions.androidShizukuState.binderDead":"連線中斷","settings.permissions.androidShizukuState.notAndroid":"不可用","settings.permissions.androidShizukuMessages.not_android":"Shizuku 僅在 Android 上可用。","settings.permissions.androidShizukuMessages.not_installed":"未安裝 Shizuku 或 Sui 後端。","settings.permissions.androidShizukuMessages.unsupported_backend":"目前的 Shizuku 後端版本過舊,請更新 Shizuku 或 Sui 至 v11 以上。","settings.permissions.androidShizukuMessages.not_running":"Shizuku 未執行,請先啟動 Shizuku 或 Sui。","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku 未授權,請授予 OpenLess 權限。","settings.permissions.androidShizukuMessages.binder_dead":"Shizuku 連線已中斷,請重新啟動 Shizuku。","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku 已授權,無障礙服務執行正常。","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku 已授權,無障礙服務已註冊但未執行。","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku 已授權,可嘗試恢復無障礙服務。","settings.permissions.androidShizukuMessages.operational":"無障礙服務已註冊且正在執行。","settings.permissions.androidShizukuMessages.registered_stale":"無障礙服務已註冊,但服務目前無法使用。","settings.permissions.androidShizukuMessages.not_registered":"無障礙服務未在系統設定中啟用。","settings.permissions.androidShizukuMessages.already_granted":"Shizuku 權限已授予。","settings.permissions.androidShizukuMessages.binder_unavailable":"請求授權時 Shizuku 服務不可用。","settings.permissions.androidShizukuMessages.request_cancelled":"已取消 Shizuku 授權請求。","settings.permissions.androidShizukuMessages.granted":"Shizuku 權限已授予。","settings.permissions.androidShizukuMessages.denied":"Shizuku 權限被拒絕。","settings.permissions.androidShizukuMessages.permission_permanently_denied":"Shizuku 授權已被阻止。請開啟 Shizuku 並手動允許 OpenLess。","settings.permissions.androidShizukuMessages.launched":"已開啟 Shizuku 授權介面。","settings.permissions.androidShizukuMessages.launch_failed":"無法開啟 Shizuku 授權介面。","settings.permissions.androidShizukuMessages.open_shizuku":"已開啟 Shizuku 管理器。","settings.permissions.androidShizukuMessages.jni_error":"無法連線 Android Shizuku 後端。","settings.permissions.androidShizukuMessages.status_parse_failed":"無法解析 Shizuku 狀態。","settings.permissions.androidShizukuMessages.user_not_confirmed":"需要使用者確認後才能恢復無障礙服務。","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku 未授權或不可用。","settings.permissions.androidShizukuMessages.invalid_component":"無效的無障礙服務元件 ID。","settings.permissions.androidShizukuMessages.service_connect_failed":"無法連線 Shizuku 特權服務。","settings.permissions.androidShizukuMessages.recovery_in_progress":"已有恢復操作正在進行,請稍後再試。","settings.permissions.androidShizukuMessages.parse_failed":"無法解析恢復結果。","settings.permissions.androidShizukuMessages.service_not_bound":"設定已寫入,但無障礙服務尚未執行。","settings.permissions.androidShizukuMessages.success":"無障礙服務已恢復。","settings.permissions.androidShizukuMessages.read_failed":"無法讀取無障礙服務設定。","settings.permissions.androidShizukuMessages.read_enabled_failed":"無法讀取無障礙總開關。","settings.permissions.androidShizukuMessages.merge_failed":"無法合併無障礙服務清單。","settings.permissions.androidShizukuMessages.write_services_failed":"無法寫入已啟用無障礙服務清單。","settings.permissions.androidShizukuMessages.write_enabled_failed":"無法啟用無障礙總開關。","settings.permissions.androidShizukuMessages.readback_failed":"寫入後無法驗證無障礙設定。","settings.permissions.androidShizukuMessages.oem_rollback":"廠商系統回滾了無障礙寫入。","settings.permissions.androidShizukuMessages.concurrent_change":"恢復過程中無障礙設定被其他應用修改。","settings.permissions.androidShizukuMessages.partial_rollback":"恢復失敗,且設定只能部分回滾。請檢查系統無障礙設定。","settings.permissions.androidShizukuMessages.manual_required":"全域開關關閉且清單中已有其他無障礙服務時,無法安全自動恢復。請前往系統設定手動操作。","settings.permissions.androidShizukuMessages.max_retries":"多次嘗試後恢復失敗。","settings.permissions.androidShizukuMessages.internal_error":"恢復因內部錯誤失敗。","settings.permissions.androidShizukuMessages.unknown":"未知 Shizuku 狀態。","settings.permissions.androidInsertStrategyLabel":"文字插入策略","settings.permissions.androidOverlayTriggerLabel":"懸浮窗顯示時機","settings.permissions.androidOverlayActivationModeLabel":"懸浮窗啟用方式","settings.permissions.androidOverlayLeftSwipeActionLabel":"左滑動作","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"取消錄音滑向","settings.permissions.androidOverlaySizeLabel":"懸浮窗大小","settings.permissions.androidOverlaySizeHint":"調整懸浮按鈕直徑,儲存後在目前懸浮窗上生效並保留位置。","settings.permissions.androidInsertStrategy.accessibility":"自動輸出到輸入框","settings.permissions.androidInsertStrategy.clipboard":"僅剪貼簿","settings.permissions.androidInsertStrategyHint.accessibility":"需要開啟無障礙服務;不可用時會複製到剪貼簿。","settings.permissions.androidInsertStrategyHint.clipboard":"不需要無障礙權限,只複製到剪貼簿,由你手動貼上。","settings.permissions.androidOverlayTrigger.background":"退到背景","settings.permissions.androidOverlayTrigger.keyboard":"鍵盤彈出時","settings.permissions.androidOverlayTrigger.always":"常駐","settings.permissions.androidOverlayTriggerHint.background":"省電","settings.permissions.androidOverlayTriggerHint.keyboard":"此模式已暫緩,既有設定會改回退到背景。","settings.permissions.androidOverlayTriggerHint.always":"一直佔屏","settings.permissions.androidOverlayTriggerDisabled.keyboard":"「鍵盤彈出時」暫緩開放,後續將以懸浮窗手勢取代鍵盤偵測。","settings.permissions.androidOverlayActivationMode.tap":"點按啟用","settings.permissions.androidOverlayActivationMode.long_press":"長按啟用","settings.permissions.androidOverlayActivationModeHint.tap":"第一次點按進入啟用狀態,第二次點按開始普通聽寫。","settings.permissions.androidOverlayActivationModeHint.long_press":"按住進入啟用狀態;放開時結束目前錄音或問答輪次。","settings.permissions.androidOverlayLeftSwipeAction.translation":"翻譯聽寫","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"切換風格包","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"啟用狀態左滑後按翻譯模式錄音。","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"啟用狀態左滑後切換到上一個風格包。","settings.permissions.androidOverlayCancelSwipeDirection.up":"向上滑","settings.permissions.androidOverlayCancelSwipeDirection.down":"向下滑","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"錄音中向上滑取消本次聽寫,不轉寫、不插入。","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"錄音中向下滑取消本次聽寫,不轉寫、不插入。","settings.permissions.windowsIme.installed":"已安裝。語音輸入時會臨時切換到 OpenLess 輸入法。","settings.permissions.windowsIme.notInstalled":"未安裝。OpenLess 正在使用剪貼板 / WM_PASTE 兜底。","settings.permissions.windowsIme.registrationBroken":"註冊已損壞。請重新安裝 OpenLess 輸入法。","settings.permissions.windowsIme.notWindows":"僅 Windows 可用。","settings.advanced.multimodalPipelineTitle":"多模態辨識管線","settings.advanced.multimodalPipelineTitleHint":"用單一多模態模型一步完成語音辨識;與傳統 ASR + LLM 設定完全隔離。","settings.advanced.multimodalPipelineLabel":"啟用多模態辨識管線","settings.advanced.multimodalPipelineHint":"開啟後,「服務 → AI 提供者」頁出現「傳統模式 / 多模態模式」切換。傳統 = ASR + LLM;多模態 = 單一支援音訊的模型。兩套設定分開儲存、絕不共用憑證。","settings.advanced.streamingInsertTitle":"流式輸入","settings.advanced.streamingInsertTitleLinux":"流式輸入(實驗性)","settings.advanced.streamingInsertDesc":"逐字即時插入,降低感知延遲。不滿足條件時回落到一次性貼上。","settings.advanced.streamingInsertLabel":"流式輸入","settings.advanced.streamingInsertHintMac":"臨時切到 ABC 輸入源,避免 CJK IME 攔截,會話結束後自動切回。","settings.advanced.streamingInsertHintWindows":"SendInput Unicode 直接送字元,繞過 TSF / IME,不切輸入法。","settings.advanced.streamingInsertHintLinux":"通過 fcitx5 插件提交文字;串流輸入使用 enigo + XTest 合成按鍵。","settings.advanced.streamingInsertSaveClipboardLabel":"同步到剪貼簿","settings.advanced.streamingInsertSaveClipboardHint":"插入成功後把最終文字寫入剪貼簿,方便 Cmd+V 再次貼上;關閉後流式過程不動剪貼簿。","settings.advanced.localAsrTitle":"本地 ASR 模型","settings.advanced.localAsrDesc":"把轉寫從雲端切到本機推理。僅推薦離線 / 隱私敏感場景。","settings.advanced.localAsrWarningShort":"本地推理較慢,配置不足時可能吞字。","settings.advanced.qwen3Desc":"啓動之後,ASR 提供商將被接管。","settings.advanced.sherpaDesc":"啟用後,ASR 提供商將被接管。","settings.advanced.foundryDesc":"啓動之後,ASR 提供商將被接管。","settings.advanced.notSupportedHere":"本平臺暫不支持,未集成推理模塊。","settings.advanced.enable":"啓用","settings.advanced.alreadyActive":"已啓用","settings.advanced.disableLocalLabel":"停用本地 ASR","settings.advanced.disableLocalDesc":"切回雲端 ASR(默認火山引擎 bigasr)。","settings.advanced.disable":"停用","settings.advanced.platformNotSupported":"該平臺暫未支持本地 ASR 模型集成。","settings.advanced.confirmEnableLocalTitle":"啓用本地 ASR?","settings.advanced.confirmEnableLocalBody":"啟用後轉寫會比雲端慢,準確率可能更低。","settings.advanced.confirm":"確認啓用","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"界面語言","settings.language.desc":"切換 UI 顯示語言。當前會話即時生效,下次啓動自動沿用。","settings.language.label":"語言","settings.language.labelDesc":"選擇「跟隨系統」時按操作系統當前語言顯示。","settings.language.followSystem":"跟隨系統","settings.language.zh":"簡體中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"部分原生菜單(系統托盤等)可能需要重啓 App 纔會切換。","settings.layout.title":"布局","settings.theme.title":"外觀","settings.theme.label":"主題","settings.theme.activityHeatmapLabel":"概覽頁顯示年度活動熱力圖","settings.theme.stackedRowLayoutLabel":"易讀布局(防溢出換行)","settings.theme.stackedRowLayoutDesc":"小螢幕或大字時,同一行放不下的按鈕和選項會自動換到下一行,避免橫向擠出螢幕或文字被壓扁。","settings.theme.conservativeLayoutLabel":"保守排版","settings.theme.conservativeLayoutDesc":"除首頁、頂欄與底欄外,設定與功能頁改為單列滿寬,最大程度避免橫向溢出。","settings.theme.system":"跟隨系統","settings.theme.light":"淺色","settings.theme.dark":"深色","settings.remoteInput.title":"遠端輸入","settings.remoteInput.enableLabel":"啟用遠端輸入","settings.remoteInput.enableDesc":"手機/平板瀏覽器連到電腦錄音,語音即時落到電腦游標處(需 HTTPS,首次存取要信任憑證)","settings.remoteInput.portLabel":"監聽連接埠","settings.remoteInput.defaultModeLabel":"預設錄音方式","settings.remoteInput.modeToggle":"點擊切換","settings.remoteInput.modeHold":"按住說話","settings.remoteInput.urlLabel":"存取網址","settings.remoteInput.pinLabel":"配對碼","settings.remoteInput.regeneratePin":"重新產生","settings.remoteInput.portInUse":"連接埠 {{port}} 被佔用,請更換","settings.remoteInput.startError":"遠端輸入服務啟動失敗:{{reason}}","settings.remoteInput.securityHint":"僅同一區域網路可存取,需輸入配對碼;不用時建議關閉。","settings.remoteInput.certHint":"首次連線需核對根憑證指紋後再信任。升級舊版需設定一次;之後重新啟動和更換 IP 會保留信任。","settings.remoteInput.certFingerprintLabel":"本機根憑證 SHA-256","settings.remoteInput.certFingerprintCopy":"複製完整指紋","settings.remoteInput.certFingerprintCopied":"已複製指紋","settings.remoteInput.certFingerprintUnavailable":"完整指紋無法取得。請勿安裝或信任下載的憑證。","settings.remoteInput.certVerifyHint":"在手機系統的憑證詳細資訊中找到 SHA-256,與此處全部 64 個字元逐一核對(忽略空格和冒號)。必須在開啟完全信任前完成。網頁、描述檔名稱與識別碼不能證明憑證身分;若不一致或無法查看完整指紋,請停止並移除已下載或安裝的描述檔。","settings.remoteInput.certProfileHint":"描述檔應只包含一張根憑證。若有其他憑證、VPN 或裝置管理設定,請勿安裝。","settings.remoteInput.certTrustWarning":"首次憑證下載無法驗證電腦身分,惡意區域網路裝置可能透過中間人攻擊替換根憑證。僅在可信任的家庭或私人網路中安裝,請勿在公共或共享網路操作。根憑證能簽發憑證,私密金鑰保存在這台電腦;不再使用時請從手機移除。","settings.remoteInput.certSetupLink":"複製 iPhone 憑證連結","settings.remoteInput.waitingStart":"服務尚未啟動。請關閉開關再打開一次,不要重啟軟體。","settings.remoteInput.starting":"正在啟動遠端輸入服務…","settings.remoteInput.urlsStale":"這些地址來自上次執行,可能已經過期。","settings.about.tagline":"自然說話,完美書寫","settings.about.checkUpdate":"檢查更新","settings.about.checkUpdateBtn":"檢查","settings.about.checkStableUpdateBtn":"檢查正式版更新","settings.about.checkBetaUpdateBtn":"檢查 Beta 更新","settings.about.checkingUpdate":"檢查中…","settings.about.upToDate":"當前已是最新版本。","settings.about.updateError":"檢查或更新失敗,請稍後重試。","settings.about.retryBtn":"重試","settings.about.openReleases":"打開 Releases","settings.about.source":"源碼","settings.about.docs":"文檔","settings.about.feedback":"反饋","settings.about.qq":"社區 QQ 羣","settings.about.qqDesc":"使用 QQ 搜索羣號加入,或掃碼進羣。","settings.about.copyQq":"複製羣號","settings.about.privacy":"隱私","settings.about.privacyDesc":"錄音可能會傳送至你設定的雲端服務商進行轉寫。","settings.about.localFirst":"本地優先","settings.about.linksTitle":"文件連結","settings.about.betaChannelLabel":"加入 Beta 渠道","settings.about.betaChannelToggleLabel":"啟用 Beta 渠道","settings.about.betaChannelDesc":"開啟後,背景自動更新將跟隨 Beta 渠道;關閉則回到正式版。下方按鈕可隨時手動檢查 Beta 更新。","settings.about.autoUpdateSectionTitle":"自動更新","settings.about.autoUpdateCheckLabelAndroid":"自動檢查並下載更新","settings.about.autoUpdateCheckDescAndroid":"啟動後及每 60 分鐘自動檢查更新;發現新版本後自動下載並開啟系統安裝器。渠道跟隨上方 Beta 開關。","settings.about.betaChannelFetching":"正在獲取最新 Beta 版本…","settings.about.betaChannelFetchBtn":"查詢最新 Beta","settings.about.betaChannelLatestPrefix":"最新 Beta:","settings.about.betaChannelDownloadBtn":"前往下載","settings.about.betaChannelRefresh":"重新查詢","settings.about.betaChannelNoBeta":"尚未發佈過 Beta 版。","settings.about.betaChannelFetchError":"獲取 Beta 版本資訊失敗,請稍後重試。","settings.about.betaChannelUpToDate":"已是最新","settings.about.betaChannelUpdateNow":"立即更新","settings.about.betaChannelUpdateNowTitle":"檢查並下載最新 Beta,然後彈出更新對話框","settings.about.betaChannelChecking":"檢查中…","settings.about.updateDialog.available.title":"發現新版本","settings.about.updateDialog.available.desc":"發現 OpenLess {{version}},是否現在更新?","settings.about.updateDialog.stableChannelSwitch.title":"切換到正式版","settings.about.updateDialog.stableChannelSwitch.desc":"目前版本:OpenLess {{currentVersion}}\n目標版本:OpenLess {{version}}\n這是從 Beta 頻道切換到正式版,是否繼續?","settings.about.updateDialog.downloading.title":"正在下載更新","settings.about.updateDialog.downloading.desc":"正在下載 OpenLess {{version}},請保持應用打開。","settings.about.updateDialog.downloaded.title":"更新已準備好","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} 已安裝完成。是否現在自動重啓以應用更新?","settings.about.updateDialog.installing.title":"正在安裝更新","settings.about.updateDialog.installing.desc":"正在安裝 OpenLess {{version}},請保持應用打開。","settings.about.updateDialog.install":"現在更新","settings.about.updateDialog.androidInstall":"下載並開啟安裝器","settings.about.updateDialog.androidInstalled.title":"系統安裝器已開啟","settings.about.updateDialog.androidInstalled.desc":"請依系統提示完成安裝。安裝後重新開啟 OpenLess 即可使用 {{version}}。","settings.about.updateDialog.downloadingLabel":"下載中…","settings.about.updateDialog.installingLabel":"安裝中…","settings.about.updateDialog.later":"稍後手動重啓","settings.about.updateDialog.restartNow":"現在重啓","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"已下載 {{downloaded}}","settings.about.updateDialog.installError.title":"更新失敗","settings.about.updateDialog.installError.desc":"自動更新未能完成:{{error}}。你可以前往下載頁手動下載安裝最新版本。","settings.about.updateDialog.manualDownload":"手動下載","startup.loading":"正在啟動 OpenLess…","startup.loadingDesc":"正在連接本機服務並檢查相容性。","startup.failed":"OpenLess 暫時無法啟動","startup.recovery":"請重新檢查。如果仍然失敗,請完全結束後重開應用程式;升級後出現此問題時,確認已安裝完整的同一版本。","startup.retry":"重新檢查","startup.details":"查看錯誤詳情","modal.serviceViews.label":"服務設定分類","modal.serviceViews.llm":"語言模型","modal.serviceViews.asr":"語音辨識","modal.serviceViews.omni":"多模態模型","modal.serviceViews.models":"本機模型","modal.serviceViews.connections":"連線與擴充","modal.serviceViews.statusConfigured":"已設定","modal.serviceViews.statusMissing":"未設定","modal.searchPlaceholder":"尋找設定分類…","modal.clearSearch":"清除搜尋","modal.categoriesLabel":"設定分類","modal.searchResults":"搜尋結果","modal.searchCount":"找到 {{count}} 個相關分類","modal.noResults":"找不到相關分類。試試「麥克風」「模型」或「主題」。","modal.autoSaveHint":"修改後自動儲存","modal.backToAdvanced":"返回實驗與擴充","modal.advancedPages.lessComputer":"選擇 Agent,設定模型、權限與工作目錄。","modal.advancedPages.claudeConsole":"偵測 Claude Code,並查看測試工作的執行輸出。","modal.advancedPages.multimodal":"管理多模態辨識的實驗性開關。","modal.advancedPages.debug":"保留偵錯錄音、探測游標上下文與匯出日誌。","modal.descriptions.general":"選擇麥克風、設定錄音方式與文字輸入,也可連接手機輸入。","modal.descriptions.shortcuts":"設定各功能的觸發方式,以及選取文字後的操作。","modal.descriptions.services":"選擇語音辨識與文字處理服務,管理管道、本機模型和網路連線。","modal.descriptions.appearance":"調整主題、頁面排版和介面語言,讓閱讀更舒服。","modal.descriptions.privacy":"檢查系統權限與連線狀態,管理歷史、錄音和本機資料。","modal.descriptions.advanced":"按需設定 Less Computer、多模態與除錯功能。","modal.descriptions.about":"查看目前版本、更新管道與自動更新設定。","modal.searchKeywords.general":"麥克風 錄音 輸入 手機 遠端 區域網路 PIN 膠囊 靜音 開機","modal.searchKeywords.shortcuts":"快捷鍵 熱鍵 組合鍵 選取 潤飾 語音編輯","modal.searchKeywords.services":"ASR LLM API 管道 模型 雲端 本機 網路 代理 市場","modal.searchKeywords.appearance":"主題 深色 淺色 暗色 語言 字體 排版 版面 熱圖","modal.searchKeywords.privacy":"權限 麥克風 輔助功能 歷史 錄音 儲存 隱私 匯出","modal.searchKeywords.advanced":"Less Computer Claude Agent 多模態 Omni 除錯 日誌 實驗","modal.searchKeywords.about":"版本 Beta 穩定 更新 升級","modal.sections.appearance":"外觀與語言","modal.sections.shortcuts":"快捷鍵與選取文字","modal.sections.general":"錄音與輸入","modal.sections.services":"AI 服務與模型","modal.sections.privacy":"權限與資料","modal.sections.advanced":"實驗與擴充","modal.sections.personalize":"個性化","modal.sections.about":"關於與更新","modal.sections.helpCenter":"幫助中心","modal.sections.releaseNotes":"發佈日誌","modal.personalize.font":"字體大小","modal.personalize.fontDesc":"整體縮放界面字號,立即生效。","modal.personalize.fontSmall":"小","modal.personalize.fontMedium":"中","modal.personalize.fontLarge":"大","modal.personalize.blur":"毛玻璃強度","modal.personalize.blurDesc":"影響窗口內層 backdrop-filter 強度(macOS 系統磨砂層無法運行時調)。","modal.about.tagline":"自然說話,完美書寫","modal.about.checkUpdate":"檢查更新","modal.about.checkUpdateBtn":"檢查","modal.about.docs":"文檔","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"反饋渠道","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"原始碼","modal.about.qq":"社群 QQ 群","modal.about.qqDesc":"使用 QQ 搜尋群號加入,或掃碼進群。","modal.about.copyQq":"複製群號","modal.about.exportErrorLog":"匯出錯誤日誌","modal.about.exportErrorLogDesc":"把當前會話的執行日誌儲存到本地,便於排查問題或反饋給我們。","modal.about.exportErrorLogBtn":"匯出","modal.about.exporting":"匯出中…","modal.about.exportSuccess":"已儲存","modal.about.exportFailed":"匯出失敗","modal.about.privacy":"隱私","modal.about.privacyDesc":"識別結果保存在本機;已設定的雲端服務商可能接收錄音以完成轉寫。","modal.about.localFirst":"本地優先","windowChrome.restore":"還原","windowChrome.minimize":"最小化","windowChrome.maximize":"最大化","windowChrome.close":"關閉","hotkey.triggers.rightOption":"右 Option","hotkey.triggers.leftOption":"左 Option","hotkey.triggers.rightControl":"右 Control","hotkey.triggers.leftControl":"左 Control","hotkey.triggers.rightCommand":"右 Command","hotkey.triggers.leftCommand":"左 Command","hotkey.triggers.leftShift":"左 Shift","hotkey.triggers.rightShift":"右 Shift","hotkey.triggers.fn":"Fn (地球鍵)","hotkey.triggers.rightAlt":"右 Alt","hotkey.triggers.mediaPlayPause":"⏯ 媒體播放/暫停","hotkey.triggers.custom":"自訂組合…","hotkey.fallback":"全局快捷鍵","hotkey.modeHoldSuffix":"(按住說話)","hotkey.modeToggleSuffix":"(開始 / 停止)","hotkey.modeAutoSuffix":"(自動識別)","hotkey.usageHold":"按住 {{trigger}} 說話,鬆開結束。","hotkey.usageToggle":"按 {{trigger}} 開始錄音,再按一次結束。","hotkey.usageAuto":"短按 {{trigger}} 切換開始 / 停止,按住則說完鬆開即停。","hotkey.adapter.macEventTap":"macOS Event Tap","hotkey.adapter.windowsLowLevel":"Windows 低層鍵盤 hook","hotkey.adapter.fcitx5":"fcitx5 輸入法插件","hotkey.adapter.unavailable":"不可用","localAsr.kicker":"本地 ASR","localAsr.title":"模型設置","localAsr.desc":"管理本機語音識別模型。","localAsr.storageTitle":"模型儲存位置","localAsr.storageBaseDir":"選擇的父目錄","localAsr.storageModelsRoot":"實際模型目錄","localAsr.storageDefault":"系統預設目錄","localAsr.storageChoose":"更改目錄","localAsr.storageReset":"恢復預設","localAsr.storageReveal":"開啟模型總目錄","localAsr.storageDesc":"自訂目錄會在所選位置下建立 OpenLess/models,並自動遷移現有模型;遷移前會取消下載和釋放已載入模型。","localAsr.storageChooseTitle":"選擇本地模型儲存父目錄","localAsr.storageChangeConfirm":"將把現有本地模型遷移到 {{path}}/OpenLess/models。遷移前會自動取消下載並釋放已載入模型。是否繼續?","localAsr.storageResetConfirm":"將把現有本地模型遷回系統預設目錄。當前目錄:{{path}}。是否繼續?","localAsr.modelDir":"模型目錄","localAsr.revealDir":"開啟目錄","localAsr.deleteConfirm":"確定刪除 {{name}} 的本地模型檔案嗎?此操作無法復原。","localAsr.appleSpeechTitle":"Apple 語音辨識(macOS)","localAsr.appleSpeechDesc":"macOS 系統內建的語音辨識,在本機把語音轉成文字:不用下載模型、不用填 API Key,主流語言可完全離線、音訊不出本機。適合作雲端 ASR 網路不穩時的本地後備;首次使用會跳出系統語音辨識授權。","localAsr.appleSpeechUse":"使用 Apple 語音","localAsr.qwenTitle":"Qwen3-ASR 模型管理","localAsr.qwenExperimentalBadge":"實驗性","localAsr.engineUnavailable":"當前平臺暫未集成 Qwen3-ASR 推理引擎。可下載模型,但暫時無法啟用 Qwen3-ASR。","localAsr.qwenUnavailableOnWindows":"Windows 暫不支援 Qwen3-ASR,請使用上方的 Foundry Local Whisper。","localAsr.foundryTitle":"Windows Foundry Local Whisper","localAsr.foundryDesc":"在本機識別語音,無需 ASR API Key。首次使用需下載運行元件和模型。","localAsr.foundryAvailable":"Windows 可用","localAsr.foundryUnavailable":"僅 Windows 可用","localAsr.foundryRuntimeReady":"運行組件已下載","localAsr.foundryRuntimeMissing":"運行組件未下載","localAsr.foundryRuntimeSourceLabel":"運行組件下載源","localAsr.foundryRuntimeSourceAuto":"自動(NuGet 優先)","localAsr.foundryRuntimeSourceNuget":"NuGet 官方源","localAsr.foundryRuntimeSourceOrtNightly":"Microsoft ORT-Nightly 源","localAsr.foundryRuntimeSourceDesc":"首次使用前需下載運行元件。","localAsr.foundrySelectedModel":"選擇模型","localAsr.foundryActiveModel":"當前默認 alias","localAsr.foundryLoadedModel":"已加載模型","localAsr.foundryNotLoaded":"未加載","localAsr.foundryError":"Foundry 狀態","localAsr.foundrySetDefault":"設為默認 / 啟用 Windows 本地 ASR","localAsr.foundryEnabling":"正在啟用…","localAsr.foundryPrepare":"準備 / 下載 / 加載","localAsr.foundryPreparing":"正在準備…","localAsr.foundryReleasing":"正在釋放…","localAsr.foundryRetryPrepare":"繼續準備 / 重試","localAsr.foundryCancelPrepare":"取消準備","localAsr.foundryCancelRequested":"已請求取消","localAsr.foundryCancelling":"正在取消…","localAsr.foundryCancelBestEffort":"已請求取消,會在當前步驟完成後停止。可稍後重試。","localAsr.foundryPrepareRuntime":"準備運行時組件","localAsr.foundryPrepareModel":"下載模型","localAsr.foundryPrepareLoad":"加載模型","localAsr.foundryPrepareModelSkipped":"模型已下載,跳過下載階段","localAsr.foundryPrepareDone":"已完成","localAsr.foundryPrepareWaiting":"等待中","localAsr.foundryApproxSizeMb":"約 {{mb}} MB","localAsr.foundryLanguageLabel":"識別語言","localAsr.foundryLanguageAuto":"自動","localAsr.foundryLanguageZh":"中文 zh","localAsr.foundryLanguageEn":"英文 en","localAsr.foundryLanguageDesc":"中文聽寫選中文,中英混用選自動。","localAsr.foundryModelSmall":"Whisper Small(默認 / 平衡)","localAsr.foundryModelSmallDesc":"默認平衡選項,兼顧質量與資源佔用。","localAsr.foundryModelMedium":"Whisper Medium(更高質量)","localAsr.foundryModelMediumDesc":"更高準確率,適合性能更強、可接受更大下載和更慢推理的設備。","localAsr.foundryModelLarge":"Whisper Large V3 Turbo(最高質量)","localAsr.foundryModelLargeDesc":"更高質量的大模型選項,適合高配設備和質量優先場景。","localAsr.foundryModelBase":"Whisper Base(更快 / 更省資源)","localAsr.foundryModelBaseDesc":"更快、資源佔用更低,適合日常輕量使用。","localAsr.foundryModelTiny":"Whisper Tiny(最快 / 冒煙測試)","localAsr.foundryModelTinyDesc":"最快的檢查選項,適合確認 Foundry 路徑可用。","localAsr.sherpaTitle":"Windows sherpa-onnx Local(實驗性)","localAsr.sherpaDesc":"Windows 使用 sherpa-onnx 在本機離線批次識別,無需 ASR API Key。","localAsr.sherpaRuntimeReady":"模型已載入","localAsr.sherpaRuntimeMissing":"模型未載入","localAsr.sherpaSetDefault":"設為預設 / 啟用 sherpa-onnx","localAsr.sherpaPrepare":"檢查本地檔案 / 載入","localAsr.sherpaPreparing":"載入中…","localAsr.sherpaPrepareLocalFiles":"檢查本地模型檔案","localAsr.sherpaModelDir":"模型目錄","localAsr.sherpaRevealDir":"開啟模型目錄","localAsr.sherpaError":"sherpa-onnx 狀態","localAsr.sherpaLanguageJa":"日語 ja","localAsr.sherpaLanguageKo":"韓語 ko","localAsr.sherpaLanguageYue":"粵語 yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small(預設 / 中文優先)","localAsr.sherpaModelSenseVoiceDesc":"預設實驗模型,適合中文與中英混合聽寫。","localAsr.sherpaModelParaformer":"Paraformer 中文","localAsr.sherpaModelParaformerDesc":"面向中文的實驗模型。","localAsr.sherpaModelWhisper":"Whisper Small 多語言","localAsr.sherpaModelWhisperDesc":"與 Whisper 系列行為一致的多語言實驗兜底模型。","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3(多語)","localAsr.sherpaModelWhisperLargeV3Desc":"開源多語通用中效果最好的 Whisper 檔,品質高、體積大,適合高品質轉寫。","localAsr.sherpaModelZipformer":"Zipformer 串流(中英)","localAsr.sherpaModelZipformerDesc":"邊說邊出的串流中英模型,延遲最低,適合即時聽寫。","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"轉換後的 sherpa-onnx Qwen3-ASR 模型,支援多語言識別與更強的長上下文能力。","localAsr.modelSelectTitle":"本機模型","localAsr.modelSelectDesc":"查看下載狀態、管理檔案,或載入模型進行測試。","localAsr.modelSelectPlaceholder":"選擇已下載的模型…","localAsr.modelSelectEmpty":"還沒有已下載的模型,先到「下載與管理」下載一個。","localAsr.groupDownload":"下載與管理","localAsr.groupOther":"其他","localAsr.mirrorLabel":"下載鏡像源","localAsr.mirrorDesc":"官方源在國外網絡更穩;hf-mirror.com 是國內社區維護的鏡像。","localAsr.mirrorHuggingface":"HuggingFace 官方 (huggingface.co)","localAsr.mirrorHfMirror":"國內鏡像 (hf-mirror.com)","localAsr.activeBadge":"當前使用","localAsr.downloadedBadge":"已下載","localAsr.notDownloadedBadge":"未下載","localAsr.download":"下載","localAsr.resume":"繼續下載","localAsr.cancel":"取消","localAsr.delete":"刪除","localAsr.setActive":"設為默認","localAsr.failed":"失敗","localAsr.cancelled":"已取消","localAsr.files":"文件","localAsr.sizeLoading":"正在查詢尺寸…","localAsr.sizeUnknown":"尺寸未知","localAsr.performanceWarning":"本地 ASR 適合離線或隱私敏感場景,首次使用需下載模型。","localAsr.test":"加載並測試","localAsr.testRunning":"測試中…","localAsr.testHeading":"內置音頻測試","localAsr.testExpected":"原文","localAsr.testActual":"識別","localAsr.testStats":"音頻時長 {{audio}}s · 加載 {{load}}s · 推理 {{transcribe}}s · 後端 {{backend}}","localAsr.testFailed":"測試失敗","localAsr.engineStatusLabel":"內存中的引擎","localAsr.engineLoaded":"已加載:{{model}}","localAsr.engineUnloaded":"未加載(首次聽寫需先加載模型)","localAsr.loadNow":"立即加載","localAsr.releaseNow":"立即釋放","localAsr.keepLoadedLabel":"保持加載多久","localAsr.keepLoadedDesc":"決定 Qwen3-ASR 用完後多久從內存釋放,避免長期佔用內存。","localAsr.keepImmediate":"說完話立即釋放","localAsr.keep1min":"上次使用後 1 分鐘","localAsr.keep5min":"上次使用後 5 分鐘(默認)","localAsr.keep30min":"上次使用後 30 分鐘","localAsr.keepForever":"不釋放(始終保留)","localAsr.sidebarTitle":"已下載與下載中","localAsr.activePill":"目前使用","localAsr.setDefault":"設為預設","localAsr.downloading":"下載中","localAsr.startDownload":"開始下載","localAsr.downloadNewModel":"下載新模型","localAsr.activeModelLabel":"使用中的模型","localAsr.pickerNoModelDownloaded":"尚無已下載的模型,請先在本機模型頁下載。","localAsr.partialDownloadsLabel":"未完成下載","localAsr.partialDownloadsDesc":"存在中斷下載的暫存殘留,可一鍵清理,不影響已安裝模型。","localAsr.cleanupIncomplete":"清理未完成下載","localAsr.languagesLabel":"語言","localAsr.partialBytesLabel":"殘留檔案","localAsr.downloadDialogTitle":"下載模型","localAsr.downloadDialogAlreadyHave":"模型檔案已下載。可返回模型頁載入並測試,或在「ASR 語音轉寫」中選擇對應供應商。","localAsr.downloadDialogDesc":"查看模型大小與簡介,選擇後開始下載。下載完成後,在「語音辨識」中選擇對應的本機服務。","localAsr.detailRepo":"模型倉庫","localAsr.hfDownloads":"下載量","localAsr.hfLikes":"收藏數","localAsr.hfDescription":"模型簡介","localAsr.hfNoDescription":"暫無簡介","localAsr.hfCardFailed":"模型資訊取得失敗","localAsr.detailFiles":"個檔案","localAsr.detailDownloaded":"已下載","localAsr.detailEmpty":"選擇一個模型查看詳情","localAsr.foundryLanguage":"語言","localAsr.foundryRuntimeSource":"執行時來源","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"保持載入","localAsr.downloadSettingsTitle":"下載與儲存設定","localAsr.downloadSettingsDesc":"鏡像源 · 模型儲存位置 · 記憶體引擎","localAsr.libraryEmptyTitle":"還沒有本機模型","localAsr.libraryEmptyDesc":"下載一個語音辨識模型,讓音訊在本機處理。已有模型卻未顯示時,可重新讀取目錄。","localAsr.catalogTitle":"模型目錄","localAsr.catalogEmpty":"目前沒有可顯示的模型。請重新讀取目錄後再試。","localAsr.reloadCatalog":"重新讀取","localAsr.engineLabel":"辨識引擎","localAsr.sizeLabel":"模型大小","localAsr.allEngines":"全部","localAsr.backToCatalog":"返回模型目錄","localAsr.detailsTitle":"模型詳情","localAsr.testActivateHint":"「載入並測試」會將此模型設為目前使用,再執行內建音訊測試。","localAsr.downloadProgressHint":"開始後返回模型頁查看進度,也可隨時取消下載。","localAsr.errorDetails":"錯誤詳情"},"en":{"cloudSync.title":"Cloud sync","cloudSync.description":"Use your GitHub account to sync your dictionary, styles, and preferences across devices.","cloudSync.signIn":"Sign in with GitHub","cloudSync.account":"Sync account","cloudSync.refresh":"Refresh status","cloudSync.loading":"Checking cloud status…","cloudSync.noBackup":"No cloud backup yet","cloudSync.available":"Cloud backup available","cloudSync.summary":"{{dictionary}} words · {{corrections}} corrections · {{stylePacks}} styles","cloudSync.updated":"Updated {{time}}","cloudSync.upload":"Back up to cloud","cloudSync.restore":"Restore from cloud","cloudSync.delete":"Delete cloud backup","cloudSync.working":"Syncing…","cloudSync.uploadSuccess":"Cloud backup saved","cloudSync.restoreSuccess":"Cloud settings restored","cloudSync.deleteSuccess":"Cloud backup deleted","cloudSync.failed":"Sync failed: {{error}}","cloudSync.conflict":"The cloud copy has changed. Refresh its status before choosing to back up or restore.","cloudSync.unavailable":"The official sync service is currently unavailable. Try again later.","cloudSync.signInRequired":"Sign in with GitHub first.","cloudSync.restoreTitle":"Restore cloud backup?","cloudSync.restoreDescription":"Cloud dictionary entries, corrections, styles, and synced preferences will replace their local equivalents. API keys, device paths, and permissions stay on this device.","cloudSync.deleteTitle":"Delete cloud backup?","cloudSync.deleteDescription":"This removes only the cloud backup for this GitHub account. Local data is kept.","cloudSync.confirmRestore":"Restore and replace","cloudSync.confirmDelete":"Delete backup","cloudSync.scope":"Sync dictionary entries, corrections, style icons, and common preferences. API keys, credentials, and device settings stay on this device.","macDictationKey.Changed":"The shortcut changed while saving. Please try again.","macDictationKey.label":"Mac Dictation key","macDictationKey.description":"Replaces the current dictation shortcut with the microphone key. Quitting OpenLess releases it to macOS.","macDictationKey.Permission":"Allow OpenLess in macOS Privacy & Security → Accessibility, then retry.","macDictationKey.Busy":"Finish the current dictation before changing its shortcut.","macDictationKey.Unavailable":"Could not activate this shortcut. The saved binding is unchanged; retry or choose another key.","app.name":"OpenLess","app.tagline":"Speak naturally, write perfectly","common.loading":"Loading…","common.retry":"Retry","common.settingsLoadFailed":"Settings load failed","common.refresh":"Refresh","common.clear":"Clear","common.copy":"Copy","common.delete":"Delete","common.later":"Later","common.cancel":"Cancel","common.close":"Close","common.show":"Show","common.hide":"Hide","common.saved":"Saved","common.saving":"Saving…","common.experimental":"Experimental","common.copied":"Copied","common.operationFailed":"Operation failed","common.add":"Add","common.durationSeconds":"{{value}}s","common.durationMillis":"{{value}}ms","common.durationMinutes":"{{value}}m","capsule.thinking":"thinking","capsule.using":"using","capsule.cancelled":"Cancelled","capsule.error":"Something went wrong","capsule.inserted":"Inserted {{count}}","capsule.translating":"Translating","capsule.selectionPolish.polishing":"Polishing…","capsule.selectionPolish.replaced":"Replaced","capsule.selectionPolish.noSelection":"Nothing selected","capsule.selectionPolish.failed":"Polish failed, try again","selectionPolishPreview.title":"Selection Polish Preview","selectionPolishPreview.subtitle":"Editable; the original selection is replaced only after you confirm.","selectionPolishPreview.cancel":"Cancel","selectionPolishPreview.resultLabel":"Polished result","selectionPolishPreview.sourcePrefix":"Original: ","selectionPolishPreview.applyError":"Could not apply: ","selectionPolishPreview.confirmReplace":"Confirm & replace","selectionVoiceIntent.title":"What would you like to do?","selectionVoiceIntent.subtitle":"Your voice instruction was recognized. Choose how to proceed.","selectionVoiceIntent.loading":"Loading…","selectionVoiceIntent.sourcePrefix":"Selection: ","selectionVoiceIntent.errorPrefix":"Could not continue: ","selectionVoiceIntent.question":"Ask a question","selectionVoiceIntent.edit":"Edit selection","selectionVoiceIntent.cancel":"Cancel","qa.title":"Ask","qa.headerHint":"Ask anytime","qa.thinking":"Thinking…","qa.error":"Something went wrong. Please try again.","qa.errorRetry":"Retry","qa.errorRetryHint":"Please try again.","qa.pinTooltip":"Pin (stay open)","qa.unpinTooltip":"Unpin","qa.closeTooltip":"Close","qa.micLabel":"Ask by voice","qa.micStop":"Stop recording","qa.selectionPreview":"From selected text:","qa.emptyTitle":"How can I help?","qa.emptyDesc":"Select any text to ask about it, or just type your question below. Answers appear here — ask as many follow-ups as you like.","qa.recordingHint":"Recording… press {{recordHotkey}} again to submit","qa.mobileRecordLabel":"record button","qa.mobileRecordStart":"Start recording","qa.mobileRecordStop":"Stop and submit","qa.composerPlaceholder":"Type a question. Enter to send","qa.composerSend":"Send","qa.statusIdle":"Press {{recordHotkey}} to ask","qa.statusRecording":"Recording","qa.statusThinking":"Thinking","qa.statusError":"Error","qa.jumpToLatest":"Jump to latest","qa.editApplyReplace":"Preview and confirm insert","qa.editApplyUnavailable":"No edit result to apply","qa.editRevertPrevious":"Keep previous version","qa.editInstructionMode":"Edit instruction","lessComputer.title":"Less Computer","lessComputer.subtitle":"What should your computer do?","lessComputer.you":"You","lessComputer.working":"Operating…","lessComputer.tool":"Used {{name}}","lessComputer.compaction":"Context compacted","lessComputer.done":"Done","lessComputer.cost":"${{cost}}","lessComputer.error":"Failed. Try again.","lessComputer.closeTooltip":"Close","lessComputer.jumpToLatest":"Jump to latest","lessComputer.inputPlaceholder":"Type a command, Enter to send","lessComputer.send":"Send","lessComputer.approvalTitle":"Run blocked command?","lessComputer.approvalRerunWarning":"Note: approving re-runs on an already-modified workspace and may have side effects on non-idempotent operations.","lessComputer.approve":"Approve","lessComputer.deny":"Deny","lessComputer.approved":"Approved","lessComputer.denied":"Denied","nav.overview":"Overview","nav.history":"History","nav.vocab":"Dictionary","nav.style":"Style","nav.marketplace":"Marketplace","nav.translation":"Translation","nav.selectionAsk":"Ask","nav.corrections":"Corrections","nav.polishMode":"Polish mode","nav.group.style":"Style","nav.group.tools":"Tools","nav.localAsr":"Models","nav.more":"More","marketplace.kicker":"MARKETPLACE","marketplace.title":"Style Pack Marketplace","marketplace.desc":"Browse, install, and share community style packs.","marketplace.searchPlaceholder":"Search name / description / tags…","marketplace.sortPopular":"Popular","marketplace.sortNew":"Newest","marketplace.uploadBtn":"Upload","marketplace.uploadDisabledHint":"Set your GitHub login in Settings → Marketplace first","marketplace.refreshBtn":"Refresh","marketplace.empty":"No style packs yet","marketplace.emptyHint":"Try a different keyword, or upload your own","marketplace.loadFailed":"Load failed: {{err}}","marketplace.noDescription":"(no description)","marketplace.installBtn":"Install","marketplace.installingBtn":"Installing…","marketplace.downloadZipBtn":"Download ZIP","marketplace.downloadingZipBtn":"Downloading…","marketplace.downloadAria":"Download \"{{name}}\" ZIP","marketplace.likeBtn":"Like","marketplace.installed":"Installed \"{{name}}\" locally","marketplace.downloaded":"Downloaded \"{{name}}\" ZIP","marketplace.uploaded":"Uploaded — waiting for review","marketplace.uploadTitle":"Pick a style pack to upload","marketplace.uploadHint":"Uploading as {{login}}. Content goes to the cloud review queue.","marketplace.uploadNoLocal":"No local style packs to upload","marketplace.errors.detail":"Detail load failed: {{err}}","marketplace.errors.install":"Install failed: {{err}}","marketplace.errors.download":"ZIP download failed: {{err}}","marketplace.errors.like":"Like failed: {{err}}","marketplace.errors.upload":"Upload failed: {{err}}","marketplace.errors.loadLocal":"Load local packs failed: {{err}}","marketplace.sortLiked":"Liked","marketplace.likedEmpty":"You have not liked any style packs yet","marketplace.likedEmptyHint":"Open any pack and tap the star — liked packs appear here","marketplace.derivativeBadge":"Derived from @{{login}}","marketplace.detail.withdrawBtn":"Withdraw","marketplace.detail.withdrawConfirm":"Withdraw \"{{name}}\" from the marketplace? Your local copy is kept.","marketplace.detail.withdrawSuccess":"Withdrawn from marketplace","marketplace.detail.withdrawFailed":"Withdraw failed: {{err}}","marketplace.myPacks.buttonLabel":"My Packs","marketplace.myPacks.buttonTitle":"View {{login}}'s publications","marketplace.myPacks.buttonTitleEmpty":"Set publisher identity in Settings → Marketplace first","marketplace.myPacks.searchPlaceholder":"Search name or tags","marketplace.myPacks.notLoggedIn":"Set publisher identity in Settings → Marketplace first","marketplace.myPacks.emptyTitle":"You have not published any style packs yet","marketplace.myPacks.emptyHint":"Edit a pack in the Style page and click \"Publish to Marketplace\", or upload a local pack from the top-right.","marketplace.myPacks.noMatch":"No matching style packs","marketplace.myPacks.summary":"{{count}} published","marketplace.myPacks.summaryPending":"{{count}} published · {{pending}} pending review","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"Update","marketplace.myPacks.actions.withdraw":"Withdraw","marketplace.myPacks.loadFailed":"Failed to load my packs: {{err}}","marketplace.myPacks.loadingTitle":"Loading…","marketplace.myPacks.loadingHint":"Fetching your latest publications from the marketplace.","marketplace.myPacks.loadErrorTitle":"Load failed","marketplace.myPacks.loadErrorRetry":"Retry","marketplace.upload.confirmBtn":"Confirm upload","marketplace.upload.updateTitle":"Update \"{{name}}\"","marketplace.upload.updateHint":"Pick the local newer version, then click \"Confirm upload\". A same-name pack is pre-selected.","marketplace.upload.recommendedBadge":"Recommended","marketplace.state.pending":"Pending","marketplace.state.approved":"Published","marketplace.state.rejected":"Rejected","marketplace.state.withdrawn":"Withdrawn","marketplace.state.superseded":"Superseded","marketplace.state.unknown":"Unknown","marketplace.oauth.title":"Sign in with GitHub","marketplace.oauth.generating":"Generating device code…","marketplace.oauth.browserHint":"Open {{uri}} in your browser and enter this code:","marketplace.oauth.copyBtn":"Copy","marketplace.oauth.copied":"Device code copied","marketplace.oauth.copyFailed":"Copy failed: {{err}}","marketplace.oauth.openBrowserBtn":"Open browser","marketplace.oauth.cancelBtn":"Cancel","marketplace.oauth.waiting":"Waiting for browser authorization…","marketplace.oauth.successAs":"Signed in as @{{login}}","marketplace.oauth.retryBtn":"Retry","marketplace.oauth.closeBtn":"Close","marketplace.oauth.loginBtn":"Sign in","marketplace.oauth.loginTooltip":"Sign in with GitHub","marketplace.oauth.reloginTooltip":"Click to re-sign-in / switch account (current @{{login}})","marketplace.modal.loggedIn":"Current sign-in identity — change in Settings → Recording → Marketplace","marketplace.modal.notLoggedIn":"Not signed in — go to Settings → Recording → Marketplace to set publisher name","marketplace.modal.notLoggedInLabel":"Not signed in","shell.shortcutLabel":"Recording shortcut","shell.shortcutHint":"Start / Stop","shell.betaTag":"BETA","shell.betaNote":"Local storage, optional cloud backup","shell.navHint.overview":"Status overview: usage stats, provider & permission health","shell.navHint.history":"Dictation history: search, replay and copy past transcripts","shell.navHint.vocab":"Dictionary: custom hotwords for better proper-noun accuracy","shell.navHint.style":"Polish styles: manage output styles and custom prompts","shell.navHint.translation":"Translation: hold Shift while speaking to insert in a target language","shell.navHint.selectionAsk":"Selection ask: select text, then ask about it by voice","shell.navHint.settings":"Preferences: shortcuts, providers, privacy and updates","shell.footer.account":"Account","shell.footer.feedback":"Feedback","shell.footer.settings":"Settings","shell.footer.help":"Help","shell.footer.version":"Version {{version}}","shell.footer.helpPopover.tagline":"Local-first voice input layer","shell.footer.helpPopover.releaseNotes":"Release notes ↗","shell.footer.helpPopover.docs":"Help center ↗","shell.providerPrompt.title":"Set up speech providers","shell.providerPrompt.body":"No ASR or LLM provider is configured yet. Voice input and polishing will not work until you add credentials.","shell.providerPrompt.later":"Later","shell.providerPrompt.openSettings":"Open Settings","shell.hotkeyModePrompt.title":"Review your recording mode","shell.hotkeyModePrompt.body":"Default is now Toggle. If you changed the trigger mode before, please confirm it in Recording settings.","shell.hotkeyModePrompt.later":"Remind me later","shell.hotkeyModePrompt.openSettings":"Open Recording","onboarding.welcome":"Welcome to OpenLess","onboarding.intro":"Speak locally, type locally. Two system permissions are needed before you start.","onboarding.accessibilityTitle":"Accessibility","onboarding.hotkeyTitle":"Global hotkey","onboarding.accessibilityDesc":"Used to listen to the global hotkey (default {{trigger}}) and write transcripts at the cursor.","onboarding.hotkeyDesc":"Used to confirm that the global hotkey listener is available.","onboarding.micTitle":"Microphone","onboarding.micDesc":"Used to capture your voice input.","onboarding.actionNotApplicable":"Not required","onboarding.actionGranted":"Granted","onboarding.actionOpenSystem":"Open System Settings","onboarding.actionRestart":"Reset Accessibility and Restart OpenLess","onboarding.actionGrant":"Grant","onboarding.actionRequestMic":"Request access","onboarding.micNoDeviceHint":"No microphone detected. Connect and enable a microphone, then retry.","onboarding.accessibilityHint":"After granting, you must **fully quit OpenLess** and reopen it (a macOS TCC requirement).","onboarding.footerHint":"This onboarding closes automatically once both permissions are granted. If it persists, quit OpenLess from the menu bar and relaunch.","onboarding.continueToSettings":"Open settings only (voice and global shortcuts unavailable)","onboarding.androidContinue":"Continue to app","onboarding.androidFooterHint":"Microphone access is required for dictation. Tap Request access above, or continue and grant it later from Overview.","onboarding.androidTitle":"Set up OpenLess","onboarding.androidIntro":"Complete mobile permissions and services step by step.","onboarding.androidStepCounter":"Step {{current}} of {{total}}","onboarding.androidBack":"Back","onboarding.androidNext":"Next","onboarding.androidFinish":"Finish and enter","onboarding.androidSteps.microphoneTitle":"Microphone permission","onboarding.androidSteps.microphoneDesc":"Show the Android system permission sheet and allow OpenLess to record voice.","onboarding.androidSteps.accessibilityTitle":"Accessibility service","onboarding.androidSteps.accessibilityDesc":"Paste recognition results back into the active input field and help detect the input context.","onboarding.androidSteps.overlayPermissionTitle":"Floating window permission","onboarding.androidSteps.overlayPermissionDesc":"Allow OpenLess to show the recording control over other apps.","onboarding.androidSteps.overlayConfigTitle":"Floating window settings","onboarding.androidSteps.overlayConfigDesc":"Configure visibility, activation, swipe actions, and button size.","onboarding.androidSteps.asrTitle":"ASR cloud service","onboarding.androidSteps.asrDesc":"Configure the speech-to-text provider, key, endpoint, and model.","onboarding.androidSteps.llmTitle":"LLM service","onboarding.androidSteps.llmDesc":"Configure the language model used for polishing, translation, and Q&A.","overview.refresh":"Refresh status","overview.servicesTitle":"Current voice services","overview.statsTitle":"Your activity","overview.omniKind":"Multimodal voice","overview.omniName":"Current Omni model","overview.statusLoading":"Reading service configuration…","overview.configureProvider":"Configure","overview.manageProvider":"Manage service","overview.recentEmptyHint":"No dictations yet. Follow the guide above to try one; your result will appear here.","overview.providerHelp.asr":"Turns your speech into text.","overview.providerHelp.llm":"Organizes and polishes text in your style.","overview.providerHelp.omni":"One model handles both speech recognition and text processing.","overview.actions.refresh":"Try again","overview.actions.services":"AI services & models","overview.actions.general":"Recording & input","overview.actions.shortcuts":"Shortcuts","overview.actions.privacy":"Permissions & data","overview.guide.nextStep":"Next step","overview.guide.loadingTitle":"Reading your configuration","overview.guide.loadingDesc":"Your current services and next step will appear shortly.","overview.guide.unavailableTitle":"Service status is unavailable","overview.guide.unavailableDesc":"Try reading it again, or open AI services to review your configuration.","overview.guide.servicesTitle":"Set up your voice services","overview.guide.servicesDesc":"Start here: choose services for speech recognition and text processing. In Omni mode, only the active multimodal model needs configuration.","overview.guide.permissionsTitle":"Check your shortcut status","overview.guide.permissionsDesc":"The shortcut adapter is unavailable. Open Permissions & data to see its status and available options.","overview.guide.shortcutsTitle":"Choose a recording shortcut","overview.guide.shortcutsDesc":"Pick a shortcut that feels natural so you can start dictating while you type.","overview.guide.recordingTitle":"Choose how you record","overview.guide.recordingDesc":"Your service configuration is saved. Open recording settings to choose your microphone and recording mode.","overview.guide.tryDictationTitle":"Try a dictation","overview.guide.tryDictationDesc":"Place the cursor where you want to type. {{shortcut}}","overview.guide.permissionsHint":"Recording or shortcuts not responding? Check permissions, microphone access, and shortcut status in Permissions & data.","overview.kicker":"DASHBOARD","overview.title":"Today's overview","overview.desc":"Today's dictation stats and system status.","overview.pressPrefix":"Press","overview.pressSuffix":"to start","overview.asrKind":"Speech recognition","overview.llmKind":"Text processing","overview.asrName":"Volcengine","overview.asrSubname":"bigmodel","overview.llmName":"OpenAI-compatible","overview.llmConfigured":"Active LLM configured","overview.llmNotConfigured":"Not configured","overview.statusConfigured":"Configured","overview.statusNotConfigured":"Not configured","overview.statusUnknown":"Unavailable","overview.credentialsLoadError":"Could not read credential status","overview.metricChars":"Characters today","overview.metricSegments":"{{count}} segments","overview.metricDuration":"Total duration today","overview.metricAvg":"Avg per segment","overview.metricAvgTrend":"Today's average","overview.metricNoData":"No data","overview.historyLoadError":"History load failed","overview.metricTotal":"Total records","overview.metricTotalTrend":"Local archive (max 200)","overview.activityTitle":"Annual activity","overview.activityCount":"{{count}} dictation(s)","overview.activityLoadError":"Activity data load failed","overview.period.ariaLabel":"Reporting period","overview.period.last7Days":"Last 7 days","overview.period.last30Days":"Last 30 days","overview.period.dailyAverage":"{{value}} / day","overview.period.minutes":"{{value}} min","overview.period.hoursMinutes":"{{hours}} h {{minutes}} min","overview.metricName.ariaLabel":"Metric","overview.metricName.count":"Count","overview.metricName.chars":"Characters","overview.metricName.duration":"Duration","overview.recentTitle":"Recent transcripts","overview.recentAll":"View all →","overview.recentEmpty":"No records yet. Press {{trigger}} to start your first recording.","overview.recentLoadFailed":"Could not load recent transcripts. Please retry.","overview.historyRetry":"Retry","overview.weekDays.0":"Sun","overview.weekDays.1":"Mon","overview.weekDays.2":"Tue","overview.weekDays.3":"Wed","overview.weekDays.4":"Thu","overview.weekDays.5":"Fri","overview.weekDays.6":"Sat","overview.inAppDictation.title":"In-app dictation","overview.inAppDictation.start":"Start recording","overview.inAppDictation.stop":"Stop recording","overview.inAppDictation.idle":"Tap to start recording","overview.inAppDictation.recording":"Recording…","overview.inAppDictation.processing":"Processing…","overview.androidMicBanner.title":"Microphone permission needed","overview.androidMicBanner.desc":"Grant microphone access to use in-app dictation and voice input.","overview.androidMicBanner.grant":"Request access","overview.androidMicBanner.openSettings":"Open settings","history.exportError":"Failed to export the recording. Please try again.","history.kicker":"HISTORY","history.title":"History","history.desc":"Locally stored transcripts.","history.filterAll":"All","history.summary":"{{total}} total · showing {{shown}}","history.searchPlaceholder":"Search transcripts… ({{shortcut}})","history.searchNoMatch":"No entries match “{{query}}”.","history.empty":"No history yet. Press {{trigger}} to record one.","history.loadFailed":"Failed to load history: {{err}}","history.retry":"Retry","history.clearFailed":"Failed to clear history: {{err}}","history.deleteFailed":"Failed to delete entry: {{err}}","history.copyFailed":"Failed to copy: {{err}}","history.playRecording":"Play recording","history.audioLoading":"Loading…","history.audioDecodeFailed":"Audio decode failed: {{err}}","history.exportRecording":"Export recording","history.exportFailed":"Failed to export: {{err}}","history.retranscribe":"Retranscribe","history.retranscribing":"Transcribing…","history.retranscribeFailed":"Retranscribe failed: {{err}}","history.rawLabel":"Raw","history.rawEmpty":"(empty)","history.selectHint":"Select an entry on the left to see details.","history.recorded":"Recorded {{duration}}","history.stepAsr":"Transcribe","history.multimodalPipeline":"Multimodal","history.stepAsrHint":"Time spent waiting for the transcript after key release. Streaming ASR transcribes while you speak, so this is usually much shorter than the recording.","history.stepPolish":"Polish","history.stepInsert":"Insert","history.chars":"{{count}} chars","history.vocabHits":"{{count}} vocab hits","history.inserted":"Inserted","history.pasteSent":"Paste sent","history.copiedFallback":"Copied (use {{shortcut}})","history.insertFailed":"Insert failed","history.confirmClear":"Delete all {{count}} history entries? This cannot be undone.","history.backToList":"Back to list","history.repolish.title":"Re-polish","history.repolish.hint":"Run polish again on the transcript above. Results are shown for this visit only and are not written back to the record. When the original style pack was deleted or the record predates style packs, retry uses the current style.","history.repolish.retry":"Retry with same style","history.repolish.retrying":"Retrying…","history.repolish.apply":"Apply","history.repolish.applying":"Polishing…","history.repolish.pickStyle":"Pick a style pack","history.repolish.noPacks":"No style packs available.","history.repolish.packsLoadFailed":"Failed to load style packs: {{err}}","history.repolish.failed":"Re-polish failed: {{err}}","history.repolish.timeout":"The current LLM provider did not respond within 30 seconds. Switch to a faster provider, or try again later — free model pools often queue.","history.repolish.resultTitle":"Result from {{name}}","history.repolish.retryResultTitle":"Retry result","history.repolish.empty":"(the model returned an empty result)","history.repolish.clear":"Clear results","vocabCard.title":"Remember this word?","vocabCard.accept":"Remember","vocabCard.reject":"Skip","insertFallbackCard.copy":"Copy","insertFallbackCard.copied":"Copied","insertFallbackCard.copyFailed":"Copy failed","insertFallbackCard.dismiss":"Dismiss","vocab.selectAllVisible":"Select current results","vocab.selectedCount":"{{count}} words selected","vocab.selectWord":"Select “{{phrase}}”","vocab.deleteSelected":"Delete selected ({{count}})","vocab.batchDeleteFailed":"Could not delete {{count}} words. They remain selected so you can retry.","vocab.kicker":"DICTIONARY","vocab.title":"Dictionary","vocab.desc":"Add terms or jargon to improve recognition accuracy.","vocab.sectionTitle":"Entries","vocab.placeholder":"Type a word, press Enter or click Add…","vocab.tip":"Mixed Chinese/English supported · numeric prefixes are matched literally · hits counted automatically","vocab.loadFailed":"Load failed: {{err}}","vocab.empty":"No entries yet. Add a new term or piece of jargon above so the model can prioritize it.","vocab.tipDisabled":"Click to disable this entry","vocab.tipEnabled":"Click to enable this entry","vocab.removeAria":"Remove","vocab.edit":"Edit","vocab.editTitle":"Edit Word","vocab.editSave":"Save","vocab.editEmpty":"Word cannot be empty.","vocab.filter.all":"All","vocab.filter.auto":"Auto-Added","vocab.filter.manual":"Manually Added","vocab.searchPlaceholder":"Search","vocab.searchEmpty":"No matching words.","vocab.newWord":"New Word","vocab.newWordTitle":"Add New Words","vocab.newWordDesc":"Type a word directly, or import preset templates in bulk.","vocab.newWordInputPlaceholder":"Type a word, press Enter to add…","vocab.newWordTemplates":"Preset Templates","vocab.newWordTemplateCount":"{{count}} words","vocab.newWordAddSelected":"Add Selected","vocab.learnedSection":"Auto-collected ({{count}})","vocab.removeAllLearned":"Remove all","vocab.corrections.title":"Correction rules","vocab.corrections.tip":"Fix common ASR mistakes. Supports {num} number wildcard.","vocab.corrections.patternPlaceholder":"Mistaken text, e.g. {num}粒","vocab.corrections.replacementPlaceholder":"Target text, e.g. {num}例","vocab.corrections.empty":"No correction rules yet.","vocab.corrections.invalid":"Only literal replacements or one {num} number wildcard are supported, for example {num}粒 → {num}例.","vocab.corrections.tipDisabled":"Click to disable this rule","vocab.corrections.tipEnabled":"Click to enable this rule","vocab.corrections.removeAria":"Remove correction rule","vocab.corrections.learnedBadge":"auto","vocab.corrections.learnedTip":"Collected automatically from your own edits. Delete it any time.","vocab.corrections.onlyLearned":"Only auto-collected ({{count}})","vocab.corrections.removeAllLearned":"Delete all auto-collected","vocab.corrections.suggestTitle":"Remember this correction?","vocab.corrections.suggestAccept":"Remember","vocab.corrections.suggestDismiss":"No thanks","vocab.presets.title":"Scenario presets","vocab.presets.tip":"Multi-select to apply in batch. Supports edit and create.","vocab.presets.create":"New preset","vocab.presets.apply":"Apply selected","vocab.presets.save":"Save preset","vocab.presets.edit":"Edit {{name}}","vocab.presets.newPreset":"New preset","vocab.presets.namePlaceholder":"Preset name","vocab.presets.wordsPlaceholder":"Terms (comma or newline separated)","style.kicker":"STYLE","style.title":"Output style","style.desc":"Choose the default output style for recording.","style.masterToggle":"Master switch","style.currentDefault":"Current default","style.ariaSetDefault":"Set as default","style.saveFailed":"Save failed: {{error}}","style.customPromptTitle":"Custom prompt","style.customPromptPlaceholder":"Optional. Appended to this style’s built-in system prompt.","style.customPromptHint":"Leave empty to preserve current behavior. After saving, it applies to both this style’s live polish path and repolish. Press Ctrl/Cmd+Enter to save as well.","style.customPromptSave":"Save prompt","style.customPromptDirty":"Unsaved","style.systemPromptMovedHint":"Full system prompt editing has moved to Settings -> Providers. This page now only controls which styles are enabled and which one is the default.","style.modes.raw.name":"Raw","style.modes.raw.desc":"Only adds punctuation and natural breaks — no rewriting or expansion.","style.modes.raw.sample":"Keeps spoken cadence; fillers like 'um' or 'you know' get dropped, but sentences stay intact.","style.modes.light.name":"Light polish","style.modes.light.desc":"Drops fillers, adds punctuation, and produces sendable natural prose.","style.modes.light.sample":"Makes the transcript flow well without sounding scripted — your tone and habits remain.","style.modes.structured.name":"Structured","style.modes.structured.desc":"Organize coding discussions, troubleshooting and product feedback with precise terminology.","style.modes.structured.sample":"1. Topic one\na. Point\nb. Point\n2. Topic two\na. Point\nb. Point","style.modes.formal.name":"Formal","style.modes.formal.desc":"Email and workplace tone — more complete, more professional.","style.modes.formal.sample":"Detects greetings/sign-offs in email contexts; avoids empty pleasantries.","style.pack.builtinTags.minimalEdits":"Minimal edits","style.pack.builtinTags.strongCorrection":"Strong corrections","style.pack.builtinTags.communication":"Communication","style.pack.builtinTags.natural":"Natural","style.pack.builtinTags.organized":"Organized","style.pack.builtinTags.workplaceCommunication":"Work communication","style.pack.builtinTags.aiCoding":"AI coding","style.pack.builtinTags.technicalStructure":"Technical structure","style.pack.newName":"Untitled style","style.pack.newDescription":"Briefly describe when to use this style.","style.pack.uploadIcon":"Upload an SVG icon for {{name}}","style.pack.resetIcon":"Restore default icon","style.pack.iconSaved":"Icon saved","style.pack.iconInvalid":"Choose a valid SVG icon with no external resources (up to 256 KB).","style.pack.iconSaveFailed":"Could not save the icon. Please try again.","style.pack.selectionListTitle":"Selection polish styles","style.pack.selectionListDesc":"For selected written text without ASR: grammar, clarity and formatting polish. Pick a style and prompt for it separately.","style.pack.dictationTab":"Recording / ASR styles","style.pack.selectionTab":"Selection polish","style.pack.current":"Current","style.pack.useForSelection":"Use for selection","style.pack.writtenPolish":"Written polish","style.pack.selectionPromptTitle":"Selection polish prompt (no ASR)","style.pack.selectionPromptHint":"For user-selected written text; not ASR output. Do not treat it as a transcript or answer its questions.","style.pack.selectionPromptEditorDesc":"Editing the selection polish prompt; input is written text the user actively selected, without ASR.","style.pack.dictationPromptEditorDesc":"Editing the recording / ASR style prompt; input is ASR transcript text after dictation.","style.pack.dictationPromptTitle":"Recording / ASR prompt","style.pack.dictationPromptHint":"For ASR text after dictation; write spoken-language cleanup, ASR typo fixes and term restoration rules here.","style.pack.selectionPromptFallback":"No written polish prompt configured yet; a safe default will be used.","style.pack.selectionActivated":"Set \"{{name}}\" for selection polish.","style.pack.selectionActivateFailed":"Failed to switch selection polish style: {{err}}","style.pack.selectionChars":"{{count}} chars","style.pack.kicker":"STYLE PACKS","style.pack.title":"Style Packs","style.pack.desc":"Manage local style packs.","style.pack.marketplaceBtn":"Marketplace","style.pack.loadFailed":"Failed to load style packs: {{err}}","style.pack.importZip":"Import ZIP","style.pack.exportZip":"Export ZIP","style.pack.exportShort":"Export","style.pack.publishMarketplace":"Publish to Marketplace","style.pack.updateMarketplace":"Update Marketplace version","style.pack.publishDisabledHint":"Configure your GitHub login in Settings → Marketplace first","style.pack.publishSuccess":"Published — pending review on marketplace","style.pack.publishFailed":"Publish failed: {{err}}","style.pack.publishBuiltinRejected":"Built-in packs cannot be published. Clone first via edit.","style.pack.builtin":"Built-in","style.pack.imported":"Imported","style.pack.active":"Active","style.pack.activate":"Activate","style.pack.edit":"Edit","style.pack.closeEditor":"Close","style.pack.unsaved":"Unsaved","style.pack.listTitle":"Local Packs","style.pack.listDesc":"Browse and switch packs.","style.pack.listCount":"{{count}} packs","style.pack.addPackTileTitle":"New Pack","style.pack.addPackTileHint":"Start from a blank template.","style.pack.createSuccess":"New pack created.","style.pack.createFailed":"Failed to create pack: {{err}}","style.pack.save":"Save","style.pack.revert":"Revert","style.pack.saveSuccess":"Style pack saved.","style.pack.saveFailed":"Failed to save style pack: {{err}}","style.pack.activateSuccess":"Set \"{{name}}\" as current.","style.pack.activateFailed":"Failed to set current style pack: {{err}}","style.pack.importSuccess":"Imported \"{{name}}\".","style.pack.importFailed":"Failed to import ZIP: {{err}}","style.pack.exportSuccess":"Exported to {{path}}","style.pack.exportFailed":"Failed to export ZIP: {{err}}","style.pack.exportDirtyFirst":"Save this pack before exporting ZIP.","style.pack.resetBuiltin":"Reset","style.pack.resetSuccess":"Reset \"{{name}}\".","style.pack.resetFailed":"Failed to reset pack: {{err}}","style.pack.deleteImported":"Delete","style.pack.deleteConfirm":"Delete \"{{name}}\"? This cannot be undone.","style.pack.deleteSuccess":"Deleted \"{{name}}\".","style.pack.deleteFailed":"Failed to delete pack: {{err}}","style.pack.summaryCurrentEmpty":"No pack selected yet","style.pack.editorTitle":"Edit Pack","style.pack.editorDesc":"Edit this pack.","style.pack.metaTitle":"Installation Info","style.pack.metaSource":"Source","style.pack.metaBaseMode":"Base Mode","style.pack.metaUpdatedAt":"Updated","style.pack.fieldName":"Name","style.pack.fieldAuthor":"Author","style.pack.fieldAuthorPlaceholder":"Optional source label","style.pack.fieldVersion":"Version","style.pack.fieldTags":"Tags","style.pack.fieldTagsPlaceholder":"Comma-separated tags, e.g. community, voiceover, formal","style.pack.fieldDescription":"Description","style.pack.fieldModel":"Recommended Model (Metadata)","style.pack.fieldModelPlaceholder":"Optional, e.g. gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"Metadata only. Does not switch model.","style.pack.fieldCompatibility":"Compatible App Version","style.pack.fieldCompatibilityPlaceholder":"Optional, e.g. >=1.3.0","style.pack.fullPromptTitle":"System Prompt","style.pack.fullPromptHint":"The prompt owned by this pack.","style.pack.promptChars":"{{count}} chars","style.pack.runtimeTitle":"OpenLess Runtime Directives","style.pack.runtimeDesc":"Read-only runtime helpers.","style.pack.runtimeContextTitle":"Context premise","style.pack.runtimeContextDesc":"From language and app context","style.pack.runtimeContextEmpty":"Not added in the current preview.","style.pack.runtimeHotwordTitle":"Hotword block","style.pack.runtimeHotwordDesc":"From enabled hotwords","style.pack.runtimeHotwordEmpty":"Not added in the current preview.","style.pack.runtimeHistoryTitle":"Multi-turn history guardrail","style.pack.runtimeHistoryDesc":"Only for live multi-turn polish","style.pack.runtimeHistoryEmpty":"Only added when prior turns exist.","style.pack.runtimeActive":"Active","style.pack.runtimeInactive":"Inactive","style.pack.runtimePreviewFailed":"Failed to build runtime preview: {{err}}","style.pack.runtimePreviewOmittedFrontApp":"Preview omits the front-app label.","style.pack.examplesTitle":"Effect Examples","style.pack.examplesDesc":"Exported with the pack.","style.pack.addExample":"Add Example","style.pack.examplesEmpty":"No examples yet.","style.pack.exampleTitlePlaceholder":"Example {{index}} title","style.pack.exampleInput":"Input","style.pack.exampleOutput":"Output","style.pack.examplesCount":"{{count}} examples","style.pack.discardCloseConfirm":"Discard unsaved changes and close the editor?","style.pack.discardSwitchConfirm":"Discard unsaved changes and switch to \"{{name}}\"?","style.pack.derivativeBadge":"Derived from @{{login}}","translation.searchLanguages":"Search languages…","translation.noMatchingLanguages":"No matching languages","translation.selectedLanguages":"{{count}} languages selected","translation.languageSupportHint":"Available speech languages depend on your provider. Translation targets are independent of the app language.","translation.kicker":"TRANSLATION","translation.title":"Translation","translation.desc":"Auto-translate recordings into a target language before insertion.","translation.statusEnabled":"Enabled","translation.statusDisabled":"Disabled","translation.working.title":"Working languages","translation.working.desc":"Select languages you use regularly to improve polish and translation.","translation.target.title":"Translation target language","translation.target.desc":"Press Shift during recording to trigger translation. \"Disabled\" makes Shift a no-op.","translation.target.disabled":"Disabled (Shift does nothing)","translation.target.sameAsWorking":"The target matches your only working language, so translation cannot take effect — Shift will just run a normal polish. Pick a different target, or add another working language above.","translation.style.title":"Translation style","translation.style.desc":"Automatically inherits the active style pack from the Style page.","translation.style.unavailable":"Unavailable","translation.save.workingFailed":"Failed to save working languages. Please try again.","translation.save.targetFailed":"Failed to save translation target. Please try again.","translation.save.hotkeyRegisterFailed":"Failed to register the translation shortcut. The preference was not saved.","translation.save.hotkeySaveFailed":"Failed to save the translation shortcut. Please try again.","translation.howto.title":"How to use","translation.howto.step1":"Place cursor in any text field.","translation.howto.step2":"Press {{trigger}} to start recording.","translation.howto.step3":"Press {{shortcut}} once during recording to activate translation.","translation.howto.step4":"Press {{trigger}} again to stop.","translation.howto.step5":"Translated text is inserted at the cursor.","translation.howto.indicatorTitle":"How to confirm translation mode is on","translation.howto.indicatorDesc":"A blue \"Translating\" indicator appears at the bottom of the screen after pressing Shift.","translation.howto.fallbackTitle":"Safety fallbacks","translation.howto.fallbackDesc":"If translation fails, the raw transcript is inserted instead.","selectionAsk.title":"Selection Ask","selectionAsk.desc":"Select text and ask questions by voice, with multi-turn follow-ups.","selectionAsk.shortcutSettings":"Shortcut settings","selectionAsk.guide.openTitle":"Open the panel","selectionAsk.guide.openDesc":"Press {{hotkey}} to start a conversation.","selectionAsk.guide.unsetDesc":"Assign a Selection Ask shortcut in Shortcut settings first.","selectionAsk.guide.selectTitle":"Select something to explore","selectionAsk.guide.askTitle":"Say your question","selectionAsk.guide.askDesc":"Press {{recordHotkey}} to record, then press again to submit.","selectionAsk.guide.followup":"Use the recording shortcut again to ask a follow-up.","selectionAsk.guide.dismiss":"Close the panel and end this conversation","selectionAsk.hotkey.title":"Hotkey to open the panel","selectionAsk.save.historySaveFailed":"Failed to save the Q&A history setting. Please try again.","selectionAsk.history.title":"Save history","selectionAsk.history.desc":"Save Q&A records locally when enabled. Off by default.","selectionAsk.howto.title":"How to use","selectionAsk.howto.step2":"Select text in any app.","settings.selectionWorkspace.title":"Selection Assistant","settings.selectionWorkspace.hint":"Select text, then use one shortcut: polish when voice edit is off; hold and speak when voice edit is on, then choose Ask or Edit.","settings.selectionWorkspace.polishHotkey":"Selection assistant shortcut","settings.selectionWorkspace.polishHotkeyDesc":"Polishes directly when voice edit is off; hold to speak when voice edit is on (recording follows global settings).","settings.selectionWorkspace.polishDelivery":"Result handling","settings.selectionWorkspace.voiceDeliveryDesc":"After voice edit: replace selection directly, or preview in Ask panel then confirm.","settings.selectionWorkspace.voiceEnable":"Voice edit","settings.selectionWorkspace.voiceEnableDesc":"Uses the same shortcut above; recording follows global settings (current: {{recordingLabel}}).","settings.selectionWorkspace.autoIntent":"Auto-classify intent","settings.selectionWorkspace.autoIntentDesc":"When on, the configured model classifies question vs edit by default; falls back to question-word heuristics if the model fails.","settings.selectionWorkspace.editKeywords":"Extra question cues","settings.selectionWorkspace.editKeywordsDesc":"Only when auto-classify is off; one cue per line forces Ask; otherwise use ? / question-word heuristics.","settings.selectionPolish.title":"Selection Polish","settings.selectionPolish.hotkey":"Trigger shortcut","settings.selectionPolish.hotkeyDesc":"Recorded shortcuts take effect immediately; conflicts with recording, Q&A or other global shortcuts are rejected.","settings.selectionPolish.delivery":"Result handling","settings.selectionPolish.hint":"Trigger after selecting any text. It does not need a microphone or ASR, and uses the current style pack with its dedicated selection prompt.","settings.selectionPolish.directReplace":"Replace directly","settings.selectionPolish.directReplaceHint":"Safely replaces the original selection after the model finishes.","settings.selectionPolish.previewConfirm":"Preview & confirm","settings.selectionPolish.previewConfirmHint":"Review the result in an editable window, then confirm to replace the original selection.","settings.kicker":"SETTINGS","settings.title":"Settings","settings.desc":"Recording, providers, shortcuts, and permissions.","settings.network.title":"Network","settings.network.useSystemProxyLabel":"Use system proxy","settings.network.useSystemProxyDesc":"When on, requests follow the system proxy. When off, all requests connect directly (usually lower latency for domestic services), but overseas services such as GitHub sign-in and updates may fail. Realtime voice streams and Less Computer are unaffected.","settings.dataStorage.title":"Data storage","settings.dataStorage.desc":"Conversation history and context kept on this device.","settings.dataStorage.cursorContextLabel":"Cursor context (experimental)","settings.dataStorage.cursorContextDesc":"While polishing, read the text around your cursor in the document you are writing, so the model can tell homophones, proper nouns and pronouns apart. When on, that text is sent to your configured LLM provider with the request; when off, nothing is read at all. Password fields, Secure Input, password managers and terminals are never read. macOS only.","settings.codingConsole.title":"Claude Console","settings.codingConsole.desc":"Detect your local Claude Code and MCP (computer use) status, then run Claude headlessly behind guardrails and watch the streamed output and cost.","settings.codingConsole.guardNote":"Reversible actions are allowed by default; high-risk commands (rm -rf, sudo, force push) are blocked; if the working dir is a git repo, a snapshot is taken before each run for rollback.","settings.codingConsole.status":"Status","settings.codingConsole.detect":"Detect","settings.codingConsole.detecting":"Detecting…","settings.codingConsole.installed":"Claude detected","settings.codingConsole.notInstalled":"claude not found","settings.codingConsole.notInstalledHint":"Install Claude Code first (see docs.anthropic.com/claude-code), or enter the full path to its executable below.","settings.codingConsole.mcpServers":"{{count}} MCP server(s) configured","settings.codingConsole.computerUsePresent":"Desktop-control (computer use) MCP configured","settings.codingConsole.computerUseAbsent":"No desktop-control MCP (light actions like copy/paste work via Bash — not required)","settings.codingConsole.exePath":"Executable","settings.codingConsole.workdir":"Working directory","settings.codingConsole.workdirDesc":"Optional. Claude runs inside this dir; a git repo enables a pre-run snapshot for rollback.","settings.codingConsole.workdirPlaceholder":"Empty = run in a temp dir","settings.codingConsole.permissionMode":"Permission mode","settings.codingConsole.mode.acceptEdits":"Allow (reversible)","settings.codingConsole.mode.plan":"Read-only / plan","settings.codingConsole.mode.default":"Default (ask each)","settings.codingConsole.mode.bypassPermissions":"Full bypass (risky)","settings.codingConsole.promptPlaceholder":"Ask Claude to do something, e.g. list files in the current directory","settings.codingConsole.run":"Run","settings.codingConsole.running":"Running…","settings.codingConsole.cancel":"Cancel","settings.codingConsole.clear":"Clear","settings.codingConsole.riskWarn":"High-risk intent detected: {{reason}}. The guardrail blocks high-risk commands at execution time.","settings.codingConsole.toolUse":"tool {{name}}","settings.codingConsole.done":"Done","settings.codingConsole.doneCost":"Done · cost ${{cost}}","settings.codingConsole.cancelled":"Cancelled","settings.codingConsole.outputPlaceholder":"Output streams here…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"Hold a key, speak, and your selected agent operates your computer. macOS only.","settings.codingAgent.enable":"Enable Less Computer","settings.codingAgent.comingSoonNote":"Config is saved now; hotkey triggering and the execution flow land in a later version.","settings.codingAgent.hotkeyHint":"When enabled, hold the shortcut to talk; release it and the selected agent shows the result in the capsule.","settings.codingAgent.voiceHotkey":"Hold-to-talk key","settings.codingAgent.voiceHotkeyDesc":"Hold to talk, release to run. Supports Ctrl/Option/Fn single keys. See the Advanced settings page for what it does.","settings.codingAgent.provider":"Agent backend","settings.codingAgent.opencodeReady":"OpenCode v{{version}} detected.","settings.codingAgent.opencodeMissing":"opencode command not found. Install it (npm i -g opencode-ai) and sign in with opencode auth login before use.","settings.codingAgent.cliReady":"Detected {{name}} v{{version}}.","settings.codingAgent.cliMissing":"{{name}} command not found. Install and sign in first, or enter its absolute path under Executable below.","settings.codingAgent.sandboxGuardHint":"This backend only offers coarse sandbox levels, not a per-command high-risk list: when it hits a limit it reports the failure as-is instead of showing an \"approve this command\" card.","settings.codingAgent.codexModelHint":"Enter a Codex model name (e.g. gpt-5); leave empty to use the setting in ~/.codex/config.toml.","settings.codingAgent.codexBudgetHint":"Codex has no per-run USD budget cap; charges depend on your configured provider.","settings.codingAgent.codexMode.plan":"Read-only / plan","settings.codingAgent.codexMode.workspaceWrite":"Allow workspace writes","settings.codingAgent.codexModelPlaceholder":"Empty = Codex default","settings.codingAgent.dshModelHint":"dsh's headless profile has no model switch: the model is decided by dsh's own profile and cannot be changed here.","settings.codingAgent.panelHotkey":"Panel hotkey (voice agent)","settings.codingAgent.panelHotkeyDesc":"Record voice → ASR → Claude → streamed into a panel. Default Cmd/Ctrl+Shift+Enter.","settings.codingAgent.quickHotkey":"Quick-take hotkey","settings.codingAgent.quickHotkeyDesc":"Take selected text → Claude → result back at the cursor. No panel, faster.","settings.codingAgent.model":"Model","settings.codingAgent.modelPlaceholder":"Default: sonnet","settings.codingAgent.modelDefault":"Default (auto sonnet)","settings.codingAgent.modelHint":"Haiku = fastest · Sonnet = balanced · Opus = strongest","settings.codingAgent.opencodeModelDefault":"Use OpenCode default model","settings.codingAgent.opencodeModelHint":"Automatically fetches provider/model choices available to the current OpenCode account and saves your selection immediately.","settings.codingAgent.opencodeModelsRefresh":"Refresh models","settings.codingAgent.opencodeModelsRefreshing":"Fetching OpenCode models…","settings.codingAgent.opencodeModelsLoaded":"Fetched {{count}} models.","settings.codingAgent.opencodeModelsEmpty":"No models were returned. Sign in to OpenCode or configure a model provider first.","settings.codingAgent.opencodeModelsError":"Failed to fetch models: {{message}}","settings.codingAgent.exe":"Executable path","settings.codingAgent.openPanel":"Text test","settings.codingAgent.openPanelHint":"Open the Less Computer panel and verify the current agent and model with text.","settings.codingAgent.openPanelAction":"Open Less Computer","settings.debug.cursorLabel":"Cursor","settings.debug.title":"Debug tools","settings.debug.desc":"For troubleshooting recognition issues; off by default.","settings.debug.cursorProbeLabel":"Cursor context probe","settings.debug.cursorProbeDesc":"Click, then switch to the target app and click into a text field before the countdown ends. The probe reads the text around your cursor there, so you can see which apps are readable and which the safety gate blocks. One read, sent to no provider.","settings.debug.cursorProbeBtn":"Probe (in 5s)","settings.debug.cursorProbeCountdown":"Reading in {{n}}s…","settings.marketplace.title":"Marketplace","settings.marketplace.desc":"Upload identity for the style marketplace. Browse and install styles on the Styles page.","settings.marketplace.github.signIn":"Sign in with GitHub","settings.marketplace.github.signedIn":"Signed in with GitHub","settings.marketplace.github.signedOut":"Sign in to upload styles and like packs.","settings.marketplace.github.signOut":"Sign out","settings.marketplace.github.starting":"Starting sign-in…","settings.marketplace.github.codeHint":"Enter this code on the GitHub page that just opened:","settings.marketplace.github.openGithub":"Open GitHub","settings.marketplace.github.waiting":"GitHub opened — you’ll be signed in once you authorize…","settings.marketplace.github.failed":"Sign-in failed, please retry","settings.recording.title":"Recording & input","settings.recording.desc":"Global recording hotkey and trigger mode.","settings.recording.hotkeyLabel":"Recording hotkey","settings.recording.hotkeyDescAcc":"Press to capture voice globally (requires Accessibility permission).","settings.recording.hotkeyDescNoAcc":"Press to capture voice globally.","settings.recording.modeLabel":"Trigger mode","settings.recording.modeDesc":"Toggle = tap once to start, again to stop. Push-to-talk = hold to record.","settings.recording.modeToggle":"Toggle","settings.recording.modeHold":"Push-to-talk","settings.recording.modeAuto":"Auto","settings.recording.silenceAutoStopLabel":"Auto-stop after silence","settings.recording.silenceAutoStopDesc":"Toggle only. After speech is detected, recording stops and submits automatically once silence lasts the chosen duration. Off by default; a second hotkey press and Esc still work.","settings.recording.silenceAutoStopSecondsLabel":"Silence duration","settings.recording.silenceAutoStopSecondsValue":"{{value}}s","settings.recording.migrationNoticeTitle":"Default recording mode is now Toggle","settings.recording.migrationNoticeDesc":"This update changes the default; if you prefer push-to-talk, switch it back here.","settings.recording.microphoneLabel":"Preferred microphone","settings.recording.microphoneDesc":"Choose the preferred input device; falls back to system default when unavailable.","settings.recording.microphoneDefault":"System default microphone","settings.recording.microphoneDefaultDesc":"Use the system default input device","settings.recording.microphoneSystemDefault":"system default","settings.recording.microphoneUnavailable":"unavailable","settings.recording.microphoneLoadError":"Failed to load microphones: {{message}}","settings.recording.microphoneDialogTitle":"Microphone","settings.recording.microphoneDialogDesc":"Choose a microphone that can pick up your voice.","settings.recording.microphoneMonitorError":"Failed to monitor input level: {{message}}","settings.recording.capsuleLabel":"Recording capsule","settings.recording.capsuleDesc":"Show a translucent capsule at the bottom of the screen while recording.","settings.recording.capsuleStyleTypeless":"Typeless compact style","settings.recording.capsuleStyleLabel":"Capsule style","settings.recording.capsuleStyleSiri":"Shimmer Siri style","settings.recording.capsuleStyleClassic":"OpenLess default style","settings.recording.muteDuringRecordingLabel":"Mute while recording","settings.recording.muteDuringRecordingDesc":"Temporarily mute system output during voice input to avoid speaker echo.","settings.recording.audioCueLabel":"Recording start sound","settings.recording.audioCueDesc":"Play a short synthesized chime when you press the hotkey to start recording. Plays even when the capsule is hidden.","settings.recording.audioCuePreview":"Preview","settings.recording.insertGroupTitle":"Insertion & clipboard","settings.recording.restoreClipboardLabel":"Restore clipboard after insert","settings.recording.restoreClipboardDesc":"Restore your original clipboard after a successful paste (Windows / Linux only).","settings.recording.pasteShortcutLabel":"Simulated paste shortcut","settings.recording.pasteShortcutDesc":"Which paste combo to simulate when inserting; some terminals need Ctrl+Shift+V (Windows / Linux only).","settings.recording.pasteShortcutCtrlV":"Ctrl+V (default / most apps)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V (kitty / alacritty / wezterm / most terminals)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert (xterm / urxvt)","settings.recording.comboRecordLabel":"Record shortcut","settings.recording.comboRecordDesc":"Click, then press your desired key combination (e.g. ⌘⇧D). Supports Toggle and Push-to-talk modes.","settings.recording.comboRecordBtn":"Record shortcut","settings.recording.comboResetBtn":"Reset","settings.recording.comboMenuToggle":"More options","settings.recording.comboDisableHint":"Core hotkey cannot be disabled — recording needs a hotkey","settings.recording.comboRecordHint":"Press your shortcut combination…","settings.recording.comboNeedKey":"Use a key combo (e.g. ⌘⇧J); a lone modifier will not work","settings.recording.comboRecorded":"Recorded","settings.recording.comboClear":"Clear","settings.recording.comboConflict":"This shortcut combination is not available","settings.recording.allowNonTsfFallbackLabel":"Allow non-TSF fallback","settings.recording.allowNonTsfFallbackDesc":"Windows: when TSF insertion fails, use paced Unicode SendInput; if that still fails, copy the text to the clipboard.","settings.recording.windowsInsertionModeLabel":"Windows insertion method","settings.recording.windowsInsertionModeDesc":"How dictation output is inserted at the cursor. Clipboard paste uses the simulated paste shortcut above and preserves line breaks.","settings.recording.windowsInsertionModeTsf":"TSF IME (default)","settings.recording.windowsInsertionModeSendInput":"SendInput keystroke simulation","settings.recording.windowsInsertionModePaste":"Clipboard paste (Ctrl+V, etc.)","settings.recording.macosNewlineModeLabel":"Line breaks","settings.recording.macosNewlineModeDesc":"Auto uses Line Feed (U+000A / Ctrl+J) in known terminal apps and Shift+Return elsewhere. Plain Return sends the message.","settings.recording.macosNewlineModeAuto":"Auto (Line Feed in terminals)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return (newline in chat)","settings.recording.macosNewlineModeLineFeed":"Line Feed (terminal CLI / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return (split into messages)","settings.recording.windowsSendInputNewlineModeLabel":"SendInput newline simulation","settings.recording.windowsSendInputNewlineModeDesc":"How SendInput turns line breaks into keys. Use Shift+Enter for chat boxes; Enter for Notepad / VS Code and most editors.","settings.recording.windowsSendInputNewlineModeEnter":"Enter (most editors)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter (chat input boxes)","settings.recording.windowsSendInputNewlineModeCrLf":"CR+LF Unicode","settings.recording.windowsShowOpenlessInKeyboardListLabel":"Show OpenLess in keyboard list","settings.recording.windowsShowOpenlessInKeyboardListDesc":"When off, Win+Space will not cycle to OpenLess. SendInput and clipboard-paste insertion are unaffected. Turn this back on to restore the entry.","settings.recording.windowsShowOpenlessInKeyboardListError":"Could not update the keyboard list: the system rejected changing the OpenLess language profile.","settings.recording.historyGroupTitle":"History & context","settings.recording.historyRetentionLabel":"History retention (days)","settings.recording.historyRetentionDesc":"Entries older than this are pruned on new writes; 0 = no time-based pruning.","settings.recording.historyMaxEntriesLabel":"Max history entries","settings.recording.historyMaxEntriesDesc":"Max sessions retained locally. Blank = 200. Range 5–200.","settings.recording.polishContextWindowLabel":"Polish context window (minutes)","settings.recording.polishContextWindowDesc":"Use the last N minutes of polished transcripts as multi-turn context; 0 = disabled.","settings.recording.recordAudioForDebugLabel":"Keep raw recording (debug)","settings.recording.recordAudioForDebugDesc":"Save raw microphone audio as wav for diagnosing recognition issues.","settings.recording.audioRecordingMaxEntriesLabel":"Max raw recordings","settings.recording.audioRecordingMaxEntriesDesc":"Max wav files retained locally. Blank = 200.","settings.recording.startupGroupTitle":"Startup","settings.recording.startMinimizedLabel":"Start minimized (no main window)","settings.recording.startMinimizedDesc":"No main window on any launch path — menu bar / tray only.","settings.recording.autoUpdateCheckLabel":"Auto-check for updates","settings.recording.autoUpdateCheckDesc":"Check for updates on launch and every 60 minutes.","settings.recording.marketplaceGroupTitle":"Style Pack Marketplace","settings.recording.marketplaceBaseUrlLabel":"Backend URL","settings.recording.marketplaceBaseUrlDesc":"Marketplace backend URL. Blank uses the default.","settings.recording.marketplaceDevLoginLabel":"GitHub login (upload identity)","settings.recording.marketplaceDevLoginDesc":"Identifies the uploader. Blank disables upload and likes.","settings.recording.startupAtBoot":"Launch at login","settings.recording.startupAtBootDesc":"Start OpenLess automatically when you sign in.","settings.recording.startupAtBootError":"Failed to toggle launch at login: {{message}}","settings.channels.backToList":"Back to channels","settings.channels.done":"Done","settings.channels.llmTitle":"Text processing channels","settings.channels.asrTitle":"Speech recognition channels","settings.channels.current":"Currently used","settings.channels.enabled":"Enabled","settings.channels.disabled":"Disabled","settings.channels.enabledFor":"Enable {{name}}","settings.channels.modelNotSet":"No model set explicitly","settings.channels.localModelManaged":"Model managed by the system or Local models","settings.channels.lastCheck":"Last check","settings.channels.verifying":"Checking…","settings.channels.notVerified":"Not checked yet","settings.channels.passed":"Check passed","settings.channels.failed":"Check failed · {{reason}}","settings.channels.elapsed":"Took {{ms}} ms","settings.channels.staleResult":"Result is over 24 hours old","settings.channels.connectionTitle":"Service connection","settings.channels.modelTitle":"Model settings","settings.channels.modelHint":"Enter a model name directly, or fetch and select a model from your provider.","settings.channels.availableModels":"Available models","settings.channels.validationTitle":"Connection check","settings.channels.validationHint":"Manually send a real request to check this configuration. It may use service credits. Saving settings does not run a check.","settings.channels.autoSaveHint":"Changes save automatically. Once configured, you can check the connection manually.","settings.channels.nameHint":"This name distinguishes channels from the same provider. It does not affect the model or connection.","settings.channels.errModel":"Model","settings.channels.verify":"Verify","settings.channels.verifyHint":"Makes one real API call to check this channel works right now","settings.channels.errTimeout":"timeout","settings.channels.errNetwork":"network","settings.channels.errEndpoint":"endpoint","settings.channels.errGeneric":"failed","settings.channels.dragHint":"Drag to change priority","settings.channels.orderHint":"Requests use the first enabled channel. Drag to reorder; disabled channels move to the bottom.","settings.channels.empty":"No channels yet. Choose \"Add channel\" to connect your first service.","settings.channels.add":"Add channel","settings.channels.edit":"Edit","settings.channels.createTitle":"Add channel","settings.channels.editTitle":"Edit channel","settings.channels.providerLabel":"Provider","settings.channels.nameLabel":"Channel name (optional)","settings.channels.namePlaceholder":"e.g. SiliconFlow — main key","settings.channels.create":"Create","settings.channels.delete":"Delete channel","settings.channels.deleteConfirm":"Deleting also clears the keys stored for this channel.","settings.channels.confirmDelete":"Delete","settings.channels.justNow":"just now","settings.channels.minutesAgo":"{{count}}m ago","settings.channels.hoursAgo":"{{count}}h ago","settings.channels.daysAgo":"{{count}}d ago","settings.channels.localEngineModelHint":"Download and switch local models under AI services & models → Local models.","settings.providers.localEngineNoCredentials":"Local engines need no API key or endpoint.","settings.providers.localModelLabel":"Local model","settings.providers.localModelEmpty":"No local model downloaded yet","settings.providers.appleSpeechLocalNote":"Apple Speech uses the system built-in engine — no model selection needed.","settings.providers.localEngineNote":"Downloaded local models are selectable directly in the dropdown above; download and manage more under Local models.","settings.providers.localTag":"Local","settings.providers.llmTitle":"LLM (polishing)","settings.providers.llmDesc":"OpenAI-compatible protocol. Multiple vendors supported.","settings.providers.providerLabel":"Provider","settings.providers.llmProviderDesc":"Selecting a preset auto-fills the default Base URL.","settings.providers.credentialStorageNotice":"Credentials are stored in the OS credential vault.","settings.providers.codexOAuthNotice":"Codex OAuth uses the local Codex login state (~/.codex/auth.json). OpenLess does not store an API key or Base URL for this provider.","settings.providers.asrProviderDesc":"Switching providers automatically loads the matching credentials.","settings.providers.asrTitle":"ASR (transcription)","settings.providers.asrDesc":"Used to turn recorded speech into text.","settings.providers.omniTitle":"Multimodal model","settings.providers.omniDesc":"One model that turns audio + prompt into the final text directly (experimental pipeline).","settings.providers.pipelineModeLabel":"Pipeline mode","settings.providers.pipelineModeHint":"Traditional = ASR + LLM two-stage. Multimodal = a single audio-capable model in one pass.","settings.providers.pipelineModeTraditional":"Traditional","settings.providers.pipelineModeMultimodal":"Multimodal","settings.providers.pipelineIsolationNotice":"The two modes keep fully separate credentials. Switching modes keeps the other set stored but unused; switching back restores it.","settings.providers.presets.ark":"ARK (Volcengine Ark)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"SiliconFlow","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"Xiaomi MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter (free models)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"Alibaba Cloud Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax (M3)","settings.providers.presets.stepfun":"StepFun","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"Tencent Cloud TokenHub","settings.providers.presets.customChatCompletions":"Custom · Chat Completions","settings.providers.presets.customResponses":"Custom · Responses","settings.providers.presets.customMessages":"Custom · Messages","settings.providers.presets.custom":"Custom","settings.providers.presets.asrVolcengine":"Volcengine bigasr","settings.providers.presets.asrBailian":"Alibaba Bailian realtime ASR","settings.providers.presets.asrBailianQwen3":"Bailian Qwen3 Realtime ASR","settings.providers.presets.asrBailianFunAsrFlash":"Bailian Fun-ASR-Flash (recorded file)","settings.providers.presets.asrSiliconflow":"SiliconFlow SenseVoice","settings.providers.presets.asrStepfun":"StepFun StepAudio ASR","settings.providers.presets.asrZhipu":"Zhipu GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper (compatible)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"Custom OpenAI-compatible","settings.providers.presets.asrXiaomiMimo":"Xiaomi MiMo ASR","settings.providers.presets.asrIflytek":"iFlytek Realtime ASR","settings.providers.presets.asrTencentCloud":"Tencent Cloud Hunyuan Realtime ASR","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"Local sherpa-onnx (Experimental)","settings.providers.presets.asrFoundryLocalWhisper":"Local Whisper (Foundry Local)","settings.providers.presets.asrLocalWhisper":"Local Whisper (batch)","settings.providers.presets.asrLocalQwen3":"Local Qwen3-ASR","settings.providers.presets.asrLocalQwen3Mlx":"Local Qwen3-ASR (MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"Local Qwen3-ASR (C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple Speech (macOS)","settings.providers.presets.omniOpenai":"OpenAI (audio-capable)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"Alibaba DashScope Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs uploads recorded audio to the configured endpoint for batch transcription.","settings.providers.zenmuxVocabularyNote":"ZenMux uses a JSON transcription protocol and does not receive dictionary hotwords (prompt/hotwords); the dictionary still feeds the polish step but does not bias speech recognition.","settings.providers.asrAdvancedNote":"Advanced options below only affect the Custom OpenAI-compatible and ZenMux presets; other named provider presets keep their built-in behavior.","settings.providers.asrAdvancedVerboseJsonLabel":"Segment metrics (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"Requests segment metrics for hallucination filtering when the server supports it; keep off for self-hosted servers that do not.","settings.providers.asrAdvancedChunkLabel":"Chunk duration (ms)","settings.providers.asrAdvancedChunkHint":"0 = no chunking, send the whole clip at once. Chunked requests suit long recordings or servers with per-request duration limits.","settings.providers.asrAdvancedEnableItnLabel":"Number normalization (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"Normalizes spoken numbers/units into Arabic numerals (e.g. “twenty twenty-six” → “2026”). Turn off to keep the raw text.","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"API Key","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"Auth mode","settings.providers.volcengineAuthModeAppIdToken":"Legacy app (APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"API Key (new console)","settings.providers.volcengineMappingNote":"Secret Key is not required right now. Resource ID defaults to volc.seedasr.sauc.duration.","settings.providers.volcengineApiKeyNote":"Authenticate with an API Key created in the new speech console — no APP ID needed. Create it under API Keys management: console.volcengine.com/speech/new/setting/apikeys. Resource ID defaults to volc.seedasr.sauc.duration.","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"API Key","settings.providers.xfyunNote":"Get AppID and API Key from the iFlytek Open Platform \"Realtime ASR\" service page. Audio is 16 kHz / 16-bit / mono PCM; the standard API has no hotword parameter (configure personalized hotwords in the iFlytek console), and the language defaults to Mandarin Chinese.","settings.providers.tencentCloudAppIdLabel":"Tencent Cloud AppID","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"Uses Tencent Cloud Speech Recognition API credentials. The default Hy-ASR-3.0-preview supports Chinese, English, and 20 dialects; Preview accepts only mono 16 kHz PCM up to 60 seconds and does not yet support context or hotword boosting.","settings.providers.tencentTokenHubNote":"Only online language models are listed. Some models always use reasoning; turning reasoning off keeps that model's fixed behavior.","settings.providers.localAsrActiveNotice":"Local ASR ({{name}}) is currently active. Switch or disable it from the Advanced tab.","settings.providers.localAsrTakeoverHint":"Once \"{{name}}\" is enabled, the ASR provider will be taken over.","settings.providers.asrProviderTakenOver":"A local engine is active. Pick another provider in the dropdown above to switch (the local engine stops automatically); manage local models under Services → Local models.","settings.providers.localAsrHint":"Runs on this machine, no API key needed. Download the model from HuggingFace.","settings.providers.foundryLocalAsrHint":"Runs on this device, no ASR API key needed. First use downloads runtime components and model.","settings.providers.localAsrPerformanceWarning":"Local inference is slower than cloud ASR with potentially lower Chinese accuracy. Best for offline or privacy-sensitive use.","settings.providers.localAsrReady":"{{model}} downloaded","settings.providers.localAsrNotReady":"{{model}} not downloaded","settings.providers.localAsrGoDownload":"Open Models page to download","settings.providers.localAsrManage":"Open Models page","settings.providers.localAsrDownloadedTitle":"Downloaded models","settings.providers.localAsrDelete":"Delete","settings.providers.fillDefault":"Fill default value","settings.providers.readFailed":"Read failed","settings.providers.apiKeyLabel":"API Key","settings.providers.baseUrlLabel":"Base URL","settings.providers.modelLabel":"Model","settings.providers.customModelLabel":"Custom model…","settings.providers.presetListLabel":"Back to presets","settings.providers.searchModels":"Search models…","settings.providers.noMatchingModels":"No matching models","settings.providers.orcarouterCatalogHint":"Loaded from OrcaRouter /models. Select a catalog model; manual model IDs are disabled for this provider.","settings.providers.orcarouterAsrCatalogHint":"Loaded from OrcaRouter /models and limited to Gemini models compatible with audio input. Manual model IDs are disabled.","settings.providers.temperatureLabel":"Temperature","settings.providers.temperaturePlaceholder":"Leave empty to omit; range 0–2 inclusive, e.g. 0.3","settings.providers.extraHeadersLabel":"Extra headers","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"Thinking","settings.providers.thinkingModeOn":"On","settings.providers.thinkingModeOff":"Off","settings.providers.requestFormatLabel":"Request format","settings.providers.messagesThinkingLabel":"Thinking mode","settings.providers.thinkingAdaptive":"Adaptive","settings.providers.thinkingBudget":"Fixed budget","settings.providers.maxTokensLabel":"Maximum output tokens","settings.providers.thinkingBudgetLabel":"Thinking budget tokens","settings.providers.responsesThinkingHint":"Some models can only reduce thinking, not turn it off. Reasoning requests omit temperature.","settings.providers.messagesThinkingHint":"Older models or compatible gateways may need a fixed budget below the output limit. Thinking requests omit temperature.","settings.providers.llmRequestFormatInvalid":"Invalid request format. Select a supported format.","settings.providers.llmThinkingModeInvalid":"Invalid thinking mode. Select a supported mode.","settings.providers.llmTokenLimitInvalid":"Token limits must be positive integers.","settings.providers.llmThinkingBudgetInvalid":"Thinking budget must be at least 1024 and below the output limit in fixed-budget mode.","settings.providers.llmResponseIncomplete":"The response was incomplete or reached its output limit. Already emitted text is retained.","settings.providers.llmProtocolHeaderConflict":"Messages sets authentication and version headers automatically. Remove x-api-key and anthropic-version from extra headers.","settings.providers.llmStreamError":"The server returned a stream error. Check the model and request parameters.","settings.providers.saveProtocol":"Save protocol settings","settings.providers.thinkingModeHint":"Enable, disable, or reduce thinking using parameters supported by the selected request format and model. No control instructions are injected into prompts.","settings.providers.bailianVocabularyIdLabel":"Hotword Vocabulary ID (optional)","settings.providers.bailianVocabularyIdNote":"If you have created a DashScope hotword vocabulary, enter its vocab-... ID. Leave blank to skip hotwords.","settings.providers.bailianModelRealtimeHint":"Realtime model · transcribes as you speak.","settings.providers.bailianModelSyncFileHint":"Synchronous recording model · transcribes after you finish (single clip ≤ 5 min).","settings.providers.bailianModelAsyncFileHint":"Asynchronous file model · uploads the recording and waits for the transcription task.","settings.providers.appIdLabel":"App ID","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"Resource ID","settings.providers.toolsLabel":"Connection check","settings.providers.toolsDesc":"Save the fields above, then validate the selected model or fetch models. Manual model input remains available if fetching fails.","settings.providers.validate":"Validate","settings.providers.validating":"Validating…","settings.providers.fetchModels":"Fetch models","settings.providers.loadingModels":"Fetching models…","settings.providers.modelMissing":"No model is configured. Please enter a model ID first.","settings.providers.modelsEmpty":"Credentials are valid, but no models were returned.","settings.providers.modelsLoaded":"Fetched {{count}} models.","settings.providers.selectModel":"Select a model to fill the field above","settings.providers.modelSaved":"Saved model {{model}}.","settings.providers.validateSuccess":"Connection check passed.","settings.providers.validateFailed":"Connection check failed.","settings.providers.providerHttpStatus":"Provider returned HTTP {{status}}. Check the API key permissions or endpoint.","settings.providers.endpointMustUseHttps":"HTTP endpoints are allowed, but API keys and audio content may leak in transit.","settings.providers.endpointHttpWarning":"HTTP endpoints are allowed, but API keys and request content may leak in transit.","settings.providers.endpointInvalid":"Endpoint format is invalid.","settings.providers.bailianEndpointSchemeInvalid":"Bailian realtime ASR uses the DashScope WebSocket gateway: the endpoint must start with wss:// (default: wss://dashscope.aliyuncs.com/api-ws/v1/inference/). An https:// compatible-mode URL will not work here.","settings.providers.qwen3EndpointSchemeInvalid":"Qwen3 realtime ASR uses the DashScope Realtime WebSocket gateway: the endpoint must start with wss:// (default: wss://dashscope.aliyuncs.com/api-ws/v1/realtime). An https:// URL will not work here.","settings.providers.responseTooLarge":"Provider response is too large to validate safely.","settings.providers.asrInvalidJson":"ASR response is not valid JSON.","settings.providers.asrMissingTextField":"ASR response is missing the text field.","settings.providers.apiKeyMissing":"API Key is empty.","settings.providers.endpointMissing":"Endpoint is empty.","settings.providers.volcengineAppIdMissing":"APP ID is empty.","settings.providers.volcengineAccessTokenMissing":"Access Token is empty.","settings.providers.requestTimeout":"Request timed out. Try again later.","settings.shortcuts.title":"Shortcut settings","settings.shortcuts.descAcc":"All shortcuts apply globally. Accessibility permission must be granted in Permissions.","settings.shortcuts.descNoAcc":"All shortcuts apply globally. If unresponsive, check the global hotkey status in Permissions.","settings.shortcuts.startStop":"Start / Stop recording","settings.shortcuts.cancel":"Cancel current recording","settings.shortcuts.confirm":"Confirm capsule insertion","settings.shortcuts.switchStyle":"Switch to previous style","settings.shortcuts.openApp":"Open OpenLess","settings.shortcuts.stylePackTitle":"Style shortcuts","settings.shortcuts.stylePackDesc":"Bind a shortcut to each favorite style pack for one-press switching; disabled packs are re-enabled automatically.","settings.shortcuts.stylePackAdd":"Add style shortcut","settings.shortcuts.stylePackSelect":"Choose a style pack","settings.shortcuts.stylePackDisabledSuffix":" (disabled)","settings.shortcuts.stylePackRemove":"Remove","settings.shortcuts.agentPolish":"Polish selected text","settings.shortcuts.agentPolishDesc":"Select text → press → Claude polishes it → replaces the selection.","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"Hold a custom key → speak → Claude runs the task → result shown in a capsule.","settings.shortcuts.agentVoiceHint":"Set the hold-to-talk key under Advanced → Less Computer.","settings.shortcuts.agentVoiceTrigger":"Less Computer hold-to-talk key","settings.shortcuts.enable":"Enable","settings.shortcuts.disable":"Disable","settings.shortcuts.confirmHint":"Click ✓ on the capsule","settings.shortcuts.notSupported":"Not yet supported","settings.shortcuts.androidReadOnly":"Global shortcuts are not available on Android. Use the record button on the overview page.","settings.permissions.title":"Permissions","settings.permissions.descAcc":"OpenLess needs the following system permissions to work. After granting, fully quit and relaunch the app for changes to take effect.","settings.permissions.descNoAcc":"OpenLess needs microphone access and uses the global hotkey listener state to verify the native hook is running.","settings.permissions.micLabel":"Microphone","settings.permissions.micDesc":"Used to capture your voice input.","settings.permissions.accLabel":"Accessibility","settings.permissions.accDesc":"Used to listen to the global hotkey and write transcripts at the cursor.","settings.permissions.hotkeyLabel":"Global hotkey","settings.permissions.hotkeyDescWithAdapter":"Active adapter: {{adapter}}. Used to confirm the hotkey listener is installed.","settings.permissions.hotkeyDescPlain":"Used to confirm the hotkey listener is installed.","settings.permissions.networkLabel":"Network","settings.permissions.networkDesc":"Required for cloud ASR / LLM calls. Disable for local-only mode.","settings.permissions.networkOk":"Available","settings.permissions.networkOffline":"Unavailable","settings.permissions.checking":"Checking…","settings.permissions.granted":"Granted","settings.permissions.notApplicable":"Not required","settings.permissions.denied":"Not granted","settings.permissions.indeterminate":"Undetermined","settings.permissions.micNoDevice":"No microphone detected","settings.permissions.openSystem":"Open System Settings","settings.permissions.restart":"Reset and Restart","settings.permissions.grant":"Grant","settings.permissions.rerunAndroidSetup":"Run setup again","settings.permissions.hotkeyInstalled":"Installed","settings.permissions.hotkeyStarting":"Installing…","settings.permissions.hotkeyFailed":"Listener failed","settings.permissions.windowsImeLabel":"Windows input method backend","settings.permissions.windowsImeDesc":"Temporarily switches to the OpenLess TSF IME during voice sessions to avoid clipboard insertion limits.","settings.permissions.windowsImeInstalled":"Installed","settings.permissions.windowsImeUnavailable":"Unavailable","settings.permissions.androidImeLabel":"Input method (IME)","settings.permissions.androidImeSelected":"Selected","settings.permissions.androidImeEnabled":"Enabled","settings.permissions.androidImeDisabled":"Not enabled","settings.permissions.androidOverlayLabel":"Floating overlay","settings.permissions.androidAccessibilityLabel":"Accessibility service","settings.permissions.androidAccessibilityImpact":"Enable it to output results to the current input field without switching keyboards. If disabled, results are copied to the clipboard for manual paste.","settings.permissions.androidAccessibilityGrantedStale":"Authorized, not connected","settings.permissions.androidAccessibilityMessages.not_android":"Accessibility status is only available on Android.","settings.permissions.androidAccessibilityMessages.not_enabled":"Enable OpenLess in system accessibility settings.","settings.permissions.androidAccessibilityMessages.operational":"Accessibility service is running.","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"Accessibility is authorized but not connected. Re-enable OpenLess in system settings.","settings.permissions.androidAccessibilityMessages.status_read_failed":"Could not read accessibility status.","settings.permissions.androidShizukuLabel":"Shizuku enhancement","settings.permissions.androidShizukuHint":"Optional. Best-effort recovery when OEM settings block manual toggles; cannot fully eliminate cross-app race conditions. Shizuku may need to be restarted after a reboot.","settings.permissions.androidShizukuOpenApp":"Open Shizuku","settings.permissions.androidShizukuRequestPermission":"Request authorization","settings.permissions.androidShizukuRecover":"Recover accessibility","settings.permissions.androidShizukuRecoverConfirm":"Use Shizuku to try re-enabling the OpenLess accessibility service? OpenLess will merge with services already enabled when the write starts. If the global accessibility switch is off, enabling it may also start other registered services.","settings.permissions.androidShizukuYes":"yes","settings.permissions.androidShizukuNo":"no","settings.permissions.androidShizukuAccessibilityOperational":"Accessibility is registered and running.","settings.permissions.androidShizukuAccessibilityRegistered":"Registered: {{registered}} · Running: {{operational}}","settings.permissions.androidShizukuState.notInstalled":"Not installed","settings.permissions.androidShizukuState.notRunning":"Not running","settings.permissions.androidShizukuState.notAuthorized":"Not authorized","settings.permissions.androidShizukuState.authorized":"Authorized","settings.permissions.androidShizukuState.binderDead":"Disconnected","settings.permissions.androidShizukuState.notAndroid":"N/A","settings.permissions.androidShizukuMessages.not_android":"Shizuku is only available on Android.","settings.permissions.androidShizukuMessages.not_installed":"Shizuku or Sui backend is not installed.","settings.permissions.androidShizukuMessages.unsupported_backend":"This Shizuku backend is too old. Update Shizuku or Sui to v11 or newer.","settings.permissions.androidShizukuMessages.not_running":"Shizuku is not running. Start Shizuku or Sui first.","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku is not authorized. Grant OpenLess permission.","settings.permissions.androidShizukuMessages.binder_dead":"Shizuku connection lost. Restart Shizuku.","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku authorized. Accessibility is running.","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku authorized. Accessibility is registered but not running.","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku authorized. You can try recovering accessibility.","settings.permissions.androidShizukuMessages.operational":"Accessibility is registered and running.","settings.permissions.androidShizukuMessages.registered_stale":"Accessibility is registered, but the service is currently unavailable.","settings.permissions.androidShizukuMessages.not_registered":"Accessibility is not enabled in system settings.","settings.permissions.androidShizukuMessages.already_granted":"Shizuku permission was already granted.","settings.permissions.androidShizukuMessages.binder_unavailable":"Shizuku binder was unavailable during the permission request.","settings.permissions.androidShizukuMessages.request_cancelled":"Shizuku permission request was cancelled.","settings.permissions.androidShizukuMessages.granted":"Shizuku permission granted.","settings.permissions.androidShizukuMessages.denied":"Shizuku permission denied.","settings.permissions.androidShizukuMessages.permission_permanently_denied":"Shizuku authorization was blocked. Open Shizuku and allow OpenLess manually.","settings.permissions.androidShizukuMessages.launched":"Opened Shizuku authorization.","settings.permissions.androidShizukuMessages.launch_failed":"Could not open Shizuku authorization.","settings.permissions.androidShizukuMessages.open_shizuku":"Opened Shizuku manager.","settings.permissions.androidShizukuMessages.jni_error":"Could not reach the Android Shizuku backend.","settings.permissions.androidShizukuMessages.status_parse_failed":"Could not parse Shizuku status.","settings.permissions.androidShizukuMessages.user_not_confirmed":"Recovery requires user confirmation.","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku is not authorized or unavailable.","settings.permissions.androidShizukuMessages.invalid_component":"Invalid accessibility service component ID.","settings.permissions.androidShizukuMessages.service_connect_failed":"Could not connect to the Shizuku privileged service.","settings.permissions.androidShizukuMessages.recovery_in_progress":"Another recovery is already in progress.","settings.permissions.androidShizukuMessages.parse_failed":"Could not parse the recovery result.","settings.permissions.androidShizukuMessages.service_not_bound":"Settings were written but accessibility is not running yet.","settings.permissions.androidShizukuMessages.success":"Accessibility service recovered.","settings.permissions.androidShizukuMessages.read_failed":"Could not read accessibility settings.","settings.permissions.androidShizukuMessages.read_enabled_failed":"Could not read accessibility enabled flag.","settings.permissions.androidShizukuMessages.merge_failed":"Could not merge accessibility services.","settings.permissions.androidShizukuMessages.write_services_failed":"Could not write enabled accessibility services.","settings.permissions.androidShizukuMessages.write_enabled_failed":"Could not enable accessibility.","settings.permissions.androidShizukuMessages.readback_failed":"Could not verify accessibility settings after write.","settings.permissions.androidShizukuMessages.oem_rollback":"The OEM rolled back the accessibility write.","settings.permissions.androidShizukuMessages.concurrent_change":"Accessibility settings changed during recovery.","settings.permissions.androidShizukuMessages.partial_rollback":"Recovery failed and settings could only be partially restored. Check system accessibility settings.","settings.permissions.androidShizukuMessages.manual_required":"Automatic recovery cannot safely enable accessibility while other registered services are present with the global switch off. Use system settings instead.","settings.permissions.androidShizukuMessages.max_retries":"Recovery failed after multiple attempts.","settings.permissions.androidShizukuMessages.internal_error":"Recovery failed due to an internal error.","settings.permissions.androidShizukuMessages.unknown":"Unknown Shizuku status.","settings.permissions.androidInsertStrategyLabel":"Text insertion strategy","settings.permissions.androidOverlayTriggerLabel":"Overlay visibility","settings.permissions.androidOverlayActivationModeLabel":"Overlay activation","settings.permissions.androidOverlayLeftSwipeActionLabel":"Left swipe action","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"Cancel swipe direction","settings.permissions.androidOverlaySizeLabel":"Overlay size","settings.permissions.androidOverlaySizeHint":"Adjusts the floating button diameter and keeps its current position.","settings.permissions.androidInsertStrategy.accessibility":"Auto output to input field","settings.permissions.androidInsertStrategy.clipboard":"Clipboard only","settings.permissions.androidInsertStrategyHint.accessibility":"Requires accessibility; falls back to clipboard when unavailable.","settings.permissions.androidInsertStrategyHint.clipboard":"No accessibility permission required; copies only for manual paste.","settings.permissions.androidOverlayTrigger.background":"When app is backgrounded","settings.permissions.androidOverlayTrigger.keyboard":"When keyboard appears","settings.permissions.androidOverlayTrigger.always":"Always visible","settings.permissions.androidOverlayTriggerHint.background":"Simple and battery-friendly; no overlay while typing in other apps.","settings.permissions.androidOverlayTriggerHint.keyboard":"This mode is shelved. Existing settings are moved back to background.","settings.permissions.androidOverlayTriggerHint.always":"Always available, but permanently on screen.","settings.permissions.androidOverlayTriggerDisabled.keyboard":"Keyboard-triggered display is shelved. Overlay gestures will replace keyboard detection.","settings.permissions.androidOverlayActivationMode.tap":"Tap to arm","settings.permissions.androidOverlayActivationMode.long_press":"Long press to arm","settings.permissions.androidOverlayActivationModeHint.tap":"First tap arms the overlay; second tap starts normal dictation.","settings.permissions.androidOverlayActivationModeHint.long_press":"Hold to arm the overlay; release stops the current recording or QA turn.","settings.permissions.androidOverlayLeftSwipeAction.translation":"Translation dictation","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"Switch style pack","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"Left swipe while armed starts translation dictation.","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"Left swipe while armed switches to the previous style pack.","settings.permissions.androidOverlayCancelSwipeDirection.up":"Swipe up","settings.permissions.androidOverlayCancelSwipeDirection.down":"Swipe down","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"Swipe up while recording to cancel without transcription or insertion.","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"Swipe down while recording to cancel without transcription or insertion.","settings.permissions.windowsIme.installed":"Installed. Voice input temporarily switches to the OpenLess IME.","settings.permissions.windowsIme.notInstalled":"Not installed. OpenLess is using the clipboard/WM_PASTE fallback.","settings.permissions.windowsIme.registrationBroken":"Registration is broken. Reinstall the OpenLess IME.","settings.permissions.windowsIme.notWindows":"Only available on Windows.","settings.advanced.multimodalPipelineTitle":"Multimodal recognition pipeline","settings.advanced.multimodalPipelineTitleHint":"One-pass audio recognition with a single multimodal model; traditional ASR + LLM configuration is fully isolated from it.","settings.advanced.multimodalPipelineLabel":"Enable multimodal pipeline","settings.advanced.multimodalPipelineHint":"Adds a Traditional / Multimodal switch on the AI providers page. Traditional = ASR + LLM; Multimodal = one audio-capable model. The two configurations are stored separately and never share credentials.","settings.advanced.streamingInsertTitle":"Streaming insertion","settings.advanced.streamingInsertTitleLinux":"Streaming insertion (Experimental)","settings.advanced.streamingInsertDesc":"Streams text to cursor character by character, reducing perceived latency. Falls back to one-shot paste when conditions are not met.","settings.advanced.streamingInsertLabel":"Streaming insertion","settings.advanced.streamingInsertHintMac":"Temporarily switches the input source to ABC so CJK IMEs cannot intercept keystrokes; restored on session end.","settings.advanced.streamingInsertHintWindows":"SendInput Unicode types directly, bypassing TSF / IME — no input-method switching needed.","settings.advanced.streamingInsertHintLinux":"Uses fcitx5 plugin for text submission; streaming insertion uses enigo + XTest for keystroke synthesis.","settings.advanced.streamingInsertSaveClipboardLabel":"Copy to clipboard","settings.advanced.streamingInsertSaveClipboardHint":"After a successful insert, write the final text to the clipboard so Cmd+V can paste it again. Off = clipboard is never touched.","settings.advanced.localAsrTitle":"Local ASR models","settings.advanced.localAsrDesc":"Move transcription from cloud ASR to on-device inference. Offline / privacy-sensitive use only.","settings.advanced.localAsrWarningShort":"Local inference is slower; under-spec hardware may drop words.","settings.advanced.qwen3Desc":"Once enabled, the ASR provider will be taken over.","settings.advanced.sherpaDesc":"Once enabled, the ASR provider will be taken over.","settings.advanced.foundryDesc":"Once enabled, the ASR provider will be taken over.","settings.advanced.notSupportedHere":"Not supported on this platform — no inference module bundled.","settings.advanced.enable":"Enable","settings.advanced.alreadyActive":"Active","settings.advanced.disableLocalLabel":"Disable local ASR","settings.advanced.disableLocalDesc":"Switch back to cloud ASR (defaults to Volcengine bigasr).","settings.advanced.disable":"Disable","settings.advanced.platformNotSupported":"Local ASR model integration is not supported on this platform.","settings.advanced.confirmEnableLocalTitle":"Enable local ASR?","settings.advanced.confirmEnableLocalBody":"Transcription will be slower than cloud and potentially less accurate.","settings.advanced.confirm":"Enable","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"Interface language","settings.language.desc":"Switch the UI language. Applies to the current session immediately and persists across launches.","settings.language.label":"Language","settings.language.labelDesc":"Choose \"Follow system\" to match the OS language at launch.","settings.language.followSystem":"Follow system","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"Some native menus (system tray, etc.) may require an app restart to fully switch.","settings.layout.title":"Layout","settings.theme.title":"Appearance","settings.theme.label":"Theme","settings.theme.activityHeatmapLabel":"Show annual activity heatmap on Overview","settings.theme.stackedRowLayoutLabel":"Readable layout (wrap rows)","settings.theme.stackedRowLayoutDesc":"On small screens or with large text, buttons and controls that no longer fit on one line move to the next line instead of overflowing or squashing text.","settings.theme.conservativeLayoutLabel":"Conservative layout","settings.theme.conservativeLayoutDesc":"Outside the home page, top bar, and bottom bar, settings and feature pages use a single full-width column to minimize horizontal overflow.","settings.theme.system":"Follow system","settings.theme.light":"Light","settings.theme.dark":"Dark","settings.remoteInput.title":"Remote Input","settings.remoteInput.enableLabel":"Enable remote input","settings.remoteInput.enableDesc":"Record from a phone/tablet browser on your LAN; speech is typed at your computer's cursor (HTTPS required; trust the certificate on first visit)","settings.remoteInput.portLabel":"Port","settings.remoteInput.defaultModeLabel":"Default recording mode","settings.remoteInput.modeToggle":"Tap to toggle","settings.remoteInput.modeHold":"Hold to talk","settings.remoteInput.urlLabel":"Access URL","settings.remoteInput.pinLabel":"Pairing code","settings.remoteInput.regeneratePin":"Regenerate","settings.remoteInput.portInUse":"Port {{port}} is in use, please change it","settings.remoteInput.startError":"Failed to start the remote input service: {{reason}}","settings.remoteInput.securityHint":"Reachable only on the same LAN and requires the pairing code; turn it off when not in use.","settings.remoteInput.certHint":"Verify the root certificate fingerprint before trusting it on first use. Older versions require one-time setup; subsequent restarts and IP changes preserve trust.","settings.remoteInput.certFingerprintLabel":"This computer's root CA SHA-256","settings.remoteInput.certFingerprintCopy":"Copy full fingerprint","settings.remoteInput.certFingerprintCopied":"Fingerprint copied","settings.remoteInput.certFingerprintUnavailable":"The full fingerprint is unavailable. Do not install or trust a downloaded certificate.","settings.remoteInput.certVerifyHint":"Find SHA-256 in the phone's system certificate details and compare all 64 characters with this value (ignore spaces and colons) before enabling full trust. A web page, profile name or identifier cannot prove identity. If the fingerprint differs or cannot be viewed in full, stop and remove the downloaded or installed profile.","settings.remoteInput.certProfileHint":"Expect exactly one root certificate. Do not install a profile containing additional certificates, VPN or device management settings.","settings.remoteInput.certTrustWarning":"The initial certificate download cannot verify the computer's identity; a malicious device on the LAN could replace the root certificate in a man-in-the-middle attack. Install it only on a trusted home or private network, never on a public or shared network. The root CA can issue certificates and its private key stays on this computer; remove it from your phone when no longer needed.","settings.remoteInput.certSetupLink":"Copy iPhone certificate link","settings.remoteInput.waitingStart":"The service is not running yet. Turn the switch off, then on again. Do not restart the app.","settings.remoteInput.starting":"Starting the remote input service…","settings.remoteInput.urlsStale":"These addresses come from the previous run and may be out of date.","settings.about.tagline":"Speak naturally, write perfectly","settings.about.checkUpdate":"Check for updates","settings.about.checkUpdateBtn":"Check","settings.about.checkStableUpdateBtn":"Check stable update","settings.about.checkBetaUpdateBtn":"Check Beta update","settings.about.checkingUpdate":"Checking…","settings.about.upToDate":"You are already on the latest version.","settings.about.updateError":"Update check or install failed. Please try again later.","settings.about.retryBtn":"Retry","settings.about.openReleases":"Open Releases","settings.about.source":"Source","settings.about.docs":"Docs","settings.about.feedback":"Feedback","settings.about.qq":"QQ community group","settings.about.qqDesc":"Search the group number in QQ to join, or scan the QR code.","settings.about.copyQq":"Copy group number","settings.about.privacy":"Privacy","settings.about.privacyDesc":"Recordings may be sent to the cloud provider you configure for transcription.","settings.about.localFirst":"Local-first","settings.about.linksTitle":"Documentation","settings.about.betaChannelLabel":"Join Beta channel","settings.about.betaChannelToggleLabel":"Enable Beta channel","settings.about.betaChannelDesc":"When on, background auto-update follows Beta; when off, it uses stable. Use the button below to manually check Beta anytime.","settings.about.autoUpdateSectionTitle":"Auto-update","settings.about.autoUpdateCheckLabelAndroid":"Auto-check and download updates","settings.about.autoUpdateCheckDescAndroid":"Checks on launch and every 60 minutes. When an update is found, downloads and opens the system installer. Channel follows the Beta toggle above.","settings.about.betaChannelFetching":"Fetching the latest Beta…","settings.about.betaChannelFetchBtn":"Look up latest Beta","settings.about.betaChannelLatestPrefix":"Latest Beta:","settings.about.betaChannelDownloadBtn":"Open download page","settings.about.betaChannelRefresh":"Refresh","settings.about.betaChannelNoBeta":"No Beta release has been published yet.","settings.about.betaChannelFetchError":"Failed to fetch Beta release info. Please try again later.","settings.about.betaChannelUpToDate":"Up to date","settings.about.betaChannelUpdateNow":"Update now","settings.about.betaChannelUpdateNowTitle":"Check and download the latest Beta, then show the update dialog","settings.about.betaChannelChecking":"Checking…","settings.about.updateDialog.available.title":"Update available","settings.about.updateDialog.available.desc":"OpenLess {{version}} is available. Update now?","settings.about.updateDialog.stableChannelSwitch.title":"Switch to Stable","settings.about.updateDialog.stableChannelSwitch.desc":"Current version: OpenLess {{currentVersion}}\nTarget version: OpenLess {{version}}\nThis switches from the Beta channel to Stable. Continue?","settings.about.updateDialog.downloading.title":"Downloading update","settings.about.updateDialog.downloading.desc":"Downloading OpenLess {{version}}. Keep the app open.","settings.about.updateDialog.downloaded.title":"Update ready","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} has been installed. Restart automatically now to apply it?","settings.about.updateDialog.installing.title":"Installing update","settings.about.updateDialog.installing.desc":"Installing OpenLess {{version}}. Keep the app open.","settings.about.updateDialog.install":"Update now","settings.about.updateDialog.androidInstall":"Download and open installer","settings.about.updateDialog.androidInstalled.title":"System installer opened","settings.about.updateDialog.androidInstalled.desc":"Follow the system prompts to finish installing. Reopen OpenLess to use {{version}}.","settings.about.updateDialog.downloadingLabel":"Downloading…","settings.about.updateDialog.installingLabel":"Installing…","settings.about.updateDialog.later":"Restart manually later","settings.about.updateDialog.restartNow":"Restart now","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"{{downloaded}} downloaded","settings.about.updateDialog.installError.title":"Update failed","settings.about.updateDialog.installError.desc":"The automatic update couldn't finish: {{error}}. You can download and install the latest version manually.","settings.about.updateDialog.manualDownload":"Download manually","startup.loading":"Starting OpenLess…","startup.loadingDesc":"Connecting to the local service and checking compatibility.","startup.failed":"OpenLess could not start","startup.recovery":"Check again. If the problem continues, fully quit and reopen the app. If this started after an upgrade, make sure the complete app is on the same version.","startup.retry":"Check again","startup.details":"Show error details","modal.serviceViews.label":"Service settings","modal.serviceViews.llm":"Language models","modal.serviceViews.asr":"Speech recognition","modal.serviceViews.omni":"Multimodal","modal.serviceViews.models":"Local models","modal.serviceViews.connections":"Connections","modal.serviceViews.statusConfigured":"Configured","modal.serviceViews.statusMissing":"Not configured","modal.searchPlaceholder":"Find a settings category…","modal.clearSearch":"Clear search","modal.categoriesLabel":"Settings categories","modal.searchResults":"Search results","modal.searchCount":"Categories found: {{count}}","modal.noResults":"No matching categories. Try “microphone”, “models” or “theme”.","modal.autoSaveHint":"Changes save automatically","modal.backToAdvanced":"Back to Experiments & extensions","modal.advancedPages.lessComputer":"Choose an agent and configure its model, permissions, and working directory.","modal.advancedPages.claudeConsole":"Detect Claude Code and view output from test tasks.","modal.advancedPages.multimodal":"Manage the experimental multimodal recognition switch.","modal.advancedPages.debug":"Keep debug recordings, inspect cursor context, and export logs.","modal.descriptions.general":"Choose a microphone, adjust recording and text input, or connect your phone.","modal.descriptions.shortcuts":"Set up shortcuts and choose what happens when you select text.","modal.descriptions.services":"Choose speech recognition and text processing services. Manage channels, local models and connections.","modal.descriptions.appearance":"Adjust the theme, page layout and interface language for comfortable reading.","modal.descriptions.privacy":"Check system permissions and connections. Manage history, recordings and local data.","modal.descriptions.advanced":"Configure Less Computer, multimodal processing and debugging as needed.","modal.descriptions.about":"View your version, update channel and automatic update settings.","modal.searchKeywords.general":"microphone recording input phone remote LAN PIN capsule mute startup autostart","modal.searchKeywords.shortcuts":"shortcut hotkey key combination selection polish voice editing","modal.searchKeywords.services":"ASR LLM API channel model cloud local offline network proxy marketplace","modal.searchKeywords.appearance":"theme dark light language font text size layout heatmap","modal.searchKeywords.privacy":"permission microphone accessibility history recording storage privacy export","modal.searchKeywords.advanced":"Less Computer Claude Agent multimodal Omni debug logs experiment","modal.searchKeywords.about":"version Beta stable update upgrade","modal.sections.appearance":"Appearance & language","modal.sections.shortcuts":"Shortcuts & selection","modal.sections.general":"Recording & input","modal.sections.services":"AI services & models","modal.sections.privacy":"Permissions & data","modal.sections.advanced":"Experiments & extensions","modal.sections.personalize":"Personalize","modal.sections.about":"About & updates","modal.sections.helpCenter":"Help center","modal.sections.releaseNotes":"Release notes","modal.personalize.font":"Font size","modal.personalize.fontDesc":"Scale the entire UI font size — applies instantly.","modal.personalize.fontSmall":"Small","modal.personalize.fontMedium":"Medium","modal.personalize.fontLarge":"Large","modal.personalize.blur":"Glass blur intensity","modal.personalize.blurDesc":"Affects the inner backdrop-filter strength (the macOS system frosted layer can not be tuned at runtime).","modal.about.tagline":"Speak naturally, write perfectly","modal.about.checkUpdate":"Check for updates","modal.about.checkUpdateBtn":"Check","modal.about.docs":"Docs","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"Feedback channel","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"Source","modal.about.qq":"Community QQ Group","modal.about.qqDesc":"Search the group number on QQ to join, or scan the QR code.","modal.about.copyQq":"Copy group number","modal.about.exportErrorLog":"Export error log","modal.about.exportErrorLogDesc":"Save the current session log to disk for debugging or sending us feedback.","modal.about.exportErrorLogBtn":"Export","modal.about.exporting":"Exporting…","modal.about.exportSuccess":"Saved","modal.about.exportFailed":"Export failed","modal.about.privacy":"Privacy","modal.about.privacyDesc":"Transcripts stay on this device; configured cloud providers may receive recorded audio for transcription.","modal.about.localFirst":"Local-first","windowChrome.restore":"Restore","windowChrome.minimize":"Minimize","windowChrome.maximize":"Maximize","windowChrome.close":"Close","hotkey.triggers.rightOption":"Right Option","hotkey.triggers.leftOption":"Left Option","hotkey.triggers.rightControl":"Right Control","hotkey.triggers.leftControl":"Left Control","hotkey.triggers.rightCommand":"Right Command","hotkey.triggers.leftCommand":"Left Command","hotkey.triggers.leftShift":"Left Shift","hotkey.triggers.rightShift":"Right Shift","hotkey.triggers.fn":"Fn (Globe key)","hotkey.triggers.rightAlt":"Right Alt","hotkey.triggers.mediaPlayPause":"⏯ Media Play/Pause","hotkey.triggers.custom":"Custom combination…","hotkey.fallback":"Global hotkey","hotkey.modeHoldSuffix":" (push-to-talk)","hotkey.modeToggleSuffix":" (start / stop)","hotkey.modeAutoSuffix":" (auto-detect)","hotkey.usageHold":"Hold {{trigger}} to talk, release to stop.","hotkey.usageToggle":"Press {{trigger}} to start, press again to stop.","hotkey.usageAuto":"Tap {{trigger}} to start / stop; hold it to talk and release to stop.","hotkey.adapter.macEventTap":"macOS Event Tap","hotkey.adapter.windowsLowLevel":"Windows low-level keyboard hook","hotkey.adapter.fcitx5":"fcitx5 input method plugin","hotkey.adapter.unavailable":"Unavailable","localAsr.kicker":"LOCAL ASR","localAsr.title":"Models","localAsr.desc":"Manage on-device speech recognition models.","localAsr.storageTitle":"Model storage location","localAsr.storageBaseDir":"Selected parent folder","localAsr.storageModelsRoot":"Actual models folder","localAsr.storageDefault":"System default folder","localAsr.storageChoose":"Change folder","localAsr.storageReset":"Reset to default","localAsr.storageReveal":"Open models folder","localAsr.storageDesc":"Custom storage creates OpenLess/models under the selected folder and migrates existing models. OpenLess cancels downloads and releases loaded models before moving files.","localAsr.storageChooseTitle":"Choose local model storage parent folder","localAsr.storageChangeConfirm":"Existing local models will be moved to {{path}}/OpenLess/models. Downloads will be cancelled and loaded models released first. Continue?","localAsr.storageResetConfirm":"Existing local models will be moved back to the system default folder. Current folder: {{path}}. Continue?","localAsr.modelDir":"Model directory","localAsr.revealDir":"Open directory","localAsr.deleteConfirm":"Delete local model files for {{name}}? This cannot be undone.","localAsr.appleSpeechTitle":"Apple Speech recognition (macOS)","localAsr.appleSpeechDesc":"Transcribe speech locally using macOS's built-in speech recognition: no model download, no API key, no network. A zero-credential local fallback when your cloud ASR is unreliable. macOS will prompt for speech recognition permission on first use.","localAsr.appleSpeechUse":"Use Apple Speech","localAsr.qwenTitle":"Qwen3-ASR model manager","localAsr.qwenExperimentalBadge":"Experimental","localAsr.engineUnavailable":"The Qwen3-ASR inference engine is not bundled on this platform. You can still download models, but Qwen3-ASR cannot be activated here yet.","localAsr.qwenUnavailableOnWindows":"Qwen3-ASR is not supported on Windows yet. Please use Foundry Local Whisper above instead.","localAsr.foundryTitle":"Windows Foundry Local Whisper","localAsr.foundryDesc":"On-device speech recognition, no ASR API key needed. First use requires downloading runtime and model.","localAsr.foundryAvailable":"Available on Windows","localAsr.foundryUnavailable":"Windows only","localAsr.foundryRuntimeReady":"Runtime components downloaded","localAsr.foundryRuntimeMissing":"Runtime components not downloaded","localAsr.foundryRuntimeSourceLabel":"Runtime component source","localAsr.foundryRuntimeSourceAuto":"Auto (NuGet first)","localAsr.foundryRuntimeSourceNuget":"NuGet official feed","localAsr.foundryRuntimeSourceOrtNightly":"Microsoft ORT-Nightly feed","localAsr.foundryRuntimeSourceDesc":"Runtime components are downloaded before first use.","localAsr.foundrySelectedModel":"Selected model","localAsr.foundryActiveModel":"Current default alias","localAsr.foundryLoadedModel":"Loaded model","localAsr.foundryNotLoaded":"Not loaded","localAsr.foundryError":"Foundry status","localAsr.foundrySetDefault":"Set default / Enable Windows local ASR","localAsr.foundryEnabling":"Enabling…","localAsr.foundryPrepare":"Prepare / Download / Load","localAsr.foundryPreparing":"Preparing…","localAsr.foundryReleasing":"Releasing…","localAsr.foundryRetryPrepare":"Continue / Retry prepare","localAsr.foundryCancelPrepare":"Cancel prepare","localAsr.foundryCancelRequested":"Cancel requested","localAsr.foundryCancelling":"Cancelling…","localAsr.foundryCancelBestEffort":"Cancellation requested. Will stop after the current step completes. Retry later.","localAsr.foundryPrepareRuntime":"Prepare runtime components","localAsr.foundryPrepareModel":"Download model","localAsr.foundryPrepareLoad":"Load model","localAsr.foundryPrepareModelSkipped":"Model already downloaded; download skipped","localAsr.foundryPrepareDone":"Done","localAsr.foundryPrepareWaiting":"Waiting","localAsr.foundryApproxSizeMb":"about {{mb}} MB","localAsr.foundryLanguageLabel":"Recognition language","localAsr.foundryLanguageAuto":"Auto","localAsr.foundryLanguageZh":"Chinese zh","localAsr.foundryLanguageEn":"English en","localAsr.foundryLanguageDesc":"Choose Chinese for Chinese dictation, Auto for mixed use.","localAsr.foundryModelSmall":"Whisper Small (default / balanced)","localAsr.foundryModelSmallDesc":"Default balanced option for quality and resource use.","localAsr.foundryModelMedium":"Whisper Medium (higher quality)","localAsr.foundryModelMediumDesc":"Higher accuracy for stronger devices that can handle larger downloads and slower inference.","localAsr.foundryModelLarge":"Whisper Large V3 Turbo (best quality)","localAsr.foundryModelLargeDesc":"Large-model option for high-end devices and quality-first use.","localAsr.foundryModelBase":"Whisper Base (faster / lower resource)","localAsr.foundryModelBaseDesc":"Faster with lower resource use for lightweight daily dictation.","localAsr.foundryModelTiny":"Whisper Tiny (fastest / smoke test)","localAsr.foundryModelTinyDesc":"Fastest check option for confirming the Foundry path works.","localAsr.sherpaTitle":"Windows sherpa-onnx Local (Experimental)","localAsr.sherpaDesc":"Windows uses sherpa-onnx for offline batch recognition on this device with no ASR API key.","localAsr.sherpaRuntimeReady":"Model loaded","localAsr.sherpaRuntimeMissing":"Model not loaded","localAsr.sherpaSetDefault":"Set default / Enable sherpa-onnx","localAsr.sherpaPrepare":"Check local files / Load","localAsr.sherpaPreparing":"Loading…","localAsr.sherpaPrepareLocalFiles":"Check local model files","localAsr.sherpaModelDir":"Model directory","localAsr.sherpaRevealDir":"Open model directory","localAsr.sherpaError":"sherpa-onnx status","localAsr.sherpaLanguageJa":"Japanese ja","localAsr.sherpaLanguageKo":"Korean ko","localAsr.sherpaLanguageYue":"Cantonese yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small (default / Chinese-first)","localAsr.sherpaModelSenseVoiceDesc":"Default experimental model for Chinese and mixed Chinese-English dictation.","localAsr.sherpaModelParaformer":"Paraformer Chinese","localAsr.sherpaModelParaformerDesc":"Chinese-focused experimental model.","localAsr.sherpaModelWhisper":"Whisper Small multilingual","localAsr.sherpaModelWhisperDesc":"Multilingual experimental fallback aligned with Whisper-family behavior.","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3 (multilingual)","localAsr.sherpaModelWhisperLargeV3Desc":"The best open-source multilingual Whisper tier — high quality, large download.","localAsr.sherpaModelZipformer":"Zipformer Streaming (zh/en)","localAsr.sherpaModelZipformerDesc":"Streaming Chinese-English model with the lowest latency — text appears as you speak.","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"Converted sherpa-onnx Qwen3-ASR model with multilingual recognition and stronger long-form context handling.","localAsr.modelSelectTitle":"Models on this device","localAsr.modelSelectDesc":"Track downloads, manage files, or load a model to test it.","localAsr.modelSelectPlaceholder":"Select a downloaded model…","localAsr.modelSelectEmpty":"No downloaded models yet — grab one under “Download & manage”.","localAsr.groupDownload":"Download & manage","localAsr.groupOther":"Other","localAsr.mirrorLabel":"Download mirror","localAsr.mirrorDesc":"huggingface.co is the official source; hf-mirror.com is a community mirror friendlier to Mainland China networks.","localAsr.mirrorHuggingface":"HuggingFace official (huggingface.co)","localAsr.mirrorHfMirror":"Mainland mirror (hf-mirror.com)","localAsr.activeBadge":"In use","localAsr.downloadedBadge":"Downloaded","localAsr.notDownloadedBadge":"Not downloaded","localAsr.download":"Download","localAsr.resume":"Resume","localAsr.cancel":"Cancel","localAsr.delete":"Delete","localAsr.setActive":"Set as default","localAsr.failed":"Failed","localAsr.cancelled":"Cancelled","localAsr.files":"files","localAsr.sizeLoading":"Fetching size…","localAsr.sizeUnknown":"Size unknown","localAsr.performanceWarning":"Local ASR is best for offline or privacy-sensitive use. First use requires model download.","localAsr.test":"Load & Test","localAsr.testRunning":"Testing…","localAsr.testHeading":"Built-in audio test","localAsr.testExpected":"Expected","localAsr.testActual":"Got","localAsr.testStats":"Audio {{audio}}s · Load {{load}}s · Transcribe {{transcribe}}s · Backend {{backend}}","localAsr.testFailed":"Test failed","localAsr.engineStatusLabel":"Engine in memory","localAsr.engineLoaded":"Loaded: {{model}}","localAsr.engineUnloaded":"Not loaded (first transcription must load the model)","localAsr.loadNow":"Load now","localAsr.releaseNow":"Release now","localAsr.keepLoadedLabel":"Keep loaded for","localAsr.keepLoadedDesc":"How long Qwen3-ASR stays in memory after the last use, before being freed.","localAsr.keepImmediate":"Release immediately","localAsr.keep1min":"1 minute after last use","localAsr.keep5min":"5 minutes after last use (default)","localAsr.keep30min":"30 minutes after last use","localAsr.keepForever":"Never release (always loaded)","localAsr.sidebarTitle":"Downloaded & downloading","localAsr.activePill":"Active","localAsr.setDefault":"Set as default","localAsr.downloading":"Downloading","localAsr.startDownload":"Start download","localAsr.downloadNewModel":"Download new model","localAsr.activeModelLabel":"Model in use","localAsr.pickerNoModelDownloaded":"No downloaded models yet — download one on the Local models page first.","localAsr.partialDownloadsLabel":"Incomplete downloads","localAsr.partialDownloadsDesc":"Interrupted downloads left staging files behind; clean them up without affecting installed models.","localAsr.cleanupIncomplete":"Clean up incomplete download","localAsr.languagesLabel":"Languages","localAsr.partialBytesLabel":"Leftover files","localAsr.downloadDialogTitle":"Download Model","localAsr.downloadDialogAlreadyHave":"The model files are downloaded. Return to the model page to load and test, or choose its provider in ASR transcription.","localAsr.downloadDialogDesc":"Compare model sizes and descriptions, then download your choice. Select the matching local service under Speech recognition when it is ready.","localAsr.detailRepo":"Repository","localAsr.hfDownloads":"Downloads","localAsr.hfLikes":"Likes","localAsr.hfDescription":"About","localAsr.hfNoDescription":"No description yet","localAsr.hfCardFailed":"Failed to load model info","localAsr.detailFiles":"files","localAsr.detailDownloaded":"Downloaded","localAsr.detailEmpty":"Select a model to view its details","localAsr.foundryLanguage":"Language","localAsr.foundryRuntimeSource":"Runtime source","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"Keep loaded","localAsr.downloadSettingsTitle":"Download & storage","localAsr.downloadSettingsDesc":"Mirror source · model storage location · in-memory engine","localAsr.libraryEmptyTitle":"No local models yet","localAsr.libraryEmptyDesc":"Download a speech recognition model to process audio on this device. If an existing model is missing, reload the catalog.","localAsr.catalogTitle":"Model catalog","localAsr.catalogEmpty":"No models are available to display. Reload the catalog and try again.","localAsr.reloadCatalog":"Reload catalog","localAsr.engineLabel":"Recognition engine","localAsr.sizeLabel":"Model size","localAsr.allEngines":"All","localAsr.backToCatalog":"Back to catalog","localAsr.detailsTitle":"Model details","localAsr.testActivateHint":"Load and test makes this the active model, then runs the built-in audio test.","localAsr.downloadProgressHint":"After starting, track progress or cancel the download on the model page.","localAsr.errorDetails":"Error details"},"ja":{"cloudSync.title":"クラウド同期","cloudSync.description":"GitHub アカウントで辞書、スタイル、個人設定をデバイス間で同期します。","cloudSync.signIn":"GitHub でログイン","cloudSync.account":"同期アカウント","cloudSync.refresh":"状態を更新","cloudSync.loading":"クラウドの状態を確認中…","cloudSync.noBackup":"クラウドバックアップはありません","cloudSync.available":"クラウドバックアップがあります","cloudSync.summary":"単語 {{dictionary}} 件 · 修正规則 {{corrections}} 件 · スタイル {{stylePacks}} 件","cloudSync.updated":"更新日時:{{time}}","cloudSync.upload":"クラウドにバックアップ","cloudSync.restore":"クラウドから復元","cloudSync.delete":"クラウドバックアップを削除","cloudSync.working":"同期中…","cloudSync.uploadSuccess":"クラウドに保存しました","cloudSync.restoreSuccess":"クラウドの設定を復元しました","cloudSync.deleteSuccess":"クラウドバックアップを削除しました","cloudSync.failed":"同期に失敗しました:{{error}}","cloudSync.conflict":"クラウドの内容が更新されています。状態を更新してから、バックアップまたは復元を選んでください。","cloudSync.unavailable":"公式の同期サービスを利用できません。後でもう一度お試しください。","cloudSync.signInRequired":"先に GitHub でログインしてください。","cloudSync.restoreTitle":"クラウドバックアップを復元しますか?","cloudSync.restoreDescription":"クラウドの辞書、修正规則、スタイル、同期設定で、このデバイスの対応する内容を置き換えます。API キー、デバイスのパス、権限は保持されます。","cloudSync.deleteTitle":"クラウドバックアップを削除しますか?","cloudSync.deleteDescription":"この GitHub アカウントのクラウドバックアップだけを削除します。ローカルデータは保持されます。","cloudSync.confirmRestore":"復元して置き換える","cloudSync.confirmDelete":"バックアップを削除","cloudSync.scope":"辞書、修正规則、スタイルのアイコン、共通設定を同期します。API キー、ログイン情報、デバイス固有の設定は本機に保持されます。","macDictationKey.Changed":"The shortcut changed while saving. Please try again.","macDictationKey.label":"Mac Dictation key","macDictationKey.description":"Replaces the current dictation shortcut with the microphone key. Quitting OpenLess releases it to macOS.","macDictationKey.Permission":"Allow OpenLess in macOS Privacy & Security → Accessibility, then retry.","macDictationKey.Busy":"Finish the current dictation before changing its shortcut.","macDictationKey.Unavailable":"Could not activate this shortcut. The saved binding is unchanged; retry or choose another key.","app.name":"OpenLess","app.tagline":"自然に話し、きれいに書く","common.loading":"読み込み中…","common.retry":"再試行","common.settingsLoadFailed":"設定の読み込みに失敗しました","common.refresh":"更新","common.clear":"クリア","common.copy":"コピー","common.delete":"削除","common.later":"後で","common.cancel":"キャンセル","common.close":"閉じる","common.show":"表示","common.hide":"非表示","common.saved":"保存しました","common.saving":"保存中","common.experimental":"実験的","common.copied":"コピーしました","common.operationFailed":"操作に失敗しました","common.add":"追加","common.durationSeconds":"{{value}} 秒","common.durationMillis":"{{value}}ミリ秒","common.durationMinutes":"{{value}} 分","capsule.thinking":"thinking","capsule.using":"using","capsule.cancelled":"キャンセルしました","capsule.error":"エラーが発生しました","capsule.inserted":"{{count}} 文字を入力しました","capsule.translating":"翻訳中","capsule.selectionPolish.polishing":"推敲中...","capsule.selectionPolish.replaced":"置き換えました","capsule.selectionPolish.noSelection":"選択されていません","capsule.selectionPolish.failed":"推敲に失敗しました。もう一度お試しください","selectionPolishPreview.title":"選択範囲の推敲プレビュー","selectionPolishPreview.subtitle":"編集可能です。確認後はじめて元の選択範囲を置き換えます。","selectionPolishPreview.cancel":"キャンセル","selectionPolishPreview.resultLabel":"推敲結果","selectionPolishPreview.sourcePrefix":"原文:","selectionPolishPreview.applyError":"適用できません:","selectionPolishPreview.confirmReplace":"確認して置き換え","selectionVoiceIntent.title":"どうしますか?","selectionVoiceIntent.subtitle":"音声指示を認識しました。処理方法を選んでください。","selectionVoiceIntent.loading":"読み込み中…","selectionVoiceIntent.sourcePrefix":"選択範囲:","selectionVoiceIntent.errorPrefix":"続行できません:","selectionVoiceIntent.question":"質問する","selectionVoiceIntent.edit":"選択範囲を編集","selectionVoiceIntent.cancel":"キャンセル","qa.title":"質問","qa.headerHint":"いつでも質問","qa.thinking":"思考中…","qa.error":"エラーが発生しました。後でもう一度お試しください。","qa.errorRetry":"再試行","qa.errorRetryHint":"もう一度お試しください。","qa.pinTooltip":"ピン留め(自動で閉じない)","qa.unpinTooltip":"ピン留めを解除","qa.closeTooltip":"閉じる","qa.micLabel":"音声で質問","qa.micStop":"録音を終了","qa.selectionPreview":"選択テキスト:","qa.emptyTitle":"ご用件は?","qa.emptyDesc":"テキストを選択して質問するか、下に直接入力してください。回答はここに表示され、続けて質問できます。","qa.recordingHint":"録音中… {{recordHotkey}} をもう一度押して終了し、質問します","qa.mobileRecordLabel":"録音ボタン","qa.mobileRecordStart":"録音を開始","qa.mobileRecordStop":"終了して送信","qa.composerPlaceholder":"質問を入力。Enter で送信","qa.composerSend":"送信","qa.statusIdle":"{{recordHotkey}} で質問","qa.statusRecording":"録音中","qa.statusThinking":"思考中","qa.statusError":"エラー","qa.jumpToLatest":"最新へ移動","qa.editApplyReplace":"プレビューして挿入を確認","qa.editApplyUnavailable":"適用できる編集結果がありません","qa.editRevertPrevious":"前のバージョンを保持","qa.editInstructionMode":"編集指示","lessComputer.title":"Less Computer","lessComputer.subtitle":"コンピュータに何をさせますか?","lessComputer.you":"あなた","lessComputer.working":"操作中…","lessComputer.tool":"{{name}} を使用","lessComputer.compaction":"コンテキストを圧縮しました","lessComputer.done":"完了","lessComputer.cost":"${{cost}}","lessComputer.error":"失敗しました。再試行してください。","lessComputer.closeTooltip":"閉じる","lessComputer.jumpToLatest":"最新へ移動","lessComputer.inputPlaceholder":"指示を入力、Enter で送信","lessComputer.send":"送信","lessComputer.approvalTitle":"ブロックされたコマンドを実行?","lessComputer.approvalRerunWarning":"注意:承認すると、すでに変更されたワークスペース上で再実行され、冪等でない操作に副作用が生じる可能性があります。","lessComputer.approve":"許可","lessComputer.deny":"拒否","lessComputer.approved":"許可済み","lessComputer.denied":"拒否済み","nav.overview":"概要","nav.history":"履歴","nav.vocab":"辞書","nav.style":"スタイル","nav.marketplace":"マーケット","nav.translation":"翻訳","nav.selectionAsk":"選択追問","nav.corrections":"修正ルール","nav.polishMode":"推敲モード","nav.group.style":"スタイル","nav.group.tools":"ツール","nav.localAsr":"モデル設定","nav.more":"その他","marketplace.kicker":"マーケット","marketplace.title":"スタイルパック マーケット","marketplace.desc":"コミュニティのスタイルパックを閲覧・インストール・共有。","marketplace.searchPlaceholder":"名前 / 説明 / タグを検索…","marketplace.sortPopular":"人気順","marketplace.sortNew":"新着","marketplace.uploadBtn":"アップロード","marketplace.uploadDisabledHint":"先に 設定 → マーケット で GitHub ユーザー名を設定してください","marketplace.refreshBtn":"更新","marketplace.empty":"まだスタイルパックがありません","marketplace.emptyHint":"別のキーワードを試すか、自分のパックを共有してみましょう","marketplace.loadFailed":"読み込み失敗:{{err}}","marketplace.noDescription":"(説明なし)","marketplace.installBtn":"インストール","marketplace.installingBtn":"インストール中…","marketplace.downloadZipBtn":"ZIP をダウンロード","marketplace.downloadingZipBtn":"ダウンロード中…","marketplace.downloadAria":"「{{name}}」の ZIP をダウンロード","marketplace.likeBtn":"いいね","marketplace.installed":"「{{name}}」をローカルにインストールしました","marketplace.downloaded":"「{{name}}」の ZIP をダウンロードしました","marketplace.uploaded":"アップロード完了、審査中","marketplace.uploadTitle":"アップロードするパックを選択","marketplace.uploadHint":"{{login}} としてアップロードします。内容はクラウド審査キューに送信されます。","marketplace.uploadNoLocal":"アップロード可能なローカルパックがありません","marketplace.errors.detail":"詳細の読み込み失敗:{{err}}","marketplace.errors.install":"インストール失敗:{{err}}","marketplace.errors.download":"ZIP のダウンロード失敗:{{err}}","marketplace.errors.like":"いいね失敗:{{err}}","marketplace.errors.upload":"アップロード失敗:{{err}}","marketplace.errors.loadLocal":"ローカルパック読み込み失敗:{{err}}","marketplace.sortLiked":"いいね済み","marketplace.likedEmpty":"まだいいねしたパックがありません","marketplace.likedEmptyHint":"パックを開いて星をタップするとここに表示されます","marketplace.derivativeBadge":"@{{login}} から派生","marketplace.detail.withdrawBtn":"公開を取り下げる","marketplace.detail.withdrawConfirm":"「{{name}}」をマーケットから取り下げますか?ローカルコピーは保持されます。","marketplace.detail.withdrawSuccess":"マーケットから取り下げました","marketplace.detail.withdrawFailed":"取り下げ失敗:{{err}}","marketplace.myPacks.buttonLabel":"自分の公開","marketplace.myPacks.buttonTitle":"{{login}} の公開を見る","marketplace.myPacks.buttonTitleEmpty":"先に 設定 → マーケット で公開者名を設定してください","marketplace.myPacks.searchPlaceholder":"名前・タグを検索","marketplace.myPacks.notLoggedIn":"先に 設定 → マーケット で公開者名を設定してください","marketplace.myPacks.emptyTitle":"まだ公開したパックはありません","marketplace.myPacks.emptyHint":"「スタイル」ページで編集して「マーケットに公開」をクリックするか、右上からローカルパックをアップロードしてください。","marketplace.myPacks.noMatch":"一致するパックがありません","marketplace.myPacks.summary":"公開済み {{count}} 個","marketplace.myPacks.summaryPending":"公開済み {{count}} 個 · 審査中 {{pending}} 個","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"更新","marketplace.myPacks.actions.withdraw":"取り下げ","marketplace.myPacks.loadFailed":"自分の公開の読み込みに失敗:{{err}}","marketplace.myPacks.loadingTitle":"読み込み中…","marketplace.myPacks.loadingHint":"マーケットからあなたの最新公開を取得しています。","marketplace.myPacks.loadErrorTitle":"読み込み失敗","marketplace.myPacks.loadErrorRetry":"再試行","marketplace.upload.confirmBtn":"アップロード確定","marketplace.upload.updateTitle":"「{{name}}」を更新","marketplace.upload.updateHint":"アップロードするローカルの新版を選んで「アップロード確定」を押してください。同名パックは自動選択されます。","marketplace.upload.recommendedBadge":"推奨","marketplace.state.pending":"審査中","marketplace.state.approved":"公開済み","marketplace.state.rejected":"却下","marketplace.state.withdrawn":"取り下げ","marketplace.state.superseded":"新版に置換済み","marketplace.state.unknown":"不明","marketplace.oauth.title":"GitHub でサインイン","marketplace.oauth.generating":"デバイスコードを生成中…","marketplace.oauth.browserHint":"ブラウザで {{uri}} を開き、このコードを入力してください:","marketplace.oauth.copyBtn":"コピー","marketplace.oauth.copied":"デバイスコードをコピー","marketplace.oauth.copyFailed":"コピー失敗:{{err}}","marketplace.oauth.openBrowserBtn":"ブラウザを開く","marketplace.oauth.cancelBtn":"キャンセル","marketplace.oauth.waiting":"ブラウザでの認可を待っています…","marketplace.oauth.successAs":"@{{login}} としてサインイン","marketplace.oauth.retryBtn":"再試行","marketplace.oauth.closeBtn":"閉じる","marketplace.oauth.loginBtn":"サインイン","marketplace.oauth.loginTooltip":"GitHub でサインイン","marketplace.oauth.reloginTooltip":"再サインイン / アカウント切替(現在 @{{login}})","marketplace.modal.loggedIn":"現在のサインイン ID —— 設定 → 録音 → マーケット で変更","marketplace.modal.notLoggedIn":"未サインイン —— 設定 → 録音 → マーケット で公開者名を設定","marketplace.modal.notLoggedInLabel":"未サインイン","shell.shortcutLabel":"録音ショートカット","shell.shortcutHint":"開始 / 停止","shell.betaTag":"BETA","shell.betaNote":"ローカル保存、任意でクラウドバックアップ","shell.navHint.overview":"ステータス概要:使用状況・プロバイダー・権限の状態","shell.navHint.history":"入力履歴:過去の書き起こしを検索・再生・コピー","shell.navHint.vocab":"辞書:固有名詞の認識精度を上げるカスタムホットワード","shell.navHint.style":"スタイル:出力スタイルとカスタムプロンプトを管理","shell.navHint.translation":"翻訳:Shift を押しながら話すと目標言語で挿入","shell.navHint.selectionAsk":"選択質問:テキストを選択して音声で質問","shell.navHint.settings":"環境設定:ショートカット・プロバイダー・プライバシー・更新","shell.footer.account":"アカウント","shell.footer.feedback":"フィードバック","shell.footer.settings":"設定","shell.footer.help":"ヘルプ","shell.footer.version":"バージョン {{version}}","shell.footer.helpPopover.tagline":"ローカル駆動の音声入力レイヤー","shell.footer.helpPopover.releaseNotes":"リリースノートを見る ↗","shell.footer.helpPopover.docs":"ヘルプセンター ↗","shell.providerPrompt.title":"音声プロバイダーを設定","shell.providerPrompt.body":"ASR または LLM プロバイダーが未設定のため、音声入力と整文が一時的に利用できません。","shell.providerPrompt.later":"後で","shell.providerPrompt.openSettings":"設定を開く","shell.hotkeyModePrompt.title":"録音方式を確認","shell.hotkeyModePrompt.body":"デフォルトがトグルに変更されました。以前トリガーモードを変更した場合は、録音設定で確認してください。","shell.hotkeyModePrompt.later":"後で通知","shell.hotkeyModePrompt.openSettings":"録音設定を開く","onboarding.welcome":"OpenLess へようこそ","onboarding.intro":"ローカルで話し、ローカルで文字に。開始前にシステム権限が 2 つ必要です。","onboarding.accessibilityTitle":"アクセシビリティ","onboarding.hotkeyTitle":"グローバルショートカット","onboarding.accessibilityDesc":"グローバルショートカット(既定 {{trigger}})の検知と、認識結果のカーソル位置への入力に使用します。","onboarding.hotkeyDesc":"グローバルショートカット監視が利用可能か確認するために使用します。","onboarding.micTitle":"マイク","onboarding.micDesc":"音声入力の取得に使用します。","onboarding.actionNotApplicable":"権限不要","onboarding.actionGranted":"許可済み","onboarding.actionOpenSystem":"システム設定を開く","onboarding.actionRestart":"アクセシビリティをリセットして OpenLess を再起動","onboarding.actionGrant":"許可する","onboarding.actionRequestMic":"許可ダイアログを表示","onboarding.micNoDeviceHint":"マイクが検出されません。マイクを接続して有効にしてから、もう一度お試しください。","onboarding.accessibilityHint":"許可後は **OpenLess を完全に終了** してから再起動してください(macOS TCC の仕様)。","onboarding.footerHint":"すべての権限が揃うとこのガイドは自動で閉じます。閉じない場合はメニューバーの OpenLess → 終了 から再起動してください。","onboarding.continueToSettings":"設定のみ開く(音声とグローバルショートカットは利用不可)","onboarding.androidContinue":"アプリに進む","onboarding.androidFooterHint":"音声入力にはマイク権限が必要です。上の「許可ダイアログを表示」をタップするか、先にアプリへ進み、概要ページで後から許可してください。","onboarding.androidTitle":"OpenLess を設定","onboarding.androidIntro":"モバイル権限とサービス設定を順番に完了します。","onboarding.androidStepCounter":"{{current}} / {{total}}","onboarding.androidBack":"戻る","onboarding.androidNext":"次へ","onboarding.androidFinish":"完了して開始","onboarding.androidSteps.microphoneTitle":"マイク権限","onboarding.androidSteps.microphoneDesc":"Android のシステム権限カードを表示し、OpenLess の録音を許可します。","onboarding.androidSteps.accessibilityTitle":"アクセシビリティサービス","onboarding.androidSteps.accessibilityDesc":"認識結果を現在の入力欄へ貼り付け、入力環境の検出を補助します。","onboarding.androidSteps.overlayPermissionTitle":"フローティングウィンドウ権限","onboarding.androidSteps.overlayPermissionDesc":"他のアプリ上に録音コントロールを表示できるようにします。","onboarding.androidSteps.overlayConfigTitle":"フローティングウィンドウ設定","onboarding.androidSteps.overlayConfigDesc":"表示タイミング、起動方法、スワイプ操作、ボタンサイズを設定します。","onboarding.androidSteps.asrTitle":"ASR クラウドサービス","onboarding.androidSteps.asrDesc":"音声認識サービスのプロバイダー、キー、エンドポイント、モデルを設定します。","onboarding.androidSteps.llmTitle":"LLM サービス","onboarding.androidSteps.llmDesc":"整文、翻訳、Q&A に使う言語モデルサービスを設定します。","overview.refresh":"状態を更新","overview.servicesTitle":"使用中の音声サービス","overview.statsTitle":"利用記録","overview.omniKind":"マルチモーダル音声","overview.omniName":"現在の Omni モデル","overview.statusLoading":"サービス設定を読み込み中…","overview.configureProvider":"設定する","overview.manageProvider":"サービスを管理","overview.recentEmptyHint":"まだ音声入力の記録がありません。上の案内に沿って試すと、ここに結果が表示されます。","overview.providerHelp.asr":"音声をテキストに変換します。","overview.providerHelp.llm":"あなたのスタイルに合わせて文章を整えます。","overview.providerHelp.omni":"1つのモデルで音声認識とテキスト処理を行います。","overview.actions.refresh":"再読み込み","overview.actions.services":"AI サービスとモデル","overview.actions.general":"録音と入力","overview.actions.shortcuts":"ショートカット","overview.actions.privacy":"権限とデータ","overview.guide.nextStep":"次のステップ","overview.guide.loadingTitle":"設定を読み込んでいます","overview.guide.loadingDesc":"使用中のサービスと次の操作をまもなく表示します。","overview.guide.unavailableTitle":"サービスの状態を読み込めません","overview.guide.unavailableDesc":"再読み込みするか、AI サービスで設定を確認してください。","overview.guide.servicesTitle":"まず音声サービスを設定しましょう","overview.guide.servicesDesc":"ここから始めるのがおすすめです。音声認識とテキスト処理のサービスを選びましょう。Omni モードでは、使用するマルチモーダルモデルだけを設定します。","overview.guide.permissionsTitle":"ショートカットの状態を確認しましょう","overview.guide.permissionsDesc":"ショートカット機能を利用できません。「権限とデータ」で状態と対処方法を確認してください。","overview.guide.shortcutsTitle":"録音ショートカットを設定しましょう","overview.guide.shortcutsDesc":"使いやすいキーを選ぶと、入力中に音声入力を始められます。","overview.guide.recordingTitle":"録音方法を確認しましょう","overview.guide.recordingDesc":"サービス設定は保存されています。録音設定でマイクと録音モードを選びましょう。","overview.guide.tryDictationTitle":"音声入力を試してみましょう","overview.guide.tryDictationDesc":"入力したい場所にカーソルを置いてください。{{shortcut}}","overview.guide.permissionsHint":"録音やショートカットが反応しない場合は、「権限とデータ」で権限、マイク、ショートカットの状態を確認してください。","overview.kicker":"概要","overview.title":"本日の概要","overview.desc":"本日のディクテーション統計とシステム状態。","overview.pressPrefix":"押す","overview.pressSuffix":"で録音開始","overview.asrKind":"音声認識","overview.llmKind":"テキスト処理","overview.asrName":"Volcengine","overview.asrSubname":"bigmodel","overview.llmName":"OpenAI 互換","overview.llmConfigured":"アクティブ LLM を設定済み","overview.llmNotConfigured":"未設定","overview.statusConfigured":"設定済み","overview.statusNotConfigured":"未設定","overview.statusUnknown":"読み取れません","overview.credentialsLoadError":"認証情報の状態を読み取れません","overview.metricChars":"本日の文字数","overview.metricSegments":"{{count}} セグメント","overview.metricDuration":"本日の合計時間","overview.metricAvg":"平均セグメント","overview.metricAvgTrend":"本日の平均","overview.metricNoData":"データなし","overview.historyLoadError":"履歴の読み込みに失敗","overview.metricTotal":"累計記録","overview.metricTotalTrend":"ローカル保存(上限 200)","overview.activityTitle":"年間アクティビティ","overview.activityCount":"{{count}} 回の入力","overview.activityLoadError":"アクティビティの読み込みに失敗","overview.period.ariaLabel":"集計期間","overview.period.last7Days":"直近 7 日","overview.period.last30Days":"直近 30 日","overview.period.dailyAverage":"1 日平均 {{value}}","overview.period.minutes":"{{value}} 分","overview.period.hoursMinutes":"{{hours}} 時間 {{minutes}} 分","overview.metricName.ariaLabel":"指標","overview.metricName.count":"件数","overview.metricName.chars":"文字数","overview.metricName.duration":"時間","overview.recentTitle":"最近の認識","overview.recentAll":"すべて表示 →","overview.recentEmpty":"記録がありません。{{trigger}} を押して最初の録音を始めましょう。","overview.recentLoadFailed":"最近の認識を読み込めません。再試行してください。","overview.historyRetry":"再試行","overview.weekDays.0":"日","overview.weekDays.1":"月","overview.weekDays.2":"火","overview.weekDays.3":"水","overview.weekDays.4":"木","overview.weekDays.5":"金","overview.weekDays.6":"土","overview.inAppDictation.title":"アプリ内音声入力","overview.inAppDictation.start":"録音開始","overview.inAppDictation.stop":"録音停止","overview.inAppDictation.idle":"タップして録音開始","overview.inAppDictation.recording":"録音中…","overview.inAppDictation.processing":"処理中…","overview.androidMicBanner.title":"マイク権限が必要です","overview.androidMicBanner.desc":"マイクを許可すると、アプリ内音声入力が使えます。","overview.androidMicBanner.grant":"許可ダイアログを表示","overview.androidMicBanner.openSettings":"設定を開く","history.exportError":"録音のエクスポートに失敗しました。もう一度お試しください。","history.kicker":"履歴","history.title":"履歴","history.desc":"ローカルに保存された認識記録。","history.filterAll":"すべて","history.summary":"合計 {{total}} 件 · 表示 {{shown}}","history.searchPlaceholder":"文字起こしを検索…({{shortcut}})","history.searchNoMatch":"「{{query}}」に一致する項目はありません。","history.empty":"履歴がありません。{{trigger}} を押して録音してみましょう。","history.loadFailed":"履歴の読み込みに失敗:{{err}}","history.retry":"再試行","history.clearFailed":"履歴の消去に失敗:{{err}}","history.deleteFailed":"記録の削除に失敗:{{err}}","history.copyFailed":"コピーに失敗:{{err}}","history.playRecording":"録音を再生","history.audioLoading":"読み込み中…","history.audioDecodeFailed":"音声デコード失敗:{{err}}","history.exportRecording":"録音をエクスポート","history.exportFailed":"エクスポート失敗:{{err}}","history.retranscribe":"再認識","history.retranscribing":"認識中…","history.retranscribeFailed":"再認識に失敗:{{err}}","history.rawLabel":"原文","history.rawEmpty":"(空)","history.selectHint":"左側から 1 件選択して詳細を表示。","history.recorded":"録音 {{duration}}","history.stepAsr":"認識","history.multimodalPipeline":"マルチモーダル","history.stepAsrHint":"キーを離してから認識結果を待った時間。ストリーミング認識は録音中に変換するため、通常は録音時間よりずっと短くなります。","history.stepPolish":"推敲","history.stepInsert":"挿入","history.chars":"{{count}} 文字","history.vocabHits":"{{count}} ホットワード","history.inserted":"入力済み","history.pasteSent":"貼り付けを試行","history.copiedFallback":"コピー済み(要 {{shortcut}})","history.insertFailed":"入力失敗","history.confirmClear":"全 {{count}} 件の記録を削除しますか?この操作は取り消せません。","history.backToList":"一覧に戻る","history.repolish.title":"再整文","history.repolish.hint":"上の原文でもう一度整文を実行します。結果は今回の表示のみで、この記録には書き戻しません。元のスタイルパックが削除されているか、古い記録の場合は、再試行では現在のスタイルを使用します。","history.repolish.retry":"同じスタイルで再試行","history.repolish.retrying":"再試行中…","history.repolish.apply":"適用","history.repolish.applying":"整文中…","history.repolish.pickStyle":"スタイルパックを選択","history.repolish.noPacks":"利用できるスタイルパックがありません。","history.repolish.packsLoadFailed":"スタイルパックの読み込みに失敗:{{err}}","history.repolish.failed":"再整文に失敗:{{err}}","history.repolish.timeout":"現在の LLM プロバイダーが 30 秒以内に応答しませんでした。より速いプロバイダーに切り替えるか、後でもう一度お試しください(無料モデルプールは混雑しがちです)。","history.repolish.resultTitle":"{{name}} の結果","history.repolish.retryResultTitle":"再試行の結果","history.repolish.empty":"(モデルが空の結果を返しました)","history.repolish.clear":"結果を消去","vocabCard.title":"この語を覚えますか?","vocabCard.accept":"覚える","vocabCard.reject":"不要","insertFallbackCard.copy":"コピー","insertFallbackCard.copied":"コピーしました","insertFallbackCard.copyFailed":"コピーに失敗","insertFallbackCard.dismiss":"閉じる","vocab.selectAllVisible":"現在の結果を選択","vocab.selectedCount":"{{count}} 語を選択中","vocab.selectWord":"「{{phrase}}」を選択","vocab.deleteSelected":"選択項目を削除({{count}})","vocab.batchDeleteFailed":"{{count}} 語を削除できませんでした。選択状態を保持しています。再試行できます。","vocab.kicker":"辞書","vocab.title":"辞書","vocab.desc":"新語や専門用語を追加して認識精度を向上。","vocab.sectionTitle":"項目","vocab.placeholder":"単語を入力し、Enter または追加をクリック…","vocab.tip":"日本語と英数の混在対応 · 数字始まりは字面通り認識 · ヒット回数を自動カウント","vocab.loadFailed":"読み込み失敗:{{err}}","vocab.empty":"語彙がありません。新語や専門用語を上に入力すると、ディクテーション時に優先的にマッチします。","vocab.tipDisabled":"クリックで無効化","vocab.tipEnabled":"クリックで有効化","vocab.removeAria":"削除","vocab.edit":"編集","vocab.editTitle":"単語を編集","vocab.editSave":"保存","vocab.editEmpty":"単語を入力してください。","vocab.filter.all":"すべて","vocab.filter.auto":"自動追加","vocab.filter.manual":"手動追加","vocab.searchPlaceholder":"検索","vocab.searchEmpty":"一致する単語がありません。","vocab.newWord":"新語","vocab.newWordTitle":"新語を追加","vocab.newWordDesc":"単語を直接入力、またはプリセットテンプレートから一括インポート。","vocab.newWordInputPlaceholder":"単語を入力して Enter で追加…","vocab.newWordTemplates":"プリセットテンプレート","vocab.newWordTemplateCount":"{{count}} 語","vocab.newWordAddSelected":"選択を追加","vocab.learnedSection":"自動収集({{count}})","vocab.removeAllLearned":"すべて削除","vocab.corrections.title":"補正ルール","vocab.corrections.tip":"ASR の誤認識を修正。{num} 数字ワイルドカード対応。","vocab.corrections.patternPlaceholder":"誤認識された表記(例:{num}粒)","vocab.corrections.replacementPlaceholder":"修正後の表記(例:{num}例)","vocab.corrections.empty":"補正ルールはまだありません。","vocab.corrections.invalid":"文字列の置換、または {num} 数字ワイルドカードを 1 つだけ含むルールに対応しています。例:{num}粒 → {num}例。","vocab.corrections.tipDisabled":"クリックしてこのルールを無効化","vocab.corrections.tipEnabled":"クリックしてこのルールを有効化","vocab.corrections.removeAria":"補正ルールを削除","vocab.corrections.learnedBadge":"自動","vocab.corrections.learnedTip":"あなたの手直しから自動で収集したものです。いつでも削除できます。","vocab.corrections.onlyLearned":"自動収集のみ表示({{count}})","vocab.corrections.removeAllLearned":"自動収集をすべて削除","vocab.corrections.suggestTitle":"この直しを覚えますか?","vocab.corrections.suggestAccept":"覚える","vocab.corrections.suggestDismiss":"不要","vocab.presets.title":"シーンプリセット","vocab.presets.tip":"複数選択で一括適用。編集・新規作成対応。","vocab.presets.create":"プリセット新規作成","vocab.presets.apply":"選択中を有効化","vocab.presets.save":"プリセットを保存","vocab.presets.edit":"{{name}} を編集","vocab.presets.newPreset":"新しいプリセット","vocab.presets.namePlaceholder":"プリセット名","vocab.presets.wordsPlaceholder":"語彙(カンマまたは改行区切り)","style.kicker":"スタイル","style.title":"出力スタイル","style.desc":"録音のデフォルト出力スタイルを選択。","style.masterToggle":"全体有効化","style.currentDefault":"現在のデフォルト","style.ariaSetDefault":"デフォルトに設定","style.saveFailed":"保存に失敗しました: {{error}}","style.customPromptTitle":"カスタムプロンプト","style.customPromptPlaceholder":"任意。このスタイルの組み込み system prompt の末尾に追加されます。","style.customPromptHint":"空のままなら現在の挙動を維持します。保存後、このスタイルの整文と repolish の両方に適用されます。Ctrl/Cmd+Enter でも保存できます。","style.customPromptSave":"プロンプトを保存","style.customPromptDirty":"未保存","style.systemPromptMovedHint":"フルの system prompt 編集は Settings -> Providers に移動しました。このページではスタイルの有効化とデフォルト設定だけを扱います。","style.modes.raw.name":"原文","style.modes.raw.desc":"句読点と必要な区切りのみ補い、書き換えや拡張はしません。","style.modes.raw.sample":"元の話し言葉を保持。「えー」「あの」などの口癖は除去しますが、文の組み替えはしません。","style.modes.light.name":"軽い整文","style.modes.light.desc":"口癖の除去、句読点の補完、自然な送信可能テキストへの整理。","style.modes.light.sample":"原稿読み上げのようにならないよう、語気と表現の癖を残しつつ、文章をなめらかにします。","style.modes.structured.name":"明確な構造","style.modes.structured.desc":"開発の相談、技術的な問題解決、製品への意見を、用語を正確に保って整理します。","style.modes.structured.sample":"1. トピック 1\na. ポイント\nb. ポイント\n2. トピック 2\na. ポイント\nb. ポイント","style.modes.formal.name":"正式な表現","style.modes.formal.desc":"業務コミュニケーションやメール用途向け。よりプロフェッショナルで完成度の高い文体。","style.modes.formal.sample":"メール用途では挨拶 / 結びを自動認識します。空疎な定型句は持ち込みません。","style.pack.builtinTags.minimalEdits":"最小限の修正","style.pack.builtinTags.strongCorrection":"誤認識を補正","style.pack.builtinTags.communication":"コミュニケーション","style.pack.builtinTags.natural":"自然な文章","style.pack.builtinTags.organized":"整理","style.pack.builtinTags.workplaceCommunication":"仕事のやり取り","style.pack.builtinTags.aiCoding":"AIコーディング","style.pack.builtinTags.technicalStructure":"技術内容の構造化","style.pack.newName":"名称未設定のスタイル","style.pack.newDescription":"このスタイルを使う場面を簡潔に説明してください。","style.pack.uploadIcon":"{{name}} の SVG アイコンをアップロード","style.pack.resetIcon":"既定のアイコンに戻す","style.pack.iconSaved":"アイコンを保存しました","style.pack.iconInvalid":"外部リソースを含まない有効な SVG を選択してください(最大 256 KB)。","style.pack.iconSaveFailed":"アイコンを保存できませんでした。もう一度お試しください。","style.pack.selectionListTitle":"選択範囲の推敲スタイル","style.pack.selectionListDesc":"ASRを使わない選択済みテキスト向け:文法・明瞭さ・書式の推敲。スタイルとプロンプトを個別に選べます。","style.pack.dictationTab":"録音 / ASRスタイル","style.pack.selectionTab":"選択範囲の推敲","style.pack.current":"現在","style.pack.useForSelection":"選択範囲に使用","style.pack.writtenPolish":"書面の推敲","style.pack.selectionPromptTitle":"選択範囲の推敲プロンプト(ASRなし)","style.pack.selectionPromptHint":"ユーザーが選択した書面テキスト用。ASRは経由せず、書き起こしとして扱わず、その中の質問にも答えません。","style.pack.selectionPromptEditorDesc":"選択範囲の推敲プロンプトを編集中。入力はユーザーが選択した書面テキストで、ASRは経由しません。","style.pack.dictationPromptEditorDesc":"録音 / ASRスタイルのプロンプトを編集中。入力は音声認識後の書き起こしテキストです。","style.pack.dictationPromptTitle":"録音 / ASRプロンプト","style.pack.dictationPromptHint":"録音の書き起こし後のASRテキスト用。口語整理、ASR誤字修正、固有名詞の復元ルールをここに書けます。","style.pack.selectionPromptFallback":"書面推敲プロンプトが未設定です。安全なデフォルトを使用します。","style.pack.selectionActivated":"「{{name}}」を選択範囲の推敲に設定しました","style.pack.selectionActivateFailed":"選択範囲の推敲スタイル切替に失敗:{{err}}","style.pack.selectionChars":"{{count}} 文字","style.pack.kicker":"スタイルパック","style.pack.title":"スタイルパック","style.pack.desc":"ローカルスタイルパックを管理。","style.pack.marketplaceBtn":"マーケット","style.pack.loadFailed":"スタイルパックの読み込みに失敗:{{err}}","style.pack.importZip":"ZIP をインポート","style.pack.exportZip":"ZIP をエクスポート","style.pack.exportShort":"エクスポート","style.pack.publishMarketplace":"マーケットに公開","style.pack.updateMarketplace":"マーケットの新版に更新","style.pack.publishDisabledHint":"先に 設定 → マーケット で GitHub ユーザー名を設定してください","style.pack.publishSuccess":"公開完了、マーケット審査待ち","style.pack.publishFailed":"公開失敗:{{err}}","style.pack.publishBuiltinRejected":"ビルトインパックは直接公開できません。先に編集してインポート版を作成してください。","style.pack.builtin":"ビルトイン","style.pack.imported":"インポート","style.pack.active":"使用中","style.pack.activate":"有効化","style.pack.edit":"編集","style.pack.closeEditor":"閉じる","style.pack.unsaved":"未保存","style.pack.listTitle":"ローカルパック","style.pack.listDesc":"パックを閲覧・切替。","style.pack.listCount":"{{count}} 個","style.pack.addPackTileTitle":"新規パック","style.pack.addPackTileHint":"空のテンプレートから開始。","style.pack.createSuccess":"新規パックを作成しました","style.pack.createFailed":"パック作成失敗:{{err}}","style.pack.save":"保存","style.pack.revert":"元に戻す","style.pack.saveSuccess":"スタイルパックを保存しました","style.pack.saveFailed":"スタイルパック保存失敗:{{err}}","style.pack.activateSuccess":"\"{{name}}\" を使用中に設定しました","style.pack.activateFailed":"使用中の設定に失敗:{{err}}","style.pack.importSuccess":"\"{{name}}\" をインポートしました","style.pack.importFailed":"ZIP インポート失敗:{{err}}","style.pack.exportSuccess":"{{path}} にエクスポートしました","style.pack.exportFailed":"ZIP エクスポート失敗:{{err}}","style.pack.exportDirtyFirst":"ZIP をエクスポートする前に現在のパックを保存してください。","style.pack.resetBuiltin":"リセット","style.pack.resetSuccess":"\"{{name}}\" をリセットしました","style.pack.resetFailed":"パックのリセット失敗:{{err}}","style.pack.deleteImported":"削除","style.pack.deleteConfirm":"\"{{name}}\" を削除しますか?この操作は取り消せません。","style.pack.deleteSuccess":"\"{{name}}\" を削除しました","style.pack.deleteFailed":"パック削除失敗:{{err}}","style.pack.summaryCurrentEmpty":"まだパックが選択されていません","style.pack.editorTitle":"パック編集","style.pack.editorDesc":"このパックを編集します。","style.pack.metaTitle":"インストール情報","style.pack.metaSource":"ソース","style.pack.metaBaseMode":"ベースモード","style.pack.metaUpdatedAt":"更新日時","style.pack.fieldName":"名前","style.pack.fieldAuthor":"作者","style.pack.fieldAuthorPlaceholder":"任意。ソース表示用","style.pack.fieldVersion":"バージョン","style.pack.fieldTags":"タグ","style.pack.fieldTagsPlaceholder":"カンマ区切り、例: community, voiceover, formal","style.pack.fieldDescription":"説明","style.pack.fieldModel":"推奨モデル(メタデータのみ)","style.pack.fieldModelPlaceholder":"任意。例: gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"メタデータのみ。実際のモデルは切り替わりません。","style.pack.fieldCompatibility":"互換アプリバージョン","style.pack.fieldCompatibilityPlaceholder":"任意。例: >=1.3.0","style.pack.fullPromptTitle":"System Prompt","style.pack.fullPromptHint":"このパック固有の Prompt です。","style.pack.promptChars":"{{count}} 文字","style.pack.runtimeTitle":"OpenLess 実行時付加指令","style.pack.runtimeDesc":"読み取り専用の実行時ヘルパー。","style.pack.runtimeContextTitle":"コンテキスト前提","style.pack.runtimeContextDesc":"言語とアプリのコンテキストから","style.pack.runtimeContextEmpty":"現在のプレビューでは付加されません。","style.pack.runtimeHotwordTitle":"ホットワードブロック","style.pack.runtimeHotwordDesc":"有効なホットワードから","style.pack.runtimeHotwordEmpty":"現在のプレビューでは付加されません。","style.pack.runtimeHistoryTitle":"マルチターン履歴ガード","style.pack.runtimeHistoryDesc":"ライブのマルチターン polish のみで使用","style.pack.runtimeHistoryEmpty":"前のターンが存在する場合のみ付加。","style.pack.runtimeActive":"有効","style.pack.runtimeInactive":"無効","style.pack.runtimePreviewFailed":"実行時プレビュー生成失敗:{{err}}","style.pack.runtimePreviewOmittedFrontApp":"プレビューはフロントアプリのラベルを省略しています。","style.pack.examplesTitle":"効果例","style.pack.examplesDesc":"パックと一緒にエクスポートされます。","style.pack.addExample":"例を追加","style.pack.examplesEmpty":"まだ例がありません。","style.pack.exampleTitlePlaceholder":"例 {{index}} のタイトル","style.pack.exampleInput":"入力","style.pack.exampleOutput":"出力","style.pack.examplesCount":"{{count}} 個の例","style.pack.discardCloseConfirm":"未保存の変更を破棄してエディタを閉じますか?","style.pack.discardSwitchConfirm":"未保存の変更を破棄して \"{{name}}\" に切り替えますか?","style.pack.derivativeBadge":"@{{login}} から派生","translation.searchLanguages":"言語を検索…","translation.noMatchingLanguages":"一致する言語がありません","translation.selectedLanguages":"{{count}} 言語を選択中","translation.languageSupportHint":"音声認識で使える言語はサービスによって異なります。翻訳先はアプリの表示言語とは独立しています。","translation.kicker":"翻訳","translation.title":"翻訳","translation.desc":"録音後に自動翻訳してから入力。","translation.statusEnabled":"有効","translation.statusDisabled":"無効","translation.working.title":"作業言語","translation.working.desc":"日常使用する言語を選択し、整文と翻訳に反映。","translation.target.title":"翻訳ターゲット言語","translation.target.desc":"録音中に Shift で翻訳を起動。「無効」で Shift 無効化。","translation.target.disabled":"無効(Shift で翻訳を発動しない)","translation.target.sameAsWorking":"ターゲット言語が唯一の作業言語と同じため、翻訳は発動しません(Shift を押しても通常の整文になります)。別のターゲットを選ぶか、上で作業言語を追加してください。","translation.style.title":"翻訳スタイル","translation.style.desc":"「スタイル」ページで現在有効なスタイルパックを自動的に引き継ぎます。","translation.style.unavailable":"取得できません","translation.save.workingFailed":"作業言語の保存に失敗しました。もう一度お試しください。","translation.save.targetFailed":"翻訳ターゲット言語の保存に失敗しました。もう一度お試しください。","translation.save.hotkeyRegisterFailed":"翻訳ショートカットの登録に失敗しました。設定は保存されていません。","translation.save.hotkeySaveFailed":"翻訳ショートカットの保存に失敗しました。もう一度お試しください。","translation.howto.title":"使い方","translation.howto.step1":"任意の入力欄にカーソルを置く。","translation.howto.step2":"{{trigger}} を押して録音開始。","translation.howto.step3":"録音中に {{shortcut}} を一度押して翻訳を起動。","translation.howto.step4":"再度 {{trigger}} を押して停止。","translation.howto.step5":"翻訳結果がカーソル位置に挿入されます。","translation.howto.indicatorTitle":"翻訳モードの確認方法","translation.howto.indicatorDesc":"Shift を押すと画面下部に青い「翻訳中」表示が出ます。","translation.howto.fallbackTitle":"セーフティフォールバック","translation.howto.fallbackDesc":"翻訳失敗時は原文がそのまま挿入されます。","selectionAsk.title":"選択追問","selectionAsk.desc":"テキストを選択して音声で質問。複数ターンの追問対応。","selectionAsk.shortcutSettings":"ショートカット設定","selectionAsk.guide.openTitle":"パネルを開く","selectionAsk.guide.openDesc":"{{hotkey}} で会話を始めます。","selectionAsk.guide.unsetDesc":"まずショートカット設定で選択追問のキーを割り当ててください。","selectionAsk.guide.selectTitle":"知りたい内容を選択","selectionAsk.guide.askTitle":"声で質問する","selectionAsk.guide.askDesc":"{{recordHotkey}} で録音し、もう一度押して送信します。","selectionAsk.guide.followup":"録音キーでもう一度、続けて質問できます。","selectionAsk.guide.dismiss":"パネルを閉じて、この会話を終了","selectionAsk.hotkey.title":"フロートウィンドウのショートカット","selectionAsk.save.historySaveFailed":"Q&A 履歴設定の保存に失敗しました。もう一度お試しください。","selectionAsk.history.title":"履歴を保存","selectionAsk.history.desc":"有効時、Q&A 記録をローカルに保存。デフォルト OFF。","selectionAsk.howto.title":"使い方","selectionAsk.howto.step2":"任意のアプリでテキストを選択。","settings.selectionWorkspace.title":"選択範囲アシスタント","settings.selectionWorkspace.hint":"テキスト選択後、同じショートカットで:音声編集オフ時は推敲、オン時は押しながら話してから「質問」か「編集」を選択。","settings.selectionWorkspace.polishHotkey":"選択範囲アシスタントのショートカット","settings.selectionWorkspace.polishHotkeyDesc":"音声編集オフ時は推敲、オン時は押しながら話す(録音方式はグローバル設定に従う)。","settings.selectionWorkspace.polishDelivery":"結果の処理","settings.selectionWorkspace.voiceDeliveryDesc":"音声編集後:選択範囲を直接置換するか、Ask パネルで確認してから置換します。","settings.selectionWorkspace.voiceEnable":"音声編集","settings.selectionWorkspace.voiceEnableDesc":"上と同じショートカットを使用。録音方式はグローバル設定に従います(現在:{{recordingLabel}})。","settings.selectionWorkspace.autoIntent":"意図を自動判定","settings.selectionWorkspace.autoIntentDesc":"オン時は設定モデルが質問/編集を判定。モデル失敗時のみ?/疑問語ヒューリスティックにフォールバック。","settings.selectionWorkspace.editKeywords":"追加の疑問手がかり","settings.selectionWorkspace.editKeywordsDesc":"自動判定オフ時のみ。1行1語で質問扱い。なければ?/疑問語ヒューリスティック。","settings.selectionPolish.title":"選択範囲の推敲","settings.selectionPolish.hotkey":"起動ショートカット","settings.selectionPolish.hotkeyDesc":"記録後すぐに有効になります。録音・質問などのグローバルショートカットと重複すると拒否されます。","settings.selectionPolish.delivery":"結果の処理方法","settings.selectionPolish.hint":"任意のテキストを選択してから起動します。マイクやASRは不要で、現在のスタイルパックと専用の選択用プロンプトを使用します。","settings.selectionPolish.directReplace":"直接置き換え","settings.selectionPolish.directReplaceHint":"モデル完了後に元の選択範囲を安全に置き換えます。","settings.selectionPolish.previewConfirm":"プレビューして確認","settings.selectionPolish.previewConfirmHint":"編集可能なウィンドウで結果を確認してから、元の選択範囲を置き換えます。","settings.kicker":"設定","settings.title":"設定","settings.desc":"録音、プロバイダー、ショートカット、権限の設定。","settings.network.title":"ネットワーク","settings.network.useSystemProxyLabel":"システムプロキシを使用","settings.network.useSystemProxyDesc":"オンにするとリクエストはシステムプロキシを経由します。オフにするとすべて直接接続します(国内サービスの遅延が低くなる傾向)。GitHub ログインやアップデートなど海外サービスには接続できない場合があります。リアルタイム音声ストリームと Less Computer は影響を受けません。","settings.dataStorage.title":"データ保存","settings.dataStorage.desc":"この端末に保存される会話履歴とコンテキスト。","settings.dataStorage.cursorContextLabel":"カーソル文脈(実験的)","settings.dataStorage.cursorContextDesc":"推敲時に、いま書いている文書のカーソル周辺の原文を読み取り、同音語・固有名詞・代名詞の書き分けをモデルが判断できるようにします。オンにすると、そのテキストがリクエストとともに設定中の LLM プロバイダへ送信されます。オフのときは一文字も読み取りません。パスワード入力欄、Secure Input、パスワード管理アプリ、ターミナルは常に読み取りません。macOS のみ。","settings.codingConsole.title":"Claude コンソール","settings.codingConsole.desc":"ローカルの Claude Code と MCP(computer use)の状態を検出し、ガードレール付きで Claude をヘッドレス実行して、出力とコストをストリーミング表示します。","settings.codingConsole.guardNote":"復元可能な操作はデフォルトで許可。rm -rf / sudo / 強制プッシュなどの高リスクコマンドはブロック。作業ディレクトリが git リポジトリなら実行前にスナップショットを作成し巻き戻し可能。","settings.codingConsole.status":"状態","settings.codingConsole.detect":"検出","settings.codingConsole.detecting":"検出中…","settings.codingConsole.installed":"Claude を検出","settings.codingConsole.notInstalled":"claude が見つかりません","settings.codingConsole.notInstalledHint":"まず Claude Code をインストールしてください(docs.anthropic.com/claude-code 参照)。または下に実行ファイルのフルパスを入力してください。","settings.codingConsole.mcpServers":"MCP サーバー {{count}} 件","settings.codingConsole.computerUsePresent":"デスクトップ操作(computer use)MCP を検出","settings.codingConsole.computerUseAbsent":"デスクトップ操作 MCP なし(コピー / 貼り付けなどの軽い操作は Bash で可能、不要)","settings.codingConsole.exePath":"実行ファイル","settings.codingConsole.workdir":"作業ディレクトリ","settings.codingConsole.workdirDesc":"任意。Claude はこのディレクトリ内で実行。git リポジトリなら実行前スナップショットで巻き戻し可能。","settings.codingConsole.workdirPlaceholder":"空欄なら一時ディレクトリで実行","settings.codingConsole.permissionMode":"権限モード","settings.codingConsole.mode.acceptEdits":"許可(復元可能)","settings.codingConsole.mode.plan":"読み取り専用 / 計画","settings.codingConsole.mode.default":"デフォルト(都度確認)","settings.codingConsole.mode.bypassPermissions":"完全許可(高リスク)","settings.codingConsole.promptPlaceholder":"Claude に指示、例:カレントディレクトリのファイル名を一覧表示","settings.codingConsole.run":"実行","settings.codingConsole.running":"実行中…","settings.codingConsole.cancel":"キャンセル","settings.codingConsole.clear":"クリア","settings.codingConsole.riskWarn":"高リスクの意図を検出:{{reason}}。ガードレールが実行時に高リスクコマンドをブロックします。","settings.codingConsole.toolUse":"ツール {{name}}","settings.codingConsole.done":"完了","settings.codingConsole.doneCost":"完了 · コスト ${{cost}}","settings.codingConsole.cancelled":"キャンセル済み","settings.codingConsole.outputPlaceholder":"出力はここにストリーミング表示されます…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"キーを押して話すと、選択した Agent が PC を操作します。macOS のみ。","settings.codingAgent.enable":"Less Computer を有効化","settings.codingAgent.comingSoonNote":"設定はすぐ保存されます。ホットキー起動と実行フローは今後のバージョンで対応。","settings.codingAgent.hotkeyHint":"有効にすると、ショートカットを押しながら話し、離すと選択した Agent の結果がカプセルに表示されます。","settings.codingAgent.voiceHotkey":"押しながら話すキー","settings.codingAgent.voiceHotkeyDesc":"押して話す、離して実行。Ctrl/Option/Fn などの単キー対応。機能の説明は「詳細」設定ページを参照。","settings.codingAgent.provider":"Agent バックエンド","settings.codingAgent.opencodeReady":"OpenCode v{{version}} を検出しました。","settings.codingAgent.opencodeMissing":"opencode コマンドが見つかりません。先にインストール(npm i -g opencode-ai)して opencode auth login でログインしてください。","settings.codingAgent.cliReady":"{{name}} v{{version}} を検出しました。","settings.codingAgent.cliMissing":"{{name}} コマンドが見つかりません。先にインストールとログインを行うか、下の「実行ファイル」に絶対パスを入力してください。","settings.codingAgent.sandboxGuardHint":"このバックエンドは粗い粒度のサンドボックス段階しか持たず、コマンド単位の高リスク一覧はありません。制限に触れた場合はそのままエラーとして報告し、「このコマンドを承認」カードは表示されません。","settings.codingAgent.codexModelHint":"Codex のモデル名(gpt-5 など)を入力します。空欄の場合は ~/.codex/config.toml の設定を使います。","settings.codingAgent.codexBudgetHint":"Codex には実行ごとの米ドル予算上限がありません。料金は設定したプロバイダーに依存します。","settings.codingAgent.codexMode.plan":"読み取り専用 / 計画","settings.codingAgent.codexMode.workspaceWrite":"ワークスペースへの書き込みを許可","settings.codingAgent.codexModelPlaceholder":"空欄 = Codex の既定値","settings.codingAgent.dshModelHint":"dsh の headless プロファイルにモデル切り替えはありません。モデルは dsh 自身のプロファイルで決まり、ここでは変更できません。","settings.codingAgent.panelHotkey":"パネルキー(音声 Agent)","settings.codingAgent.panelHotkeyDesc":"録音 → ASR → Claude → パネルにストリーミング表示。デフォルト Cmd/Ctrl+Shift+Enter。","settings.codingAgent.quickHotkey":"クイック取得キー","settings.codingAgent.quickHotkeyDesc":"選択テキストを取得 → Claude → 結果をカーソル位置へ。パネルなし、より高速。","settings.codingAgent.model":"モデル","settings.codingAgent.modelPlaceholder":"デフォルト: sonnet","settings.codingAgent.modelDefault":"デフォルト(自動 sonnet)","settings.codingAgent.modelHint":"Haiku = 最速 · Sonnet = バランス · Opus = 最強","settings.codingAgent.opencodeModelDefault":"OpenCode のデフォルトモデルを使用","settings.codingAgent.opencodeModelHint":"現在の OpenCode アカウントで利用できる provider/model を自動取得し、選択内容をすぐ保存します。","settings.codingAgent.opencodeModelsRefresh":"モデルを再取得","settings.codingAgent.opencodeModelsRefreshing":"OpenCode モデルを取得中…","settings.codingAgent.opencodeModelsLoaded":"{{count}} 個のモデルを取得しました。","settings.codingAgent.opencodeModelsEmpty":"利用可能なモデルが返されませんでした。OpenCode にログインするか、モデルプロバイダーを設定してください。","settings.codingAgent.opencodeModelsError":"モデルの取得に失敗しました:{{message}}","settings.codingAgent.exe":"実行ファイルのパス","settings.codingAgent.openPanel":"テキストテスト","settings.codingAgent.openPanelHint":"Less Computer パネルを直接開き、現在の Agent とモデル設定をテキストで確認します。","settings.codingAgent.openPanelAction":"Less Computer を開く","settings.debug.cursorLabel":"カーソル","settings.debug.title":"デバッグツール","settings.debug.desc":"認識の問題を調査するときに使用。通常はオフのままで構いません。","settings.debug.cursorProbeLabel":"カーソル文脈プローブ","settings.debug.cursorProbeDesc":"クリックしたあと、カウントダウン中に対象アプリへ切り替えて入力欄をクリックしてください。そこのカーソル周辺の原文を読み取り、どのアプリが読めてどれが安全ゲートに阻まれるかを確認できます。読み取りは一度きりで、どのプロバイダにも送信しません。","settings.debug.cursorProbeBtn":"プローブ(5 秒後)","settings.debug.cursorProbeCountdown":"{{n}} 秒後に読み取り…","settings.marketplace.title":"拡張マーケット","settings.marketplace.desc":"スタイルマーケットの投稿者 ID。スタイルの閲覧とインストールは「スタイル」ページで行います。","settings.marketplace.github.signIn":"GitHub でログイン","settings.marketplace.github.signedIn":"GitHub でログイン済み","settings.marketplace.github.signedOut":"ログインするとスタイルの投稿・いいねができます。","settings.marketplace.github.signOut":"ログアウト","settings.marketplace.github.starting":"ログインを開始しています…","settings.marketplace.github.codeHint":"開いた GitHub ページでこのコードを入力してください:","settings.marketplace.github.openGithub":"GitHub を開く","settings.marketplace.github.waiting":"GitHub を開きました。承認するとログインします…","settings.marketplace.github.failed":"ログインに失敗しました。再試行してください","settings.recording.title":"録音と入力","settings.recording.desc":"グローバル録音のショートカットとトリガー方式を定義します。","settings.recording.hotkeyLabel":"録音ショートカット","settings.recording.hotkeyDescAcc":"押すと音声キャプチャを開始(グローバル)。アクセシビリティ権限が必要です。","settings.recording.hotkeyDescNoAcc":"押すと音声キャプチャを開始(グローバル)。追加の権限は不要。","settings.recording.modeLabel":"録音方式","settings.recording.modeDesc":"トグル式 = 1 回押して開始、もう 1 回押して終了;押し続けて話す = 押している間だけ録音。","settings.recording.modeToggle":"トグル式","settings.recording.modeHold":"押し続けて話す","settings.recording.modeAuto":"自動","settings.recording.silenceAutoStopLabel":"無音で自動停止","settings.recording.silenceAutoStopDesc":"トグルモードのみ有効。音声を検出した後、無音が選択した時間続いたら録音を自動停止して送信します。一度も話さない場合は10秒後にキャンセル。既定ではオフで、2回目のキー押下による停止と Esc によるキャンセルは引き続き有効です。","settings.recording.silenceAutoStopSecondsLabel":"無音の長さ","settings.recording.silenceAutoStopSecondsValue":"{{value}} 秒","settings.recording.migrationNoticeTitle":"デフォルトがトグル式に変更されました","settings.recording.migrationNoticeDesc":"以前にトリガー方式を変更していた場合は、ここで再度確認してください。今回のアップデートではショートカット方式のデフォルト値と読み込みロジックが変更されています。「押し続けて話す」が好みであれば再度切り替えてください。","settings.recording.microphoneLabel":"優先マイク","settings.recording.microphoneDesc":"優先して使用する入力デバイスを選択します。一時的に利用できない場合はシステムのデフォルトマイクを使い、再接続後に自動で優先デバイスへ戻します。","settings.recording.microphoneDefault":"システムのデフォルトマイク","settings.recording.microphoneDefaultDesc":"システムのデフォルト入力デバイスを使用","settings.recording.microphoneSystemDefault":"システムデフォルト","settings.recording.microphoneUnavailable":"利用不可","settings.recording.microphoneLoadError":"マイクの読み込みに失敗:{{message}}","settings.recording.microphoneDialogTitle":"マイク","settings.recording.microphoneDialogDesc":"声を拾えるマイクを選択してください。メーターが動かない場合は別のマイクを試してください。","settings.recording.microphoneMonitorError":"入力レベルの監視に失敗:{{message}}","settings.recording.capsuleLabel":"録音カプセル","settings.recording.capsuleDesc":"録音 / 転写中、画面下部に半透明のカプセルを表示。","settings.recording.capsuleStyleTypeless":"Typeless コンパクトスタイル","settings.recording.capsuleStyleLabel":"カプセルスタイル","settings.recording.capsuleStyleSiri":"光条 Siri スタイル","settings.recording.capsuleStyleClassic":"Openless デフォルトスタイル","settings.recording.muteDuringRecordingLabel":"録音中はミュート","settings.recording.muteDuringRecordingDesc":"録音中にシステム出力を一時的にミュートし、スピーカーのエコーを防ぎます。","settings.recording.audioCueLabel":"録音開始音","settings.recording.audioCueDesc":"ホットキーで録音を開始するとき、合成した短い通知音を再生します。カプセルが非表示でも鳴ります。","settings.recording.audioCuePreview":"試聴","settings.recording.insertGroupTitle":"挿入とクリップボード","settings.recording.restoreClipboardLabel":"入力後にクリップボードを復元","settings.recording.restoreClipboardDesc":"ペースト成功後に元のクリップボード内容を復元(Windows / Linux のみ)。","settings.recording.pasteShortcutLabel":"貼り付けショートカット","settings.recording.pasteShortcutDesc":"挿入時に模擬するペーストショートカット。一部のターミナルでは Ctrl+Shift+V が必要(Windows / Linux のみ)。","settings.recording.pasteShortcutCtrlV":"Ctrl+V(既定 / ほとんどのアプリ)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V(kitty / alacritty / wezterm / ほとんどのターミナル)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert(xterm / urxvt)","settings.recording.comboRecordLabel":"ショートカットを記録","settings.recording.comboRecordDesc":"クリック後、希望するキーの組み合わせ(例:⌘⇧D)を押してください。トグル / 押し続けの両方に対応。","settings.recording.comboRecordBtn":"ショートカットを記録","settings.recording.comboResetBtn":"リセット","settings.recording.comboMenuToggle":"その他の操作","settings.recording.comboDisableHint":"コアショートカットは無効化できません(録音にはショートカットが必須です)","settings.recording.comboRecordHint":"ショートカットの組み合わせを押してください…","settings.recording.comboNeedKey":"組み合わせキー(例: ⌘⇧J)を設定してください。修飾キー単体は使えません","settings.recording.comboRecorded":"記録済み","settings.recording.comboClear":"クリア","settings.recording.comboConflict":"このショートカットの組み合わせは使用できません","settings.recording.allowNonTsfFallbackLabel":"非 TSF フォールバックを許可","settings.recording.allowNonTsfFallbackDesc":"Windows:TSF 入力が失敗した時は分割した Unicode SendInput を使い、それも失敗した場合はクリップボードへコピーします。","settings.recording.windowsInsertionModeLabel":"Windows 挿入方式","settings.recording.windowsInsertionModeDesc":"聴写結果をカーソル位置へ挿入する方法。クリップボード貼り付けは上の「貼り付けショートカット」を使い、改行を保持します。","settings.recording.windowsInsertionModeTsf":"TSF IME(既定)","settings.recording.windowsInsertionModeSendInput":"SendInput キー入力シミュレーション","settings.recording.windowsInsertionModePaste":"クリップボード貼り付け(Ctrl+V など)","settings.recording.macosNewlineModeLabel":"改行の送り方","settings.recording.macosNewlineModeDesc":"自動では既知のターミナルアプリに Line Feed(U+000A / Ctrl+J)、それ以外に Shift+Return を送ります。通常の Return は送信になります。","settings.recording.macosNewlineModeAuto":"自動(ターミナルでは Line Feed)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return(チャットで改行)","settings.recording.macosNewlineModeLineFeed":"Line Feed(ターミナル CLI / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return(複数メッセージに分割)","settings.recording.windowsSendInputNewlineModeLabel":"SendInput 改行シミュレーション","settings.recording.windowsSendInputNewlineModeDesc":"SendInput で改行をどのキーとして送るか。チャット入力は Shift+Enter、メモ帳 / VS Code などは Enter。","settings.recording.windowsSendInputNewlineModeEnter":"Enter(多くのエディタ)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter(チャット入力)","settings.recording.windowsSendInputNewlineModeCrLf":"CR+LF Unicode","settings.recording.windowsShowOpenlessInKeyboardListLabel":"キーボード一覧に OpenLess を表示","settings.recording.windowsShowOpenlessInKeyboardListDesc":"オフにすると Win+Space で OpenLess に切り替わりません。SendInput とクリップボード貼り付け挿入には影響しません。オンに戻すと一覧に再表示されます。","settings.recording.windowsShowOpenlessInKeyboardListError":"キーボード一覧を更新できません:システムが OpenLess 言語プロファイルの変更を拒否しました。","settings.recording.historyGroupTitle":"履歴とコンテキスト","settings.recording.historyRetentionLabel":"履歴保持期間(日)","settings.recording.historyRetentionDesc":"保持日数を超えた履歴は新規書き込み時に削除されます。0 = 時間で削除しない。","settings.recording.historyMaxEntriesLabel":"履歴件数の上限","settings.recording.historyMaxEntriesDesc":"ローカル保持セッション上限。空欄 = 200。範囲 5–200。","settings.recording.polishContextWindowLabel":"会話コンテキスト窓(分)","settings.recording.polishContextWindowDesc":"直近 N 分間の整文済み転写をマルチターン文脈として渡します。0 = 無効。","settings.recording.recordAudioForDebugLabel":"元の録音を保持(デバッグ)","settings.recording.recordAudioForDebugDesc":"生のマイク音声を wav で保存し、認識問題の診断に利用。","settings.recording.audioRecordingMaxEntriesLabel":"元音声の保持件数","settings.recording.audioRecordingMaxEntriesDesc":"ローカル保持 wav ファイル上限。空欄 = 200。","settings.recording.startupGroupTitle":"起動","settings.recording.startMinimizedLabel":"起動時にメインウィンドウを表示しない","settings.recording.startMinimizedDesc":"どの起動経路でもメインウィンドウを開かず、メニューバー / トレイのみで動作。","settings.recording.autoUpdateCheckLabel":"アップデートを自動チェック","settings.recording.autoUpdateCheckDesc":"起動時および 60 分ごとに自動チェック。","settings.recording.marketplaceGroupTitle":"スタイルパックマーケット","settings.recording.marketplaceBaseUrlLabel":"バックエンド URL","settings.recording.marketplaceBaseUrlDesc":"マーケットプレイスの URL。空欄でデフォルト値。","settings.recording.marketplaceDevLoginLabel":"GitHub ログイン名(アップロード ID)","settings.recording.marketplaceDevLoginDesc":"アップロード者を識別。空欄でアップロード・いいね無効。","settings.recording.startupAtBoot":"起動時に自動起動","settings.recording.startupAtBootDesc":"ログイン時に OpenLess を自動起動。","settings.recording.startupAtBootError":"自動起動の切り替えに失敗:{{message}}","settings.channels.backToList":"チャンネル一覧に戻る","settings.channels.done":"完了","settings.channels.llmTitle":"テキスト処理チャンネル","settings.channels.asrTitle":"音声認識チャンネル","settings.channels.current":"使用中","settings.channels.enabled":"有効","settings.channels.disabled":"無効","settings.channels.enabledFor":"{{name}} を有効にする","settings.channels.modelNotSet":"モデルの個別設定なし","settings.channels.localModelManaged":"モデルはシステムまたは「ローカルモデル」で管理","settings.channels.lastCheck":"前回の接続確認","settings.channels.verifying":"確認中…","settings.channels.notVerified":"未確認","settings.channels.passed":"確認に成功","settings.channels.failed":"確認に失敗 · {{reason}}","settings.channels.elapsed":"所要時間 {{ms}} ms","settings.channels.staleResult":"24 時間以上前の結果","settings.channels.connectionTitle":"サービス接続","settings.channels.modelTitle":"モデル設定","settings.channels.modelHint":"モデル名を直接入力するか、プロバイダーから一覧を取得して選択します。","settings.channels.availableModels":"利用可能なモデル","settings.channels.validationTitle":"接続の確認","settings.channels.validationHint":"実際にリクエストを送信して設定を確認します。サービスの利用枠を消費する場合があります。設定の保存だけでは確認を実行しません。","settings.channels.autoSaveHint":"変更は自動保存されます。設定が終わったら、手動で接続を確認できます。","settings.channels.nameHint":"同じプロバイダーのチャンネルを区別するための名前です。モデルや接続には影響しません。","settings.channels.errModel":"モデル","settings.channels.verify":"検証","settings.channels.verifyHint":"実際に API を1回呼んで、このチャネルが今使えるか確認します","settings.channels.errTimeout":"タイムアウト","settings.channels.errNetwork":"ネットワーク","settings.channels.errEndpoint":"エンドポイント","settings.channels.errGeneric":"失敗","settings.channels.dragHint":"ドラッグで優先順位を変更","settings.channels.orderHint":"有効なチャネルのうち、先頭のものを使用します。ドラッグで順序を変更できます。無効なチャネルは末尾に移動します。","settings.channels.empty":"チャネルがまだありません。「チャネルを追加」で最初のサービスを接続しましょう。","settings.channels.add":"チャネルを追加","settings.channels.edit":"編集","settings.channels.createTitle":"チャネルを追加","settings.channels.editTitle":"チャネルを編集","settings.channels.providerLabel":"プロバイダー","settings.channels.nameLabel":"チャネル名(任意)","settings.channels.namePlaceholder":"例:SiliconFlow — メインキー","settings.channels.create":"作成","settings.channels.delete":"チャネルを削除","settings.channels.deleteConfirm":"削除するとこのチャネルに保存された鍵も消去されます。","settings.channels.confirmDelete":"削除する","settings.channels.justNow":"たった今","settings.channels.minutesAgo":"{{count}}分前","settings.channels.hoursAgo":"{{count}}時間前","settings.channels.daysAgo":"{{count}}日前","settings.channels.localEngineModelHint":"「AI サービスとモデル → ローカルモデル」でモデルをダウンロード・切り替えできます。","settings.providers.localEngineNoCredentials":"ローカルエンジンに API キーやエンドポイントは不要です。","settings.providers.localModelLabel":"ローカルモデル","settings.providers.localModelEmpty":"ローカルモデル未ダウンロード","settings.providers.appleSpeechLocalNote":"Apple 音声認識はシステム内蔵エンジンを使用するため、モデル選択は不要です。","settings.providers.localEngineNote":"ダウンロード済みのローカルモデルは上のドロップダウンで直接選択できます。他のモデルは「ローカルモデル」でダウンロード・管理します。","settings.providers.localTag":"ローカル","settings.providers.llmTitle":"LLM モデル(整文)","settings.providers.llmDesc":"OpenAI 互換プロトコル、複数のサプライヤー切り替えに対応。","settings.providers.providerLabel":"サプライヤー","settings.providers.llmProviderDesc":"選択するとデフォルトの Base URL が自動入力されます。","settings.providers.credentialStorageNotice":"資格情報は OS の資格情報ストアに保存されます。","settings.providers.codexOAuthNotice":"Codex OAuth はローカルの Codex ログイン状態(~/.codex/auth.json)を使用します。OpenLess は API Key や Base URL を保存しません。","settings.providers.asrProviderDesc":"切り替えると対応する認証情報が自動選択されます。","settings.providers.asrTitle":"ASR 音声(転写)","settings.providers.asrDesc":"録音した音声をテキストに文字起こしします。","settings.providers.omniTitle":"マルチモーダルモデル","settings.providers.omniDesc":"1つのモデルが「プロンプト + 音声」から最終テキストを直接出力します(実験的パイプライン)。","settings.providers.pipelineModeLabel":"認識パイプライン","settings.providers.pipelineModeHint":"従来 = ASR 文字起こし + LLM 整形の2段式。マルチモーダル = 音声対応モデルが1回で完了。","settings.providers.pipelineModeTraditional":"従来モード","settings.providers.pipelineModeMultimodal":"マルチモーダルモード","settings.providers.pipelineIsolationNotice":"2つのモードは完全に独立した認証情報を使用します。切り替えてももう一方の設定は削除されず、切り戻せば復元されます。","settings.providers.presets.ark":"ARK(Volcengine Ark)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"SiliconFlow","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"Xiaomi MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter(無料モデル)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"Alibaba Cloud Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax(M3)","settings.providers.presets.stepfun":"StepFun(階躍星辰)","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"Tencent Cloud TokenHub","settings.providers.presets.customChatCompletions":"カスタム · Chat Completions","settings.providers.presets.customResponses":"カスタム · Responses","settings.providers.presets.customMessages":"カスタム · Messages","settings.providers.presets.custom":"カスタム","settings.providers.presets.asrVolcengine":"Volcengine bigasr","settings.providers.presets.asrBailian":"Alibaba Bailian リアルタイム ASR","settings.providers.presets.asrBailianQwen3":"Bailian Qwen3 リアルタイム ASR","settings.providers.presets.asrBailianFunAsrFlash":"Bailian Fun-ASR-Flash(録音ファイル)","settings.providers.presets.asrSiliconflow":"SiliconFlow SenseVoice","settings.providers.presets.asrStepfun":"StepFun StepAudio ASR","settings.providers.presets.asrZhipu":"Zhipu GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper(互換)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"カスタム OpenAI 互換","settings.providers.presets.asrXiaomiMimo":"Xiaomi MiMo ASR","settings.providers.presets.asrIflytek":"iFlytek リアルタイム音声認識","settings.providers.presets.asrTencentCloud":"Tencent Cloud Hunyuan リアルタイム ASR","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"ローカル sherpa-onnx(実験的)","settings.providers.presets.asrFoundryLocalWhisper":"ローカル Whisper(Foundry Local)","settings.providers.presets.asrLocalWhisper":"ローカル Whisper(バッチ)","settings.providers.presets.asrLocalQwen3":"ローカル Qwen3-ASR","settings.providers.presets.asrLocalQwen3Mlx":"ローカル Qwen3-ASR(MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"ローカル Qwen3-ASR(C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple 音声認識 (macOS)","settings.providers.presets.omniOpenai":"OpenAI(音声対応)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"Alibaba DashScope Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs は録音音声を設定済みのエンドポイントへアップロードしてバッチ文字起こしします。","settings.providers.zenmuxVocabularyNote":"ZenMux は JSON 文字起こしプロトコルを使用し、辞書ホットワード(prompt/hotwords)は送信されません。辞書は依然として潤色段階には渡りますが、音声認識のバイアスには使用されません。","settings.providers.asrAdvancedNote":"以下の詳細オプションは「カスタム OpenAI 互換」と「ZenMux」のプリセットのみに影響します。その他の名前付きプロバイダーのプリセットは内蔵動作のままです。","settings.providers.asrAdvancedVerboseJsonLabel":"セグメント指標 (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"サーバーが対応する場合に幻聴フィルタ用の segments 指標を要求します。非対応の自前サーバーではオフのままにしてください。","settings.providers.asrAdvancedChunkLabel":"分割時間 (ms)","settings.providers.asrAdvancedChunkHint":"0 = 分割なし(全体を一括送信)。長い録音や1リクエストの時間制限があるサーバー向けに分割送信できます。","settings.providers.asrAdvancedEnableItnLabel":"数字正規化 (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"口頭の数字・単位を算用数字に正規化します(例:「にせんにじゅうろく」→「2026」)。オフにすると元の表記を保持します。","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"API Key","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"認証モード","settings.providers.volcengineAuthModeAppIdToken":"レガシーアプリ(APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"新版コンソール API Key","settings.providers.volcengineMappingNote":"Secret Key は現在不要。Resource ID のデフォルトは volc.seedasr.sauc.duration。","settings.providers.volcengineApiKeyNote":"新版スピーチコンソールで作成した API Key で認証します(APP ID 不要)。API Key はスピーチコンソールの「API Key 管理」で作成:console.volcengine.com/speech/new/setting/apikeys。Resource ID のデフォルトは volc.seedasr.sauc.duration。","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"API Key","settings.providers.xfyunNote":"iFlytek オープンプラットフォームの「リアルタイム音声認識」サービスページで AppID と API Key を取得します。音声は 16kHz / 16bit / モノラル PCM。標準版 API にホットワード引数はありません(iFlytek コンソールで個別ホットワードを設定)。言語はデフォルトで中国語(普通話)です。","settings.providers.tencentCloudAppIdLabel":"Tencent Cloud AppID","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"Tencent Cloud 音声認識 API の認証情報を使用します。既定の Hy-ASR-3.0-preview は中国語・英語・20 方言に対応します。Preview は 60 秒以内の 16kHz モノラル PCM のみ対応し、コンテキストとホットワード強化は未対応です。","settings.providers.tencentTokenHubNote":"現在オンラインの言語モデルのみを表示します。一部のモデルは常に思考を使用し、思考をオフにしてもモデル固有の動作を維持します。","settings.providers.localAsrActiveNotice":"現在「{{name}}」を使用中。「詳細設定」タブから切り替えまたは無効化できます。","settings.providers.localAsrTakeoverHint":"「{{name}}」を有効化すると ASR プロバイダーが引き継がれます。","settings.providers.asrProviderTakenOver":"ローカルエンジンを使用中です。上のドロップダウンで別のプロバイダーを選ぶと切り替えられます(ローカルエンジンは自動的に停止します)。ローカルモデルは「サービス → ローカルモデル」で管理します。","settings.providers.localAsrHint":"デバイス上で動作、API キー不要。HuggingFace からモデルをダウンロード。","settings.providers.foundryLocalAsrHint":"デバイス上で動作、ASR API キー不要。初回はランタイムとモデルをダウンロード。","settings.providers.localAsrPerformanceWarning":"ローカル推論はクラウドより遅く、中国語の精度が低くなる場合があります。オフラインまたはプライバシー重視の場合に。","settings.providers.localAsrReady":"{{model}} ダウンロード済み","settings.providers.localAsrNotReady":"{{model}} 未ダウンロード","settings.providers.localAsrGoDownload":"モデル設定でダウンロード","settings.providers.localAsrManage":"モデル設定を開く","settings.providers.localAsrDownloadedTitle":"ダウンロード済みモデル","settings.providers.localAsrDelete":"削除","settings.providers.fillDefault":"デフォルト値を入力","settings.providers.readFailed":"読み込み失敗","settings.providers.apiKeyLabel":"API キー","settings.providers.baseUrlLabel":"エンドポイント","settings.providers.modelLabel":"モデル","settings.providers.customModelLabel":"カスタムモデル…","settings.providers.presetListLabel":"プリセットに戻る","settings.providers.searchModels":"モデルを検索…","settings.providers.noMatchingModels":"一致するモデルがありません","settings.providers.orcarouterCatalogHint":"OrcaRouter /models から取得します。このプロバイダーではカタログから選択し、モデル ID の手入力はできません。","settings.providers.orcarouterAsrCatalogHint":"OrcaRouter /models から取得し、音声入力に対応する Gemini のみ表示します。モデル ID の手入力はできません。","settings.providers.temperatureLabel":"Temperature","settings.providers.temperaturePlaceholder":"空欄なら送信しません。範囲は 0〜2(両端を含む)。例: 0.3","settings.providers.extraHeadersLabel":"追加 Headers","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"思考","settings.providers.thinkingModeOn":"オン","settings.providers.thinkingModeOff":"オフ","settings.providers.requestFormatLabel":"リクエスト形式","settings.providers.messagesThinkingLabel":"思考方式","settings.providers.thinkingAdaptive":"適応型","settings.providers.thinkingBudget":"固定予算","settings.providers.maxTokensLabel":"最大出力トークン数","settings.providers.thinkingBudgetLabel":"思考トークン予算","settings.providers.responsesThinkingHint":"一部のモデルでは思考を軽減できますが、完全には無効にできません。推論リクエストでは温度を送信しません。","settings.providers.messagesThinkingHint":"旧モデルや互換ゲートウェイでは固定予算が必要な場合があります。予算は最大出力未満にしてください。思考時は温度を送信しません。","settings.providers.llmRequestFormatInvalid":"リクエスト形式が無効です。選択し直してください。","settings.providers.llmThinkingModeInvalid":"思考方式が無効です。選択し直してください。","settings.providers.llmTokenLimitInvalid":"トークン上限は正の整数にしてください。","settings.providers.llmThinkingBudgetInvalid":"思考予算は1024以上、固定予算では最大出力未満にしてください。","settings.providers.llmResponseIncomplete":"応答が未完了か出力上限に達しました。出力済みテキストは保持されます。","settings.providers.llmProtocolHeaderConflict":"Messages の認証とバージョンヘッダーは自動設定されます。追加ヘッダーから x-api-key と anthropic-version を削除してください。","settings.providers.llmStreamError":"サーバーがストリームエラーを返しました。モデルとリクエスト設定を確認してください。","settings.providers.saveProtocol":"プロトコル設定を保存","settings.providers.thinkingModeHint":"選択したリクエスト形式とモデルが対応するパラメータで思考を有効化、無効化または軽減します。プロンプトに制御指示は追加しません。","settings.providers.bailianVocabularyIdLabel":"ホットワード Vocabulary ID(任意)","settings.providers.bailianVocabularyIdNote":"DashScope でホットワード辞書を作成済みの場合は vocab-... ID を入力します。空欄なら送信しません。","settings.providers.bailianModelRealtimeHint":"リアルタイムモデル · 話しながら文字起こし。","settings.providers.bailianModelSyncFileHint":"同期録音モデル · 話し終えてから一括で文字起こし(1 本 ≤ 5 分)。","settings.providers.bailianModelAsyncFileHint":"非同期ファイルモデル · 録音をアップロードし、文字起こしタスクの完了を待ちます。","settings.providers.appIdLabel":"App ID(アプリケーション ID)","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"Resource ID","settings.providers.toolsLabel":"接続チェック","settings.providers.toolsDesc":"上記の設定を保存してから、現在のモデル接続性を検証またはモデル一覧を取得します。失敗してもモデル ID を手動入力できます。","settings.providers.validate":"検証","settings.providers.validating":"検証中…","settings.providers.fetchModels":"モデル一覧","settings.providers.loadingModels":"モデル取得中…","settings.providers.modelMissing":"モデルが未設定です。先にモデル ID を入力してください。","settings.providers.modelsEmpty":"認証成功ですが、利用可能なモデルが返されませんでした。","settings.providers.modelsLoaded":"{{count}} 個のモデルを取得しました。","settings.providers.selectModel":"モデルを選んで上記欄に入力","settings.providers.modelSaved":"モデル {{model}} を保存しました。","settings.providers.validateSuccess":"接続チェックに合格しました。","settings.providers.validateFailed":"接続チェックに失敗しました。","settings.providers.providerHttpStatus":"サプライヤーが {{status}} を返しました。API Key 権限またはエンドポイントを確認してください。","settings.providers.endpointMustUseHttps":"HTTP Endpoint も使用できますが、API Key と音声内容が通信中に漏えいする可能性があります。","settings.providers.endpointHttpWarning":"HTTP Endpoint も使用できますが、API Key とリクエスト内容が通信中に漏えいする可能性があります。","settings.providers.endpointInvalid":"Endpoint の形式が無効です。","settings.providers.bailianEndpointSchemeInvalid":"Bailian リアルタイム ASR は DashScope の WebSocket ゲートウェイを使用します。エンドポイントは wss:// で始まる必要があります(既定: wss://dashscope.aliyuncs.com/api-ws/v1/inference/)。https:// の互換モード URL はここでは使用できません。","settings.providers.qwen3EndpointSchemeInvalid":"Qwen3 リアルタイム ASR は DashScope Realtime WebSocket ゲートウェイを使用します。エンドポイントは wss:// で始まる必要があります(既定: wss://dashscope.aliyuncs.com/api-ws/v1/realtime)。https:// の URL はここでは使用できません。","settings.providers.responseTooLarge":"サプライヤーの応答が大きすぎるため、安全のため検証を停止しました。","settings.providers.asrInvalidJson":"ASR の応答が有効な JSON ではありません。","settings.providers.asrMissingTextField":"ASR の応答に text フィールドがありません。","settings.providers.apiKeyMissing":"API Key が空です。","settings.providers.endpointMissing":"Endpoint が空です。","settings.providers.volcengineAppIdMissing":"APP ID が空です。","settings.providers.volcengineAccessTokenMissing":"Access Token が空です。","settings.providers.requestTimeout":"リクエストがタイムアウトしました。後で再試行してください。","settings.shortcuts.title":"ショートカット設定","settings.shortcuts.descAcc":"すべてのショートカットはグローバルで有効。権限設定でアクセシビリティを許可する必要があります。","settings.shortcuts.descNoAcc":"すべてのショートカットはグローバルで有効。応答がない場合は権限ページでグローバルショートカット監視の状態を確認してください。","settings.shortcuts.startStop":"録音開始 / 停止","settings.shortcuts.cancel":"本回の録音をキャンセル","settings.shortcuts.confirm":"カプセル入力を確定","settings.shortcuts.switchStyle":"前のスタイルに切り替え","settings.shortcuts.openApp":"OpenLess を開く","settings.shortcuts.stylePackTitle":"スタイル直行ショートカット","settings.shortcuts.stylePackDesc":"よく使うスタイルパックにショートカットを割り当てて一発切替;無効中のパックは自動で有効化されます。","settings.shortcuts.stylePackAdd":"スタイルショートカットを追加","settings.shortcuts.stylePackSelect":"スタイルパックを選択","settings.shortcuts.stylePackDisabledSuffix":"(無効)","settings.shortcuts.stylePackRemove":"削除","settings.shortcuts.agentPolish":"選択テキストを推敲","settings.shortcuts.agentPolishDesc":"テキスト選択 → キー → Claude が推敲 → 選択範囲を置換。","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"カスタムキーを押しながら話す → Claude がタスクを実行 → 結果をカプセル表示。","settings.shortcuts.agentVoiceHint":"「詳細 → Less Computer」で押しながら話すキーを設定してください。","settings.shortcuts.agentVoiceTrigger":"Less Computer 押しながら話すキー","settings.shortcuts.enable":"有効化","settings.shortcuts.disable":"無効化","settings.shortcuts.confirmHint":"右側の ✓ をクリック","settings.shortcuts.notSupported":"未対応","settings.shortcuts.androidReadOnly":"Android ではグローバルショートカットは使えません。概要ページの録音ボタンを使ってください。","settings.permissions.title":"権限","settings.permissions.descAcc":"OpenLess は正常動作のため以下のシステム権限が必要です。許可後は通常、App を完全に終了して再起動する必要があります。","settings.permissions.descNoAcc":"OpenLess はマイクへのアクセスと、グローバルショートカット監視状態を通じてネイティブフックの正常動作を判定する必要があります。","settings.permissions.micLabel":"マイク","settings.permissions.micDesc":"音声入力の取得に使用します。","settings.permissions.accLabel":"アクセシビリティ","settings.permissions.accDesc":"グローバルショートカットの監視と認識結果のカーソル位置への入力に使用。","settings.permissions.hotkeyLabel":"グローバルショートカット","settings.permissions.hotkeyDescWithAdapter":"現在のアダプタ:{{adapter}}。ショートカット監視がインストール済みかを判定します。","settings.permissions.hotkeyDescPlain":"ショートカット監視がインストール済みかを判定します。","settings.permissions.networkLabel":"ネットワーク","settings.permissions.networkDesc":"クラウド ASR / LLM 呼び出しに必要。ローカルモードでは無効化可能。","settings.permissions.networkOk":"利用可能","settings.permissions.networkOffline":"利用不可","settings.permissions.checking":"確認中…","settings.permissions.granted":"許可済み","settings.permissions.notApplicable":"権限不要","settings.permissions.denied":"未許可","settings.permissions.indeterminate":"未確定","settings.permissions.micNoDevice":"マイクが検出されません","settings.permissions.openSystem":"システム設定を開く","settings.permissions.restart":"リセットして再起動","settings.permissions.grant":"許可する","settings.permissions.rerunAndroidSetup":"セットアップを再実行","settings.permissions.hotkeyInstalled":"インストール済み","settings.permissions.hotkeyStarting":"インストール中…","settings.permissions.hotkeyFailed":"監視失敗","settings.permissions.windowsImeLabel":"Windows 入力メソッドバックエンド","settings.permissions.windowsImeDesc":"音声セッション中に OpenLess TSF IME へ一時的に切り替え、クリップボード入力の制限を回避します。","settings.permissions.windowsImeInstalled":"インストール済み","settings.permissions.windowsImeUnavailable":"利用不可","settings.permissions.androidImeLabel":"入力メソッド (IME)","settings.permissions.androidImeSelected":"選択中","settings.permissions.androidImeEnabled":"有効","settings.permissions.androidImeDisabled":"無効","settings.permissions.androidOverlayLabel":"フローティングオーバーレイ","settings.permissions.androidAccessibilityLabel":"アクセシビリティ","settings.permissions.androidAccessibilityImpact":"有効にすると、キーボードを切り替えずに現在の入力欄へ結果を出力します。無効の場合はクリップボードへコピーし、手動で貼り付けます。","settings.permissions.androidAccessibilityGrantedStale":"許可済み・未接続","settings.permissions.androidAccessibilityMessages.not_android":"アクセシビリティ状態は Android でのみ利用できます。","settings.permissions.androidAccessibilityMessages.not_enabled":"システムのアクセシビリティ設定で OpenLess を有効にしてください。","settings.permissions.androidAccessibilityMessages.operational":"アクセシビリティ サービスは稼働中です。","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"アクセシビリティは許可済みですが未接続です。システム設定で OpenLess を再度有効にしてください。","settings.permissions.androidAccessibilityMessages.status_read_failed":"アクセシビリティ状態を読み取れませんでした。","settings.permissions.androidShizukuLabel":"Shizuku 拡張モード","settings.permissions.androidShizukuHint":"任意機能。OEM 設定で手動切り替えが難しい場合のベストエフォート復旧。跨アプリ競合を完全には排除できません。再起動後は Shizuku の再起動が必要な場合があります。","settings.permissions.androidShizukuOpenApp":"Shizuku を開く","settings.permissions.androidShizukuRequestPermission":"権限をリクエスト","settings.permissions.androidShizukuRecover":"アクセシビリティを復旧","settings.permissions.androidShizukuRecoverConfirm":"Shizuku で OpenLess のアクセシビリティサービスを再有効化しますか?書き込み時点で有効なサービスはマージされます。グローバルスイッチがオフの場合、有効化すると登録済みの他サービスも起動する可能性があります。","settings.permissions.androidShizukuYes":"はい","settings.permissions.androidShizukuNo":"いいえ","settings.permissions.androidShizukuAccessibilityOperational":"アクセシビリティは登録済みで稼働中です。","settings.permissions.androidShizukuAccessibilityRegistered":"登録: {{registered}} · 稼働: {{operational}}","settings.permissions.androidShizukuState.notInstalled":"未インストール","settings.permissions.androidShizukuState.notRunning":"未起動","settings.permissions.androidShizukuState.notAuthorized":"未承認","settings.permissions.androidShizukuState.authorized":"承認済み","settings.permissions.androidShizukuState.binderDead":"切断","settings.permissions.androidShizukuState.notAndroid":"N/A","settings.permissions.androidShizukuMessages.not_android":"Shizuku は Android でのみ利用できます。","settings.permissions.androidShizukuMessages.not_installed":"Shizuku または Sui バックエンドがインストールされていません。","settings.permissions.androidShizukuMessages.unsupported_backend":"この Shizuku バックエンドは古すぎます。Shizuku または Sui を v11 以降に更新してください。","settings.permissions.androidShizukuMessages.not_running":"Shizuku が起動していません。先に Shizuku または Sui を起動してください。","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku が未承認です。OpenLess に権限を付与してください。","settings.permissions.androidShizukuMessages.binder_dead":"Shizuku 接続が切断されました。Shizuku を再起動してください。","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku 承認済み。アクセシビリティは稼働中です。","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku 承認済み。アクセシビリティは登録済みですが稼働していません。","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku 承認済み。アクセシビリティの復旧を試せます。","settings.permissions.androidShizukuMessages.operational":"アクセシビリティは登録済みで稼働中です。","settings.permissions.androidShizukuMessages.registered_stale":"アクセシビリティは登録済みですが、サービスは現在利用できません。","settings.permissions.androidShizukuMessages.not_registered":"システム設定でアクセシビリティが有効になっていません。","settings.permissions.androidShizukuMessages.already_granted":"Shizuku 権限は既に付与されています。","settings.permissions.androidShizukuMessages.binder_unavailable":"権限リクエスト中に Shizuku バインダーが利用できませんでした。","settings.permissions.androidShizukuMessages.request_cancelled":"Shizuku 権限リクエストがキャンセルされました。","settings.permissions.androidShizukuMessages.granted":"Shizuku 権限が付与されました。","settings.permissions.androidShizukuMessages.denied":"Shizuku 権限が拒否されました。","settings.permissions.androidShizukuMessages.permission_permanently_denied":"Shizuku 権限がブロックされました。Shizuku を開いて OpenLess を手動で許可してください。","settings.permissions.androidShizukuMessages.launched":"Shizuku 承認画面を開きました。","settings.permissions.androidShizukuMessages.launch_failed":"Shizuku 承認画面を開けませんでした。","settings.permissions.androidShizukuMessages.open_shizuku":"Shizuku マネージャーを開きました。","settings.permissions.androidShizukuMessages.jni_error":"Android Shizuku バックエンドに接続できませんでした。","settings.permissions.androidShizukuMessages.status_parse_failed":"Shizuku 状態を解析できませんでした。","settings.permissions.androidShizukuMessages.user_not_confirmed":"復旧にはユーザーの確認が必要です。","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku が未承認または利用できません。","settings.permissions.androidShizukuMessages.invalid_component":"無効なアクセシビリティサービスコンポーネント ID です。","settings.permissions.androidShizukuMessages.service_connect_failed":"Shizuku 特権サービスに接続できませんでした。","settings.permissions.androidShizukuMessages.recovery_in_progress":"別の復旧処理が進行中です。しばらくしてから再試行してください。","settings.permissions.androidShizukuMessages.parse_failed":"復旧結果を解析できませんでした。","settings.permissions.androidShizukuMessages.service_not_bound":"設定は書き込まれましたが、アクセシビリティはまだ稼働していません。","settings.permissions.androidShizukuMessages.success":"アクセシビリティサービスを復旧しました。","settings.permissions.androidShizukuMessages.read_failed":"アクセシビリティ設定を読み取れませんでした。","settings.permissions.androidShizukuMessages.read_enabled_failed":"アクセシビリティ有効フラグを読み取れませんでした。","settings.permissions.androidShizukuMessages.merge_failed":"アクセシビリティサービス一覧をマージできませんでした。","settings.permissions.androidShizukuMessages.write_services_failed":"有効なアクセシビリティサービス一覧を書き込めませんでした。","settings.permissions.androidShizukuMessages.write_enabled_failed":"アクセシビリティを有効化できませんでした。","settings.permissions.androidShizukuMessages.readback_failed":"書き込み後にアクセシビリティ設定を検証できませんでした。","settings.permissions.androidShizukuMessages.oem_rollback":"OEM がアクセシビリティ書き込みをロールバックしました。","settings.permissions.androidShizukuMessages.concurrent_change":"復旧中にアクセシビリティ設定が変更されました。","settings.permissions.androidShizukuMessages.partial_rollback":"復旧に失敗し、設定は一部のみ元に戻せました。システムのアクセシビリティ設定を確認してください。","settings.permissions.androidShizukuMessages.manual_required":"グローバルスイッチがオフで他の登録済みサービスがある場合、安全に自動復旧できません。システム設定から手動で操作してください。","settings.permissions.androidShizukuMessages.max_retries":"複数回試行後も復旧に失敗しました。","settings.permissions.androidShizukuMessages.internal_error":"内部エラーにより復旧に失敗しました。","settings.permissions.androidShizukuMessages.unknown":"不明な Shizuku 状態です。","settings.permissions.androidInsertStrategyLabel":"挿入方式","settings.permissions.androidOverlayTriggerLabel":"表示タイミング","settings.permissions.androidOverlayActivationModeLabel":"起動方法","settings.permissions.androidOverlayLeftSwipeActionLabel":"左スワイプ動作","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"キャンセル方向","settings.permissions.androidOverlaySizeLabel":"オーバーレイサイズ","settings.permissions.androidOverlaySizeHint":"フローティングボタンの直径を調整し、現在位置を保持します。","settings.permissions.androidInsertStrategy.accessibility":"入力欄へ自動出力","settings.permissions.androidInsertStrategy.clipboard":"クリップボードのみ","settings.permissions.androidInsertStrategyHint.accessibility":"アクセシビリティが必要です。使えない場合はクリップボードにコピーします。","settings.permissions.androidInsertStrategyHint.clipboard":"アクセシビリティ権限は不要です。コピー後に手動で貼り付けます。","settings.permissions.androidOverlayTrigger.background":"バックグラウンド","settings.permissions.androidOverlayTrigger.keyboard":"キーボード表示時","settings.permissions.androidOverlayTrigger.always":"常時","settings.permissions.androidOverlayTriggerHint.background":"シンプル","settings.permissions.androidOverlayTriggerHint.keyboard":"このモードは保留中です。既存設定はバックグラウンドに戻します。","settings.permissions.androidOverlayTriggerHint.always":"常に表示","settings.permissions.androidOverlayTriggerDisabled.keyboard":"キーボード表示時の表示は保留中です。今後はフローティングウィンドウのジェスチャーで置き換えます。","settings.permissions.androidOverlayActivationMode.tap":"タップで起動","settings.permissions.androidOverlayActivationMode.long_press":"長押しで起動","settings.permissions.androidOverlayActivationModeHint.tap":"1回目のタップで待機状態に入り、2回目のタップで通常の音声入力を開始します。","settings.permissions.androidOverlayActivationModeHint.long_press":"押している間だけ待機状態に入り、離すと現在の録音またはQAターンを終了します。","settings.permissions.androidOverlayLeftSwipeAction.translation":"翻訳入力","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"スタイルパック切替","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"待機状態で左スワイプすると翻訳入力を開始します。","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"待機状態で左スワイプすると前のスタイルパックへ切り替えます。","settings.permissions.androidOverlayCancelSwipeDirection.up":"上へスワイプ","settings.permissions.androidOverlayCancelSwipeDirection.down":"下へスワイプ","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"録音中に上へスワイプすると、文字起こしや挿入をせずにキャンセルします。","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"録音中に下へスワイプすると、文字起こしや挿入をせずにキャンセルします。","settings.permissions.windowsIme.installed":"インストール済み。音声入力時に OpenLess IME へ一時的に切り替えます。","settings.permissions.windowsIme.notInstalled":"未インストール。OpenLess は現在クリップボード / WM_PASTE フォールバックを使用しています。","settings.permissions.windowsIme.registrationBroken":"登録が破損しています。OpenLess IME を再インストールしてください。","settings.permissions.windowsIme.notWindows":"Windows のみ利用可能。","settings.advanced.multimodalPipelineTitle":"マルチモーダル認識パイプライン","settings.advanced.multimodalPipelineTitleHint":"1つのマルチモーダルモデルで音声認識を一括実行。従来の ASR + LLM 設定から完全に分離されます。","settings.advanced.multimodalPipelineLabel":"マルチモーダルパイプラインを有効化","settings.advanced.multimodalPipelineHint":"有効にすると「サービス → AI プロバイダー」ページに従来 / マルチモーダルの切り替えが表示されます。従来 = ASR + LLM、マルチモーダル = 音声対応モデル1つ。設定は別々に保存され、認証情報を共有しません。","settings.advanced.streamingInsertTitle":"ストリーミング入力","settings.advanced.streamingInsertTitleLinux":"ストリーミング入力(実験的)","settings.advanced.streamingInsertDesc":"逐字リアルタイム挿入で体感遅延を低減。条件不一致時はワンショット貼り付けにフォールバック。","settings.advanced.streamingInsertLabel":"ストリーミング入力","settings.advanced.streamingInsertHintMac":"ストリーミング中は一時的に ABC 入力ソースへ切替(CJK IME による傍受を回避)。セッション終了時に自動で元へ戻ります。","settings.advanced.streamingInsertHintWindows":"SendInput Unicode で TSF / IME を迂回。入力ソースの切替は不要です。","settings.advanced.streamingInsertHintLinux":"fcitx5 プラグインで文字を送信。ストリーミング入力は enigo + XTest でキー合成。","settings.advanced.streamingInsertSaveClipboardLabel":"クリップボードに保存","settings.advanced.streamingInsertSaveClipboardHint":"挿入成功後に最終テキストをクリップボードへ書き込み、Cmd+V で再貼付け可能にします。OFF ではクリップボードに触れません。","settings.advanced.localAsrTitle":"ローカル ASR モデル","settings.advanced.localAsrDesc":"転写をクラウドから本機推論に切り替えます。オフライン/プライバシー重視向け。","settings.advanced.localAsrWarningShort":"ローカル推論は遅く、スペック不足では欠字の可能性があります。","settings.advanced.qwen3Desc":"有効化すると ASR プロバイダーが引き継がれます。","settings.advanced.sherpaDesc":"有効化すると ASR プロバイダーが引き継がれます。","settings.advanced.foundryDesc":"有効化すると ASR プロバイダーが引き継がれます。","settings.advanced.notSupportedHere":"このプラットフォームでは未対応(推論モジュール未組込)。","settings.advanced.enable":"有効化","settings.advanced.alreadyActive":"有効","settings.advanced.disableLocalLabel":"ローカル ASR を無効化","settings.advanced.disableLocalDesc":"クラウド ASR(既定は Volcengine bigasr)に戻します。","settings.advanced.disable":"無効化","settings.advanced.platformNotSupported":"このプラットフォームではローカル ASR モデル統合に対応していません。","settings.advanced.confirmEnableLocalTitle":"ローカル ASR を有効化しますか?","settings.advanced.confirmEnableLocalBody":"有効にすると転写はクラウドより遅くなり、精度が低くなる場合があります。","settings.advanced.confirm":"有効化する","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"表示言語","settings.language.desc":"UI の表示言語を切り替えます。現在のセッションに即時反映され、次回起動時も維持されます。","settings.language.label":"言語","settings.language.labelDesc":"「システムに従う」を選ぶと OS の言語に合わせます。","settings.language.followSystem":"システムに従う","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"一部のネイティブメニュー(トレイ等)は再起動後に反映されます。","settings.layout.title":"レイアウト","settings.theme.title":"外観","settings.theme.label":"テーマ","settings.theme.activityHeatmapLabel":"概要ページに年間アクティビティを表示","settings.theme.stackedRowLayoutLabel":"読みやすいレイアウト(はみ出し防止)","settings.theme.stackedRowLayoutDesc":"小さい画面や大きな文字サイズでは、1行に収まらないボタンや設定が次の行に折り返され、横方向のはみ出しや文字の潰れを防ぎます。","settings.theme.conservativeLayoutLabel":"保守レイアウト","settings.theme.conservativeLayoutDesc":"ホーム、上部バー、下部バー以外の設定・機能ページを単列・全幅にし、横方向のはみ出しを最大限防ぎます。","settings.theme.system":"システムに従う","settings.theme.light":"ライト","settings.theme.dark":"ダーク","settings.remoteInput.title":"リモート入力","settings.remoteInput.enableLabel":"リモート入力を有効化","settings.remoteInput.enableDesc":"スマホ/タブレットのブラウザから PC に接続して録音し、音声を PC のカーソル位置にリアルタイムで入力します(HTTPS が必要。初回アクセス時は証明書を信頼してください)","settings.remoteInput.portLabel":"待ち受けポート","settings.remoteInput.defaultModeLabel":"既定の録音方式","settings.remoteInput.modeToggle":"タップで切替","settings.remoteInput.modeHold":"押し続けて話す","settings.remoteInput.urlLabel":"アクセス URL","settings.remoteInput.pinLabel":"ペアリングコード","settings.remoteInput.regeneratePin":"再生成","settings.remoteInput.portInUse":"ポート {{port}} は使用中です。変更してください","settings.remoteInput.startError":"リモート入力サービスの起動に失敗しました:{{reason}}","settings.remoteInput.securityHint":"同一 LAN からのみアクセス可能で、ペアリングコードの入力が必要です。使わないときはオフにすることを推奨します。","settings.remoteInput.certHint":"初回接続ではルート証明書の指紋を確認してから信頼してください。旧バージョンからは一度設定が必要ですが、その後は再起動や IP 変更でも信頼が保持されます。","settings.remoteInput.certFingerprintLabel":"このコンピューターのルート CA SHA-256","settings.remoteInput.certFingerprintCopy":"指紋全体をコピー","settings.remoteInput.certFingerprintCopied":"指紋をコピーしました","settings.remoteInput.certFingerprintUnavailable":"完全な指紋を取得できません。ダウンロードした証明書をインストールしたり信頼したりしないでください。","settings.remoteInput.certVerifyHint":"スマートフォンのシステム証明書詳細にある SHA-256 の全 64 文字を、空白とコロンを除いてこの値と照合し、完全に信頼する前に確認してください。Web ページ、プロファイル名や識別子は身元の証明にはなりません。一致しない場合や全体を表示できない場合は中止し、ダウンロード済みまたはインストール済みのプロファイルを削除してください。","settings.remoteInput.certProfileHint":"プロファイルにはルート証明書が 1 枚だけ含まれるはずです。追加の証明書、VPN、デバイス管理の設定がある場合はインストールしないでください。","settings.remoteInput.certTrustWarning":"初回の証明書ダウンロードではコンピューターの身元を確認できず、LAN 上の悪意あるデバイスが中間者攻撃でルート証明書を置き換える可能性があります。信頼できる家庭内またはプライベートネットワークでのみインストールし、公共または共有ネットワークでは操作しないでください。ルート CA は証明書を発行でき、秘密鍵はこのコンピューターに保存されます。不要になったらスマートフォンから削除してください。","settings.remoteInput.certSetupLink":"iPhone 証明書リンクをコピー","settings.remoteInput.waitingStart":"サービスはまだ起動していません。スイッチを一度オフにしてからオンにしてください。アプリを再起動しないでください。","settings.remoteInput.starting":"リモート入力サービスを起動しています…","settings.remoteInput.urlsStale":"これらのアドレスは前回の起動時のもので、古くなっている可能性があります。","settings.about.tagline":"自然に話し、きれいに書く","settings.about.checkUpdate":"アップデート確認","settings.about.checkUpdateBtn":"確認","settings.about.checkStableUpdateBtn":"正式版を確認","settings.about.checkBetaUpdateBtn":"Beta を確認","settings.about.checkingUpdate":"確認中…","settings.about.upToDate":"現在最新バージョンです。","settings.about.updateError":"確認またはアップデートに失敗しました。後で再試行してください。","settings.about.retryBtn":"再試行","settings.about.openReleases":"Releases を開く","settings.about.source":"ソース","settings.about.docs":"ドキュメント","settings.about.feedback":"フィードバック","settings.about.qq":"コミュニティ QQ グループ","settings.about.qqDesc":"QQ でグループ番号を検索して参加するか、QR コードをスキャンしてください。","settings.about.copyQq":"グループ番号をコピー","settings.about.privacy":"プライバシー","settings.about.privacyDesc":"録音は、設定したクラウドプロバイダーへ文字起こしのため送信される場合があります。","settings.about.localFirst":"ローカル優先","settings.about.linksTitle":"ドキュメント","settings.about.betaChannelLabel":"Beta チャンネルに参加","settings.about.betaChannelToggleLabel":"Beta チャンネルを有効化","settings.about.betaChannelDesc":"オンにするとバックグラウンド自動更新が Beta に従います。オフで正式版に戻ります。下のボタンでいつでも Beta を手動確認できます。","settings.about.autoUpdateSectionTitle":"自動更新","settings.about.autoUpdateCheckLabelAndroid":"自動確認してダウンロード","settings.about.autoUpdateCheckDescAndroid":"起動時と 60 分ごとに確認。更新があれば自動ダウンロードしシステムインストーラを開きます。チャンネルは上の Beta スイッチに従います。","settings.about.betaChannelFetching":"最新 Beta 版を取得中…","settings.about.betaChannelFetchBtn":"最新 Beta を確認","settings.about.betaChannelLatestPrefix":"最新 Beta:","settings.about.betaChannelDownloadBtn":"ダウンロード ページを開く","settings.about.betaChannelRefresh":"再取得","settings.about.betaChannelNoBeta":"まだ Beta リリースは公開されていません。","settings.about.betaChannelFetchError":"Beta バージョン情報の取得に失敗しました。後で再試行してください。","settings.about.betaChannelUpToDate":"最新です","settings.about.betaChannelUpdateNow":"今すぐ更新","settings.about.betaChannelUpdateNowTitle":"最新 Beta を確認・ダウンロードし、更新ダイアログを表示します","settings.about.betaChannelChecking":"確認中…","settings.about.updateDialog.available.title":"新しいバージョンがあります","settings.about.updateDialog.available.desc":"OpenLess {{version}} が見つかりました。今すぐ更新しますか?","settings.about.updateDialog.stableChannelSwitch.title":"正式版に切り替える","settings.about.updateDialog.stableChannelSwitch.desc":"現在のバージョン:OpenLess {{currentVersion}}\n対象バージョン:OpenLess {{version}}\nBeta チャンネルから正式版に切り替えます。続行しますか?","settings.about.updateDialog.downloading.title":"アップデートをダウンロード中","settings.about.updateDialog.downloading.desc":"OpenLess {{version}} をダウンロード中です。アプリを開いたままにしてください。","settings.about.updateDialog.downloaded.title":"アップデートの準備完了","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} のインストールが完了しました。今すぐ自動再起動して適用しますか?","settings.about.updateDialog.installing.title":"アップデートをインストール中","settings.about.updateDialog.installing.desc":"OpenLess {{version}} をインストール中です。アプリを開いたままにしてください。","settings.about.updateDialog.install":"今すぐ更新","settings.about.updateDialog.androidInstall":"ダウンロードしてインストーラを開く","settings.about.updateDialog.androidInstalled.title":"システムインストーラを開きました","settings.about.updateDialog.androidInstalled.desc":"画面の指示に従ってインストールしてください。完了後 OpenLess を再度開くと {{version}} が使えます。","settings.about.updateDialog.downloadingLabel":"ダウンロード中…","settings.about.updateDialog.installingLabel":"インストール中…","settings.about.updateDialog.later":"後で手動再起動","settings.about.updateDialog.restartNow":"今すぐ再起動","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"ダウンロード済み {{downloaded}}","settings.about.updateDialog.installError.title":"更新に失敗しました","settings.about.updateDialog.installError.desc":"自動更新を完了できませんでした:{{error}}。ダウンロードページから手動で最新版を入手できます。","settings.about.updateDialog.manualDownload":"手動でダウンロード","startup.loading":"OpenLess を起動中…","startup.loadingDesc":"ローカルサービスに接続し、互換性を確認しています。","startup.failed":"OpenLess を起動できません","startup.recovery":"再確認してください。解決しない場合はアプリを完全に終了して開き直してください。更新後に発生した場合は、アプリ全体が同じバージョンであることを確認してください。","startup.retry":"再確認","startup.details":"エラーの詳細","modal.serviceViews.label":"サービス設定","modal.serviceViews.llm":"言語モデル","modal.serviceViews.asr":"音声認識","modal.serviceViews.omni":"マルチモーダル","modal.serviceViews.models":"ローカルモデル","modal.serviceViews.connections":"接続と拡張","modal.serviceViews.statusConfigured":"設定済み","modal.serviceViews.statusMissing":"未設定","modal.searchPlaceholder":"設定カテゴリを検索…","modal.clearSearch":"検索をクリア","modal.categoriesLabel":"設定カテゴリ","modal.searchResults":"検索結果","modal.searchCount":"関連するカテゴリ:{{count}} 件","modal.noResults":"カテゴリが見つかりません。「マイク」「モデル」「テーマ」などをお試しください。","modal.autoSaveHint":"変更は自動保存されます","modal.backToAdvanced":"実験と拡張に戻る","modal.advancedPages.lessComputer":"Agent を選び、モデル・権限・作業ディレクトリを設定します。","modal.advancedPages.claudeConsole":"Claude Code を検出し、テストタスクの実行出力を確認します。","modal.advancedPages.multimodal":"実験的なマルチモーダル認識の有効・無効を設定します。","modal.advancedPages.debug":"デバッグ録音の保持、カーソル周辺の確認、ログの書き出しを行います。","modal.descriptions.general":"マイク、録音方法、文字入力を設定し、スマートフォンからの入力を接続します。","modal.descriptions.shortcuts":"各機能のショートカットと、テキスト選択後の操作を設定します。","modal.descriptions.services":"音声認識と文章処理のサービス、チャンネル、ローカルモデル、接続を管理します。","modal.descriptions.appearance":"テーマ、レイアウト、表示言語を読みやすく調整します。","modal.descriptions.privacy":"システム権限と接続を確認し、履歴、録音、ローカルデータを管理します。","modal.descriptions.advanced":"必要に応じて Less Computer、マルチモーダル処理、デバッグを設定します。","modal.descriptions.about":"現在のバージョン、更新チャンネル、自動更新を確認します。","modal.searchKeywords.general":"マイク 録音 入力 スマホ リモート LAN PIN カプセル ミュート 起動","modal.searchKeywords.shortcuts":"ショートカット ホットキー キー 選択 推敲 音声編集","modal.searchKeywords.services":"ASR LLM API チャンネル モデル クラウド ローカル ネットワーク プロキシ マーケット","modal.searchKeywords.appearance":"テーマ ダーク ライト 言語 フォント 文字 サイズ レイアウト ヒートマップ","modal.searchKeywords.privacy":"権限 マイク アクセシビリティ 履歴 録音 保存 プライバシー エクスポート","modal.searchKeywords.advanced":"Less Computer Claude Agent マルチモーダル Omni デバッグ ログ 実験","modal.searchKeywords.about":"バージョン Beta 安定 更新 アップデート","modal.sections.appearance":"外観と言語","modal.sections.shortcuts":"ショートカットと選択","modal.sections.general":"録音と入力","modal.sections.services":"AI サービスとモデル","modal.sections.privacy":"権限とデータ","modal.sections.advanced":"実験機能と拡張","modal.sections.personalize":"パーソナライズ","modal.sections.about":"バージョンと更新","modal.sections.helpCenter":"ヘルプセンター","modal.sections.releaseNotes":"リリースノート","modal.personalize.font":"フォントサイズ","modal.personalize.fontDesc":"UI のフォントサイズを全体的にスケール。即時反映。","modal.personalize.fontSmall":"小","modal.personalize.fontMedium":"中","modal.personalize.fontLarge":"大","modal.personalize.blur":"すりガラス強度","modal.personalize.blurDesc":"ウィンドウ内側の backdrop-filter 強度に影響(macOS のシステムフロスト層が動かない場合に調整)。","modal.about.tagline":"自然に話し、きれいに書く","modal.about.checkUpdate":"アップデート確認","modal.about.checkUpdateBtn":"確認","modal.about.docs":"ドキュメント","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"フィードバックチャネル","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"ソース","modal.about.qq":"コミュニティ QQ グループ","modal.about.qqDesc":"QQ でグループ番号を検索して参加するか、QR コードをスキャンしてください。","modal.about.copyQq":"グループ番号をコピー","modal.about.exportErrorLog":"エラーログをエクスポート","modal.about.exportErrorLogDesc":"現在のセッションの実行ログをローカルに保存。問題の調査やフィードバック送付にお使いください。","modal.about.exportErrorLogBtn":"エクスポート","modal.about.exporting":"エクスポート中…","modal.about.exportSuccess":"保存しました","modal.about.exportFailed":"エクスポート失敗","modal.about.privacy":"プライバシー","modal.about.privacyDesc":"認識結果はローカルに保存されます。設定したクラウドプロバイダーは文字起こしのため録音を受信する場合があります。","modal.about.localFirst":"ローカル優先","windowChrome.restore":"元のサイズに戻す","windowChrome.minimize":"最小化","windowChrome.maximize":"最大化","windowChrome.close":"閉じる","hotkey.triggers.rightOption":"右 Option","hotkey.triggers.leftOption":"左 Option","hotkey.triggers.rightControl":"右 Control","hotkey.triggers.leftControl":"左 Control","hotkey.triggers.rightCommand":"右 Command","hotkey.triggers.leftCommand":"左 Command","hotkey.triggers.leftShift":"左 Shift","hotkey.triggers.rightShift":"右 Shift","hotkey.triggers.fn":"Fn (地球キー)","hotkey.triggers.rightAlt":"右 Alt","hotkey.triggers.mediaPlayPause":"⏯ メディア再生/一時停止","hotkey.triggers.custom":"カスタム組み合わせ…","hotkey.fallback":"グローバルショートカット","hotkey.modeHoldSuffix":"(押し続けて話す)","hotkey.modeToggleSuffix":"(開始 / 停止)","hotkey.modeAutoSuffix":"(自動判別)","hotkey.usageHold":"{{trigger}} を押し続けて話し、離して終了。","hotkey.usageToggle":"{{trigger}} で録音開始、もう 1 回押して終了。","hotkey.usageAuto":"{{trigger}} を短く押すと開始 / 停止、押し続けると話し終えて離すと停止。","hotkey.adapter.macEventTap":"macOS Event Tap","hotkey.adapter.windowsLowLevel":"Windows 低レベルキーボードフック","hotkey.adapter.fcitx5":"fcitx5 インプットメソッドプラグイン","hotkey.adapter.unavailable":"利用不可","localAsr.kicker":"ローカル ASR","localAsr.title":"モデル設定","localAsr.desc":"デバイス上の音声認識モデルを管理。","localAsr.storageTitle":"モデル保存場所","localAsr.storageBaseDir":"選択した親フォルダ","localAsr.storageModelsRoot":"実際のモデルフォルダ","localAsr.storageDefault":"システム既定フォルダ","localAsr.storageChoose":"フォルダを変更","localAsr.storageReset":"既定に戻す","localAsr.storageReveal":"モデルフォルダを開く","localAsr.storageDesc":"カスタム保存先では選択フォルダ配下に OpenLess/models を作成し、既存モデルを移行します。移行前にダウンロードをキャンセルし、読み込み済みモデルを解放します。","localAsr.storageChooseTitle":"ローカルモデル保存先の親フォルダを選択","localAsr.storageChangeConfirm":"既存のローカルモデルを {{path}}/OpenLess/models に移動します。先にダウンロードをキャンセルし、読み込み済みモデルを解放します。続行しますか?","localAsr.storageResetConfirm":"既存のローカルモデルをシステム既定フォルダに戻します。現在のフォルダ: {{path}}。続行しますか?","localAsr.modelDir":"モデルフォルダ","localAsr.revealDir":"フォルダを開く","localAsr.deleteConfirm":"{{name}} のローカルモデルファイルを削除しますか?この操作は取り消せません。","localAsr.appleSpeechTitle":"Apple 音声認識(macOS)","localAsr.appleSpeechDesc":"macOS 標準の音声認識を使ってローカルで文字起こしします。モデルのダウンロード・API キー・ネットワークは不要。クラウド ASR が不安定なときの認証情報不要なローカルフォールバックです。初回利用時に音声認識の許可ダイアログが表示されます。","localAsr.appleSpeechUse":"Apple 音声認識を使う","localAsr.qwenTitle":"Qwen3-ASR モデル管理","localAsr.qwenExperimentalBadge":"実験的","localAsr.engineUnavailable":"現在のプラットフォームには Qwen3-ASR 推論エンジンが同梱されていません。モデルのダウンロードは可能ですが、ここではまだ Qwen3-ASR を有効化できません。","localAsr.qwenUnavailableOnWindows":"Windows では Qwen3-ASR にまだ対応していません。上記の Foundry Local Whisper をご利用ください。","localAsr.foundryTitle":"Windows Foundry Local Whisper","localAsr.foundryDesc":"デバイス上で音声認識。ASR API キー不要。初回はランタイムとモデルのダウンロードが必要。","localAsr.foundryAvailable":"Windows で利用可能","localAsr.foundryUnavailable":"Windows のみ対応","localAsr.foundryRuntimeReady":"ランタイムコンポーネントはダウンロード済み","localAsr.foundryRuntimeMissing":"ランタイムコンポーネント未ダウンロード","localAsr.foundryRuntimeSourceLabel":"ランタイムコンポーネントの取得元","localAsr.foundryRuntimeSourceAuto":"自動(NuGet 優先)","localAsr.foundryRuntimeSourceNuget":"NuGet 公式フィード","localAsr.foundryRuntimeSourceOrtNightly":"Microsoft ORT-Nightly フィード","localAsr.foundryRuntimeSourceDesc":"初回使用前にランタイムコンポーネントをダウンロード。","localAsr.foundrySelectedModel":"選択中のモデル","localAsr.foundryActiveModel":"現在の既定 alias","localAsr.foundryLoadedModel":"読み込み済みモデル","localAsr.foundryNotLoaded":"未読み込み","localAsr.foundryError":"Foundry 状態","localAsr.foundrySetDefault":"既定に設定 / Windows ローカル ASR を有効化","localAsr.foundryEnabling":"有効化中…","localAsr.foundryPrepare":"準備 / ダウンロード / 読み込み","localAsr.foundryPreparing":"準備中…","localAsr.foundryReleasing":"解放中…","localAsr.foundryRetryPrepare":"準備を続行 / 再試行","localAsr.foundryCancelPrepare":"準備をキャンセル","localAsr.foundryCancelRequested":"キャンセル要求済み","localAsr.foundryCancelling":"キャンセル中…","localAsr.foundryCancelBestEffort":"キャンセルをリクエスト済み。現在のステップ完了後に停止します。後で再試行できます。","localAsr.foundryPrepareRuntime":"ランタイムコンポーネントを準備","localAsr.foundryPrepareModel":"モデルをダウンロード","localAsr.foundryPrepareLoad":"モデルを読み込み","localAsr.foundryPrepareModelSkipped":"モデルはダウンロード済みのため、ダウンロードをスキップ","localAsr.foundryPrepareDone":"完了","localAsr.foundryPrepareWaiting":"待機中","localAsr.foundryApproxSizeMb":"約 {{mb}} MB","localAsr.foundryLanguageLabel":"認識言語","localAsr.foundryLanguageAuto":"自動","localAsr.foundryLanguageZh":"中国語 zh","localAsr.foundryLanguageEn":"英語 en","localAsr.foundryLanguageDesc":"中国語聞き取りは「中文」を、混用は「自動」を選択。","localAsr.foundryModelSmall":"Whisper Small(既定 / バランス)","localAsr.foundryModelSmallDesc":"品質とリソース使用量のバランスを取った既定オプション。","localAsr.foundryModelMedium":"Whisper Medium(高品質)","localAsr.foundryModelMediumDesc":"より高い精度。大きなダウンロードと遅めの推論を許容できる高性能デバイス向け。","localAsr.foundryModelLarge":"Whisper Large V3 Turbo(最高品質)","localAsr.foundryModelLargeDesc":"高性能デバイスと品質優先の用途に向く大きなモデル。","localAsr.foundryModelBase":"Whisper Base(高速 / 低リソース)","localAsr.foundryModelBaseDesc":"より高速でリソース消費が少なく、日常の軽量ディクテーションに適しています。","localAsr.foundryModelTiny":"Whisper Tiny(最速 / スモークテスト)","localAsr.foundryModelTinyDesc":"Foundry 経路が動作するか確認するための最速オプション。","localAsr.sherpaTitle":"Windows sherpa-onnx Local(実験的)","localAsr.sherpaDesc":"Windows では sherpa-onnx によるデバイス上のオフライン一括認識を使用します。ASR API キーは不要です。","localAsr.sherpaRuntimeReady":"モデル読み込み済み","localAsr.sherpaRuntimeMissing":"モデル未読み込み","localAsr.sherpaSetDefault":"既定に設定 / sherpa-onnx を有効化","localAsr.sherpaPrepare":"ローカルファイルを確認 / 読み込み","localAsr.sherpaPreparing":"読み込み中…","localAsr.sherpaPrepareLocalFiles":"ローカルモデルファイルを確認","localAsr.sherpaModelDir":"モデルディレクトリ","localAsr.sherpaRevealDir":"モデルディレクトリを開く","localAsr.sherpaError":"sherpa-onnx 状態","localAsr.sherpaLanguageJa":"日本語 ja","localAsr.sherpaLanguageKo":"韓国語 ko","localAsr.sherpaLanguageYue":"広東語 yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small(既定 / 中国語優先)","localAsr.sherpaModelSenseVoiceDesc":"中国語および中英混在ディクテーション向けの既定実験モデル。","localAsr.sherpaModelParaformer":"Paraformer 中国語","localAsr.sherpaModelParaformerDesc":"中国語向けの実験モデル。","localAsr.sherpaModelWhisper":"Whisper Small 多言語","localAsr.sherpaModelWhisperDesc":"Whisper 系列の挙動に合わせた多言語実験フォールバックモデル。","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3(多言語)","localAsr.sherpaModelWhisperLargeV3Desc":"オープンソース多言語モデルの中で最高品質の Whisper 系。高品質だが大容量。","localAsr.sherpaModelZipformer":"Zipformer ストリーミング(中英)","localAsr.sherpaModelZipformerDesc":"話しながら文字が出るストリーミング型の中英モデル。遅延が最も小さく、リアルタイム文字起こしに適します。","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"変換済み sherpa-onnx Qwen3-ASR モデル。多言語認識とより強い長文コンテキスト処理に対応。","localAsr.modelSelectTitle":"この端末のモデル","localAsr.modelSelectDesc":"ダウンロード状況の確認、ファイルの管理、モデルの読み込みとテストができます。","localAsr.modelSelectPlaceholder":"ダウンロード済みモデルを選択…","localAsr.modelSelectEmpty":"ダウンロード済みモデルがありません。「ダウンロードと管理」から入手してください。","localAsr.groupDownload":"ダウンロードと管理","localAsr.groupOther":"その他","localAsr.mirrorLabel":"ダウンロードミラー","localAsr.mirrorDesc":"公式ソースは海外ネットワークで安定。hf-mirror.com は中国コミュニティ運営のミラー。","localAsr.mirrorHuggingface":"HuggingFace 公式 (huggingface.co)","localAsr.mirrorHfMirror":"中国ミラー (hf-mirror.com)","localAsr.activeBadge":"使用中","localAsr.downloadedBadge":"ダウンロード済み","localAsr.notDownloadedBadge":"未ダウンロード","localAsr.download":"ダウンロード","localAsr.resume":"続行","localAsr.cancel":"キャンセル","localAsr.delete":"削除","localAsr.setActive":"デフォルトに設定","localAsr.failed":"失敗","localAsr.cancelled":"キャンセル済み","localAsr.files":"ファイル","localAsr.sizeLoading":"サイズ問い合わせ中…","localAsr.sizeUnknown":"サイズ不明","localAsr.performanceWarning":"ローカル ASR はオフラインやプライバシー重視のシーンに最適。初回使用時にモデルのダウンロードが必要。","localAsr.test":"ロードしてテスト","localAsr.testRunning":"テスト中…","localAsr.testHeading":"内蔵オーディオテスト","localAsr.testExpected":"原文","localAsr.testActual":"認識","localAsr.testStats":"音声長 {{audio}}s · ロード {{load}}s · 推論 {{transcribe}}s · バックエンド {{backend}}","localAsr.testFailed":"テスト失敗","localAsr.engineStatusLabel":"メモリ上のエンジン","localAsr.engineLoaded":"ロード済み:{{model}}(約 1.2-3.4 GB のメモリを使用)","localAsr.engineUnloaded":"未ロード(初回ディクテーション時に約 3-5 秒のロードが必要)","localAsr.loadNow":"今すぐロード","localAsr.releaseNow":"今すぐ解放","localAsr.keepLoadedLabel":"ロード保持時間","localAsr.keepLoadedDesc":"ローカル ASR を使用後、何分でメモリから解放するかを決定。1+ GB の RAM 占有を回避。","localAsr.keepImmediate":"使用直後に解放","localAsr.keep1min":"最終使用から 1 分","localAsr.keep5min":"最終使用から 5 分(既定)","localAsr.keep30min":"最終使用から 30 分","localAsr.keepForever":"解放しない(常にロード)","localAsr.sidebarTitle":"ダウンロード済み・進行中","localAsr.activePill":"使用中","localAsr.setDefault":"デフォルトに設定","localAsr.downloading":"ダウンロード中","localAsr.startDownload":"ダウンロード開始","localAsr.downloadNewModel":"新しいモデルをダウンロード","localAsr.activeModelLabel":"使用中のモデル","localAsr.pickerNoModelDownloaded":"ダウンロード済みのモデルがありません。先にローカルモデルページで取得してください。","localAsr.partialDownloadsLabel":"未完了のダウンロード","localAsr.partialDownloadsDesc":"中断されたダウンロードの一時ファイルが残っています。インストール済みモデルに影響せず一括削除できます。","localAsr.cleanupIncomplete":"未完了ダウンロードを削除","localAsr.languagesLabel":"言語","localAsr.partialBytesLabel":"残存ファイル","localAsr.downloadDialogTitle":"モデルをダウンロード","localAsr.downloadDialogAlreadyHave":"モデルファイルはダウンロード済みです。モデルページで読み込みとテストを行うか、「ASR 音声文字起こし」で対応するプロバイダーを選択してください。","localAsr.downloadDialogDesc":"サイズと説明を確認してモデルをダウンロードします。完了後、「音声認識」で対応するローカルサービスを選択してください。","localAsr.detailRepo":"リポジトリ","localAsr.hfDownloads":"ダウンロード数","localAsr.hfLikes":"いいね","localAsr.hfDescription":"モデル紹介","localAsr.hfNoDescription":"紹介文はありません","localAsr.hfCardFailed":"モデル情報の取得に失敗しました","localAsr.detailFiles":"ファイル","localAsr.detailDownloaded":"ダウンロード済み","localAsr.detailEmpty":"モデルを選択して詳細を表示","localAsr.foundryLanguage":"言語","localAsr.foundryRuntimeSource":"ランタイムソース","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"保持","localAsr.downloadSettingsTitle":"ダウンロードとストレージ設定","localAsr.downloadSettingsDesc":"ミラーソース · モデル保存場所 · メモリ内エンジン","localAsr.libraryEmptyTitle":"ローカルモデルがありません","localAsr.libraryEmptyDesc":"音声認識モデルをダウンロードすると、この端末で音声を処理できます。既存のモデルが表示されない場合は、一覧を再読み込みしてください。","localAsr.catalogTitle":"モデルカタログ","localAsr.catalogEmpty":"表示できるモデルがありません。カタログを再読み込みしてください。","localAsr.reloadCatalog":"一覧を再読み込み","localAsr.engineLabel":"認識エンジン","localAsr.sizeLabel":"モデルサイズ","localAsr.allEngines":"すべて","localAsr.backToCatalog":"カタログに戻る","localAsr.detailsTitle":"モデルの詳細","localAsr.testActivateHint":"「読み込みとテスト」はこのモデルを使用中に設定してから、内蔵音声テストを実行します。","localAsr.downloadProgressHint":"開始後はモデルページで進行状況の確認やダウンロードのキャンセルができます。","localAsr.errorDetails":"エラーの詳細"},"ko":{"cloudSync.title":"클라우드 동기화","cloudSync.description":"GitHub 계정으로 사전, 스타일, 개인 설정을 기기 간에 동기화합니다.","cloudSync.signIn":"GitHub로 로그인","cloudSync.account":"동기화 계정","cloudSync.refresh":"상태 새로고침","cloudSync.loading":"클라우드 상태 확인 중…","cloudSync.noBackup":"클라우드 백업 없음","cloudSync.available":"클라우드 백업 있음","cloudSync.summary":"단어 {{dictionary}}개 · 교정 규칙 {{corrections}}개 · 스타일 {{stylePacks}}개","cloudSync.updated":"업데이트: {{time}}","cloudSync.upload":"클라우드에 백업","cloudSync.restore":"클라우드에서 복원","cloudSync.delete":"클라우드 백업 삭제","cloudSync.working":"동기화 중…","cloudSync.uploadSuccess":"클라우드에 백업했습니다","cloudSync.restoreSuccess":"클라우드 설정을 복원했습니다","cloudSync.deleteSuccess":"클라우드 백업을 삭제했습니다","cloudSync.failed":"동기화 실패: {{error}}","cloudSync.conflict":"클라우드 내용이 변경되었습니다. 상태를 새로고친 후 백업 또는 복원을 선택하세요.","cloudSync.unavailable":"공식 동기화 서비스를 이용할 수 없습니다. 나중에 다시 시도하세요.","cloudSync.signInRequired":"먼저 GitHub로 로그인하세요.","cloudSync.restoreTitle":"클라우드 백업을 복원할까요?","cloudSync.restoreDescription":"클라우드의 사전, 교정 규칙, 스타일, 동기화 설정으로 해당 로컬 내용을 덮어씁니다. API 키, 기기 경로, 권한은 유지됩니다.","cloudSync.deleteTitle":"클라우드 백업을 삭제할까요?","cloudSync.deleteDescription":"이 GitHub 계정의 클라우드 백업만 삭제합니다. 로컬 데이터는 유지됩니다.","cloudSync.confirmRestore":"복원 및 덮어쓰기","cloudSync.confirmDelete":"백업 삭제","cloudSync.scope":"사전, 교정 규칙, 스타일 아이콘, 공통 설정을 동기화합니다. API 키, 로그인 정보, 기기별 설정은 이 기기에 유지됩니다.","macDictationKey.Changed":"The shortcut changed while saving. Please try again.","macDictationKey.label":"Mac Dictation key","macDictationKey.description":"Replaces the current dictation shortcut with the microphone key. Quitting OpenLess releases it to macOS.","macDictationKey.Permission":"Allow OpenLess in macOS Privacy & Security → Accessibility, then retry.","macDictationKey.Busy":"Finish the current dictation before changing its shortcut.","macDictationKey.Unavailable":"Could not activate this shortcut. The saved binding is unchanged; retry or choose another key.","app.name":"OpenLess","app.tagline":"자연스럽게 말하고, 정확하게 작성하세요","common.loading":"로딩 중…","common.retry":"다시 시도","common.settingsLoadFailed":"설정 로드 실패","common.refresh":"새로고침","common.clear":"지우기","common.copy":"복사","common.delete":"삭제","common.later":"나중에","common.cancel":"취소","common.close":"닫기","common.show":"표시","common.hide":"숨기기","common.saved":"저장됨","common.saving":"저장 중","common.experimental":"실험적","common.copied":"복사됨","common.operationFailed":"작업 실패","common.add":"추가","common.durationSeconds":"{{value}}초","common.durationMillis":"{{value}}ms","common.durationMinutes":"{{value}}분","capsule.thinking":"thinking","capsule.using":"using","capsule.cancelled":"취소됨","capsule.error":"오류 발생","capsule.inserted":"{{count}}자 입력됨","capsule.translating":"번역 중","capsule.selectionPolish.polishing":"다듬는 중...","capsule.selectionPolish.replaced":"교체됨","capsule.selectionPolish.noSelection":"선택된 내용 없음","capsule.selectionPolish.failed":"다듬기 실패, 다시 시도하세요","selectionPolishPreview.title":"선택 영역 다듬기 미리보기","selectionPolishPreview.subtitle":"편집 가능합니다. 확인을 클릭한 뒤에만 원래 선택 영역을 교체합니다.","selectionPolishPreview.cancel":"취소","selectionPolishPreview.resultLabel":"다듬기 결과","selectionPolishPreview.sourcePrefix":"원문: ","selectionPolishPreview.applyError":"적용하지 못했습니다: ","selectionPolishPreview.confirmReplace":"확인 후 교체","selectionVoiceIntent.title":"어떻게 하시겠어요?","selectionVoiceIntent.subtitle":"음성 지시를 인식했습니다. 처리 방법을 선택하세요.","selectionVoiceIntent.loading":"로딩 중…","selectionVoiceIntent.sourcePrefix":"선택 영역: ","selectionVoiceIntent.errorPrefix":"계속할 수 없습니다: ","selectionVoiceIntent.question":"질문하기","selectionVoiceIntent.edit":"선택 영역 편집","selectionVoiceIntent.cancel":"취소","qa.title":"질문","qa.headerHint":"언제든 질문하세요","qa.thinking":"생각 중…","qa.error":"오류가 발생했습니다. 잠시 후 다시 시도해 주세요.","qa.errorRetry":"재시도","qa.errorRetryHint":"다시 시도해 주세요.","qa.pinTooltip":"고정(자동으로 닫히지 않음)","qa.unpinTooltip":"고정 해제","qa.closeTooltip":"닫기","qa.micLabel":"음성으로 질문","qa.micStop":"녹음 종료","qa.selectionPreview":"선택된 텍스트 기반:","qa.emptyTitle":"무엇을 도와드릴까요?","qa.emptyDesc":"텍스트를 선택해 질문하거나 아래에 직접 입력하세요. 답변이 여기에 표시되며 계속 이어서 질문할 수 있습니다.","qa.recordingHint":"녹음 중… {{recordHotkey}} 를 다시 눌러 종료하고 질문","qa.mobileRecordLabel":"녹음 버튼","qa.mobileRecordStart":"녹음 시작","qa.mobileRecordStop":"종료하고 제출","qa.composerPlaceholder":"질문을 입력하세요. Enter로 보내기","qa.composerSend":"보내기","qa.statusIdle":"{{recordHotkey}} 로 질문","qa.statusRecording":"녹음 중","qa.statusThinking":"생각 중","qa.statusError":"오류","qa.jumpToLatest":"최신으로 이동","qa.editApplyReplace":"미리보기 후 삽입 확인","qa.editApplyUnavailable":"적용할 편집 결과가 없습니다","qa.editRevertPrevious":"이전 버전 유지","qa.editInstructionMode":"편집 지시","lessComputer.title":"Less Computer","lessComputer.subtitle":"컴퓨터로 무엇을 할까요?","lessComputer.you":"나","lessComputer.working":"조작 중…","lessComputer.tool":"{{name}} 사용","lessComputer.compaction":"컨텍스트가 압축되었습니다","lessComputer.done":"완료","lessComputer.cost":"${{cost}}","lessComputer.error":"실패했습니다. 다시 시도하세요.","lessComputer.closeTooltip":"닫기","lessComputer.jumpToLatest":"최신으로 이동","lessComputer.inputPlaceholder":"명령을 입력하고 Enter로 전송","lessComputer.send":"전송","lessComputer.approvalTitle":"차단된 명령을 실행할까요?","lessComputer.approvalRerunWarning":"주의: 승인하면 이미 수정된 작업 공간에서 다시 실행되어 멱등하지 않은 작업에 부작용이 생길 수 있습니다.","lessComputer.approve":"허용","lessComputer.deny":"거부","lessComputer.approved":"허용됨","lessComputer.denied":"거부됨","nav.overview":"개요","nav.history":"기록","nav.vocab":"사전","nav.style":"스타일","nav.marketplace":"마켓","nav.translation":"번역","nav.selectionAsk":"선택 질문","nav.corrections":"교정 규칙","nav.polishMode":"다듬기 모드","nav.group.style":"스타일","nav.group.tools":"도구","nav.localAsr":"모델 설정","nav.more":"더보기","marketplace.kicker":"마켓","marketplace.title":"스타일 팩 마켓","marketplace.desc":"커뮤니티 스타일 팩 둘러보기, 설치, 공유.","marketplace.searchPlaceholder":"이름 / 설명 / 태그 검색…","marketplace.sortPopular":"인기순","marketplace.sortNew":"최신","marketplace.uploadBtn":"업로드","marketplace.uploadDisabledHint":"먼저 설정 → 마켓에서 GitHub 사용자명을 설정하세요","marketplace.refreshBtn":"새로고침","marketplace.empty":"아직 스타일 팩이 없습니다","marketplace.emptyHint":"다른 키워드로 검색하거나 직접 업로드해 보세요","marketplace.loadFailed":"불러오기 실패: {{err}}","marketplace.noDescription":"(설명 없음)","marketplace.installBtn":"설치","marketplace.installingBtn":"설치 중…","marketplace.downloadZipBtn":"ZIP 다운로드","marketplace.downloadingZipBtn":"다운로드 중…","marketplace.downloadAria":"\"{{name}}\" ZIP 다운로드","marketplace.likeBtn":"좋아요","marketplace.installed":"\"{{name}}\"을(를) 로컬에 설치했습니다","marketplace.downloaded":"\"{{name}}\" ZIP을 다운로드했습니다","marketplace.uploaded":"업로드 완료, 심사 대기 중","marketplace.uploadTitle":"업로드할 팩 선택","marketplace.uploadHint":"{{login}}(으)로 업로드합니다. 콘텐츠는 클라우드 심사 큐로 전송됩니다.","marketplace.uploadNoLocal":"업로드 가능한 로컬 팩이 없습니다","marketplace.errors.detail":"상세 불러오기 실패: {{err}}","marketplace.errors.install":"설치 실패: {{err}}","marketplace.errors.download":"ZIP 다운로드 실패: {{err}}","marketplace.errors.like":"좋아요 실패: {{err}}","marketplace.errors.upload":"업로드 실패: {{err}}","marketplace.errors.loadLocal":"로컬 팩 불러오기 실패: {{err}}","marketplace.sortLiked":"좋아요한 팩","marketplace.likedEmpty":"아직 좋아요한 팩이 없습니다","marketplace.likedEmptyHint":"팩을 열고 별을 누르면 여기에 표시됩니다","marketplace.derivativeBadge":"@{{login}}에서 파생","marketplace.detail.withdrawBtn":"게시 취소","marketplace.detail.withdrawConfirm":"\"{{name}}\"을(를) 마켓에서 내릴까요? 로컬 사본은 유지됩니다.","marketplace.detail.withdrawSuccess":"마켓에서 내렸습니다","marketplace.detail.withdrawFailed":"취소 실패: {{err}}","marketplace.myPacks.buttonLabel":"내 게시물","marketplace.myPacks.buttonTitle":"{{login}}의 게시물 보기","marketplace.myPacks.buttonTitleEmpty":"먼저 설정 → 마켓에서 게시자 이름을 입력하세요","marketplace.myPacks.searchPlaceholder":"이름·태그 검색","marketplace.myPacks.notLoggedIn":"먼저 설정 → 마켓에서 게시자 이름을 입력하세요","marketplace.myPacks.emptyTitle":"아직 게시한 팩이 없습니다","marketplace.myPacks.emptyHint":"\"스타일\" 페이지에서 편집 후 \"마켓에 게시\"를 누르거나, 오른쪽 위에서 로컬 팩을 업로드하세요.","marketplace.myPacks.noMatch":"일치하는 팩이 없습니다","marketplace.myPacks.summary":"게시 {{count}}개","marketplace.myPacks.summaryPending":"게시 {{count}}개 · 심사 중 {{pending}}개","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"업데이트","marketplace.myPacks.actions.withdraw":"내리기","marketplace.myPacks.loadFailed":"내 게시물 불러오기 실패: {{err}}","marketplace.myPacks.loadingTitle":"불러오는 중…","marketplace.myPacks.loadingHint":"마켓에서 최신 게시물을 가져오는 중입니다.","marketplace.myPacks.loadErrorTitle":"불러오기 실패","marketplace.myPacks.loadErrorRetry":"다시 시도","marketplace.upload.confirmBtn":"업로드 확정","marketplace.upload.updateTitle":"\"{{name}}\" 업데이트","marketplace.upload.updateHint":"업로드할 로컬 최신본을 선택하고 \"업로드 확정\"을 누르세요. 동명 팩이 기본 선택됩니다.","marketplace.upload.recommendedBadge":"권장","marketplace.state.pending":"심사 중","marketplace.state.approved":"게시됨","marketplace.state.rejected":"거부","marketplace.state.withdrawn":"내려짐","marketplace.state.superseded":"신버전으로 대체","marketplace.state.unknown":"알 수 없음","marketplace.oauth.title":"GitHub로 로그인","marketplace.oauth.generating":"디바이스 코드 생성 중…","marketplace.oauth.browserHint":"브라우저에서 {{uri}}을(를) 열고 아래 코드를 입력하세요:","marketplace.oauth.copyBtn":"복사","marketplace.oauth.copied":"디바이스 코드 복사됨","marketplace.oauth.copyFailed":"복사 실패: {{err}}","marketplace.oauth.openBrowserBtn":"브라우저 열기","marketplace.oauth.cancelBtn":"취소","marketplace.oauth.waiting":"브라우저에서 인증을 기다리는 중…","marketplace.oauth.successAs":"@{{login}}(으)로 로그인","marketplace.oauth.retryBtn":"다시 시도","marketplace.oauth.closeBtn":"닫기","marketplace.oauth.loginBtn":"로그인","marketplace.oauth.loginTooltip":"GitHub로 로그인","marketplace.oauth.reloginTooltip":"다시 로그인 / 계정 전환(현재 @{{login}})","marketplace.modal.loggedIn":"현재 로그인 ID — 설정 → 녹음 → 마켓에서 변경","marketplace.modal.notLoggedIn":"로그인되지 않음 — 설정 → 녹음 → 마켓에서 게시자 이름을 설정","marketplace.modal.notLoggedInLabel":"로그인 안 됨","shell.shortcutLabel":"녹음 단축키","shell.shortcutHint":"시작 / 정지","shell.betaTag":"BETA","shell.betaNote":"로컬 저장, 선택적 클라우드 백업","shell.navHint.overview":"상태 개요: 사용량 통계, 제공자 및 권한 상태","shell.navHint.history":"받아쓰기 기록: 과거 전사 검색·재생·복사","shell.navHint.vocab":"사전: 고유명사 인식률을 높이는 사용자 지정 핫워드","shell.navHint.style":"스타일: 출력 스타일과 사용자 지정 프롬프트 관리","shell.navHint.translation":"번역: Shift를 누른 채 말하면 대상 언어로 삽입","shell.navHint.selectionAsk":"선택 질문: 텍스트를 선택한 뒤 음성으로 질문","shell.navHint.settings":"환경설정: 단축키, 제공자, 개인정보 및 업데이트","shell.footer.account":"계정","shell.footer.feedback":"피드백","shell.footer.settings":"설정","shell.footer.help":"도움말","shell.footer.version":"버전 {{version}}","shell.footer.helpPopover.tagline":"로컬 기반 음성 입력 레이어","shell.footer.helpPopover.releaseNotes":"릴리스 노트 보기 ↗","shell.footer.helpPopover.docs":"도움말 센터 ↗","shell.providerPrompt.title":"음성 공급자 설정","shell.providerPrompt.body":"ASR 또는 LLM 공급자가 설정되지 않아 음성 입력과 정리가 일시적으로 작동하지 않습니다.","shell.providerPrompt.later":"나중에","shell.providerPrompt.openSettings":"설정 열기","shell.hotkeyModePrompt.title":"녹음 방식 확인","shell.hotkeyModePrompt.body":"기본값이 토글로 변경되었습니다. 이전에 트리거 방식을 변경한 경우 녹음 설정에서 확인하세요.","shell.hotkeyModePrompt.later":"나중에 알림","shell.hotkeyModePrompt.openSettings":"녹음 설정 열기","onboarding.welcome":"OpenLess 에 오신 것을 환영합니다","onboarding.intro":"로컬에서 말하고 로컬에서 입력합니다. 시작 전에 두 가지 시스템 권한이 필요합니다.","onboarding.accessibilityTitle":"접근성","onboarding.hotkeyTitle":"전역 단축키","onboarding.accessibilityDesc":"전역 단축키(기본 {{trigger}}) 감지와 인식 결과를 커서 위치에 입력하기 위해 사용합니다.","onboarding.hotkeyDesc":"전역 단축키 감지가 사용 가능한지 확인하기 위해 사용합니다.","onboarding.micTitle":"마이크","onboarding.micDesc":"음성 입력을 캡처하기 위해 사용합니다.","onboarding.actionNotApplicable":"권한 불필요","onboarding.actionGranted":"허용됨","onboarding.actionOpenSystem":"시스템 설정 열기","onboarding.actionRestart":"접근성 권한 재설정 후 OpenLess 재시작","onboarding.actionGrant":"허용","onboarding.actionRequestMic":"권한 대화상자 표시","onboarding.micNoDeviceHint":"마이크가 감지되지 않습니다. 마이크를 연결하고 활성화한 후 다시 시도하세요.","onboarding.accessibilityHint":"허용 후에는 **OpenLess 를 완전히 종료** 한 다음 다시 실행해야 합니다(macOS TCC 규칙).","onboarding.footerHint":"모든 권한이 부여되면 이 가이드는 자동으로 닫힙니다. 닫히지 않으면 메뉴 막대의 OpenLess → 종료 후 앱을 다시 실행해 주세요.","onboarding.continueToSettings":"설정만 열기(음성 및 전역 단축키는 사용 불가)","onboarding.androidContinue":"앱으로 계속","onboarding.androidFooterHint":"받아쓰기에는 마이크 권한이 필요합니다. 위의 권한 요청을 탭하거나, 앱으로 먼저 들어가 개요 페이지에서 나중에 허용할 수 있습니다.","onboarding.androidTitle":"OpenLess 설정","onboarding.androidIntro":"모바일 권한과 서비스 설정을 단계별로 완료합니다.","onboarding.androidStepCounter":"{{current}} / {{total}} 단계","onboarding.androidBack":"이전","onboarding.androidNext":"다음","onboarding.androidFinish":"완료하고 시작","onboarding.androidSteps.microphoneTitle":"마이크 권한","onboarding.androidSteps.microphoneDesc":"Android 시스템 권한 카드를 표시하고 OpenLess 녹음을 허용합니다.","onboarding.androidSteps.accessibilityTitle":"접근성 서비스","onboarding.androidSteps.accessibilityDesc":"인식 결과를 현재 입력란에 붙여넣고 입력 환경 감지를 보조합니다.","onboarding.androidSteps.overlayPermissionTitle":"플로팅 창 권한","onboarding.androidSteps.overlayPermissionDesc":"다른 앱 위에 녹음 제어 버튼을 표시할 수 있게 합니다.","onboarding.androidSteps.overlayConfigTitle":"플로팅 창 설정","onboarding.androidSteps.overlayConfigDesc":"표시 시점, 활성화 방식, 스와이프 동작, 버튼 크기를 설정합니다.","onboarding.androidSteps.asrTitle":"ASR 클라우드 서비스","onboarding.androidSteps.asrDesc":"음성 인식 서비스의 공급자, 키, 엔드포인트, 모델을 설정합니다.","onboarding.androidSteps.llmTitle":"LLM 서비스","onboarding.androidSteps.llmDesc":"문장 다듬기, 번역, Q&A에 사용할 언어 모델 서비스를 설정합니다.","overview.refresh":"상태 새로고침","overview.servicesTitle":"현재 음성 서비스","overview.statsTitle":"사용 기록","overview.omniKind":"멀티모달 음성","overview.omniName":"현재 Omni 모델","overview.statusLoading":"서비스 설정을 불러오는 중…","overview.configureProvider":"설정하기","overview.manageProvider":"서비스 관리","overview.recentEmptyHint":"아직 받아쓰기 기록이 없습니다. 위 안내에 따라 사용해 보면 결과가 여기에 표시됩니다.","overview.providerHelp.asr":"음성을 텍스트로 변환합니다.","overview.providerHelp.llm":"내 스타일에 맞게 글을 정리하고 다듬습니다.","overview.providerHelp.omni":"하나의 모델로 음성 인식과 텍스트 처리를 수행합니다.","overview.actions.refresh":"다시 불러오기","overview.actions.services":"AI 서비스 및 모델","overview.actions.general":"녹음 및 입력","overview.actions.shortcuts":"단축키","overview.actions.privacy":"권한 및 데이터","overview.guide.nextStep":"다음 단계","overview.guide.loadingTitle":"설정을 불러오고 있어요","overview.guide.loadingDesc":"잠시 후 현재 서비스와 다음 할 일을 보여 드릴게요.","overview.guide.unavailableTitle":"서비스 상태를 불러올 수 없어요","overview.guide.unavailableDesc":"다시 불러오거나 AI 서비스에서 설정을 확인해 주세요.","overview.guide.servicesTitle":"먼저 음성 서비스를 설정하세요","overview.guide.servicesDesc":"여기서 시작하는 것을 추천해요. 음성 인식과 텍스트 처리 서비스를 선택하세요. Omni 모드에서는 사용할 멀티모달 모델만 설정하면 됩니다.","overview.guide.permissionsTitle":"단축키 상태를 확인하세요","overview.guide.permissionsDesc":"현재 단축키 기능을 사용할 수 없습니다. 권한 및 데이터에서 상태와 해결 방법을 확인해 주세요.","overview.guide.shortcutsTitle":"녹음 단축키를 설정하세요","overview.guide.shortcutsDesc":"편한 단축키를 선택하면 입력 중에 받아쓰기를 시작할 수 있어요.","overview.guide.recordingTitle":"녹음 방식을 확인하세요","overview.guide.recordingDesc":"서비스 설정이 저장되어 있습니다. 녹음 설정에서 마이크와 원하는 녹음 방식을 선택하세요.","overview.guide.tryDictationTitle":"받아쓰기를 해 보세요","overview.guide.tryDictationDesc":"입력할 곳에 커서를 놓으세요. {{shortcut}}","overview.guide.permissionsHint":"녹음이나 단축키가 반응하지 않나요? 권한 및 데이터에서 권한, 마이크, 단축키 상태를 확인하세요.","overview.kicker":"개요","overview.title":"오늘 개요","overview.desc":"오늘의 받아쓰기 통계와 시스템 상태.","overview.pressPrefix":"누르기","overview.pressSuffix":"녹음 시작","overview.asrKind":"음성 인식","overview.llmKind":"텍스트 처리","overview.asrName":"Volcengine","overview.asrSubname":"bigmodel","overview.llmName":"OpenAI 호환","overview.llmConfigured":"활성 LLM 구성됨","overview.llmNotConfigured":"구성되지 않음","overview.statusConfigured":"구성됨","overview.statusNotConfigured":"구성되지 않음","overview.statusUnknown":"읽을 수 없음","overview.credentialsLoadError":"자격 증명 상태를 읽을 수 없습니다","overview.metricChars":"오늘 글자 수","overview.metricSegments":"{{count}} 세그먼트","overview.metricDuration":"오늘 총 시간","overview.metricAvg":"평균 세그먼트","overview.metricAvgTrend":"오늘 평균","overview.metricNoData":"데이터 없음","overview.historyLoadError":"기록 로드 실패","overview.metricTotal":"누적 기록","overview.metricTotalTrend":"로컬 보관(상한 200)","overview.activityTitle":"연간 활동","overview.activityCount":"{{count}}회 받아쓰기","overview.activityLoadError":"활동 데이터 로드 실패","overview.period.ariaLabel":"집계 기간","overview.period.last7Days":"최근 7일","overview.period.last30Days":"최근 30일","overview.period.dailyAverage":"일평균 {{value}}","overview.period.minutes":"{{value}}분","overview.period.hoursMinutes":"{{hours}}시간 {{minutes}}분","overview.metricName.ariaLabel":"지표","overview.metricName.count":"건수","overview.metricName.chars":"글자 수","overview.metricName.duration":"시간","overview.recentTitle":"최근 인식","overview.recentAll":"전체 보기 →","overview.recentEmpty":"아직 기록이 없습니다. {{trigger}} 를 눌러 첫 녹음을 시작하세요.","overview.recentLoadFailed":"최근 인식 기록을 불러올 수 없습니다. 다시 시도해 주세요.","overview.historyRetry":"다시 시도","overview.weekDays.0":"일","overview.weekDays.1":"월","overview.weekDays.2":"화","overview.weekDays.3":"수","overview.weekDays.4":"목","overview.weekDays.5":"금","overview.weekDays.6":"토","overview.inAppDictation.title":"앱 내 받아쓰기","overview.inAppDictation.start":"녹음 시작","overview.inAppDictation.stop":"녹음 중지","overview.inAppDictation.idle":"탭하여 녹음 시작","overview.inAppDictation.recording":"녹음 중…","overview.inAppDictation.processing":"처리 중…","overview.androidMicBanner.title":"마이크 권한이 필요합니다","overview.androidMicBanner.desc":"마이크를 허용하면 앱 내 받아쓰기와 음성 입력을 사용할 수 있습니다.","overview.androidMicBanner.grant":"권한 요청","overview.androidMicBanner.openSettings":"설정 열기","history.exportError":"녹음을 내보내지 못했습니다. 다시 시도해 주세요.","history.kicker":"기록","history.title":"기록","history.desc":"로컬에 저장된 인식 기록.","history.filterAll":"전체","history.summary":"총 {{total}}건 · 표시 {{shown}}","history.searchPlaceholder":"기록 검색…({{shortcut}})","history.searchNoMatch":"“{{query}}”과(와) 일치하는 항목이 없습니다.","history.empty":"기록이 없습니다. {{trigger}} 를 눌러 한 번 녹음해 보세요.","history.loadFailed":"기록 로드 실패: {{err}}","history.retry":"다시 시도","history.clearFailed":"기록 비우기 실패: {{err}}","history.deleteFailed":"항목 삭제 실패: {{err}}","history.copyFailed":"복사 실패: {{err}}","history.playRecording":"녹음 재생","history.audioLoading":"로딩 중…","history.audioDecodeFailed":"오디오 디코딩 실패: {{err}}","history.exportRecording":"녹음 내보내기","history.exportFailed":"내보내기 실패: {{err}}","history.retranscribe":"다시 인식","history.retranscribing":"인식 중…","history.retranscribeFailed":"다시 인식 실패: {{err}}","history.rawLabel":"원문","history.rawEmpty":"(비어 있음)","history.selectHint":"왼쪽에서 하나를 선택하여 자세히 보기.","history.recorded":"녹음 {{duration}}","history.stepAsr":"인식","history.multimodalPipeline":"멀티모달","history.stepAsrHint":"키를 뗀 후 인식 결과를 기다린 시간. 스트리밍 인식은 녹음 중에 변환하므로 보통 녹음 시간보다 훨씬 짧습니다.","history.stepPolish":"다듬기","history.stepInsert":"삽입","history.chars":"{{count}}자","history.vocabHits":"핫워드 {{count}}개","history.inserted":"입력됨","history.pasteSent":"붙여넣기 시도됨","history.copiedFallback":"복사됨({{shortcut}} 필요)","history.insertFailed":"입력 실패","history.confirmClear":"전체 {{count}}건의 기록을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.","history.backToList":"목록으로","history.repolish.title":"다시 다듬기","history.repolish.hint":"위 원문으로 다듬기를 다시 실행합니다. 결과는 이번 조회에만 표시되며 기록에 반영되지 않습니다. 원래 스타일 팩이 삭제되었거나 오래된 기록인 경우, 다시 시도 시 현재 스타일을 사용합니다.","history.repolish.retry":"같은 스타일로 재시도","history.repolish.retrying":"재시도 중…","history.repolish.apply":"적용","history.repolish.applying":"다듬는 중…","history.repolish.pickStyle":"스타일 팩 선택","history.repolish.noPacks":"사용할 수 있는 스타일 팩이 없습니다.","history.repolish.packsLoadFailed":"스타일 팩 로드 실패: {{err}}","history.repolish.failed":"다시 다듬기 실패: {{err}}","history.repolish.timeout":"현재 LLM 제공자가 30초 안에 응답하지 않았습니다. 더 빠른 제공자로 바꾸거나 잠시 후 다시 시도하세요 — 무료 모델 풀은 대기가 잦습니다.","history.repolish.resultTitle":"{{name}} 결과","history.repolish.retryResultTitle":"재시도 결과","history.repolish.empty":"(모델이 빈 결과를 반환했습니다)","history.repolish.clear":"결과 지우기","vocabCard.title":"이 단어를 기억할까요?","vocabCard.accept":"기억하기","vocabCard.reject":"건너뛰기","insertFallbackCard.copy":"복사","insertFallbackCard.copied":"복사됨","insertFallbackCard.copyFailed":"복사 실패","insertFallbackCard.dismiss":"닫기","vocab.selectAllVisible":"현재 결과 선택","vocab.selectedCount":"단어 {{count}}개 선택됨","vocab.selectWord":"“{{phrase}}” 선택","vocab.deleteSelected":"선택 항목 삭제({{count}})","vocab.batchDeleteFailed":"단어 {{count}}개를 삭제하지 못했습니다. 다시 시도할 수 있도록 선택을 유지합니다.","vocab.kicker":"사전","vocab.title":"사전","vocab.desc":"새 단어나 전문 용어를 추가하여 인식 정확도 향상.","vocab.sectionTitle":"항목","vocab.placeholder":"단어를 입력하고 Enter 또는 추가 클릭…","vocab.tip":"한영 혼용 지원 · 숫자로 시작하면 그대로 인식 · 적중 횟수 자동 카운트","vocab.loadFailed":"로드 실패: {{err}}","vocab.empty":"어휘가 없습니다. 위에 새 단어나 전문 용어를 입력하면 받아쓰기 시 우선 매칭됩니다.","vocab.tipDisabled":"클릭하여 비활성화","vocab.tipEnabled":"클릭하여 활성화","vocab.removeAria":"삭제","vocab.edit":"편집","vocab.editTitle":"단어 편집","vocab.editSave":"저장","vocab.editEmpty":"단어를 입력하세요.","vocab.filter.all":"전체","vocab.filter.auto":"자동 추가","vocab.filter.manual":"수동 추가","vocab.searchPlaceholder":"검색","vocab.searchEmpty":"일치하는 단어가 없습니다.","vocab.newWord":"새 단어","vocab.newWordTitle":"새 단어 추가","vocab.newWordDesc":"단어를 직접 입력하거나 프리셋 템플릿에서 일괄 가져오세요.","vocab.newWordInputPlaceholder":"단어 입력 후 Enter로 추가…","vocab.newWordTemplates":"프리셋 템플릿","vocab.newWordTemplateCount":"{{count}}개 단어","vocab.newWordAddSelected":"선택 추가","vocab.learnedSection":"자동 수집 ({{count}})","vocab.removeAllLearned":"모두 삭제","vocab.corrections.title":"교정 규칙","vocab.corrections.tip":"ASR 오인식 수정. {num} 숫자 와일드카드 지원.","vocab.corrections.patternPlaceholder":"오인식 표현, 예: {num}粒","vocab.corrections.replacementPlaceholder":"대상 표현, 예: {num}例","vocab.corrections.empty":"아직 교정 규칙이 없습니다.","vocab.corrections.invalid":"문자 그대로 바꾸기 또는 {num} 숫자 와일드카드 1개가 포함된 규칙만 지원합니다. 예: {num}粒 → {num}例.","vocab.corrections.tipDisabled":"이 규칙 비활성화","vocab.corrections.tipEnabled":"이 규칙 활성화","vocab.corrections.removeAria":"교정 규칙 삭제","vocab.corrections.learnedBadge":"자동","vocab.corrections.learnedTip":"직접 고친 내용에서 자동으로 수집했습니다. 언제든 삭제할 수 있습니다.","vocab.corrections.onlyLearned":"자동 수집만 보기 ({{count}})","vocab.corrections.removeAllLearned":"자동 수집 전체 삭제","vocab.corrections.suggestTitle":"이 수정을 기억할까요?","vocab.corrections.suggestAccept":"기억하기","vocab.corrections.suggestDismiss":"괜찮아요","vocab.presets.title":"시나리오 프리셋","vocab.presets.tip":"다중 선택 일괄 적용 가능. 편집 및 생성 지원.","vocab.presets.create":"프리셋 새로 만들기","vocab.presets.apply":"선택 활성화","vocab.presets.save":"프리셋 저장","vocab.presets.edit":"{{name}} 편집","vocab.presets.newPreset":"새 프리셋","vocab.presets.namePlaceholder":"프리셋 이름","vocab.presets.wordsPlaceholder":"어휘(쉼표 또는 줄바꿈으로 구분)","style.kicker":"스타일","style.title":"출력 스타일","style.desc":"녹음의 기본 출력 스타일 선택.","style.masterToggle":"전체 활성화","style.currentDefault":"현재 기본","style.ariaSetDefault":"기본으로 설정","style.saveFailed":"저장 실패: {{error}}","style.customPromptTitle":"사용자 프롬프트","style.customPromptPlaceholder":"선택 사항입니다. 이 스타일의 기본 system prompt 끝에 추가됩니다.","style.customPromptHint":"비워 두면 현재 동작이 그대로 유지됩니다. 저장 후 이 스타일의 실시간 다듬기와 repolish 모두에 적용됩니다. Ctrl/Cmd+Enter로도 저장할 수 있습니다.","style.customPromptSave":"프롬프트 저장","style.customPromptDirty":"미저장","style.systemPromptMovedHint":"전체 system prompt 편집은 Settings -> Providers 로 이동했습니다. 이 페이지는 이제 스타일 활성화와 기본값만 다룹니다.","style.modes.raw.name":"원문","style.modes.raw.desc":"구두점과 필요한 문장 구분만 보충하고 다시 쓰거나 확장하지 않습니다.","style.modes.raw.sample":"원래 구어체 유지. \"음\", \"그게\" 같은 입버릇은 제거하지만 문장을 재구성하지 않습니다.","style.modes.light.name":"가벼운 정리","style.modes.light.desc":"입버릇 제거, 구두점 보충, 자연스럽게 보낼 수 있는 텍스트로 정리합니다.","style.modes.light.sample":"원고를 읽는 듯한 느낌이 들지 않도록 어조와 표현 습관은 남기되, 문장이 매끄럽게 흐르도록 합니다.","style.modes.structured.name":"명확한 구조","style.modes.structured.desc":"개발 협업, 기술 문제 해결, 제품 피드백을 정확한 용어와 명확한 구조로 정리합니다.","style.modes.structured.sample":"1. 주제 1\na. 포인트\nb. 포인트\n2. 주제 2\na. 포인트\nb. 포인트","style.modes.formal.name":"정식 표현","style.modes.formal.desc":"업무 커뮤니케이션과 메일에 적합. 더 전문적이고 완성도 높은 문체.","style.modes.formal.sample":"메일 시나리오에서 인사말과 맺음말을 자동 인식. 공허한 상투어는 추가하지 않습니다.","style.pack.builtinTags.minimalEdits":"최소 수정","style.pack.builtinTags.strongCorrection":"정확한 교정","style.pack.builtinTags.communication":"의사소통","style.pack.builtinTags.natural":"자연스러움","style.pack.builtinTags.organized":"체계적 정리","style.pack.builtinTags.workplaceCommunication":"업무 소통","style.pack.builtinTags.aiCoding":"AI 코딩","style.pack.builtinTags.technicalStructure":"기술 내용 구조화","style.pack.newName":"이름 없는 스타일","style.pack.newDescription":"이 스타일을 언제 사용하는지 간단히 설명하세요.","style.pack.uploadIcon":"{{name}}의 SVG 아이콘 업로드","style.pack.resetIcon":"기본 아이콘 복원","style.pack.iconSaved":"아이콘이 저장되었습니다","style.pack.iconInvalid":"외부 리소스가 없는 유효한 SVG 아이콘을 선택하세요(최대 256 KB).","style.pack.iconSaveFailed":"아이콘을 저장하지 못했습니다. 다시 시도하세요.","style.pack.selectionListTitle":"선택 영역 다듬기 스타일","style.pack.selectionListDesc":"ASR 없이 선택한 글에 사용: 문법, 명확성, 형식 다듬기. 스타일과 프롬프트를 따로 고를 수 있습니다.","style.pack.dictationTab":"녹음 / ASR 스타일","style.pack.selectionTab":"선택 영역 다듬기","style.pack.current":"현재","style.pack.useForSelection":"선택 영역에 사용","style.pack.writtenPolish":"서면 다듬기","style.pack.selectionPromptTitle":"선택 영역 다듬기 프롬프트(ASR 없음)","style.pack.selectionPromptHint":"사용자가 선택한 서면 텍스트용. ASR을 거치지 않으며, 받아쓰기로 취급하지 않고 그 안의 질문에도 답하지 않습니다.","style.pack.selectionPromptEditorDesc":"선택 영역 다듬기 프롬프트를 편집 중입니다. 입력은 사용자가 선택한 서면 텍스트이며 ASR을 거치지 않습니다.","style.pack.dictationPromptEditorDesc":"녹음 / ASR 스타일 프롬프트를 편집 중입니다. 입력은 음성 인식 후 받아쓰기 텍스트입니다.","style.pack.dictationPromptTitle":"녹음 / ASR 프롬프트","style.pack.dictationPromptHint":"녹음 후 받아쓰기한 ASR 텍스트용. 구어 정리, ASR 오타 수정, 고유명사 복원 규칙을 여기에 작성하세요.","style.pack.selectionPromptFallback":"서면 다듬기 프롬프트가 아직 설정되지 않았습니다. 안전한 기본값을 사용합니다.","style.pack.selectionActivated":"선택 영역 다듬기에 \"{{name}}\"을(를) 설정했습니다","style.pack.selectionActivateFailed":"선택 영역 다듬기 스타일 전환 실패: {{err}}","style.pack.selectionChars":"{{count}}자","style.pack.kicker":"스타일 팩","style.pack.title":"스타일 팩","style.pack.desc":"로컬 스타일 팩 관리.","style.pack.marketplaceBtn":"마켓","style.pack.loadFailed":"스타일 팩 불러오기 실패: {{err}}","style.pack.importZip":"ZIP 가져오기","style.pack.exportZip":"ZIP 내보내기","style.pack.exportShort":"내보내기","style.pack.publishMarketplace":"마켓에 게시","style.pack.updateMarketplace":"마켓 새 버전으로 업데이트","style.pack.publishDisabledHint":"먼저 설정 → 마켓에서 GitHub 사용자명을 설정하세요","style.pack.publishSuccess":"게시 완료, 마켓 심사 대기 중","style.pack.publishFailed":"게시 실패: {{err}}","style.pack.publishBuiltinRejected":"기본 팩은 직접 게시할 수 없습니다. 먼저 편집해서 가져오기 버전을 만드세요.","style.pack.builtin":"기본","style.pack.imported":"가져옴","style.pack.active":"사용 중","style.pack.activate":"활성화","style.pack.edit":"편집","style.pack.closeEditor":"닫기","style.pack.unsaved":"저장 안 됨","style.pack.listTitle":"로컬 팩","style.pack.listDesc":"팩 둘러보기·전환.","style.pack.listCount":"{{count}}개","style.pack.addPackTileTitle":"새 팩","style.pack.addPackTileHint":"빈 템플릿으로 시작.","style.pack.createSuccess":"새 팩이 생성되었습니다","style.pack.createFailed":"팩 생성 실패: {{err}}","style.pack.save":"저장","style.pack.revert":"되돌리기","style.pack.saveSuccess":"스타일 팩이 저장되었습니다","style.pack.saveFailed":"스타일 팩 저장 실패: {{err}}","style.pack.activateSuccess":"\"{{name}}\"을(를) 사용 중으로 설정했습니다","style.pack.activateFailed":"사용 중 설정 실패: {{err}}","style.pack.importSuccess":"\"{{name}}\"을(를) 가져왔습니다","style.pack.importFailed":"ZIP 가져오기 실패: {{err}}","style.pack.exportSuccess":"{{path}}에 내보냈습니다","style.pack.exportFailed":"ZIP 내보내기 실패: {{err}}","style.pack.exportDirtyFirst":"ZIP을 내보내기 전에 현재 팩을 저장하세요.","style.pack.resetBuiltin":"재설정","style.pack.resetSuccess":"\"{{name}}\"을(를) 재설정했습니다","style.pack.resetFailed":"팩 재설정 실패: {{err}}","style.pack.deleteImported":"삭제","style.pack.deleteConfirm":"\"{{name}}\"을(를) 삭제할까요? 되돌릴 수 없습니다.","style.pack.deleteSuccess":"\"{{name}}\"을(를) 삭제했습니다","style.pack.deleteFailed":"팩 삭제 실패: {{err}}","style.pack.summaryCurrentEmpty":"아직 팩이 선택되지 않았습니다","style.pack.editorTitle":"팩 편집","style.pack.editorDesc":"이 팩을 편집합니다.","style.pack.metaTitle":"설치 정보","style.pack.metaSource":"소스","style.pack.metaBaseMode":"베이스 모드","style.pack.metaUpdatedAt":"업데이트","style.pack.fieldName":"이름","style.pack.fieldAuthor":"작성자","style.pack.fieldAuthorPlaceholder":"선택. 출처 표시용","style.pack.fieldVersion":"버전","style.pack.fieldTags":"태그","style.pack.fieldTagsPlaceholder":"쉼표로 구분, 예: community, voiceover, formal","style.pack.fieldDescription":"설명","style.pack.fieldModel":"권장 모델(메타데이터)","style.pack.fieldModelPlaceholder":"선택. 예: gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"메타데이터일 뿐 실제 모델을 전환하지 않습니다.","style.pack.fieldCompatibility":"호환 앱 버전","style.pack.fieldCompatibilityPlaceholder":"선택. 예: >=1.3.0","style.pack.fullPromptTitle":"System Prompt","style.pack.fullPromptHint":"이 팩만의 Prompt입니다.","style.pack.promptChars":"{{count}}자","style.pack.runtimeTitle":"OpenLess 런타임 추가 지시","style.pack.runtimeDesc":"읽기 전용 런타임 보조.","style.pack.runtimeContextTitle":"컨텍스트 전제","style.pack.runtimeContextDesc":"언어·앱 컨텍스트에서","style.pack.runtimeContextEmpty":"현재 미리보기에는 추가되지 않습니다.","style.pack.runtimeHotwordTitle":"핫워드 블록","style.pack.runtimeHotwordDesc":"활성화된 핫워드에서","style.pack.runtimeHotwordEmpty":"현재 미리보기에는 추가되지 않습니다.","style.pack.runtimeHistoryTitle":"멀티턴 히스토리 가드","style.pack.runtimeHistoryDesc":"실시간 멀티턴 polish 전용","style.pack.runtimeHistoryEmpty":"이전 턴이 있을 때만 추가됩니다.","style.pack.runtimeActive":"활성","style.pack.runtimeInactive":"비활성","style.pack.runtimePreviewFailed":"런타임 미리보기 생성 실패: {{err}}","style.pack.runtimePreviewOmittedFrontApp":"미리보기에서 프런트앱 라벨이 생략되었습니다.","style.pack.examplesTitle":"효과 예시","style.pack.examplesDesc":"팩과 함께 내보내집니다.","style.pack.addExample":"예시 추가","style.pack.examplesEmpty":"아직 예시가 없습니다.","style.pack.exampleTitlePlaceholder":"예시 {{index}} 제목","style.pack.exampleInput":"입력","style.pack.exampleOutput":"출력","style.pack.examplesCount":"{{count}}개 예시","style.pack.discardCloseConfirm":"저장하지 않은 변경 사항을 버리고 에디터를 닫을까요?","style.pack.discardSwitchConfirm":"저장하지 않은 변경 사항을 버리고 \"{{name}}\"(으)로 전환할까요?","style.pack.derivativeBadge":"@{{login}}에서 파생","translation.searchLanguages":"언어 검색…","translation.noMatchingLanguages":"일치하는 언어가 없습니다","translation.selectedLanguages":"언어 {{count}}개 선택됨","translation.languageSupportHint":"음성 서비스에 따라 지원 언어가 다릅니다. 번역 언어는 앱 표시 언어와 별개입니다.","translation.kicker":"번역","translation.title":"번역","translation.desc":"녹음 후 대상 언어로 자동 번역하여 삽입.","translation.statusEnabled":"활성화됨","translation.statusDisabled":"비활성화됨","translation.working.title":"작업 언어","translation.working.desc":"일상적으로 사용하는 언어를 선택하여 정리와 번역에 반영.","translation.target.title":"번역 대상 언어","translation.target.desc":"녹음 중 Shift 로 번역 실행. \"비활성화\" 시 Shift 무효.","translation.target.disabled":"비활성화 (Shift 로 번역 발동 안 함)","translation.target.sameAsWorking":"대상 언어가 유일한 작업 언어와 같아 번역이 실행되지 않습니다. Shift 를 눌러도 일반 정리로 처리됩니다. 다른 대상 언어를 고르거나 위에서 작업 언어를 추가하세요.","translation.style.title":"번역 스타일","translation.style.desc":"「스타일」 페이지에서 현재 활성화된 스타일 팩을 자동으로 사용합니다.","translation.style.unavailable":"사용할 수 없음","translation.save.workingFailed":"작업 언어 저장에 실패했습니다. 다시 시도하세요.","translation.save.targetFailed":"번역 대상 언어 저장에 실패했습니다. 다시 시도하세요.","translation.save.hotkeyRegisterFailed":"번역 단축키 등록에 실패했습니다. 설정은 저장되지 않았습니다.","translation.save.hotkeySaveFailed":"번역 단축키 저장에 실패했습니다. 다시 시도하세요.","translation.howto.title":"사용 방법","translation.howto.step1":"아무 입력 필드에 커서를 놓으세요.","translation.howto.step2":"{{trigger}} 를 눌러 녹음 시작.","translation.howto.step3":"녹음 중 {{shortcut}} 를 한 번 눌러 번역 활성화.","translation.howto.step4":"다시 {{trigger}} 를 눌러 정지.","translation.howto.step5":"번역 결과가 커서 위치에 삽입됩니다.","translation.howto.indicatorTitle":"번역 모드 활성화 확인 방법","translation.howto.indicatorDesc":"Shift 를 누르면 화면 하단에 파란색 \"번역 중\" 표시가 나타납니다.","translation.howto.fallbackTitle":"안전 폴백","translation.howto.fallbackDesc":"번역 실패 시 원본 전사가 삽입됩니다.","selectionAsk.title":"선택 질문","selectionAsk.desc":"텍스트 선택 후 음성으로 질문. 다중 라운드 후속 질문 지원.","selectionAsk.shortcutSettings":"단축키 설정","selectionAsk.guide.openTitle":"질문 패널 열기","selectionAsk.guide.openDesc":"{{hotkey}}로 대화를 시작하세요.","selectionAsk.guide.unsetDesc":"먼저 단축키 설정에서 선택 질문 단축키를 지정하세요.","selectionAsk.guide.selectTitle":"궁금한 내용 선택","selectionAsk.guide.askTitle":"말로 질문하기","selectionAsk.guide.askDesc":"{{recordHotkey}}로 녹음하고, 다시 눌러 전송하세요.","selectionAsk.guide.followup":"녹음 단축키를 다시 눌러 후속 질문을 할 수 있어요.","selectionAsk.guide.dismiss":"패널을 닫고 이번 대화 종료","selectionAsk.hotkey.title":"플로팅 창 단축키","selectionAsk.save.historySaveFailed":"Q&A 기록 설정 저장에 실패했습니다. 다시 시도하세요.","selectionAsk.history.title":"기록 저장","selectionAsk.history.desc":"활성화 시 Q&A 기록을 로컬에 저장. 기본 OFF.","selectionAsk.howto.title":"사용 방법","selectionAsk.howto.step2":"아무 앱에서 텍스트 선택.","settings.selectionWorkspace.title":"선택 영역 도우미","settings.selectionWorkspace.hint":"텍스트 선택 후 같은 단축키: 음성 편집 끄면 바로 다듬기, 켜면 누른 채 말한 뒤 「질문」 또는 「편집」 선택.","settings.selectionWorkspace.polishHotkey":"선택 영역 도우미 단축키","settings.selectionWorkspace.polishHotkeyDesc":"음성 편집 끄면 바로 다듬기, 켜면 누른 채 말하기(녹음 방식은 전역 설정 따름).","settings.selectionWorkspace.polishDelivery":"결과 처리","settings.selectionWorkspace.voiceDeliveryDesc":"음성 편집 후: 선택 영역을 바로 교체하거나 Ask 패널에서 확인 후 교체합니다.","settings.selectionWorkspace.voiceEnable":"음성 편집","settings.selectionWorkspace.voiceEnableDesc":"위와 같은 단축키 사용. 녹음 방식은 전역 설정을 따릅니다(현재: {{recordingLabel}}).","settings.selectionWorkspace.autoIntent":"의도 자동 판별","settings.selectionWorkspace.autoIntentDesc":"켜면 설정된 모델이 질문/편집을 판별합니다. 모델 실패 시에만 의문사 휴리스틱으로 폴백합니다.","settings.selectionWorkspace.editKeywords":"추가 의문 단서","settings.selectionWorkspace.editKeywordsDesc":"자동 판별 끔일 때만. 한 줄에 하나면 질문. 없으면 ?/의문사 휴리스틱.","settings.selectionPolish.title":"선택 영역 다듬기","settings.selectionPolish.hotkey":"실행 단축키","settings.selectionPolish.hotkeyDesc":"녹화 후 즉시 적용됩니다. 녹음, 질문 등 다른 전역 단축키와 충돌하면 거부됩니다.","settings.selectionPolish.delivery":"결과 처리 방식","settings.selectionPolish.hint":"텍스트를 선택한 뒤 실행합니다. 마이크나 ASR이 필요 없으며 현재 스타일 팩과 전용 선택 프롬프트를 사용합니다.","settings.selectionPolish.directReplace":"직접 교체","settings.selectionPolish.directReplaceHint":"모델 완료 후 원래 선택 영역을 안전하게 교체합니다.","settings.selectionPolish.previewConfirm":"미리보기 후 확인","settings.selectionPolish.previewConfirmHint":"편집 가능한 창에서 결과를 확인한 뒤 원래 선택 영역을 교체합니다.","settings.kicker":"설정","settings.title":"설정","settings.desc":"녹음, 공급자, 단축키, 권한 설정.","settings.network.title":"네트워크","settings.network.useSystemProxyLabel":"시스템 프록시 사용","settings.network.useSystemProxyDesc":"켜면 요청이 시스템 프록시를 따릅니다. 끄면 모든 요청이 직결됩니다(국내 서비스는 보통 더 빠름). GitHub 로그인·업데이트 등 해외 서비스는 연결되지 않을 수 있습니다. 실시간 음성 스트림과 Less Computer는 영향을 받지 않습니다.","settings.dataStorage.title":"데이터 저장","settings.dataStorage.desc":"이 기기에 보관되는 대화 기록과 컨텍스트.","settings.dataStorage.cursorContextLabel":"커서 문맥 (실험적)","settings.dataStorage.cursorContextDesc":"다듬을 때 작성 중인 문서에서 커서 주변 원문을 읽어, 동음이의어·고유명사·대명사를 모델이 구분할 수 있게 합니다. 켜면 해당 텍스트가 요청과 함께 설정된 LLM 제공자로 전송됩니다. 끄면 한 글자도 읽지 않습니다. 비밀번호 입력란, Secure Input, 비밀번호 관리자, 터미널은 항상 읽지 않습니다. macOS 전용.","settings.codingConsole.title":"Claude 콘솔","settings.codingConsole.desc":"로컬 Claude Code 와 MCP(computer use) 상태를 감지하고, 가드레일 아래에서 Claude 를 헤드리스로 실행하여 출력과 비용을 스트리밍으로 확인합니다.","settings.codingConsole.guardNote":"복구 가능한 작업은 기본 허용; rm -rf / sudo / 강제 푸시 등 고위험 명령은 차단; 작업 디렉터리가 git 저장소이면 실행 전 스냅샷을 만들어 되돌릴 수 있습니다.","settings.codingConsole.status":"상태","settings.codingConsole.detect":"감지","settings.codingConsole.detecting":"감지 중…","settings.codingConsole.installed":"Claude 감지됨","settings.codingConsole.notInstalled":"claude 를 찾을 수 없음","settings.codingConsole.notInstalledHint":"먼저 Claude Code 를 설치하세요(docs.anthropic.com/claude-code 참고). 또는 아래에 실행 파일 전체 경로를 입력하세요.","settings.codingConsole.mcpServers":"MCP 서버 {{count}}개 구성됨","settings.codingConsole.computerUsePresent":"데스크톱 제어(computer use) MCP 구성됨","settings.codingConsole.computerUseAbsent":"데스크톱 제어 MCP 없음(복사/붙여넣기 같은 가벼운 작업은 Bash 로 가능, 불필요)","settings.codingConsole.exePath":"실행 파일","settings.codingConsole.workdir":"작업 디렉터리","settings.codingConsole.workdirDesc":"선택 사항. Claude 가 이 디렉터리에서 실행됩니다. git 저장소이면 실행 전 스냅샷으로 되돌릴 수 있습니다.","settings.codingConsole.workdirPlaceholder":"비우면 임시 디렉터리에서 실행","settings.codingConsole.permissionMode":"권한 모드","settings.codingConsole.mode.acceptEdits":"허용(복구 가능)","settings.codingConsole.mode.plan":"읽기 전용 / 계획","settings.codingConsole.mode.default":"기본(매번 확인)","settings.codingConsole.mode.bypassPermissions":"완전 허용(위험)","settings.codingConsole.promptPlaceholder":"Claude 에게 작업 지시, 예: 현재 디렉터리 파일 목록","settings.codingConsole.run":"실행","settings.codingConsole.running":"실행 중…","settings.codingConsole.cancel":"취소","settings.codingConsole.clear":"지우기","settings.codingConsole.riskWarn":"고위험 의도 감지: {{reason}}. 가드레일이 실행 시 고위험 명령을 차단합니다.","settings.codingConsole.toolUse":"도구 {{name}}","settings.codingConsole.done":"완료","settings.codingConsole.doneCost":"완료 · 비용 ${{cost}}","settings.codingConsole.cancelled":"취소됨","settings.codingConsole.outputPlaceholder":"출력이 여기에 스트리밍됩니다…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"키를 누르고 말하면 선택한 Agent가 PC를 조작합니다. macOS 전용.","settings.codingAgent.enable":"Less Computer 켜기","settings.codingAgent.comingSoonNote":"설정은 즉시 저장됩니다. 단축키 트리거와 실행 흐름은 이후 버전에서 제공됩니다.","settings.codingAgent.hotkeyHint":"켜면 단축키를 누른 채 말하고, 놓으면 선택한 Agent 결과가 캡슐에 표시됩니다.","settings.codingAgent.voiceHotkey":"누르고 말하기 키","settings.codingAgent.voiceHotkeyDesc":"누르고 말하고 놓으면 실행. Ctrl/Option/Fn 단일 키 지원. 기능 설명은 「고급」 설정 페이지 참조.","settings.codingAgent.provider":"Agent 백엔드","settings.codingAgent.opencodeReady":"OpenCode v{{version}} 감지됨.","settings.codingAgent.opencodeMissing":"opencode 명령을 찾을 수 없습니다. 먼저 설치(npm i -g opencode-ai)하고 opencode auth login으로 로그인하세요.","settings.codingAgent.cliReady":"{{name}} v{{version}}을(를) 감지했습니다.","settings.codingAgent.cliMissing":"{{name}} 명령을 찾을 수 없습니다. 먼저 설치하고 로그인하거나, 아래 \"실행 파일\"에 절대 경로를 입력하세요.","settings.codingAgent.sandboxGuardHint":"이 백엔드는 명령 단위 고위험 목록 없이 큰 단위의 샌드박스 등급만 제공합니다. 제한에 걸리면 \"이 명령 승인\" 카드를 띄우지 않고 실패를 그대로 알립니다.","settings.codingAgent.codexModelHint":"Codex 모델 이름(예: gpt-5)을 입력하세요. 비워 두면 ~/.codex/config.toml 설정을 사용합니다.","settings.codingAgent.codexBudgetHint":"Codex에는 실행별 달러 예산 상한이 없습니다. 비용은 구성한 제공자에 따라 달라집니다.","settings.codingAgent.codexMode.plan":"읽기 전용 / 계획","settings.codingAgent.codexMode.workspaceWrite":"워크스페이스 쓰기 허용","settings.codingAgent.codexModelPlaceholder":"비워 두면 Codex 기본값","settings.codingAgent.dshModelHint":"dsh의 headless 프로필에는 모델 전환이 없습니다. 모델은 dsh 자체 프로필에서 결정되며 여기서는 바꿀 수 없습니다.","settings.codingAgent.panelHotkey":"패널 키(음성 Agent)","settings.codingAgent.panelHotkeyDesc":"녹음 → ASR → Claude → 패널에 스트리밍. 기본 Cmd/Ctrl+Shift+Enter.","settings.codingAgent.quickHotkey":"빠른 가져오기 키","settings.codingAgent.quickHotkeyDesc":"선택한 텍스트 → Claude → 결과를 커서 위치로. 패널 없이 더 빠름.","settings.codingAgent.model":"모델","settings.codingAgent.modelPlaceholder":"기본: sonnet","settings.codingAgent.modelDefault":"기본(자동 sonnet)","settings.codingAgent.modelHint":"Haiku = 가장 빠름 · Sonnet = 균형 · Opus = 최강","settings.codingAgent.opencodeModelDefault":"OpenCode 기본 모델 사용","settings.codingAgent.opencodeModelHint":"현재 OpenCode 계정에서 사용 가능한 provider/model을 자동으로 가져오고 선택 즉시 저장합니다.","settings.codingAgent.opencodeModelsRefresh":"모델 다시 가져오기","settings.codingAgent.opencodeModelsRefreshing":"OpenCode 모델을 가져오는 중…","settings.codingAgent.opencodeModelsLoaded":"모델 {{count}}개를 가져왔습니다.","settings.codingAgent.opencodeModelsEmpty":"사용 가능한 모델이 반환되지 않았습니다. OpenCode에 로그인하거나 모델 제공자를 설정하세요.","settings.codingAgent.opencodeModelsError":"모델 가져오기 실패: {{message}}","settings.codingAgent.exe":"실행 파일 경로","settings.codingAgent.openPanel":"텍스트 테스트","settings.codingAgent.openPanelHint":"Less Computer 패널을 열어 현재 Agent와 모델 설정을 텍스트로 확인합니다.","settings.codingAgent.openPanelAction":"Less Computer 열기","settings.debug.cursorLabel":"커서","settings.debug.title":"디버그 도구","settings.debug.desc":"인식 문제를 진단할 때 사용합니다. 평소에는 꺼두어도 됩니다.","settings.debug.cursorProbeLabel":"커서 문맥 프로브","settings.debug.cursorProbeDesc":"누른 뒤 카운트다운 안에 대상 앱으로 전환해 입력란을 클릭하세요. 그곳의 커서 주변 원문을 읽어, 어떤 앱이 읽히고 어떤 앱이 안전 게이트에 막히는지 확인할 수 있습니다. 한 번만 읽으며 어떤 제공자에게도 보내지 않습니다.","settings.debug.cursorProbeBtn":"프로브 (5초 후)","settings.debug.cursorProbeCountdown":"{{n}}초 후 읽기…","settings.marketplace.title":"확장 마켓","settings.marketplace.desc":"스타일 마켓 업로드 신원. 스타일 둘러보기와 설치는 「스타일」 페이지에서 합니다.","settings.marketplace.github.signIn":"GitHub로 로그인","settings.marketplace.github.signedIn":"GitHub로 로그인됨","settings.marketplace.github.signedOut":"로그인하면 스타일 업로드와 좋아요를 할 수 있습니다.","settings.marketplace.github.signOut":"로그아웃","settings.marketplace.github.starting":"로그인을 시작하는 중…","settings.marketplace.github.codeHint":"열린 GitHub 페이지에서 이 코드를 입력하세요:","settings.marketplace.github.openGithub":"GitHub 열기","settings.marketplace.github.waiting":"GitHub를 열었습니다. 승인하면 로그인됩니다…","settings.marketplace.github.failed":"로그인 실패, 다시 시도하세요","settings.recording.title":"녹음 및 입력","settings.recording.desc":"전역 녹음의 단축키와 트리거 방식을 정의합니다.","settings.recording.hotkeyLabel":"녹음 단축키","settings.recording.hotkeyDescAcc":"누르면 음성 캡처 시작(전역). 접근성 권한이 필요합니다.","settings.recording.hotkeyDescNoAcc":"누르면 음성 캡처 시작(전역). 추가 권한 불필요.","settings.recording.modeLabel":"녹음 방식","settings.recording.modeDesc":"토글 방식 = 한 번 누르면 시작, 다시 누르면 종료; 눌러서 말하기 = 누르고 있는 동안만 녹음.","settings.recording.modeToggle":"토글 방식","settings.recording.modeHold":"눌러서 말하기","settings.recording.modeAuto":"자동","settings.recording.silenceAutoStopLabel":"침묵 시 자동 중지","settings.recording.silenceAutoStopDesc":"토글 모드에서만 동작합니다. 음성이 감지된 후 선택한 시간 동안 침묵이 이어지면 녹음을 자동으로 종료하고 제출합니다. 말을 전혀 하지 않으면 10초 후 취소됩니다. 기본적으로 꺼져 있으며, 두 번째 키 누름으로 중지하고 Esc로 취소하는 동작은 그대로 유지됩니다.","settings.recording.silenceAutoStopSecondsLabel":"침묵 시간","settings.recording.silenceAutoStopSecondsValue":"{{value}}초","settings.recording.migrationNoticeTitle":"기본값이 토글 방식으로 변경됨","settings.recording.migrationNoticeDesc":"이전에 트리거 방식을 변경했다면 여기서 다시 한 번 확인해 주세요. 이번 업데이트는 단축키 방식의 기본값과 읽기 로직을 조정했습니다. \"눌러서 말하기\"가 더 익숙하다면 다시 전환할 수 있습니다.","settings.recording.microphoneLabel":"기본 선택 마이크","settings.recording.microphoneDesc":"우선 사용할 입력 장치를 선택합니다. 장치를 일시적으로 사용할 수 없으면 시스템 기본 마이크를 사용하고, 다시 연결되면 자동으로 우선 장치로 돌아갑니다.","settings.recording.microphoneDefault":"시스템 기본 마이크","settings.recording.microphoneDefaultDesc":"시스템 기본 입력 장치 사용","settings.recording.microphoneSystemDefault":"시스템 기본값","settings.recording.microphoneUnavailable":"사용할 수 없음","settings.recording.microphoneLoadError":"마이크 로드 실패: {{message}}","settings.recording.microphoneDialogTitle":"마이크","settings.recording.microphoneDialogDesc":"목소리를 받을 수 있는 마이크를 선택하세요. 미터가 움직이지 않으면 다른 마이크를 시도하세요.","settings.recording.microphoneMonitorError":"입력 레벨 모니터링 실패: {{message}}","settings.recording.capsuleLabel":"녹음 캡슐","settings.recording.capsuleDesc":"녹음 / 전사 중 화면 하단에 반투명 캡슐을 표시합니다.","settings.recording.capsuleStyleTypeless":"Typeless 컴팩트 스타일","settings.recording.capsuleStyleLabel":"캡슐 스타일","settings.recording.capsuleStyleSiri":"시리 광선 스타일","settings.recording.capsuleStyleClassic":"Openless 기본 스타일","settings.recording.muteDuringRecordingLabel":"녹음 중 음소거","settings.recording.muteDuringRecordingDesc":"녹음 중 시스템 출력을 일시적으로 음소거하여 스피커 에코를 방지합니다.","settings.recording.audioCueLabel":"녹음 시작음","settings.recording.audioCueDesc":"단축키로 녹음을 시작할 때 합성된 짧은 알림음을 재생합니다. 캡슐이 숨겨져 있어도 재생됩니다.","settings.recording.audioCuePreview":"미리듣기","settings.recording.insertGroupTitle":"삽입 및 클립보드","settings.recording.restoreClipboardLabel":"입력 후 클립보드 복원","settings.recording.restoreClipboardDesc":"붙여넣기 성공 후 원래 클립보드 내용을 복원합니다 (Windows / Linux 만).","settings.recording.pasteShortcutLabel":"붙여넣기 단축키","settings.recording.pasteShortcutDesc":"삽입 시 시뮬레이션할 붙여넣기 단축키. 일부 터미널은 Ctrl+Shift+V 가 필요 (Windows / Linux 만).","settings.recording.pasteShortcutCtrlV":"Ctrl+V (기본 / 대부분 앱)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V (kitty / alacritty / wezterm / 대부분 터미널)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert (xterm / urxvt)","settings.recording.comboRecordLabel":"단축키 녹화","settings.recording.comboRecordDesc":"클릭 후 원하는 단축키 조합(예: ⌘⇧D)을 누르세요. 토글 및 누르기 모드 모두 지원합니다.","settings.recording.comboRecordBtn":"단축키 녹화","settings.recording.comboResetBtn":"초기화","settings.recording.comboMenuToggle":"더보기","settings.recording.comboDisableHint":"핵심 단축키는 비활성화할 수 없습니다 (녹음에는 단축키가 필수입니다)","settings.recording.comboRecordHint":"단축키 조합을 눌러 주세요…","settings.recording.comboNeedKey":"조합 키(예: ⌘⇧J)를 설정하세요. 단일 보조 키는 사용할 수 없습니다","settings.recording.comboRecorded":"녹화됨","settings.recording.comboClear":"지우기","settings.recording.comboConflict":"이 단축키 조합은 사용할 수 없습니다","settings.recording.allowNonTsfFallbackLabel":"비 TSF 폴백 허용","settings.recording.allowNonTsfFallbackDesc":"Windows: TSF 입력이 실패하면 분할된 Unicode SendInput을 사용하고, 그래도 실패하면 텍스트를 클립보드에 복사합니다.","settings.recording.windowsInsertionModeLabel":"Windows 삽입 방식","settings.recording.windowsInsertionModeDesc":"받아쓰기 결과를 커서 위치에 삽입하는 방법. 클립보드 붙여넣기는 위의 「붙여넣기 단축키」를 사용하며 줄바꿈을 유지합니다.","settings.recording.windowsInsertionModeTsf":"TSF 입력기(기본)","settings.recording.windowsInsertionModeSendInput":"SendInput 키 입력 시뮬레이션","settings.recording.windowsInsertionModePaste":"클립보드 붙여넣기(Ctrl+V 등)","settings.recording.macosNewlineModeLabel":"줄바꿈 처리","settings.recording.macosNewlineModeDesc":"자동은 알려진 터미널 앱에서 Line Feed(U+000A / Ctrl+J)를, 그 밖의 앱에서는 Shift+Return을 사용합니다. 일반 Return은 메시지를 전송합니다.","settings.recording.macosNewlineModeAuto":"자동(터미널에서는 Line Feed)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return(채팅에서 줄바꿈)","settings.recording.macosNewlineModeLineFeed":"Line Feed(터미널 CLI / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return(여러 메시지로 분할)","settings.recording.windowsSendInputNewlineModeLabel":"SendInput 줄바꿈 시뮬레이션","settings.recording.windowsSendInputNewlineModeDesc":"SendInput 모드에서 줄바꿈을 어떤 키로 보낼지. 채팅 입력창은 Shift+Enter, 메모장 / VS Code 등은 Enter.","settings.recording.windowsSendInputNewlineModeEnter":"Enter(대부분 편집기)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter(채팅 입력창)","settings.recording.windowsSendInputNewlineModeCrLf":"CR+LF Unicode","settings.recording.windowsShowOpenlessInKeyboardListLabel":"키보드 목록에 OpenLess 표시","settings.recording.windowsShowOpenlessInKeyboardListDesc":"끄면 Win+Space로 OpenLess에 전환되지 않습니다. SendInput 및 클립보드 붙여넣기 삽입에는 영향 없습니다. 다시 켜면 목록에 복원됩니다.","settings.recording.windowsShowOpenlessInKeyboardListError":"키보드 목록을 업데이트할 수 없습니다: 시스템이 OpenLess 언어 프로필 변경을 거부했습니다.","settings.recording.historyGroupTitle":"기록 및 컨텍스트","settings.recording.historyRetentionLabel":"기록 보관 기간(일)","settings.recording.historyRetentionDesc":"보관 기간을 초과한 기록은 새 항목 작성 시 정리됩니다. 0 = 시간 기반 정리 비활성화.","settings.recording.historyMaxEntriesLabel":"기록 개수 상한","settings.recording.historyMaxEntriesDesc":"로컬 보관 세션 상한. 빈칸 = 200. 범위 5–200.","settings.recording.polishContextWindowLabel":"대화 컨텍스트 윈도(분)","settings.recording.polishContextWindowDesc":"최근 N 분간 정리된 전사를 멀티턴 컨텍스트로 전달합니다. 0 = 비활성화.","settings.recording.recordAudioForDebugLabel":"원본 녹음 보관(디버그)","settings.recording.recordAudioForDebugDesc":"원시 마이크 오디오를 wav 로 저장하여 인식 문제 진단.","settings.recording.audioRecordingMaxEntriesLabel":"원본 녹음 보관 개수","settings.recording.audioRecordingMaxEntriesDesc":"로컬 보관 wav 파일 상한. 빈칸 = 200.","settings.recording.startupGroupTitle":"시작","settings.recording.startMinimizedLabel":"시작 시 메인 창 숨기기","settings.recording.startMinimizedDesc":"모든 시작 경로에서 메인 창을 열지 않고 메뉴 막대 / 트레이에서만 실행합니다.","settings.recording.autoUpdateCheckLabel":"자동 업데이트 확인","settings.recording.autoUpdateCheckDesc":"시작 시 및 60 분마다 자동 확인.","settings.recording.marketplaceGroupTitle":"스타일 팩 마켓플레이스","settings.recording.marketplaceBaseUrlLabel":"백엔드 URL","settings.recording.marketplaceBaseUrlDesc":"마켓플레이스 백엔드 URL. 빈칸은 기본값 사용.","settings.recording.marketplaceDevLoginLabel":"GitHub 로그인 이름 (업로드 ID)","settings.recording.marketplaceDevLoginDesc":"업로더를 식별합니다. 빈칸 시 업로드 및 좋아요 비활성화.","settings.recording.startupAtBoot":"부팅 시 자동 시작","settings.recording.startupAtBootDesc":"로그인 시 OpenLess 자동 시작.","settings.recording.startupAtBootError":"자동 시작 전환 실패: {{message}}","settings.channels.backToList":"채널 목록으로 돌아가기","settings.channels.done":"완료","settings.channels.llmTitle":"텍스트 처리 채널","settings.channels.asrTitle":"음성 인식 채널","settings.channels.current":"현재 사용 중","settings.channels.enabled":"사용","settings.channels.disabled":"사용 안 함","settings.channels.enabledFor":"{{name}} 사용","settings.channels.modelNotSet":"모델을 별도로 설정하지 않음","settings.channels.localModelManaged":"시스템 또는 로컬 모델 페이지에서 모델 관리","settings.channels.lastCheck":"마지막 확인","settings.channels.verifying":"확인 중…","settings.channels.notVerified":"아직 확인하지 않음","settings.channels.passed":"확인 성공","settings.channels.failed":"확인 실패 · {{reason}}","settings.channels.elapsed":"소요 시간 {{ms}} ms","settings.channels.staleResult":"24시간이 지난 결과","settings.channels.connectionTitle":"서비스 연결","settings.channels.modelTitle":"모델 설정","settings.channels.modelHint":"모델 이름을 직접 입력하거나 공급자의 모델 목록을 가져와 선택하세요.","settings.channels.availableModels":"사용 가능한 모델","settings.channels.validationTitle":"연결 확인","settings.channels.validationHint":"실제 요청을 보내 현재 설정을 확인합니다. 서비스 사용량이 차감될 수 있습니다. 설정을 저장해도 자동으로 확인하지 않습니다.","settings.channels.autoSaveHint":"변경 사항은 자동으로 저장됩니다. 설정을 마친 후 연결을 직접 확인할 수 있습니다.","settings.channels.nameHint":"같은 제공업체의 여러 채널을 구분하는 이름입니다. 모델이나 연결에는 영향을 주지 않습니다.","settings.channels.errModel":"모델","settings.channels.verify":"검증","settings.channels.verifyHint":"실제로 API를 한 번 호출해 이 채널이 지금 되는지 확인합니다","settings.channels.errTimeout":"시간 초과","settings.channels.errNetwork":"네트워크","settings.channels.errEndpoint":"주소","settings.channels.errGeneric":"실패","settings.channels.dragHint":"드래그해서 우선순위 변경","settings.channels.orderHint":"사용 중인 채널 중 맨 위의 채널로 요청합니다. 드래그로 순서를 바꾸면 사용하지 않는 채널은 맨 아래로 이동합니다.","settings.channels.empty":"아직 채널이 없습니다. \"채널 추가\"로 첫 서비스를 연결하세요.","settings.channels.add":"채널 추가","settings.channels.edit":"편집","settings.channels.createTitle":"채널 추가","settings.channels.editTitle":"채널 편집","settings.channels.providerLabel":"공급자","settings.channels.nameLabel":"채널 이름 (선택)","settings.channels.namePlaceholder":"예: SiliconFlow — 메인 키","settings.channels.create":"만들기","settings.channels.delete":"채널 삭제","settings.channels.deleteConfirm":"삭제하면 이 채널에 저장된 키도 함께 지워집니다.","settings.channels.confirmDelete":"삭제","settings.channels.justNow":"방금","settings.channels.minutesAgo":"{{count}}분 전","settings.channels.hoursAgo":"{{count}}시간 전","settings.channels.daysAgo":"{{count}}일 전","settings.channels.localEngineModelHint":"AI 서비스 및 모델 → 로컬 모델에서 모델을 내려받고 전환할 수 있습니다.","settings.providers.localEngineNoCredentials":"로컬 엔진은 API 키나 엔드포인트가 필요 없습니다.","settings.providers.localModelLabel":"로컬 모델","settings.providers.localModelEmpty":"아직 다운로드된 로컬 모델이 없습니다","settings.providers.appleSpeechLocalNote":"Apple 음성 인식은 시스템 내장 엔진을 사용하므로 모델 선택이 필요 없습니다.","settings.providers.localEngineNote":"다운로드된 로컬 모델은 위의 드롭다운에서 바로 선택할 수 있습니다. 더 많은 모델은 「로컬 모델」에서 다운로드하고 관리합니다.","settings.providers.localTag":"로컬","settings.providers.llmTitle":"LLM 모델(정리)","settings.providers.llmDesc":"OpenAI 호환 프로토콜, 다양한 공급자 전환 지원.","settings.providers.providerLabel":"공급자","settings.providers.llmProviderDesc":"선택 시 Base URL 기본값이 자동 입력됩니다.","settings.providers.credentialStorageNotice":"자격 증명은 OS 자격 증명 저장소에 보관됩니다.","settings.providers.codexOAuthNotice":"Codex OAuth는 로컬 Codex 로그인 상태(~/.codex/auth.json)를 사용합니다. OpenLess는 API Key나 Base URL을 저장하지 않습니다.","settings.providers.asrProviderDesc":"전환 시 해당하는 자격 증명이 자동 선택됩니다.","settings.providers.asrTitle":"ASR 음성(전사)","settings.providers.asrDesc":"녹음된 음성을 텍스트로 전사합니다.","settings.providers.omniTitle":"멀티모달 모델","settings.providers.omniDesc":"하나의 모델이 프롬프트 + 오디오를 받아 최종 텍스트를 한 번에 출력합니다(실험적 파이프라인).","settings.providers.pipelineModeLabel":"인식 파이프라인","settings.providers.pipelineModeHint":"전통 = ASR 전사 + LLM 다듬기 2단계. 멀티모달 = 오디오 지원 모델이 한 번에 처리.","settings.providers.pipelineModeTraditional":"전통 모드","settings.providers.pipelineModeMultimodal":"멀티모달 모드","settings.providers.pipelineIsolationNotice":"두 모드는 완전히 분리된 자격 증명을 사용합니다. 전환해도 다른 쪽 설정은 삭제되지 않으며, 다시 전환하면 복원됩니다.","settings.providers.presets.ark":"ARK (Volcengine Ark)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"SiliconFlow","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"Xiaomi MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter(무료 모델)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"Alibaba Cloud Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax (M3)","settings.providers.presets.stepfun":"StepFun","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"Tencent Cloud TokenHub","settings.providers.presets.customChatCompletions":"사용자 지정 · Chat Completions","settings.providers.presets.customResponses":"사용자 지정 · Responses","settings.providers.presets.customMessages":"사용자 지정 · Messages","settings.providers.presets.custom":"사용자 정의","settings.providers.presets.asrVolcengine":"Volcengine bigasr","settings.providers.presets.asrBailian":"Alibaba Bailian 실시간 ASR","settings.providers.presets.asrBailianQwen3":"Bailian Qwen3 실시간 ASR","settings.providers.presets.asrBailianFunAsrFlash":"Bailian Fun-ASR-Flash (녹음 파일)","settings.providers.presets.asrSiliconflow":"SiliconFlow SenseVoice","settings.providers.presets.asrStepfun":"StepFun StepAudio ASR","settings.providers.presets.asrZhipu":"Zhipu GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper(호환)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"커스텀 OpenAI 호환","settings.providers.presets.asrXiaomiMimo":"Xiaomi MiMo ASR","settings.providers.presets.asrIflytek":"iFlytek 실시간 음성 인식","settings.providers.presets.asrTencentCloud":"Tencent Cloud Hunyuan 실시간 ASR","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"로컬 sherpa-onnx(실험적)","settings.providers.presets.asrFoundryLocalWhisper":"로컬 Whisper(Foundry Local)","settings.providers.presets.asrLocalWhisper":"로컬 Whisper(배치)","settings.providers.presets.asrLocalQwen3":"로컬 Qwen3-ASR","settings.providers.presets.asrLocalQwen3Mlx":"로컬 Qwen3-ASR(MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"로컬 Qwen3-ASR(C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple 음성 (macOS)","settings.providers.presets.omniOpenai":"OpenAI (오디오 지원)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"Alibaba DashScope Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs는 녹음 오디오를 설정된 엔드포인트에 업로드해 일괄 전사합니다.","settings.providers.zenmuxVocabularyNote":"ZenMux는 JSON 전사 프로토콜을 사용하며 사전 핫워드(prompt/hotwords)를 보내지 않습니다. 사전은 여전히 다듬기 단계에 전달되지만 음성 인식 편향에는 사용되지 않습니다.","settings.providers.asrAdvancedNote":"아래 고급 옵션은「커스텀 OpenAI 호환」및「ZenMux」프리셋에만 적용됩니다. 다른 명명된 공급자 프리셋은 내장 동작을 유지합니다.","settings.providers.asrAdvancedVerboseJsonLabel":"세그먼트 지표 (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"서버가 지원할 때 환각 필터링용 segments 지표를 요청합니다. 지원하지 않는 자체 호스팅 서버에서는 꺼두세요.","settings.providers.asrAdvancedChunkLabel":"분할 시간 (ms)","settings.providers.asrAdvancedChunkHint":"0 = 분할 없음(전체를 한 번에 전송). 긴 녹음이나 요청당 시간 제한이 있는 서버에 적합합니다.","settings.providers.asrAdvancedEnableItnLabel":"숫자 정규화 (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"구어 숫자/단위를 아라비아 숫자로 정규화합니다(예: \"이천이십육\" → \"2026\"). 끄면 원문을 유지합니다.","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"API Key","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"인증 모드","settings.providers.volcengineAuthModeAppIdToken":"레거시 앱 (APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"새 콘솔 API Key","settings.providers.volcengineMappingNote":"Secret Key 는 현재 입력 불필요. Resource ID 기본값은 volc.seedasr.sauc.duration.","settings.providers.volcengineApiKeyNote":"새 음성 콘솔에서 만든 API Key로 인증하며 APP ID는 필요 없습니다. API Key는 음성 콘솔의 \"API Key 관리\"에서 생성합니다: console.volcengine.com/speech/new/setting/apikeys. Resource ID 기본값은 volc.seedasr.sauc.duration입니다.","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"API Key","settings.providers.xfyunNote":"iFlytek 오픈 플랫폼 \"실시간 음성 인식\" 서비스 페이지에서 AppID와 API Key를 가져옵니다. 오디오는 16kHz/16bit/모노 PCM입니다. 표준 API에는 핫워드 매개변수가 없으며(iFlytek 콘솔에서 개별 핫워드 설정), 언어는 기본적으로 중국어(보통화)입니다.","settings.providers.tencentCloudAppIdLabel":"Tencent Cloud AppID","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"Tencent Cloud 음성 인식 API 자격 증명을 사용합니다. 기본 Hy-ASR-3.0-preview는 중국어·영어·20개 방언을 지원합니다. Preview는 60초 이내의 16kHz 모노 PCM만 지원하며, 컨텍스트와 핫워드 강화는 아직 지원하지 않습니다.","settings.providers.tencentTokenHubNote":"현재 온라인인 언어 모델만 표시합니다. 일부 모델은 항상 추론을 사용하며, 추론을 꺼도 해당 모델의 고정 동작을 유지합니다.","settings.providers.localAsrActiveNotice":"현재 \"{{name}}\" 사용 중. \"고급\" 탭에서 전환 또는 비활성화할 수 있습니다.","settings.providers.localAsrTakeoverHint":"\"{{name}}\" 활성화 시 ASR 프로바이더가 인수됩니다.","settings.providers.asrProviderTakenOver":"현재 로컬 엔진을 사용 중입니다. 위의 드롭다운에서 다른 공급자를 선택하면 전환됩니다(로컬 엔진은 자동으로 중지됨). 로컬 모델은 「서비스 → 로컬 모델」에서 관리합니다.","settings.providers.localAsrHint":"기기에서 실행, API 키 불필요. HuggingFace 에서 모델 다운로드.","settings.providers.foundryLocalAsrHint":"기기에서 실행, ASR API 키 불필요. 첫 사용 시 런타임과 모델 다운로드.","settings.providers.localAsrPerformanceWarning":"로컬 추론은 클라우드보다 느리며 중국어 정확도가 낮을 수 있습니다. 오프라인 또는 개인정보 보호 시나리오에 적합.","settings.providers.localAsrReady":"{{model}} 다운로드됨","settings.providers.localAsrNotReady":"{{model}} 다운로드되지 않음","settings.providers.localAsrGoDownload":"모델 설정에서 다운로드","settings.providers.localAsrManage":"모델 설정으로 이동","settings.providers.localAsrDownloadedTitle":"다운로드된 모델","settings.providers.localAsrDelete":"삭제","settings.providers.fillDefault":"기본값 입력","settings.providers.readFailed":"읽기 실패","settings.providers.apiKeyLabel":"API 키","settings.providers.baseUrlLabel":"엔드포인트","settings.providers.modelLabel":"모델","settings.providers.customModelLabel":"사용자 정의 모델…","settings.providers.presetListLabel":"프리셋으로 돌아가기","settings.providers.searchModels":"모델 검색…","settings.providers.noMatchingModels":"일치하는 모델이 없습니다","settings.providers.orcarouterCatalogHint":"OrcaRouter /models에서 불러옵니다. 이 공급자는 카탈로그 모델만 선택할 수 있으며 모델 ID 직접 입력은 지원하지 않습니다.","settings.providers.orcarouterAsrCatalogHint":"OrcaRouter /models에서 불러오며 오디오 입력을 지원하는 Gemini 모델만 표시합니다. 모델 ID 직접 입력은 지원하지 않습니다.","settings.providers.temperatureLabel":"Temperature","settings.providers.temperaturePlaceholder":"비워 두면 보내지 않음. 범위 0~2(양 끝 포함), 예: 0.3","settings.providers.extraHeadersLabel":"추가 Headers","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"사고","settings.providers.thinkingModeOn":"켜짐","settings.providers.thinkingModeOff":"꺼짐","settings.providers.requestFormatLabel":"요청 형식","settings.providers.messagesThinkingLabel":"사고 방식","settings.providers.thinkingAdaptive":"적응형","settings.providers.thinkingBudget":"고정 예산","settings.providers.maxTokensLabel":"최대 출력 토큰","settings.providers.thinkingBudgetLabel":"사고 토큰 예산","settings.providers.responsesThinkingHint":"일부 모델은 사고를 줄일 수만 있으며 완전히 끌 수 없습니다. 추론 요청에는 온도를 보내지 않습니다.","settings.providers.messagesThinkingHint":"이전 모델이나 호환 게이트웨이는 고정 예산이 필요할 수 있습니다. 예산은 출력 한도보다 작아야 합니다. 사고 요청에는 온도를 보내지 않습니다.","settings.providers.llmRequestFormatInvalid":"잘못된 요청 형식입니다. 다시 선택하세요.","settings.providers.llmThinkingModeInvalid":"잘못된 사고 방식입니다. 다시 선택하세요.","settings.providers.llmTokenLimitInvalid":"토큰 한도는 양의 정수여야 합니다.","settings.providers.llmThinkingBudgetInvalid":"사고 예산은 1024 이상이며 고정 예산 모드에서는 출력 한도보다 작아야 합니다.","settings.providers.llmResponseIncomplete":"응답이 완료되지 않았거나 출력 한도에 도달했습니다. 이미 출력된 텍스트는 유지됩니다.","settings.providers.llmProtocolHeaderConflict":"Messages 인증 및 버전 헤더는 자동 설정됩니다. 추가 헤더에서 x-api-key와 anthropic-version을 제거하세요.","settings.providers.llmStreamError":"서버가 스트림 오류를 반환했습니다. 모델과 요청 설정을 확인하세요.","settings.providers.saveProtocol":"프로토콜 설정 저장","settings.providers.thinkingModeHint":"선택한 요청 형식과 모델이 지원하는 매개변수로 사고를 켜거나 끄거나 줄입니다. 프롬프트에 제어 지시를 추가하지 않습니다.","settings.providers.bailianVocabularyIdLabel":"핫워드 Vocabulary ID(선택)","settings.providers.bailianVocabularyIdNote":"DashScope에서 핫워드 사전을 만들었다면 vocab-... ID를 입력하세요. 비워 두면 핫워드를 전송하지 않습니다.","settings.providers.bailianModelRealtimeHint":"실시간 모델 · 말하는 동안 바로 전사.","settings.providers.bailianModelSyncFileHint":"동기 녹음 모델 · 말을 마친 뒤 전체 전사(한 클립 ≤ 5분).","settings.providers.bailianModelAsyncFileHint":"비동기 파일 모델 · 녹음을 업로드한 뒤 전사 작업 완료를 기다립니다.","settings.providers.appIdLabel":"App ID(애플리케이션 ID)","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"Resource ID","settings.providers.toolsLabel":"연결 확인","settings.providers.toolsDesc":"위 설정을 먼저 저장한 후 현재 모델 연결성을 검증하거나 모델을 가져오세요. 실패해도 모델 ID 를 수동 입력할 수 있습니다.","settings.providers.validate":"검증","settings.providers.validating":"검증 중…","settings.providers.fetchModels":"모델 가져오기","settings.providers.loadingModels":"모델 가져오는 중…","settings.providers.modelMissing":"모델이 설정되지 않았습니다. 먼저 모델 ID 를 입력해 주세요.","settings.providers.modelsEmpty":"인증 성공이지만 사용 가능한 모델이 반환되지 않았습니다.","settings.providers.modelsLoaded":"{{count}}개의 모델을 가져왔습니다.","settings.providers.selectModel":"모델을 선택해 위 필드에 입력","settings.providers.modelSaved":"모델 {{model}} 을(를) 저장했습니다.","settings.providers.validateSuccess":"연결 확인을 통과했습니다.","settings.providers.validateFailed":"연결 확인에 실패했습니다.","settings.providers.providerHttpStatus":"공급자가 {{status}} 를 반환했습니다. API Key 권한 또는 Endpoint 를 확인해 주세요.","settings.providers.endpointMustUseHttps":"HTTP Endpoint 를 사용할 수 있지만, API Key 와 음성 내용이 전송 중 유출될 수 있습니다.","settings.providers.endpointHttpWarning":"HTTP Endpoint 를 사용할 수 있지만, API Key 와 요청 내용이 전송 중 유출될 수 있습니다.","settings.providers.endpointInvalid":"Endpoint 형식이 올바르지 않습니다.","settings.providers.bailianEndpointSchemeInvalid":"Bailian 실시간 ASR은 DashScope WebSocket 게이트웨이를 사용합니다. 엔드포인트는 wss://로 시작해야 합니다(기본값: wss://dashscope.aliyuncs.com/api-ws/v1/inference/). https:// 호환 모드 주소는 여기서 사용할 수 없습니다.","settings.providers.qwen3EndpointSchemeInvalid":"Qwen3 실시간 ASR은 DashScope Realtime WebSocket 게이트웨이를 사용합니다. 엔드포인트는 wss://로 시작해야 합니다(기본값: wss://dashscope.aliyuncs.com/api-ws/v1/realtime). https:// 주소는 여기서 사용할 수 없습니다.","settings.providers.responseTooLarge":"공급자 응답이 너무 커서 안전을 위해 검증을 중단했습니다.","settings.providers.asrInvalidJson":"ASR 응답이 유효한 JSON 이 아닙니다.","settings.providers.asrMissingTextField":"ASR 응답에 text 필드가 없습니다.","settings.providers.apiKeyMissing":"API Key 가 비어 있습니다.","settings.providers.endpointMissing":"Endpoint 가 비어 있습니다.","settings.providers.volcengineAppIdMissing":"APP ID 가 비어 있습니다.","settings.providers.volcengineAccessTokenMissing":"Access Token 이 비어 있습니다.","settings.providers.requestTimeout":"요청 시간이 초과되었습니다. 잠시 후 다시 시도하세요.","settings.shortcuts.title":"단축키 설정","settings.shortcuts.descAcc":"모든 단축키는 전역에서 작동. 권한 설정에서 접근성을 활성화해야 합니다.","settings.shortcuts.descNoAcc":"모든 단축키는 전역에서 작동. 응답이 없으면 권한 페이지에서 전역 단축키 감지 상태를 확인해 주세요.","settings.shortcuts.startStop":"녹음 시작 / 정지","settings.shortcuts.cancel":"이번 녹음 취소","settings.shortcuts.confirm":"캡슐 입력 확정","settings.shortcuts.switchStyle":"이전 스타일로 전환","settings.shortcuts.openApp":"OpenLess 열기","settings.shortcuts.stylePackTitle":"스타일 바로가기 단축키","settings.shortcuts.stylePackDesc":"자주 쓰는 스타일 팩에 단축키를 지정해 한 번에 전환합니다. 비활성화된 팩은 자동으로 다시 활성화됩니다.","settings.shortcuts.stylePackAdd":"스타일 단축키 추가","settings.shortcuts.stylePackSelect":"스타일 팩 선택","settings.shortcuts.stylePackDisabledSuffix":" (비활성화됨)","settings.shortcuts.stylePackRemove":"제거","settings.shortcuts.agentPolish":"선택 텍스트 다듬기","settings.shortcuts.agentPolishDesc":"텍스트 선택 → 키 → Claude 다듬기 → 선택 영역 교체.","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"사용자 지정 키를 누른 채 말하기 → Claude 작업 실행 → 결과 캡슐 표시.","settings.shortcuts.agentVoiceHint":"「고급 → Less Computer」에서 누르고 말하기 키를 설정하세요.","settings.shortcuts.agentVoiceTrigger":"Less Computer 누르고 말하기 키","settings.shortcuts.enable":"활성화","settings.shortcuts.disable":"비활성화","settings.shortcuts.confirmHint":"오른쪽 ✓ 클릭","settings.shortcuts.notSupported":"지원되지 않음","settings.shortcuts.androidReadOnly":"Android에서는 전역 단축키를 사용할 수 없습니다. 개요 페이지의 녹음 버튼을 사용하세요.","settings.permissions.title":"권한","settings.permissions.descAcc":"OpenLess 가 정상 작동하려면 다음 시스템 권한이 필요합니다. 허용 후에는 일반적으로 앱을 완전히 종료한 후 재시작해야 적용됩니다.","settings.permissions.descNoAcc":"OpenLess 는 마이크 사용과 전역 단축키 감지 상태를 통해 네이티브 후크의 정상 동작을 판정해야 합니다.","settings.permissions.micLabel":"마이크","settings.permissions.micDesc":"음성 입력을 캡처하기 위해 사용합니다.","settings.permissions.accLabel":"접근성","settings.permissions.accDesc":"전역 단축키 감지와 인식 결과를 커서 위치에 입력하기 위해 사용합니다.","settings.permissions.hotkeyLabel":"전역 단축키","settings.permissions.hotkeyDescWithAdapter":"현재 어댑터: {{adapter}}. 단축키 감지가 설치되었는지 판정하기 위해 사용.","settings.permissions.hotkeyDescPlain":"단축키 감지가 설치되었는지 판정하기 위해 사용.","settings.permissions.networkLabel":"네트워크","settings.permissions.networkDesc":"클라우드 ASR / LLM 호출에 필요. 로컬 모드에서는 비활성화 가능.","settings.permissions.networkOk":"사용 가능","settings.permissions.networkOffline":"사용 불가","settings.permissions.checking":"확인 중…","settings.permissions.granted":"허용됨","settings.permissions.notApplicable":"권한 불필요","settings.permissions.denied":"허용되지 않음","settings.permissions.indeterminate":"미결정","settings.permissions.micNoDevice":"마이크가 감지되지 않음","settings.permissions.openSystem":"시스템 설정 열기","settings.permissions.restart":"재설정 후 재시작","settings.permissions.grant":"허용","settings.permissions.rerunAndroidSetup":"설정 마법사 다시 실행","settings.permissions.hotkeyInstalled":"설치됨","settings.permissions.hotkeyStarting":"설치 중…","settings.permissions.hotkeyFailed":"감지 실패","settings.permissions.windowsImeLabel":"Windows 입력기 백엔드","settings.permissions.windowsImeDesc":"음성 세션 동안 OpenLess TSF 입력기로 일시적으로 전환하여 클립보드 입력 제한을 회피하기 위해 사용.","settings.permissions.windowsImeInstalled":"설치됨","settings.permissions.windowsImeUnavailable":"사용 불가","settings.permissions.androidImeLabel":"입력기 (IME)","settings.permissions.androidImeSelected":"선택됨","settings.permissions.androidImeEnabled":"활성화됨","settings.permissions.androidImeDisabled":"비활성","settings.permissions.androidOverlayLabel":"플로팅 오버레이","settings.permissions.androidAccessibilityLabel":"접근성 서비스","settings.permissions.androidAccessibilityImpact":"켜면 키보드를 전환하지 않고 현재 입력칸에 결과를 출력합니다. 끄면 클립보드에 복사되며 직접 붙여넣어야 합니다.","settings.permissions.androidAccessibilityGrantedStale":"승인됨, 연결 안 됨","settings.permissions.androidAccessibilityMessages.not_android":"접근성 상태는 Android에서만 사용할 수 있습니다.","settings.permissions.androidAccessibilityMessages.not_enabled":"시스템 접근성 설정에서 OpenLess를 활성화하세요.","settings.permissions.androidAccessibilityMessages.operational":"접근성 서비스가 실행 중입니다.","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"접근성은 승인되었지만 연결되지 않았습니다. 시스템 설정에서 OpenLess를 다시 활성화하세요.","settings.permissions.androidAccessibilityMessages.status_read_failed":"접근성 상태를 읽을 수 없습니다.","settings.permissions.androidShizukuLabel":"Shizuku 확장 모드","settings.permissions.androidShizukuHint":"선택 기능. OEM 설정에서 수동 전환이 어려울 때 최선 노력 복구를 시도합니다. 앱 간 경합을 완전히 제거할 수는 없습니다. 재부팅 후 Shizuku를 다시 시작해야 할 수 있습니다.","settings.permissions.androidShizukuOpenApp":"Shizuku 열기","settings.permissions.androidShizukuRequestPermission":"권한 요청","settings.permissions.androidShizukuRecover":"접근성 복구","settings.permissions.androidShizukuRecoverConfirm":"Shizuku로 OpenLess 접근성 서비스를 다시 활성화할까요? 쓰기 시점에 활성화된 서비스는 병합됩니다. 전역 스위치가 꺼져 있으면 활성화 시 등록된 다른 서비스도 함께 시작될 수 있습니다.","settings.permissions.androidShizukuYes":"예","settings.permissions.androidShizukuNo":"아니오","settings.permissions.androidShizukuAccessibilityOperational":"접근성이 등록되어 실행 중입니다.","settings.permissions.androidShizukuAccessibilityRegistered":"등록: {{registered}} · 실행: {{operational}}","settings.permissions.androidShizukuState.notInstalled":"미설치","settings.permissions.androidShizukuState.notRunning":"미실행","settings.permissions.androidShizukuState.notAuthorized":"미승인","settings.permissions.androidShizukuState.authorized":"승인됨","settings.permissions.androidShizukuState.binderDead":"연결 끊김","settings.permissions.androidShizukuState.notAndroid":"해당 없음","settings.permissions.androidShizukuMessages.not_android":"Shizuku는 Android에서만 사용할 수 있습니다.","settings.permissions.androidShizukuMessages.not_installed":"Shizuku 또는 Sui 백엔드가 설치되어 있지 않습니다.","settings.permissions.androidShizukuMessages.unsupported_backend":"이 Shizuku 백엔드는 너무 오래되었습니다. Shizuku 또는 Sui를 v11 이상으로 업데이트하세요.","settings.permissions.androidShizukuMessages.not_running":"Shizuku가 실행 중이 아닙니다. 먼저 Shizuku 또는 Sui를 시작하세요.","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku가 승인되지 않았습니다. OpenLess 권한을 부여하세요.","settings.permissions.androidShizukuMessages.binder_dead":"Shizuku 연결이 끊어졌습니다. Shizuku를 다시 시작하세요.","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku 승인됨. 접근성이 실행 중입니다.","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku 승인됨. 접근성은 등록되었지만 실행되지 않습니다.","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku 승인됨. 접근성 복구를 시도할 수 있습니다.","settings.permissions.androidShizukuMessages.operational":"접근성이 등록되어 실행 중입니다.","settings.permissions.androidShizukuMessages.registered_stale":"접근성은 등록되었지만 서비스는 현재 사용할 수 없습니다.","settings.permissions.androidShizukuMessages.not_registered":"시스템 설정에서 접근성이 활성화되어 있지 않습니다.","settings.permissions.androidShizukuMessages.already_granted":"Shizuku 권한이 이미 부여되었습니다.","settings.permissions.androidShizukuMessages.binder_unavailable":"권한 요청 중 Shizuku 바인더를 사용할 수 없었습니다.","settings.permissions.androidShizukuMessages.request_cancelled":"Shizuku 권한 요청이 취소되었습니다.","settings.permissions.androidShizukuMessages.granted":"Shizuku 권한이 부여되었습니다.","settings.permissions.androidShizukuMessages.denied":"Shizuku 권한이 거부되었습니다.","settings.permissions.androidShizukuMessages.permission_permanently_denied":"Shizuku 권한이 차단되었습니다. Shizuku를 열어 OpenLess를 수동으로 허용하세요.","settings.permissions.androidShizukuMessages.launched":"Shizuku 승인 화면을 열었습니다.","settings.permissions.androidShizukuMessages.launch_failed":"Shizuku 승인 화면을 열 수 없습니다.","settings.permissions.androidShizukuMessages.open_shizuku":"Shizuku 관리자를 열었습니다.","settings.permissions.androidShizukuMessages.jni_error":"Android Shizuku 백엔드에 연결할 수 없습니다.","settings.permissions.androidShizukuMessages.status_parse_failed":"Shizuku 상태를 해석할 수 없습니다.","settings.permissions.androidShizukuMessages.user_not_confirmed":"복구하려면 사용자 확인이 필요합니다.","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku가 승인되지 않았거나 사용할 수 없습니다.","settings.permissions.androidShizukuMessages.invalid_component":"잘못된 접근성 서비스 구성 요소 ID입니다.","settings.permissions.androidShizukuMessages.service_connect_failed":"Shizuku 특권 서비스에 연결할 수 없습니다.","settings.permissions.androidShizukuMessages.recovery_in_progress":"다른 복구 작업이 진행 중입니다. 잠시 후 다시 시도하세요.","settings.permissions.androidShizukuMessages.parse_failed":"복구 결과를 해석할 수 없습니다.","settings.permissions.androidShizukuMessages.service_not_bound":"설정은 기록되었지만 접근성이 아직 실행되지 않습니다.","settings.permissions.androidShizukuMessages.success":"접근성 서비스를 복구했습니다.","settings.permissions.androidShizukuMessages.read_failed":"접근성 설정을 읽을 수 없습니다.","settings.permissions.androidShizukuMessages.read_enabled_failed":"접근성 사용 플래그를 읽을 수 없습니다.","settings.permissions.androidShizukuMessages.merge_failed":"접근성 서비스 목록을 병합할 수 없습니다.","settings.permissions.androidShizukuMessages.write_services_failed":"활성화된 접근성 서비스 목록을 기록할 수 없습니다.","settings.permissions.androidShizukuMessages.write_enabled_failed":"접근성을 활성화할 수 없습니다.","settings.permissions.androidShizukuMessages.readback_failed":"기록 후 접근성 설정을 검증할 수 없습니다.","settings.permissions.androidShizukuMessages.oem_rollback":"OEM이 접근성 기록을 되돌렸습니다.","settings.permissions.androidShizukuMessages.concurrent_change":"복구 중 접근성 설정이 변경되었습니다.","settings.permissions.androidShizukuMessages.partial_rollback":"복구에 실패했으며 설정은 일부만 되돌릴 수 있었습니다. 시스템 접근성 설정을 확인하세요.","settings.permissions.androidShizukuMessages.manual_required":"전역 스위치가 꺼져 있고 다른 등록된 서비스가 있으면 자동 복구를 안전하게 수행할 수 없습니다. 시스템 설정에서 수동으로 진행하세요.","settings.permissions.androidShizukuMessages.max_retries":"여러 번 시도한 뒤에도 복구에 실패했습니다.","settings.permissions.androidShizukuMessages.internal_error":"내부 오류로 복구에 실패했습니다.","settings.permissions.androidShizukuMessages.unknown":"알 수 없는 Shizuku 상태입니다.","settings.permissions.androidInsertStrategyLabel":"텍스트 삽입 방식","settings.permissions.androidOverlayTriggerLabel":"오버레이 표시","settings.permissions.androidOverlayActivationModeLabel":"오버레이 활성화","settings.permissions.androidOverlayLeftSwipeActionLabel":"왼쪽 스와이프 동작","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"취소 스와이프 방향","settings.permissions.androidOverlaySizeLabel":"오버레이 크기","settings.permissions.androidOverlaySizeHint":"플로팅 버튼 지름을 조정하고 현재 위치를 유지합니다.","settings.permissions.androidInsertStrategy.accessibility":"입력칸에 자동 출력","settings.permissions.androidInsertStrategy.clipboard":"클립보드만","settings.permissions.androidInsertStrategyHint.accessibility":"접근성 서비스가 필요합니다. 사용할 수 없으면 클립보드에 복사합니다.","settings.permissions.androidInsertStrategyHint.clipboard":"접근성 권한이 필요 없으며 직접 붙여넣습니다.","settings.permissions.androidOverlayTrigger.background":"백그라운드","settings.permissions.androidOverlayTrigger.keyboard":"키보드 표시 시","settings.permissions.androidOverlayTrigger.always":"항상","settings.permissions.androidOverlayTriggerHint.background":"단순","settings.permissions.androidOverlayTriggerHint.keyboard":"이 모드는 보류되었습니다. 기존 설정은 백그라운드로 되돌립니다.","settings.permissions.androidOverlayTriggerHint.always":"항상 표시","settings.permissions.androidOverlayTriggerDisabled.keyboard":"키보드 표시 감지는 보류되었습니다. 이후 오버레이 제스처로 대체합니다.","settings.permissions.androidOverlayActivationMode.tap":"탭으로 활성화","settings.permissions.androidOverlayActivationMode.long_press":"길게 눌러 활성화","settings.permissions.androidOverlayActivationModeHint.tap":"첫 탭은 대기 상태로 전환하고, 두 번째 탭은 일반 받아쓰기를 시작합니다.","settings.permissions.androidOverlayActivationModeHint.long_press":"누르고 있는 동안 대기 상태가 되며, 손을 떼면 현재 녹음 또는 QA 턴을 종료합니다.","settings.permissions.androidOverlayLeftSwipeAction.translation":"번역 받아쓰기","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"스타일 팩 전환","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"대기 상태에서 왼쪽으로 밀면 번역 받아쓰기를 시작합니다.","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"대기 상태에서 왼쪽으로 밀면 이전 스타일 팩으로 전환합니다.","settings.permissions.androidOverlayCancelSwipeDirection.up":"위로 스와이프","settings.permissions.androidOverlayCancelSwipeDirection.down":"아래로 스와이프","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"녹음 중 위로 밀면 전사와 삽입 없이 취소합니다.","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"녹음 중 아래로 밀면 전사와 삽입 없이 취소합니다.","settings.permissions.windowsIme.installed":"설치됨. 음성 입력 시 OpenLess 입력기로 일시 전환됩니다.","settings.permissions.windowsIme.notInstalled":"설치되지 않음. OpenLess 는 현재 클립보드 / WM_PASTE 폴백을 사용합니다.","settings.permissions.windowsIme.registrationBroken":"등록이 손상되었습니다. OpenLess 입력기를 재설치하세요.","settings.permissions.windowsIme.notWindows":"Windows 만 사용 가능.","settings.advanced.multimodalPipelineTitle":"멀티모달 인식 파이프라인 ","settings.advanced.multimodalPipelineTitleHint":"단일 멀티모달 모델로 음성 인식을 한 번에 처리합니다. 기존 ASR + LLM 설정과 완전히 분리됩니다.","settings.advanced.multimodalPipelineLabel":"멀티모달 파이프라인 활성화","settings.advanced.multimodalPipelineHint":"활성화하면 「서비스 → AI 공급자」 페이지에 전통 / 멀티모달 전환이 나타납니다. 전통 = ASR + LLM, 멀티모달 = 오디오 지원 모델 1개. 두 설정은 별도로 저장되며 자격 증명을 공유하지 않습니다.","settings.advanced.streamingInsertTitle":"스트리밍 입력","settings.advanced.streamingInsertTitleLinux":"스트리밍 입력 (실험적)","settings.advanced.streamingInsertDesc":"실시간 글자별 삽입으로 체감 지연 감소. 조건 불충족 시 일괄 붙여넣기로 전환.","settings.advanced.streamingInsertLabel":"스트리밍 입력","settings.advanced.streamingInsertHintMac":"스트리밍 중 입력 소스를 ABC 로 임시 전환 (CJK IME 가로채기 방지). 세션 종료 시 자동 복원.","settings.advanced.streamingInsertHintWindows":"SendInput Unicode 로 TSF / IME 를 우회. 입력 소스 전환 불필요.","settings.advanced.streamingInsertHintLinux":"fcitx5 플러그인으로 텍스트 전송. 스트리밍 입력은 enigo + XTest 키 합성 사용.","settings.advanced.streamingInsertSaveClipboardLabel":"클립보드에 저장","settings.advanced.streamingInsertSaveClipboardHint":"삽입 성공 후 최종 텍스트를 클립보드에 기록하여 Cmd+V 로 다시 붙여넣을 수 있게 합니다. 끄면 클립보드를 건드리지 않습니다.","settings.advanced.localAsrTitle":"로컬 ASR 모델 ","settings.advanced.localAsrDesc":"전사를 클라우드에서 로컬 추론으로 전환합니다. 오프라인 / 프라이버시용에만 권장됩니다.","settings.advanced.localAsrWarningShort":"로컬 추론은 느리며, 사양 부족 시 글자 누락이 발생할 수 있습니다.","settings.advanced.qwen3Desc":"활성화하면 ASR 프로바이더가 인수됩니다.","settings.advanced.sherpaDesc":"활성화하면 ASR 프로바이더가 인수됩니다.","settings.advanced.foundryDesc":"활성화하면 ASR 프로바이더가 인수됩니다.","settings.advanced.notSupportedHere":"이 플랫폼에서는 미지원 (추론 모듈 미내장).","settings.advanced.enable":"활성화","settings.advanced.alreadyActive":"활성","settings.advanced.disableLocalLabel":"로컬 ASR 비활성화","settings.advanced.disableLocalDesc":"클라우드 ASR (기본 Volcengine bigasr) 로 돌아갑니다.","settings.advanced.disable":"비활성화","settings.advanced.platformNotSupported":"이 플랫폼에서는 로컬 ASR 모델 통합이 아직 지원되지 않습니다.","settings.advanced.confirmEnableLocalTitle":"로컬 ASR 을 활성화할까요?","settings.advanced.confirmEnableLocalBody":"활성화 후 전사는 클라우드보다 느리고 정확도가 낮을 수 있습니다.","settings.advanced.confirm":"활성화","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"인터페이스 언어","settings.language.desc":"UI 표시 언어를 전환합니다. 현재 세션에 즉시 반영되며 다음 실행에도 유지됩니다.","settings.language.label":"언어","settings.language.labelDesc":"\"시스템 따라가기\"를 선택하면 OS 언어를 따릅니다.","settings.language.followSystem":"시스템 따라가기","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"일부 네이티브 메뉴(트레이 등)는 앱 재시작 후 반영될 수 있습니다.","settings.layout.title":"레이아웃","settings.theme.title":"모양","settings.theme.label":"테마","settings.theme.activityHeatmapLabel":"개요 페이지에 연간 활동 표시","settings.theme.stackedRowLayoutLabel":"읽기 쉬운 레이아웃(넘침 방지 줄바꿈)","settings.theme.stackedRowLayoutDesc":"작은 화면이나 큰 글꼴에서 한 줄에 맞지 않는 버튼과 옵션은 다음 줄로 넘어가 가로 넘침과 글자 눌림을 방지합니다.","settings.theme.conservativeLayoutLabel":"보수적 레이아웃","settings.theme.conservativeLayoutDesc":"홈, 상단 바, 하단 바 외 설정·기능 페이지를 단일 열·전체 너비로 표시하여 가로 넘침을 최대한 방지합니다.","settings.theme.system":"시스템 따르기","settings.theme.light":"라이트","settings.theme.dark":"다크","settings.remoteInput.title":"원격 입력","settings.remoteInput.enableLabel":"원격 입력 활성화","settings.remoteInput.enableDesc":"휴대폰/태블릿 브라우저를 PC에 연결해 녹음하고, 음성을 PC 커서 위치에 실시간으로 입력합니다(HTTPS 필요, 첫 접속 시 인증서를 신뢰해야 함)","settings.remoteInput.portLabel":"수신 포트","settings.remoteInput.defaultModeLabel":"기본 녹음 방식","settings.remoteInput.modeToggle":"탭하여 전환","settings.remoteInput.modeHold":"눌러서 말하기","settings.remoteInput.urlLabel":"접속 URL","settings.remoteInput.pinLabel":"페어링 코드","settings.remoteInput.regeneratePin":"재생성","settings.remoteInput.portInUse":"포트 {{port}}이(가) 사용 중입니다. 변경하세요","settings.remoteInput.startError":"원격 입력 서비스 시작에 실패했습니다: {{reason}}","settings.remoteInput.securityHint":"같은 LAN에서만 접속 가능하며 페어링 코드 입력이 필요합니다. 사용하지 않을 때는 끄는 것을 권장합니다.","settings.remoteInput.certHint":"처음 연결할 때 루트 인증서 지문을 확인한 후 신뢰하세요. 이전 버전에서는 한 번 설정해야 하며, 이후 재시작과 IP 변경 시 신뢰가 유지됩니다.","settings.remoteInput.certFingerprintLabel":"이 컴퓨터의 루트 CA SHA-256","settings.remoteInput.certFingerprintCopy":"전체 지문 복사","settings.remoteInput.certFingerprintCopied":"지문 복사됨","settings.remoteInput.certFingerprintUnavailable":"전체 지문을 확인할 수 없습니다. 다운로드한 인증서를 설치하거나 신뢰하지 마세요.","settings.remoteInput.certVerifyHint":"휴대폰 시스템의 인증서 상세 정보에서 SHA-256을 찾아, 완전한 신뢰를 켜기 전에 공백과 콜론을 제외한 64자 전체를 이 값과 비교하세요. 웹 페이지, 프로파일 이름이나 식별자는 신원 증명이 아닙니다. 일치하지 않거나 전체 지문을 볼 수 없으면 중단하고 다운로드했거나 설치한 프로파일을 제거하세요.","settings.remoteInput.certProfileHint":"프로파일에는 루트 인증서 한 개만 있어야 합니다. 추가 인증서, VPN 또는 기기 관리 설정이 있으면 설치하지 마세요.","settings.remoteInput.certTrustWarning":"최초 인증서 다운로드에서는 컴퓨터의 신원을 확인할 수 없으며, LAN의 악성 기기가 중간자 공격으로 루트 인증서를 바꿀 수 있습니다. 신뢰할 수 있는 가정용 또는 사설 네트워크에서만 설치하고 공용 또는 공유 네트워크에서는 진행하지 마세요. 루트 CA는 인증서를 발급할 수 있고 개인 키는 이 컴퓨터에 저장됩니다. 더 이상 사용하지 않으면 휴대폰에서 제거하세요.","settings.remoteInput.certSetupLink":"iPhone 인증서 링크 복사","settings.remoteInput.waitingStart":"서비스가 아직 시작되지 않았습니다. 스위치를 끈 다음 다시 켜세요. 앱을 다시 시작하지 마세요.","settings.remoteInput.starting":"원격 입력 서비스를 시작하는 중입니다…","settings.remoteInput.urlsStale":"이 주소는 이전 실행에서 가져온 것으로 최신이 아닐 수 있습니다.","settings.about.tagline":"자연스럽게 말하고, 정확하게 작성하세요","settings.about.checkUpdate":"업데이트 확인","settings.about.checkUpdateBtn":"확인","settings.about.checkStableUpdateBtn":"정식판 확인","settings.about.checkBetaUpdateBtn":"Beta 확인","settings.about.checkingUpdate":"확인 중…","settings.about.upToDate":"현재 최신 버전입니다.","settings.about.updateError":"확인 또는 업데이트에 실패했습니다. 잠시 후 다시 시도하세요.","settings.about.retryBtn":"다시 시도","settings.about.openReleases":"Releases 열기","settings.about.source":"소스","settings.about.docs":"문서","settings.about.feedback":"피드백","settings.about.qq":"커뮤니티 QQ 그룹","settings.about.qqDesc":"QQ 에서 그룹 번호를 검색해 가입하거나 QR 코드로 입장하세요.","settings.about.copyQq":"그룹 번호 복사","settings.about.privacy":"프라이버시","settings.about.privacyDesc":"녹음은 전사를 위해 설정한 클라우드 공급자에게 전송될 수 있습니다.","settings.about.localFirst":"로컬 우선","settings.about.linksTitle":"문서 링크","settings.about.betaChannelLabel":"Beta 채널 참여","settings.about.betaChannelToggleLabel":"Beta 채널 사용","settings.about.betaChannelDesc":"켜면 백그라운드 자동 업데이트가 Beta를 따릅니다. 끄면 정식판으로 돌아갑니다. 아래 버튼으로 언제든 Beta를 수동 확인할 수 있습니다.","settings.about.autoUpdateSectionTitle":"자동 업데이트","settings.about.autoUpdateCheckLabelAndroid":"자동 확인 및 다운로드","settings.about.autoUpdateCheckDescAndroid":"시작 시 및 60분마다 확인합니다. 업데이트가 있으면 자동 다운로드 후 시스템 설치 프로그램을 엽니다. 채널은 위 Beta 스위치를 따릅니다.","settings.about.betaChannelFetching":"최신 Beta 버전을 가져오는 중…","settings.about.betaChannelFetchBtn":"최신 Beta 확인","settings.about.betaChannelLatestPrefix":"최신 Beta:","settings.about.betaChannelDownloadBtn":"다운로드 페이지 열기","settings.about.betaChannelRefresh":"새로 고침","settings.about.betaChannelNoBeta":"아직 게시된 Beta 릴리스가 없습니다.","settings.about.betaChannelFetchError":"Beta 릴리스 정보를 가져오지 못했습니다. 잠시 후 다시 시도하세요.","settings.about.betaChannelUpToDate":"최신","settings.about.betaChannelUpdateNow":"지금 업데이트","settings.about.betaChannelUpdateNowTitle":"최신 Beta를 확인·다운로드하고 업데이트 대화상자를 표시합니다","settings.about.betaChannelChecking":"확인 중…","settings.about.updateDialog.available.title":"새 버전 발견","settings.about.updateDialog.available.desc":"OpenLess {{version}} 을(를) 발견했습니다. 지금 업데이트하시겠습니까?","settings.about.updateDialog.stableChannelSwitch.title":"정식 버전으로 전환","settings.about.updateDialog.stableChannelSwitch.desc":"현재 버전: OpenLess {{currentVersion}}\n대상 버전: OpenLess {{version}}\nBeta 채널에서 정식 버전으로 전환합니다. 계속하시겠습니까?","settings.about.updateDialog.downloading.title":"업데이트 다운로드 중","settings.about.updateDialog.downloading.desc":"OpenLess {{version}} 을(를) 다운로드 중입니다. 앱을 열어 두세요.","settings.about.updateDialog.downloaded.title":"업데이트 준비 완료","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} 설치가 완료되었습니다. 지금 자동 재시작하여 적용하시겠습니까?","settings.about.updateDialog.installing.title":"업데이트 설치 중","settings.about.updateDialog.installing.desc":"OpenLess {{version}} 을(를) 설치 중입니다. 앱을 열어 두세요.","settings.about.updateDialog.install":"지금 업데이트","settings.about.updateDialog.androidInstall":"다운로드 후 설치 프로그램 열기","settings.about.updateDialog.androidInstalled.title":"시스템 설치 프로그램이 열렸습니다","settings.about.updateDialog.androidInstalled.desc":"안내에 따라 설치를 완료하세요. 설치 후 OpenLess를 다시 열면 {{version}}을 사용할 수 있습니다.","settings.about.updateDialog.downloadingLabel":"다운로드 중…","settings.about.updateDialog.installingLabel":"설치 중…","settings.about.updateDialog.later":"나중에 수동 재시작","settings.about.updateDialog.restartNow":"지금 재시작","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"다운로드됨 {{downloaded}}","settings.about.updateDialog.installError.title":"업데이트 실패","settings.about.updateDialog.installError.desc":"자동 업데이트를 완료하지 못했습니다: {{error}}. 다운로드 페이지에서 최신 버전을 직접 받아 설치할 수 있습니다.","settings.about.updateDialog.manualDownload":"수동 다운로드","startup.loading":"OpenLess 시작 중…","startup.loadingDesc":"로컬 서비스에 연결하고 호환성을 확인하고 있습니다.","startup.failed":"OpenLess를 시작할 수 없습니다","startup.recovery":"다시 확인하세요. 문제가 계속되면 앱을 완전히 종료한 후 다시 여세요. 업그레이드 후 발생한 경우 앱 전체가 동일한 버전인지 확인하세요.","startup.retry":"다시 확인","startup.details":"오류 세부 정보","modal.serviceViews.label":"서비스 설정","modal.serviceViews.llm":"언어 모델","modal.serviceViews.asr":"음성 인식","modal.serviceViews.omni":"멀티모달","modal.serviceViews.models":"로컬 모델","modal.serviceViews.connections":"연결 및 확장","modal.serviceViews.statusConfigured":"설정됨","modal.serviceViews.statusMissing":"미설정","modal.searchPlaceholder":"설정 카테고리 찾기…","modal.clearSearch":"검색 지우기","modal.categoriesLabel":"설정 카테고리","modal.searchResults":"검색 결과","modal.searchCount":"관련 카테고리 {{count}}개","modal.noResults":"일치하는 카테고리가 없습니다. “마이크”, “모델” 또는 “테마”를 검색해 보세요.","modal.autoSaveHint":"변경 사항이 자동 저장됩니다","modal.backToAdvanced":"실험 및 확장으로 돌아가기","modal.advancedPages.lessComputer":"Agent를 선택하고 모델, 권한, 작업 디렉터리를 설정합니다.","modal.advancedPages.claudeConsole":"Claude Code를 감지하고 테스트 작업의 실행 출력을 확인합니다.","modal.advancedPages.multimodal":"실험적 멀티모달 인식 기능의 사용 여부를 설정합니다.","modal.advancedPages.debug":"디버그 녹음을 보관하고 커서 문맥을 확인하며 로그를 내보냅니다.","modal.descriptions.general":"마이크, 녹음 방식, 텍스트 입력을 설정하고 휴대폰 입력을 연결합니다.","modal.descriptions.shortcuts":"기능별 단축키와 텍스트 선택 후 동작을 설정합니다.","modal.descriptions.services":"음성 인식과 텍스트 처리 서비스, 채널, 로컬 모델 및 연결을 관리합니다.","modal.descriptions.appearance":"테마, 페이지 배치, 인터페이스 언어를 편하게 읽도록 조정합니다.","modal.descriptions.privacy":"시스템 권한과 연결을 확인하고 기록, 녹음 및 로컬 데이터를 관리합니다.","modal.descriptions.advanced":"필요에 따라 Less Computer, 멀티모달 처리 및 디버깅을 설정합니다.","modal.descriptions.about":"현재 버전, 업데이트 채널 및 자동 업데이트 설정을 확인합니다.","modal.searchKeywords.general":"마이크 녹음 입력 휴대폰 원격 LAN PIN 캡슐 음소거 시작 자동시작","modal.searchKeywords.shortcuts":"단축키 핫키 키 조합 선택 다듬기 음성 편집","modal.searchKeywords.services":"ASR LLM API 채널 모델 클라우드 로컬 네트워크 프록시 마켓","modal.searchKeywords.appearance":"테마 다크 라이트 언어 글꼴 글자 크기 배치 레이아웃 히트맵","modal.searchKeywords.privacy":"권한 마이크 접근성 기록 녹음 저장 개인정보 내보내기","modal.searchKeywords.advanced":"Less Computer Claude Agent 멀티모달 Omni 디버그 로그 실험","modal.searchKeywords.about":"버전 Beta 안정 업데이트 업그레이드","modal.sections.appearance":"모양 및 언어","modal.sections.shortcuts":"단축키 및 선택","modal.sections.general":"녹음 및 입력","modal.sections.services":"AI 서비스 및 모델","modal.sections.privacy":"권한 및 데이터","modal.sections.advanced":"실험 기능 및 확장","modal.sections.personalize":"개인 설정","modal.sections.about":"정보 및 업데이트","modal.sections.helpCenter":"도움말 센터","modal.sections.releaseNotes":"릴리스 노트","modal.personalize.font":"글꼴 크기","modal.personalize.fontDesc":"UI 글꼴 크기를 전체 스케일. 즉시 반영.","modal.personalize.fontSmall":"소","modal.personalize.fontMedium":"중","modal.personalize.fontLarge":"대","modal.personalize.blur":"서리유리 강도","modal.personalize.blurDesc":"창 내부 backdrop-filter 강도에 영향(macOS 시스템 서리 레이어가 작동하지 않을 때 조정).","modal.about.tagline":"자연스럽게 말하고, 정확하게 작성하세요","modal.about.checkUpdate":"업데이트 확인","modal.about.checkUpdateBtn":"확인","modal.about.docs":"문서","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"피드백 채널","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"소스","modal.about.qq":"커뮤니티 QQ 그룹","modal.about.qqDesc":"QQ 에서 그룹 번호를 검색해 가입하거나 QR 코드로 입장하세요.","modal.about.copyQq":"그룹 번호 복사","modal.about.exportErrorLog":"오류 로그 내보내기","modal.about.exportErrorLogDesc":"현재 세션의 실행 로그를 로컬에 저장합니다. 문제 조사나 피드백 전송에 사용하세요.","modal.about.exportErrorLogBtn":"내보내기","modal.about.exporting":"내보내는 중…","modal.about.exportSuccess":"저장됨","modal.about.exportFailed":"내보내기 실패","modal.about.privacy":"프라이버시","modal.about.privacyDesc":"인식 결과는 로컬에 저장되며 설정한 클라우드 공급자가 전사를 위해 녹음을 수신할 수 있습니다.","modal.about.localFirst":"로컬 우선","windowChrome.restore":"이전 크기로 복원","windowChrome.minimize":"최소화","windowChrome.maximize":"최대화","windowChrome.close":"닫기","hotkey.triggers.rightOption":"오른쪽 Option","hotkey.triggers.leftOption":"왼쪽 Option","hotkey.triggers.rightControl":"오른쪽 Control","hotkey.triggers.leftControl":"왼쪽 Control","hotkey.triggers.rightCommand":"오른쪽 Command","hotkey.triggers.leftCommand":"왼쪽 Command","hotkey.triggers.leftShift":"왼쪽 Shift","hotkey.triggers.rightShift":"오른쪽 Shift","hotkey.triggers.fn":"Fn (지구본 키)","hotkey.triggers.rightAlt":"오른쪽 Alt","hotkey.triggers.mediaPlayPause":"⏯ 미디어 재생/일시정지","hotkey.triggers.custom":"사용자 지정 조합…","hotkey.fallback":"전역 단축키","hotkey.modeHoldSuffix":"(눌러서 말하기)","hotkey.modeToggleSuffix":"(시작 / 정지)","hotkey.modeAutoSuffix":"(자동 인식)","hotkey.usageHold":"{{trigger}} 를 누르고 말한 후 떼면 종료.","hotkey.usageToggle":"{{trigger}} 로 녹음 시작, 다시 누르면 종료.","hotkey.usageAuto":"{{trigger}} 를 짧게 누르면 시작 / 정지, 길게 누르면 말한 뒤 떼면 종료.","hotkey.adapter.macEventTap":"macOS Event Tap","hotkey.adapter.windowsLowLevel":"Windows 저수준 키보드 후크","hotkey.adapter.fcitx5":"fcitx5 입력기 플러그인","hotkey.adapter.unavailable":"사용 불가","localAsr.kicker":"로컬 ASR","localAsr.title":"모델 설정","localAsr.desc":"기기 내 음성 인식 모델 관리.","localAsr.storageTitle":"모델 저장 위치","localAsr.storageBaseDir":"선택한 상위 폴더","localAsr.storageModelsRoot":"실제 모델 폴더","localAsr.storageDefault":"시스템 기본 폴더","localAsr.storageChoose":"폴더 변경","localAsr.storageReset":"기본값으로 복원","localAsr.storageReveal":"모델 폴더 열기","localAsr.storageDesc":"사용자 지정 저장소는 선택한 폴더 아래에 OpenLess/models 를 만들고 기존 모델을 이동합니다. 이동 전에 다운로드를 취소하고 로드된 모델을 해제합니다.","localAsr.storageChooseTitle":"로컬 모델 저장 상위 폴더 선택","localAsr.storageChangeConfirm":"기존 로컬 모델을 {{path}}/OpenLess/models 로 이동합니다. 먼저 다운로드를 취소하고 로드된 모델을 해제합니다. 계속할까요?","localAsr.storageResetConfirm":"기존 로컬 모델을 시스템 기본 폴더로 되돌립니다. 현재 폴더: {{path}}. 계속할까요?","localAsr.modelDir":"모델 폴더","localAsr.revealDir":"폴더 열기","localAsr.deleteConfirm":"{{name}} 로컬 모델 파일을 삭제할까요? 되돌릴 수 없습니다.","localAsr.appleSpeechTitle":"Apple 음성 인식(macOS)","localAsr.appleSpeechDesc":"macOS 기본 음성 인식을 사용해 로컬에서 음성을 텍스트로 변환합니다. 모델 다운로드, API 키, 네트워크가 모두 필요 없습니다. 클라우드 ASR이 불안정할 때 자격 증명이 필요 없는 로컬 폴백입니다. 처음 사용할 때 음성 인식 권한 요청이 표시됩니다.","localAsr.appleSpeechUse":"Apple 음성 사용","localAsr.qwenTitle":"Qwen3-ASR 모델 관리","localAsr.qwenExperimentalBadge":"실험적","localAsr.engineUnavailable":"현재 플랫폼에는 Qwen3-ASR 추론 엔진이 포함되어 있지 않습니다. 모델은 다운로드할 수 있지만 여기서는 아직 Qwen3-ASR 을 활성화할 수 없습니다.","localAsr.qwenUnavailableOnWindows":"Windows 에서는 아직 Qwen3-ASR 을 지원하지 않습니다. 위의 Foundry Local Whisper 를 사용해 주세요.","localAsr.foundryTitle":"Windows Foundry Local Whisper","localAsr.foundryDesc":"기기 내 음성 인식, ASR API 키 불필요. 첫 사용 시 런타임과 모델 다운로드 필요.","localAsr.foundryAvailable":"Windows 에서 사용 가능","localAsr.foundryUnavailable":"Windows 전용","localAsr.foundryRuntimeReady":"런타임 구성 요소 다운로드됨","localAsr.foundryRuntimeMissing":"런타임 구성 요소 미다운로드","localAsr.foundryRuntimeSourceLabel":"런타임 구성 요소 다운로드 소스","localAsr.foundryRuntimeSourceAuto":"자동(NuGet 우선)","localAsr.foundryRuntimeSourceNuget":"NuGet 공식 피드","localAsr.foundryRuntimeSourceOrtNightly":"Microsoft ORT-Nightly 피드","localAsr.foundryRuntimeSourceDesc":"첫 사용 전 런타임 구성 요소 다운로드 필요.","localAsr.foundrySelectedModel":"선택한 모델","localAsr.foundryActiveModel":"현재 기본 alias","localAsr.foundryLoadedModel":"로드된 모델","localAsr.foundryNotLoaded":"로드되지 않음","localAsr.foundryError":"Foundry 상태","localAsr.foundrySetDefault":"기본값으로 설정 / Windows 로컬 ASR 활성화","localAsr.foundryEnabling":"활성화 중…","localAsr.foundryPrepare":"준비 / 다운로드 / 로드","localAsr.foundryPreparing":"준비 중…","localAsr.foundryReleasing":"해제 중…","localAsr.foundryRetryPrepare":"준비 계속 / 다시 시도","localAsr.foundryCancelPrepare":"준비 취소","localAsr.foundryCancelRequested":"취소 요청됨","localAsr.foundryCancelling":"취소 중…","localAsr.foundryCancelBestEffort":"취소 요청됨. 현재 단계 완료 후 중지. 나중에 재시도 가능.","localAsr.foundryPrepareRuntime":"런타임 구성 요소 준비","localAsr.foundryPrepareModel":"모델 다운로드","localAsr.foundryPrepareLoad":"모델 로드","localAsr.foundryPrepareModelSkipped":"모델이 이미 다운로드되어 다운로드 단계를 건너뜀","localAsr.foundryPrepareDone":"완료","localAsr.foundryPrepareWaiting":"대기 중","localAsr.foundryApproxSizeMb":"약 {{mb}} MB","localAsr.foundryLanguageLabel":"인식 언어","localAsr.foundryLanguageAuto":"자동","localAsr.foundryLanguageZh":"중국어 zh","localAsr.foundryLanguageEn":"영어 en","localAsr.foundryLanguageDesc":"중국어는 \"중문\", 혼합 사용은 \"자동\" 선택.","localAsr.foundryModelSmall":"Whisper Small(기본 / 균형)","localAsr.foundryModelSmallDesc":"품질과 리소스 사용량을 균형 있게 맞춘 기본 옵션.","localAsr.foundryModelMedium":"Whisper Medium(더 높은 품질)","localAsr.foundryModelMediumDesc":"더 높은 정확도. 더 큰 다운로드와 느린 추론을 감당할 수 있는 고성능 기기에 적합합니다.","localAsr.foundryModelLarge":"Whisper Large V3 Turbo(최고 품질)","localAsr.foundryModelLargeDesc":"고성능 기기와 품질 우선 사용에 맞는 대형 모델 옵션.","localAsr.foundryModelBase":"Whisper Base(더 빠름 / 낮은 리소스)","localAsr.foundryModelBaseDesc":"더 빠르고 리소스를 적게 사용해 가벼운 일상 받아쓰기에 적합합니다.","localAsr.foundryModelTiny":"Whisper Tiny(가장 빠름 / 스모크 테스트)","localAsr.foundryModelTinyDesc":"Foundry 경로가 작동하는지 확인하기 위한 가장 빠른 옵션.","localAsr.sherpaTitle":"Windows sherpa-onnx Local(실험적)","localAsr.sherpaDesc":"Windows는 sherpa-onnx로 기기 내 오프라인 일괄 인식을 수행하며 ASR API 키가 필요 없습니다.","localAsr.sherpaRuntimeReady":"모델 로드됨","localAsr.sherpaRuntimeMissing":"모델 로드되지 않음","localAsr.sherpaSetDefault":"기본값으로 설정 / sherpa-onnx 활성화","localAsr.sherpaPrepare":"로컬 파일 확인 / 로드","localAsr.sherpaPreparing":"로드 중…","localAsr.sherpaPrepareLocalFiles":"로컬 모델 파일 확인","localAsr.sherpaModelDir":"모델 디렉터리","localAsr.sherpaRevealDir":"모델 디렉터리 열기","localAsr.sherpaError":"sherpa-onnx 상태","localAsr.sherpaLanguageJa":"일본어 ja","localAsr.sherpaLanguageKo":"한국어 ko","localAsr.sherpaLanguageYue":"광둥어 yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small(기본 / 중국어 우선)","localAsr.sherpaModelSenseVoiceDesc":"중국어 및 중영 혼합 받아쓰기에 적합한 기본 실험 모델.","localAsr.sherpaModelParaformer":"Paraformer 중국어","localAsr.sherpaModelParaformerDesc":"중국어 중심 실험 모델.","localAsr.sherpaModelWhisper":"Whisper Small 다국어","localAsr.sherpaModelWhisperDesc":"Whisper 계열 동작에 맞춘 다국어 실험 폴백 모델.","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3 (다국어)","localAsr.sherpaModelWhisperLargeV3Desc":"오픈소스 다국어 모델 중 품질이 가장 좋은 Whisper 계열. 고품질이지만 용량이 큽니다.","localAsr.sherpaModelZipformer":"Zipformer 스트리밍(중·영)","localAsr.sherpaModelZipformerDesc":"말하는 동안 텍스트가 나오는 스트리밍 중·영어 모델로, 지연이 가장 낮아 실시간 받아쓰기에 적합합니다.","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"변환된 sherpa-onnx Qwen3-ASR 모델로 다국어 인식과 더 강한 긴 문맥 처리를 지원합니다.","localAsr.modelSelectTitle":"이 기기의 모델","localAsr.modelSelectDesc":"다운로드 상태를 확인하고 파일을 관리하거나 모델을 불러와 테스트하세요.","localAsr.modelSelectPlaceholder":"다운로드된 모델 선택…","localAsr.modelSelectEmpty":"다운로드된 모델이 없습니다. 「다운로드 및 관리」에서 받으세요.","localAsr.groupDownload":"다운로드 및 관리","localAsr.groupOther":"기타","localAsr.mirrorLabel":"다운로드 미러","localAsr.mirrorDesc":"공식 소스는 해외 네트워크에서 안정적; hf-mirror.com 은 중국 커뮤니티가 운영하는 미러.","localAsr.mirrorHuggingface":"HuggingFace 공식 (huggingface.co)","localAsr.mirrorHfMirror":"중국 미러 (hf-mirror.com)","localAsr.activeBadge":"사용 중","localAsr.downloadedBadge":"다운로드됨","localAsr.notDownloadedBadge":"다운로드되지 않음","localAsr.download":"다운로드","localAsr.resume":"계속 다운로드","localAsr.cancel":"취소","localAsr.delete":"삭제","localAsr.setActive":"기본으로 설정","localAsr.failed":"실패","localAsr.cancelled":"취소됨","localAsr.files":"파일","localAsr.sizeLoading":"크기 조회 중…","localAsr.sizeUnknown":"크기 알 수 없음","localAsr.performanceWarning":"로컬 ASR 은 오프라인 또는 개인정보 보호 시나리오에 적합. 첫 사용 시 모델 다운로드 필요.","localAsr.test":"로드하여 테스트","localAsr.testRunning":"테스트 중…","localAsr.testHeading":"내장 오디오 테스트","localAsr.testExpected":"원문","localAsr.testActual":"인식","localAsr.testStats":"오디오 길이 {{audio}}s · 로드 {{load}}s · 추론 {{transcribe}}s · 백엔드 {{backend}}","localAsr.testFailed":"테스트 실패","localAsr.engineStatusLabel":"메모리에 있는 엔진","localAsr.engineLoaded":"로드됨: {{model}}(약 1.2-3.4 GB 메모리 사용)","localAsr.engineUnloaded":"로드되지 않음(첫 받아쓰기 시 약 3-5 초 로드 필요)","localAsr.loadNow":"지금 로드","localAsr.releaseNow":"지금 해제","localAsr.keepLoadedLabel":"로드 유지 시간","localAsr.keepLoadedDesc":"로컬 ASR 사용 후 메모리에서 해제되기까지의 시간을 결정. 1+ GB RAM 장기 점유 회피.","localAsr.keepImmediate":"말하기 직후 해제","localAsr.keep1min":"마지막 사용 후 1분","localAsr.keep5min":"마지막 사용 후 5분(기본)","localAsr.keep30min":"마지막 사용 후 30분","localAsr.keepForever":"해제하지 않음(항상 유지)","localAsr.sidebarTitle":"다운로드 완료 및 진행 중","localAsr.activePill":"현재 사용 중","localAsr.setDefault":"기본값으로 설정","localAsr.downloading":"다운로드 중","localAsr.startDownload":"다운로드 시작","localAsr.downloadNewModel":"새 모델 다운로드","localAsr.activeModelLabel":"사용 중인 모델","localAsr.pickerNoModelDownloaded":"다운로드된 모델이 아직 없습니다. 로컬 모델 페이지에서 먼저 내려받으세요.","localAsr.partialDownloadsLabel":"완료되지 않은 다운로드","localAsr.partialDownloadsDesc":"중단된 다운로드의 임시 파일이 남아 있습니다. 설치된 모델에 영향 없이 정리할 수 있습니다.","localAsr.cleanupIncomplete":"미완료 다운로드 정리","localAsr.languagesLabel":"언어","localAsr.partialBytesLabel":"남은 파일","localAsr.downloadDialogTitle":"모델 다운로드","localAsr.downloadDialogAlreadyHave":"모델 파일이 다운로드되었습니다. 모델 페이지에서 불러와 테스트하거나 ASR 음성 전사에서 해당 제공업체를 선택하세요.","localAsr.downloadDialogDesc":"모델 크기와 설명을 확인하고 다운로드하세요. 완료되면 음성 인식에서 해당 로컬 서비스를 선택하세요.","localAsr.detailRepo":"저장소","localAsr.hfDownloads":"다운로드 수","localAsr.hfLikes":"좋아요","localAsr.hfDescription":"모델 소개","localAsr.hfNoDescription":"소개가 없습니다","localAsr.hfCardFailed":"모델 정보를 불러오지 못했습니다","localAsr.detailFiles":"개 파일","localAsr.detailDownloaded":"다운로드됨","localAsr.detailEmpty":"모델을 선택하여 세부 정보 보기","localAsr.foundryLanguage":"언어","localAsr.foundryRuntimeSource":"런타임 소스","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"유지","localAsr.downloadSettingsTitle":"다운로드 및 저장 설정","localAsr.downloadSettingsDesc":"미러 소스 · 모델 저장 위치 · 메모리 내 엔진","localAsr.libraryEmptyTitle":"아직 로컬 모델이 없습니다","localAsr.libraryEmptyDesc":"음성 인식 모델을 다운로드하면 이 기기에서 오디오를 처리할 수 있습니다. 기존 모델이 보이지 않으면 목록을 새로 불러오세요.","localAsr.catalogTitle":"모델 카탈로그","localAsr.catalogEmpty":"표시할 모델이 없습니다. 카탈로그를 새로 불러온 후 다시 시도하세요.","localAsr.reloadCatalog":"목록 새로고침","localAsr.engineLabel":"인식 엔진","localAsr.sizeLabel":"모델 크기","localAsr.allEngines":"전체","localAsr.backToCatalog":"카탈로그로 돌아가기","localAsr.detailsTitle":"모델 세부 정보","localAsr.testActivateHint":"불러오기 및 테스트를 실행하면 이 모델을 현재 사용 모델로 설정한 후 내장 오디오 테스트를 진행합니다.","localAsr.downloadProgressHint":"시작 후 모델 페이지에서 진행 상황을 확인하거나 다운로드를 취소할 수 있습니다.","localAsr.errorDetails":"오류 세부 정보"},"es":{"cloudSync.title":"Sincronización en la nube","cloudSync.description":"Usa tu cuenta de GitHub para sincronizar el diccionario, los estilos y las preferencias entre dispositivos.","cloudSync.signIn":"Iniciar sesión con GitHub","cloudSync.account":"Cuenta de sincronización","cloudSync.refresh":"Actualizar estado","cloudSync.loading":"Consultando el estado de la nube…","cloudSync.noBackup":"Todavía no hay una copia en la nube","cloudSync.available":"Hay una copia disponible en la nube","cloudSync.summary":"{{dictionary}} palabras · {{corrections}} correcciones · {{stylePacks}} estilos","cloudSync.updated":"Actualizado {{time}}","cloudSync.upload":"Crear copia en la nube","cloudSync.restore":"Restaurar desde la nube","cloudSync.delete":"Eliminar copia en la nube","cloudSync.working":"Sincronizando…","cloudSync.uploadSuccess":"Copia guardada en la nube","cloudSync.restoreSuccess":"Ajustes restaurados desde la nube","cloudSync.deleteSuccess":"Copia en la nube eliminada","cloudSync.failed":"La sincronización falló: {{error}}","cloudSync.conflict":"La copia en la nube ha cambiado. Actualiza su estado antes de elegir entre crear una copia o restaurarla.","cloudSync.unavailable":"El servicio oficial de sincronización no está disponible ahora. Inténtalo más tarde.","cloudSync.signInRequired":"Primero inicia sesión con GitHub.","cloudSync.restoreTitle":"¿Restaurar la copia de la nube?","cloudSync.restoreDescription":"Las entradas del diccionario, las correcciones, los estilos y las preferencias sincronizadas de la nube reemplazarán sus equivalentes locales. Las claves API, las rutas y los permisos permanecerán en este dispositivo.","cloudSync.deleteTitle":"¿Eliminar la copia de la nube?","cloudSync.deleteDescription":"Solo se eliminará la copia en la nube de esta cuenta de GitHub. Se conservarán los datos locales.","cloudSync.confirmRestore":"Restaurar y reemplazar","cloudSync.confirmDelete":"Eliminar copia","cloudSync.scope":"Sincroniza el diccionario, las correcciones, los iconos de estilos y las preferencias comunes. Las claves API, las credenciales y los ajustes del dispositivo permanecen aquí.","macDictationKey.Changed":"El atajo cambió mientras se guardaba. Inténtalo de nuevo.","macDictationKey.label":"Tecla de dictado de Mac","macDictationKey.description":"Sustituye el atajo de dictado actual por la tecla del micrófono. Al salir de OpenLess, la tecla se devuelve a macOS.","macDictationKey.Permission":"Permite OpenLess en «Privacidad y seguridad → Accesibilidad» de macOS y vuelve a intentarlo.","macDictationKey.Busy":"Termina el dictado en curso antes de cambiar el atajo.","macDictationKey.Unavailable":"No se pudo activar el atajo; la asignación guardada no cambió. Reinténtalo o elige otra tecla.","app.name":"OpenLess","app.tagline":"Habla con naturalidad, escribe con precisión","common.loading":"Cargando…","common.retry":"Reintentar","common.settingsLoadFailed":"No se pudieron cargar los ajustes","common.refresh":"Actualizar","common.clear":"Borrar","common.copy":"Copiar","common.delete":"Eliminar","common.later":"Más tarde","common.cancel":"Cancelar","common.close":"Cerrar","common.show":"Mostrar","common.hide":"Ocultar","common.saved":"Guardado","common.saving":"Guardando…","common.experimental":"Experimental","common.copied":"Copiado","common.operationFailed":"La operación falló","common.add":"Añadir","common.durationSeconds":"{{value}}s","common.durationMillis":"{{value}}ms","common.durationMinutes":"{{value}}min","capsule.thinking":"pensando","capsule.using":"actuando","capsule.cancelled":"Cancelado","capsule.error":"Se ha producido un error","capsule.inserted":"{{count}} insertados","capsule.translating":"Traduciendo","capsule.selectionPolish.polishing":"Mejorando el texto…","capsule.selectionPolish.replaced":"Reemplazado","capsule.selectionPolish.noSelection":"No hay texto seleccionado","capsule.selectionPolish.failed":"No se pudo mejorar el texto. Inténtalo de nuevo","selectionPolishPreview.title":"Vista previa del texto mejorado","selectionPolishPreview.subtitle":"Puedes editar el resultado. El texto seleccionado solo se reemplazará cuando confirmes.","selectionPolishPreview.cancel":"Cancelar","selectionPolishPreview.resultLabel":"Texto mejorado","selectionPolishPreview.sourcePrefix":"Original: ","selectionPolishPreview.applyError":"No se pudo aplicar: ","selectionPolishPreview.confirmReplace":"Confirmar y reemplazar","selectionVoiceIntent.title":"¿Qué quieres hacer?","selectionVoiceIntent.subtitle":"Hemos reconocido tu instrucción de voz. Elige cómo continuar.","selectionVoiceIntent.loading":"Cargando…","selectionVoiceIntent.sourcePrefix":"Selección: ","selectionVoiceIntent.errorPrefix":"No se pudo continuar: ","selectionVoiceIntent.question":"Hacer una pregunta","selectionVoiceIntent.edit":"Editar la selección","selectionVoiceIntent.cancel":"Cancelar","qa.title":"Preguntar","qa.headerHint":"Pregunta cuando quieras","qa.thinking":"Pensando…","qa.error":"Se ha producido un error. Inténtalo de nuevo.","qa.errorRetry":"Reintentar","qa.errorRetryHint":"Inténtalo de nuevo.","qa.pinTooltip":"Fijar (mantener abierto)","qa.unpinTooltip":"Desfijar","qa.closeTooltip":"Cerrar","qa.micLabel":"Preguntar por voz","qa.micStop":"Detener la grabación","qa.selectionPreview":"A partir del texto seleccionado:","qa.emptyTitle":"¿En qué puedo ayudarte?","qa.emptyDesc":"Selecciona un texto para preguntar sobre él o escribe tu pregunta abajo. Las respuestas aparecerán aquí y podrás seguir preguntando.","qa.recordingHint":"Grabando… pulsa {{recordHotkey}} de nuevo para enviar","qa.mobileRecordLabel":"botón de grabación","qa.mobileRecordStart":"Iniciar grabación","qa.mobileRecordStop":"Detener y enviar","qa.composerPlaceholder":"Escribe una pregunta. Pulsa Intro para enviar","qa.composerSend":"Enviar","qa.statusIdle":"Pulsa {{recordHotkey}} para preguntar","qa.statusRecording":"Grabando","qa.statusThinking":"Pensando","qa.statusError":"Error","qa.jumpToLatest":"Ir al último mensaje","qa.editApplyReplace":"Ver vista previa y confirmar inserción","qa.editApplyUnavailable":"No hay ningún resultado que aplicar","qa.editRevertPrevious":"Conservar la versión anterior","qa.editInstructionMode":"Instrucción de edición","lessComputer.title":"Less Computer","lessComputer.subtitle":"¿Qué quieres que haga tu ordenador?","lessComputer.you":"Tú","lessComputer.working":"Actuando…","lessComputer.tool":"Se ha usado {{name}}","lessComputer.compaction":"Contexto resumido","lessComputer.done":"Hecho","lessComputer.cost":"${{cost}}","lessComputer.error":"Ha fallado. Inténtalo de nuevo.","lessComputer.closeTooltip":"Cerrar","lessComputer.jumpToLatest":"Ir al último mensaje","lessComputer.inputPlaceholder":"Escribe una instrucción. Pulsa Intro para enviar","lessComputer.send":"Enviar","lessComputer.approvalTitle":"¿Ejecutar el comando bloqueado?","lessComputer.approvalRerunWarning":"Al aprobar, se vuelve a ejecutar sobre un espacio de trabajo ya modificado. Repetir operaciones que no sean idempotentes puede producir efectos adicionales.","lessComputer.approve":"Aprobar","lessComputer.deny":"Rechazar","lessComputer.approved":"Aprobado","lessComputer.denied":"Rechazado","nav.overview":"Resumen","nav.history":"Historial","nav.vocab":"Diccionario","nav.style":"Estilo","nav.marketplace":"Catálogo","nav.translation":"Traducción","nav.selectionAsk":"Preguntar","nav.corrections":"Correcciones","nav.polishMode":"Modo de redacción","nav.group.style":"Estilo","nav.group.tools":"Herramientas","nav.localAsr":"Modelos","nav.more":"Más","marketplace.kicker":"CATÁLOGO","marketplace.title":"Catálogo de paquetes de estilos","marketplace.desc":"Explora, instala y comparte paquetes de estilos de la comunidad.","marketplace.searchPlaceholder":"Buscar por nombre, descripción o etiquetas…","marketplace.sortPopular":"Populares","marketplace.sortNew":"Recientes","marketplace.uploadBtn":"Subir","marketplace.uploadDisabledHint":"Primero inicia sesión con GitHub en Ajustes → Catálogo","marketplace.refreshBtn":"Actualizar","marketplace.empty":"Todavía no hay paquetes de estilos","marketplace.emptyHint":"Prueba otra palabra clave o sube tu propio paquete","marketplace.loadFailed":"No se pudo cargar: {{err}}","marketplace.noDescription":"(sin descripción)","marketplace.installBtn":"Instalar","marketplace.installingBtn":"Instalando…","marketplace.downloadZipBtn":"Descargar ZIP","marketplace.downloadingZipBtn":"Descargando…","marketplace.downloadAria":"Descargar el ZIP de «{{name}}»","marketplace.likeBtn":"Me gusta","marketplace.installed":"«{{name}}» se ha instalado en este dispositivo","marketplace.downloaded":"Se ha descargado el ZIP de «{{name}}»","marketplace.uploaded":"Subido; pendiente de revisión","marketplace.uploadTitle":"Elige un paquete de estilos para subir","marketplace.uploadHint":"Se subirá como {{login}}. El contenido pasará a la cola de revisión en la nube.","marketplace.uploadNoLocal":"No hay paquetes locales que se puedan subir","marketplace.errors.detail":"No se pudieron cargar los detalles: {{err}}","marketplace.errors.install":"No se pudo instalar: {{err}}","marketplace.errors.download":"No se pudo descargar el ZIP: {{err}}","marketplace.errors.like":"No se pudo marcar «Me gusta»: {{err}}","marketplace.errors.upload":"No se pudo subir: {{err}}","marketplace.errors.loadLocal":"No se pudieron cargar los paquetes locales: {{err}}","marketplace.sortLiked":"Me gusta","marketplace.likedEmpty":"Todavía no has marcado ningún paquete con «Me gusta»","marketplace.likedEmptyHint":"Abre un paquete y pulsa la estrella. Los paquetes que te gusten aparecerán aquí","marketplace.derivativeBadge":"Basado en @{{login}}","marketplace.detail.withdrawBtn":"Retirar","marketplace.detail.withdrawConfirm":"¿Retirar «{{name}}» del catálogo? Se conservará tu copia local.","marketplace.detail.withdrawSuccess":"Retirado del catálogo","marketplace.detail.withdrawFailed":"No se pudo retirar: {{err}}","marketplace.myPacks.buttonLabel":"Mis paquetes","marketplace.myPacks.buttonTitle":"Ver las publicaciones de {{login}}","marketplace.myPacks.buttonTitleEmpty":"Primero configura tu identidad de autor en Ajustes → Catálogo","marketplace.myPacks.searchPlaceholder":"Buscar por nombre o etiquetas","marketplace.myPacks.notLoggedIn":"Primero configura tu identidad de autor en Ajustes → Catálogo","marketplace.myPacks.emptyTitle":"Todavía no has publicado paquetes de estilos","marketplace.myPacks.emptyHint":"Edita un paquete en la página Estilo y pulsa «Publicar en el catálogo», o sube un paquete local desde la esquina superior derecha.","marketplace.myPacks.noMatch":"No se encontraron paquetes de estilos","marketplace.myPacks.summary":"{{count}} publicados","marketplace.myPacks.summaryPending":"{{count}} publicados · {{pending}} pendientes de revisión","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"Actualizar","marketplace.myPacks.actions.withdraw":"Retirar","marketplace.myPacks.loadFailed":"No se pudieron cargar tus paquetes: {{err}}","marketplace.myPacks.loadingTitle":"Cargando…","marketplace.myPacks.loadingHint":"Obteniendo tus últimas publicaciones del catálogo.","marketplace.myPacks.loadErrorTitle":"No se pudo cargar","marketplace.myPacks.loadErrorRetry":"Reintentar","marketplace.upload.confirmBtn":"Confirmar subida","marketplace.upload.updateTitle":"Actualizar «{{name}}»","marketplace.upload.updateHint":"Elige la versión local más reciente y pulsa «Confirmar subida». Se selecciona de antemano el paquete del mismo nombre.","marketplace.upload.recommendedBadge":"Recomendado","marketplace.state.pending":"Pendiente","marketplace.state.approved":"Publicado","marketplace.state.rejected":"Rechazado","marketplace.state.withdrawn":"Retirado","marketplace.state.superseded":"Sustituido","marketplace.state.unknown":"Desconocido","marketplace.oauth.title":"Iniciar sesión con GitHub","marketplace.oauth.generating":"Generando código de dispositivo…","marketplace.oauth.browserHint":"Abre {{uri}} en el navegador e introduce este código:","marketplace.oauth.copyBtn":"Copiar","marketplace.oauth.copied":"Código de dispositivo copiado","marketplace.oauth.copyFailed":"No se pudo copiar: {{err}}","marketplace.oauth.openBrowserBtn":"Abrir navegador","marketplace.oauth.cancelBtn":"Cancelar","marketplace.oauth.waiting":"Esperando autorización en el navegador…","marketplace.oauth.successAs":"Sesión iniciada como @{{login}}","marketplace.oauth.retryBtn":"Reintentar","marketplace.oauth.closeBtn":"Cerrar","marketplace.oauth.loginBtn":"Iniciar sesión","marketplace.oauth.loginTooltip":"Iniciar sesión con GitHub","marketplace.oauth.reloginTooltip":"Pulsa para volver a iniciar sesión o cambiar de cuenta (actual: @{{login}})","marketplace.modal.loggedIn":"Identidad de la sesión actual; cámbiala en Ajustes → Grabación → Catálogo","marketplace.modal.notLoggedIn":"Sin sesión iniciada; configura tu nombre de autor en Ajustes → Grabación → Catálogo","marketplace.modal.notLoggedInLabel":"Sin sesión iniciada","shell.shortcutLabel":"Atajo de grabación","shell.shortcutHint":"Iniciar / Detener","shell.betaTag":"BETA","shell.betaNote":"Almacenamiento local y copia en la nube opcional","shell.navHint.overview":"Resumen: estadísticas de uso y estado de los servicios y permisos","shell.navHint.history":"Historial de dictado: busca, reproduce y copia transcripciones anteriores","shell.navHint.vocab":"Diccionario: palabras personalizadas para reconocer mejor los nombres propios","shell.navHint.style":"Estilos de redacción: administra estilos de salida e instrucciones personalizadas","shell.navHint.translation":"Traducción: mantén pulsada Mayús mientras hablas para insertar el texto en otro idioma","shell.navHint.selectionAsk":"Preguntar sobre una selección: selecciona texto y pregunta por voz","shell.navHint.settings":"Preferencias: atajos, proveedores, privacidad y actualizaciones","shell.footer.account":"Cuenta","shell.footer.feedback":"Comentarios","shell.footer.settings":"Ajustes","shell.footer.help":"Ayuda","shell.footer.version":"Versión {{version}}","shell.footer.helpPopover.tagline":"Entrada de voz centrada en tu dispositivo","shell.footer.helpPopover.releaseNotes":"Notas de la versión ↗","shell.footer.helpPopover.docs":"Centro de ayuda ↗","shell.providerPrompt.title":"Configurar servicios de voz","shell.providerPrompt.body":"Todavía no hay ningún servicio ASR ni LLM configurado. Añade las credenciales para usar la entrada de voz y la mejora del texto.","shell.providerPrompt.later":"Más tarde","shell.providerPrompt.openSettings":"Abrir ajustes","shell.hotkeyModePrompt.title":"Revisar el modo de grabación","shell.hotkeyModePrompt.body":"El modo predeterminado ahora es Alternar. Si antes cambiaste el modo de activación, compruébalo en los ajustes de Grabación.","shell.hotkeyModePrompt.later":"Recordármelo más tarde","shell.hotkeyModePrompt.openSettings":"Abrir Grabación","onboarding.welcome":"Te damos la bienvenida a OpenLess","onboarding.intro":"Habla y escribe desde tu dispositivo. Antes de empezar necesitamos dos permisos del sistema.","onboarding.accessibilityTitle":"Accesibilidad","onboarding.hotkeyTitle":"Atajo global","onboarding.accessibilityDesc":"Permite detectar el atajo global (predeterminado: {{trigger}}) e insertar transcripciones donde está el cursor.","onboarding.hotkeyDesc":"Permite comprobar que el detector de atajos globales esté disponible.","onboarding.micTitle":"Micrófono","onboarding.micDesc":"Permite capturar tu voz.","onboarding.actionNotApplicable":"No es necesario","onboarding.actionGranted":"Concedido","onboarding.actionOpenSystem":"Abrir Ajustes del Sistema","onboarding.actionRestart":"Restablecer Accesibilidad y reiniciar OpenLess","onboarding.actionGrant":"Conceder","onboarding.actionRequestMic":"Solicitar acceso","onboarding.micNoDeviceHint":"No se ha detectado ningún micrófono. Conecta y activa uno, y vuelve a intentarlo.","onboarding.accessibilityHint":"Después de conceder el permiso, debes **cerrar OpenLess por completo** y volver a abrirlo (requisito de TCC en macOS).","onboarding.footerHint":"Esta configuración inicial se cerrará cuando se concedan ambos permisos. Si no se cierra, sal de OpenLess desde la barra de menús y vuelve a abrirlo.","onboarding.continueToSettings":"Abrir solo los ajustes (sin voz ni atajos globales)","onboarding.androidContinue":"Continuar a la aplicación","onboarding.androidFooterHint":"El dictado requiere acceso al micrófono. Pulsa «Solicitar acceso» arriba o continúa y concédelo después desde Resumen.","onboarding.androidTitle":"Configurar OpenLess","onboarding.androidIntro":"Configura paso a paso los permisos y servicios del móvil.","onboarding.androidStepCounter":"Paso {{current}} de {{total}}","onboarding.androidBack":"Atrás","onboarding.androidNext":"Siguiente","onboarding.androidFinish":"Finalizar y entrar","onboarding.androidSteps.microphoneTitle":"Permiso de micrófono","onboarding.androidSteps.microphoneDesc":"Abre el diálogo de permisos de Android y permite que OpenLess grabe tu voz.","onboarding.androidSteps.accessibilityTitle":"Servicio de accesibilidad","onboarding.androidSteps.accessibilityDesc":"Inserta el resultado del reconocimiento en el campo activo y ayuda a detectar el contexto de entrada.","onboarding.androidSteps.overlayPermissionTitle":"Permiso de ventana flotante","onboarding.androidSteps.overlayPermissionDesc":"Permite que OpenLess muestre el control de grabación sobre otras aplicaciones.","onboarding.androidSteps.overlayConfigTitle":"Ajustes de la ventana flotante","onboarding.androidSteps.overlayConfigDesc":"Configura la visibilidad, la activación, los gestos de deslizamiento y el tamaño del botón.","onboarding.androidSteps.asrTitle":"Servicio ASR en la nube","onboarding.androidSteps.asrDesc":"Configura el proveedor de reconocimiento de voz, la clave, la dirección y el modelo.","onboarding.androidSteps.llmTitle":"Servicio LLM","onboarding.androidSteps.llmDesc":"Configura el modelo de lenguaje para mejorar texto, traducir y responder preguntas.","overview.refresh":"Actualizar estado","overview.servicesTitle":"Servicios de voz actuales","overview.statsTitle":"Tu actividad","overview.omniKind":"Voz multimodal","overview.omniName":"Modelo Omni actual","overview.statusLoading":"Leyendo la configuración de servicios…","overview.configureProvider":"Configurar","overview.manageProvider":"Administrar servicio","overview.recentEmptyHint":"Todavía no hay dictados. Prueba uno siguiendo la guía de arriba y el resultado aparecerá aquí.","overview.providerHelp.asr":"Convierte tu voz en texto.","overview.providerHelp.llm":"Organiza y mejora el texto con tu estilo.","overview.providerHelp.omni":"Un mismo modelo reconoce la voz y procesa el texto.","overview.actions.refresh":"Reintentar","overview.actions.services":"Servicios y modelos de IA","overview.actions.general":"Grabación y entrada","overview.actions.shortcuts":"Atajos","overview.actions.privacy":"Permisos y datos","overview.guide.nextStep":"Siguiente paso","overview.guide.loadingTitle":"Leyendo tu configuración","overview.guide.loadingDesc":"En breve aparecerán tus servicios actuales y el siguiente paso.","overview.guide.unavailableTitle":"El estado de los servicios no está disponible","overview.guide.unavailableDesc":"Vuelve a consultarlo o abre Servicios de IA para revisar la configuración.","overview.guide.servicesTitle":"Configura tus servicios de voz","overview.guide.servicesDesc":"Empieza eligiendo servicios de reconocimiento de voz y procesamiento de texto. En modo Omni, basta con configurar el modelo multimodal activo.","overview.guide.permissionsTitle":"Comprueba el estado de tus atajos","overview.guide.permissionsDesc":"El adaptador de atajos no está disponible. Abre Permisos y datos para consultar su estado y las opciones disponibles.","overview.guide.shortcutsTitle":"Elige un atajo de grabación","overview.guide.shortcutsDesc":"Elige un atajo cómodo para empezar a dictar mientras escribes.","overview.guide.recordingTitle":"Elige cómo grabar","overview.guide.recordingDesc":"La configuración del servicio está guardada. Abre los ajustes de grabación para elegir el micrófono y el modo de grabación.","overview.guide.tryDictationTitle":"Prueba el dictado","overview.guide.tryDictationDesc":"Coloca el cursor donde quieras escribir. {{shortcut}}","overview.guide.permissionsHint":"¿No responden la grabación o los atajos? Revisa los permisos, el acceso al micrófono y el estado de los atajos en Permisos y datos.","overview.kicker":"PANEL","overview.title":"Resumen de hoy","overview.desc":"Estadísticas de dictado de hoy y estado del sistema.","overview.pressPrefix":"Pulsa","overview.pressSuffix":"para empezar","overview.asrKind":"Reconocimiento de voz","overview.llmKind":"Procesamiento de texto","overview.asrName":"Volcengine","overview.asrSubname":"bigmodel","overview.llmName":"Compatible con OpenAI","overview.llmConfigured":"LLM activo configurado","overview.llmNotConfigured":"Sin configurar","overview.statusConfigured":"Configurado","overview.statusNotConfigured":"Sin configurar","overview.statusUnknown":"No disponible","overview.credentialsLoadError":"No se pudo consultar el estado de las credenciales","overview.metricChars":"Caracteres de hoy","overview.metricSegments":"{{count}} segmentos","overview.metricDuration":"Duración total de hoy","overview.metricAvg":"Media por segmento","overview.metricAvgTrend":"Media de hoy","overview.metricNoData":"Sin datos","overview.historyLoadError":"No se pudo cargar el historial","overview.metricTotal":"Registros totales","overview.metricTotalTrend":"Archivo local (máx. 200)","overview.activityTitle":"Actividad anual","overview.activityCount":"{{count}} dictados","overview.activityLoadError":"No se pudieron cargar los datos de actividad","overview.period.ariaLabel":"Periodo del informe","overview.period.last7Days":"Últimos 7 días","overview.period.last30Days":"Últimos 30 días","overview.period.dailyAverage":"{{value}} / día","overview.period.minutes":"{{value}} min","overview.period.hoursMinutes":"{{hours}} h {{minutes}} min","overview.metricName.ariaLabel":"Métrica","overview.metricName.count":"Cantidad","overview.metricName.chars":"Caracteres","overview.metricName.duration":"Duración","overview.recentTitle":"Transcripciones recientes","overview.recentAll":"Ver todo →","overview.recentEmpty":"Todavía no hay registros. Pulsa {{trigger}} para empezar tu primera grabación.","overview.recentLoadFailed":"No se pudieron cargar las transcripciones recientes. Inténtalo de nuevo.","overview.historyRetry":"Reintentar","overview.weekDays.0":"Dom","overview.weekDays.1":"Lun","overview.weekDays.2":"Mar","overview.weekDays.3":"Mié","overview.weekDays.4":"Jue","overview.weekDays.5":"Vie","overview.weekDays.6":"Sáb","overview.inAppDictation.title":"Dictado en la aplicación","overview.inAppDictation.start":"Iniciar grabación","overview.inAppDictation.stop":"Detener grabación","overview.inAppDictation.idle":"Pulsa para empezar a grabar","overview.inAppDictation.recording":"Grabando…","overview.inAppDictation.processing":"Procesando…","overview.androidMicBanner.title":"Se necesita permiso de micrófono","overview.androidMicBanner.desc":"Concede acceso al micrófono para usar el dictado y la entrada de voz en la aplicación.","overview.androidMicBanner.grant":"Solicitar acceso","overview.androidMicBanner.openSettings":"Abrir ajustes","history.exportError":"No se pudo exportar la grabación. Inténtalo de nuevo.","history.kicker":"HISTORIAL","history.title":"Historial","history.desc":"Transcripciones guardadas en este dispositivo.","history.filterAll":"Todo","history.summary":"{{total}} en total · {{shown}} visibles","history.searchPlaceholder":"Buscar transcripciones… ({{shortcut}})","history.searchNoMatch":"No hay registros que coincidan con «{{query}}».","history.empty":"Todavía no hay historial. Pulsa {{trigger}} para grabar.","history.loadFailed":"No se pudo cargar el historial: {{err}}","history.retry":"Reintentar","history.clearFailed":"No se pudo borrar el historial: {{err}}","history.deleteFailed":"No se pudo eliminar el registro: {{err}}","history.copyFailed":"No se pudo copiar: {{err}}","history.playRecording":"Reproducir grabación","history.audioLoading":"Cargando…","history.audioDecodeFailed":"No se pudo decodificar el audio: {{err}}","history.exportRecording":"Exportar grabación","history.exportFailed":"No se pudo exportar: {{err}}","history.retranscribe":"Volver a transcribir","history.retranscribing":"Transcribiendo…","history.retranscribeFailed":"No se pudo volver a transcribir: {{err}}","history.rawLabel":"Original","history.rawEmpty":"(vacío)","history.selectHint":"Selecciona un registro de la izquierda para ver sus detalles.","history.recorded":"Grabación: {{duration}}","history.stepAsr":"Transcripción","history.multimodalPipeline":"Multimodal","history.stepAsrHint":"Tiempo de espera de la transcripción tras soltar la tecla. El reconocimiento en tiempo real transcribe mientras hablas, por lo que suele ser mucho más corto que la grabación.","history.stepPolish":"Mejora del texto","history.stepInsert":"Inserción","history.chars":"{{count}} caracteres","history.vocabHits":"{{count}} coincidencias del diccionario","history.inserted":"Insertado","history.pasteSent":"Pegado enviado","history.copiedFallback":"Copiado (usa {{shortcut}})","history.insertFailed":"No se pudo insertar","history.confirmClear":"¿Eliminar los {{count}} registros del historial? Esta acción no se puede deshacer.","history.backToList":"Volver a la lista","history.repolish.title":"Volver a mejorar el texto","history.repolish.hint":"Vuelve a mejorar la transcripción de arriba. Los resultados solo se muestran durante esta visita y no modifican el registro. Si se eliminó el paquete original o el registro es anterior a los paquetes de estilos, se usará el estilo actual.","history.repolish.retry":"Reintentar con el mismo estilo","history.repolish.retrying":"Reintentando…","history.repolish.apply":"Aplicar","history.repolish.applying":"Mejorando el texto…","history.repolish.pickStyle":"Elegir un paquete de estilos","history.repolish.noPacks":"No hay paquetes de estilos disponibles.","history.repolish.packsLoadFailed":"No se pudieron cargar los paquetes de estilos: {{err}}","history.repolish.failed":"No se pudo volver a mejorar el texto: {{err}}","history.repolish.timeout":"El proveedor LLM actual no respondió en 30 segundos. Prueba un proveedor más rápido o inténtalo más tarde; los modelos gratuitos suelen tener cola de espera.","history.repolish.resultTitle":"Resultado de {{name}}","history.repolish.retryResultTitle":"Resultado del nuevo intento","history.repolish.empty":"(el modelo devolvió un resultado vacío)","history.repolish.clear":"Borrar resultados","vocabCard.title":"¿Recordar esta palabra?","vocabCard.accept":"Recordar","vocabCard.reject":"Omitir","insertFallbackCard.copy":"Copiar","insertFallbackCard.copied":"Copiado","insertFallbackCard.copyFailed":"No se pudo copiar","insertFallbackCard.dismiss":"Descartar","vocab.selectAllVisible":"Seleccionar resultados actuales","vocab.selectedCount":"{{count}} palabras seleccionadas","vocab.selectWord":"Seleccionar «{{phrase}}»","vocab.deleteSelected":"Eliminar seleccionadas ({{count}})","vocab.batchDeleteFailed":"No se pudieron eliminar {{count}} palabras. Siguen seleccionadas para que puedas reintentarlo.","vocab.kicker":"DICCIONARIO","vocab.title":"Diccionario","vocab.desc":"Añade términos o jerga para mejorar la precisión del reconocimiento.","vocab.sectionTitle":"Entradas","vocab.placeholder":"Escribe una palabra y pulsa Intro o Añadir…","vocab.tip":"Admite chino e inglés combinados · los prefijos numéricos se comparan literalmente · las coincidencias se cuentan automáticamente","vocab.loadFailed":"No se pudo cargar: {{err}}","vocab.empty":"Todavía no hay entradas. Añade arriba un término o expresión especializada para que el modelo les dé prioridad.","vocab.tipDisabled":"Pulsa para desactivar esta entrada","vocab.tipEnabled":"Pulsa para activar esta entrada","vocab.removeAria":"Eliminar","vocab.edit":"Editar","vocab.editTitle":"Editar palabra","vocab.editSave":"Guardar","vocab.editEmpty":"La palabra no puede estar vacía.","vocab.filter.all":"Todas","vocab.filter.auto":"Añadidas automáticamente","vocab.filter.manual":"Añadidas manualmente","vocab.searchPlaceholder":"Buscar","vocab.searchEmpty":"No se encontraron palabras.","vocab.newWord":"Nueva palabra","vocab.newWordTitle":"Añadir palabras","vocab.newWordDesc":"Escribe una palabra o importa varias usando plantillas predefinidas.","vocab.newWordInputPlaceholder":"Escribe una palabra y pulsa Intro para añadirla…","vocab.newWordTemplates":"Plantillas predefinidas","vocab.newWordTemplateCount":"{{count}} palabras","vocab.newWordAddSelected":"Añadir seleccionadas","vocab.learnedSection":"Recogidas automáticamente ({{count}})","vocab.removeAllLearned":"Eliminar todas","vocab.corrections.title":"Reglas de corrección","vocab.corrections.tip":"Corrige errores frecuentes del reconocimiento de voz. Admite el comodín numérico {num}.","vocab.corrections.patternPlaceholder":"Texto incorrecto, p. ej., {num} casas","vocab.corrections.replacementPlaceholder":"Texto deseado, p. ej., {num} casos","vocab.corrections.empty":"Todavía no hay reglas de corrección.","vocab.corrections.invalid":"Solo se admiten reemplazos literales o un comodín numérico {num}; por ejemplo, {num} casas → {num} casos.","vocab.corrections.tipDisabled":"Pulsa para desactivar esta regla","vocab.corrections.tipEnabled":"Pulsa para activar esta regla","vocab.corrections.removeAria":"Eliminar regla de corrección","vocab.corrections.learnedBadge":"automática","vocab.corrections.learnedTip":"Recogida automáticamente de tus propias correcciones. Puedes eliminarla cuando quieras.","vocab.corrections.onlyLearned":"Solo automáticas ({{count}})","vocab.corrections.removeAllLearned":"Eliminar todas las automáticas","vocab.corrections.suggestTitle":"¿Recordar esta corrección?","vocab.corrections.suggestAccept":"Recordar","vocab.corrections.suggestDismiss":"No, gracias","vocab.presets.title":"Preajustes por contexto","vocab.presets.tip":"Selecciona varios para aplicarlos a la vez. Puedes editarlos y crear otros nuevos.","vocab.presets.create":"Nuevo preajuste","vocab.presets.apply":"Aplicar seleccionados","vocab.presets.save":"Guardar preajuste","vocab.presets.edit":"Editar {{name}}","vocab.presets.newPreset":"Nuevo preajuste","vocab.presets.namePlaceholder":"Nombre del preajuste","vocab.presets.wordsPlaceholder":"Términos separados por comas o saltos de línea","style.kicker":"ESTILO","style.title":"Estilo de salida","style.desc":"Elige el estilo de salida predeterminado para las grabaciones.","style.masterToggle":"Interruptor general","style.currentDefault":"Predeterminado actual","style.ariaSetDefault":"Usar como predeterminado","style.saveFailed":"No se pudo guardar: {{error}}","style.customPromptTitle":"Instrucciones personalizadas","style.customPromptPlaceholder":"Opcional. Se añaden a las instrucciones del sistema incluidas en este estilo.","style.customPromptHint":"Déjalo vacío para mantener el comportamiento actual. Al guardar, se aplicará tanto al dictado como a la mejora posterior del texto. También puedes guardar con Ctrl/Cmd+Enter.","style.customPromptSave":"Guardar instrucciones","style.customPromptDirty":"Sin guardar","style.systemPromptMovedHint":"La edición de las instrucciones completas del sistema está ahora en Ajustes → Proveedores. Esta página solo controla los estilos activos y el predeterminado.","style.modes.raw.name":"Original","style.modes.raw.desc":"Solo añade puntuación y pausas naturales, sin reescribir ni ampliar.","style.modes.raw.sample":"Conserva el ritmo del habla y las frases originales; elimina muletillas como «eh» o «ya sabes».","style.modes.light.name":"Mejora ligera","style.modes.light.desc":"Elimina muletillas, añade puntuación y produce un texto natural listo para enviar.","style.modes.light.sample":"Da fluidez a la transcripción sin que suene artificial; conserva tu tono y tus expresiones.","style.modes.structured.name":"Estructurado","style.modes.structured.desc":"Organiza conversaciones de programación, diagnósticos y comentarios sobre productos con terminología precisa.","style.modes.structured.sample":"1. Primer tema\na. Punto\nb. Punto\n2. Segundo tema\na. Punto\nb. Punto","style.modes.formal.name":"Formal","style.modes.formal.desc":"Tono para correos y trabajo: más completo y profesional.","style.modes.formal.sample":"Detecta saludos y despedidas en correos y evita las fórmulas de cortesía vacías.","style.pack.builtinTags.minimalEdits":"Cambios mínimos","style.pack.builtinTags.strongCorrection":"Corrección precisa","style.pack.builtinTags.communication":"Comunicación","style.pack.builtinTags.natural":"Natural","style.pack.builtinTags.organized":"Organizado","style.pack.builtinTags.workplaceCommunication":"Comunicación laboral","style.pack.builtinTags.aiCoding":"Programación con IA","style.pack.builtinTags.technicalStructure":"Estructura técnica","style.pack.newName":"Estilo sin título","style.pack.newDescription":"Describe brevemente cuándo usar este estilo.","style.pack.uploadIcon":"Subir un icono SVG para {{name}}","style.pack.resetIcon":"Restaurar icono predeterminado","style.pack.iconSaved":"Icono guardado","style.pack.iconInvalid":"Elige un icono SVG válido sin recursos externos (hasta 256 KB).","style.pack.iconSaveFailed":"No se pudo guardar el icono. Inténtalo de nuevo.","style.pack.selectionListTitle":"Estilos para el texto seleccionado","style.pack.selectionListDesc":"Mejora la gramática, la claridad y el formato del texto escrito seleccionado, sin reconocimiento de voz. Elige por separado su estilo e instrucciones.","style.pack.dictationTab":"Estilos de grabación / ASR","style.pack.selectionTab":"Mejorar selección","style.pack.current":"Actual","style.pack.useForSelection":"Usar para la selección","style.pack.writtenPolish":"Mejora de texto escrito","style.pack.selectionPromptTitle":"Instrucciones para la selección (sin ASR)","style.pack.selectionPromptHint":"Para texto escrito seleccionado por el usuario, no para transcripciones. No lo trates como dictado ni respondas a sus preguntas.","style.pack.selectionPromptEditorDesc":"Edita las instrucciones para mejorar texto escrito seleccionado expresamente por el usuario, sin ASR.","style.pack.dictationPromptEditorDesc":"Edita las instrucciones del estilo de grabación / ASR; la entrada es el texto transcrito tras el dictado.","style.pack.dictationPromptTitle":"Instrucciones para grabación / ASR","style.pack.dictationPromptHint":"Para texto reconocido tras el dictado. Define aquí reglas para limpiar el lenguaje oral, corregir errores del ASR y restaurar términos.","style.pack.selectionPromptFallback":"Todavía no hay instrucciones para texto escrito; se usará una configuración predeterminada segura.","style.pack.selectionActivated":"«{{name}}» se usará para mejorar la selección.","style.pack.selectionActivateFailed":"No se pudo cambiar el estilo de la selección: {{err}}","style.pack.selectionChars":"{{count}} caracteres","style.pack.kicker":"PAQUETES DE ESTILOS","style.pack.title":"Paquetes de estilos","style.pack.desc":"Administra tus paquetes de estilos locales.","style.pack.marketplaceBtn":"Catálogo","style.pack.loadFailed":"No se pudieron cargar los paquetes de estilos: {{err}}","style.pack.importZip":"Importar ZIP","style.pack.exportZip":"Exportar ZIP","style.pack.exportShort":"Exportar","style.pack.publishMarketplace":"Publicar en el catálogo","style.pack.updateMarketplace":"Actualizar versión del catálogo","style.pack.publishDisabledHint":"Primero configura tu inicio de sesión de GitHub en Ajustes → Catálogo","style.pack.publishSuccess":"Publicado; pendiente de revisión en el catálogo","style.pack.publishFailed":"No se pudo publicar: {{err}}","style.pack.publishBuiltinRejected":"Los paquetes incluidos no se pueden publicar. Primero crea una copia desde el editor.","style.pack.builtin":"Incluido","style.pack.imported":"Importado","style.pack.active":"Activo","style.pack.activate":"Activar","style.pack.edit":"Editar","style.pack.closeEditor":"Cerrar","style.pack.unsaved":"Sin guardar","style.pack.listTitle":"Paquetes locales","style.pack.listDesc":"Explora y cambia de paquete.","style.pack.listCount":"{{count}} paquetes","style.pack.addPackTileTitle":"Nuevo paquete","style.pack.addPackTileHint":"Empieza con una plantilla en blanco.","style.pack.createSuccess":"Se ha creado el paquete.","style.pack.createFailed":"No se pudo crear el paquete: {{err}}","style.pack.save":"Guardar","style.pack.revert":"Revertir","style.pack.saveSuccess":"Paquete de estilos guardado.","style.pack.saveFailed":"No se pudo guardar el paquete: {{err}}","style.pack.activateSuccess":"«{{name}}» es ahora el paquete actual.","style.pack.activateFailed":"No se pudo cambiar el paquete actual: {{err}}","style.pack.importSuccess":"Se ha importado «{{name}}».","style.pack.importFailed":"No se pudo importar el ZIP: {{err}}","style.pack.exportSuccess":"Exportado a {{path}}","style.pack.exportFailed":"No se pudo exportar el ZIP: {{err}}","style.pack.exportDirtyFirst":"Guarda este paquete antes de exportarlo como ZIP.","style.pack.resetBuiltin":"Restablecer","style.pack.resetSuccess":"Se ha restablecido «{{name}}».","style.pack.resetFailed":"No se pudo restablecer el paquete: {{err}}","style.pack.deleteImported":"Eliminar","style.pack.deleteConfirm":"¿Eliminar «{{name}}»? Esta acción no se puede deshacer.","style.pack.deleteSuccess":"Se ha eliminado «{{name}}».","style.pack.deleteFailed":"No se pudo eliminar el paquete: {{err}}","style.pack.summaryCurrentEmpty":"Todavía no hay ningún paquete seleccionado","style.pack.editorTitle":"Editar paquete","style.pack.editorDesc":"Edita este paquete.","style.pack.metaTitle":"Información de instalación","style.pack.metaSource":"Origen","style.pack.metaBaseMode":"Modo base","style.pack.metaUpdatedAt":"Actualizado","style.pack.fieldName":"Nombre","style.pack.fieldAuthor":"Autor","style.pack.fieldAuthorPlaceholder":"Etiqueta de origen opcional","style.pack.fieldVersion":"Versión","style.pack.fieldTags":"Etiquetas","style.pack.fieldTagsPlaceholder":"Etiquetas separadas por comas, p. ej., comunidad, locución, formal","style.pack.fieldDescription":"Descripción","style.pack.fieldModel":"Modelo recomendado (metadatos)","style.pack.fieldModelPlaceholder":"Opcional, p. ej., gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"Solo metadatos. No cambia el modelo.","style.pack.fieldCompatibility":"Versión compatible de la aplicación","style.pack.fieldCompatibilityPlaceholder":"Opcional, p. ej., >=1.3.0","style.pack.fullPromptTitle":"Instrucciones del sistema","style.pack.fullPromptHint":"Las instrucciones propias de este paquete.","style.pack.promptChars":"{{count}} caracteres","style.pack.runtimeTitle":"Directivas de ejecución de OpenLess","style.pack.runtimeDesc":"Complementos de ejecución de solo lectura.","style.pack.runtimeContextTitle":"Información de contexto","style.pack.runtimeContextDesc":"Del idioma y el contexto de la aplicación","style.pack.runtimeContextEmpty":"No se añade en esta vista previa.","style.pack.runtimeHotwordTitle":"Bloque de palabras clave","style.pack.runtimeHotwordDesc":"De las palabras clave activadas","style.pack.runtimeHotwordEmpty":"No se añade en esta vista previa.","style.pack.runtimeHistoryTitle":"Reglas para el historial de conversación","style.pack.runtimeHistoryDesc":"Solo para la mejora del texto en varias intervenciones","style.pack.runtimeHistoryEmpty":"Solo se añade si hay intervenciones anteriores.","style.pack.runtimeActive":"Activo","style.pack.runtimeInactive":"Inactivo","style.pack.runtimePreviewFailed":"No se pudo generar la vista previa de ejecución: {{err}}","style.pack.runtimePreviewOmittedFrontApp":"La vista previa omite la etiqueta de la aplicación activa.","style.pack.examplesTitle":"Ejemplos de resultados","style.pack.examplesDesc":"Se exportan con el paquete.","style.pack.addExample":"Añadir ejemplo","style.pack.examplesEmpty":"Todavía no hay ejemplos.","style.pack.exampleTitlePlaceholder":"Título del ejemplo {{index}}","style.pack.exampleInput":"Entrada","style.pack.exampleOutput":"Salida","style.pack.examplesCount":"{{count}} ejemplos","style.pack.discardCloseConfirm":"¿Descartar los cambios sin guardar y cerrar el editor?","style.pack.discardSwitchConfirm":"¿Descartar los cambios sin guardar y cambiar a «{{name}}»?","style.pack.derivativeBadge":"Basado en @{{login}}","translation.searchLanguages":"Buscar idiomas…","translation.noMatchingLanguages":"No se encontraron idiomas","translation.selectedLanguages":"{{count}} idiomas seleccionados","translation.languageSupportHint":"Los idiomas de reconocimiento disponibles dependen del proveedor. Los idiomas de traducción son independientes del idioma de la aplicación.","translation.kicker":"TRADUCCIÓN","translation.title":"Traducción","translation.desc":"Traduce automáticamente las grabaciones a otro idioma antes de insertar el texto.","translation.statusEnabled":"Activada","translation.statusDisabled":"Desactivada","translation.working.title":"Idiomas habituales","translation.working.desc":"Selecciona los idiomas que usas a menudo para mejorar la redacción y la traducción.","translation.target.title":"Idioma de destino","translation.target.desc":"Pulsa Mayús mientras grabas para traducir. Con «Desactivada», Mayús no hace nada.","translation.target.disabled":"Desactivada (Mayús no hace nada)","translation.target.sameAsWorking":"El destino coincide con tu único idioma habitual, por lo que la traducción no tendrá efecto: Mayús solo mejorará el texto. Elige otro destino o añade otro idioma habitual arriba.","translation.style.title":"Estilo de traducción","translation.style.desc":"Hereda automáticamente el paquete activo de la página Estilo.","translation.style.unavailable":"No disponible","translation.save.workingFailed":"No se pudieron guardar los idiomas habituales. Inténtalo de nuevo.","translation.save.targetFailed":"No se pudo guardar el idioma de destino. Inténtalo de nuevo.","translation.save.hotkeyRegisterFailed":"No se pudo registrar el atajo de traducción. La preferencia no se ha guardado.","translation.save.hotkeySaveFailed":"No se pudo guardar el atajo de traducción. Inténtalo de nuevo.","translation.howto.title":"Cómo usarlo","translation.howto.step1":"Coloca el cursor en cualquier campo de texto.","translation.howto.step2":"Pulsa {{trigger}} para empezar a grabar.","translation.howto.step3":"Pulsa {{shortcut}} una vez durante la grabación para activar la traducción.","translation.howto.step4":"Vuelve a pulsar {{trigger}} para detenerla.","translation.howto.step5":"La traducción se insertará donde esté el cursor.","translation.howto.indicatorTitle":"Cómo saber si la traducción está activada","translation.howto.indicatorDesc":"Después de pulsar Mayús, aparece un indicador azul de «Traduciendo» en la parte inferior de la pantalla.","translation.howto.fallbackTitle":"Alternativa en caso de error","translation.howto.fallbackDesc":"Si la traducción falla, se inserta la transcripción original.","selectionAsk.title":"Preguntar sobre una selección","selectionAsk.desc":"Selecciona texto y pregunta por voz, con preguntas de seguimiento.","selectionAsk.shortcutSettings":"Ajustes de atajos","selectionAsk.guide.openTitle":"Abre el panel","selectionAsk.guide.openDesc":"Pulsa {{hotkey}} para empezar una conversación.","selectionAsk.guide.unsetDesc":"Primero asigna un atajo para preguntar sobre una selección en Ajustes de atajos.","selectionAsk.guide.selectTitle":"Selecciona un texto que quieras explorar","selectionAsk.guide.askTitle":"Di tu pregunta","selectionAsk.guide.askDesc":"Pulsa {{recordHotkey}} para grabar y vuelve a pulsarlo para enviar.","selectionAsk.guide.followup":"Usa de nuevo el atajo de grabación para hacer otra pregunta.","selectionAsk.guide.dismiss":"Cierra el panel y termina esta conversación","selectionAsk.hotkey.title":"Atajo para abrir el panel","selectionAsk.save.historySaveFailed":"No se pudo guardar la preferencia de historial de preguntas. Inténtalo de nuevo.","selectionAsk.history.title":"Guardar historial","selectionAsk.history.desc":"Guarda las conversaciones en este dispositivo. Desactivado de forma predeterminada.","selectionAsk.howto.title":"Cómo usarlo","selectionAsk.howto.step2":"Selecciona texto en cualquier aplicación.","settings.selectionWorkspace.title":"Asistente de selección","settings.selectionWorkspace.hint":"Selecciona texto y usa un solo atajo: mejora el texto si la edición por voz está desactivada; si está activada, mantén pulsado y habla, y luego elige Preguntar o Editar.","settings.selectionWorkspace.polishHotkey":"Atajo del asistente de selección","settings.selectionWorkspace.polishHotkeyDesc":"Mejora el texto directamente sin edición por voz; con ella activada, mantén pulsado para hablar. La grabación sigue los ajustes generales.","settings.selectionWorkspace.polishDelivery":"Tratamiento del resultado","settings.selectionWorkspace.voiceDeliveryDesc":"Tras editar por voz, reemplaza la selección directamente o revisa el resultado en el panel de preguntas antes de confirmar.","settings.selectionWorkspace.voiceEnable":"Edición por voz","settings.selectionWorkspace.voiceEnableDesc":"Usa el mismo atajo de arriba. La grabación sigue los ajustes generales (actual: {{recordingLabel}}).","settings.selectionWorkspace.autoIntent":"Detectar intención automáticamente","settings.selectionWorkspace.autoIntentDesc":"El modelo configurado distingue entre preguntas y ediciones. Si falla, se recurre a las palabras interrogativas.","settings.selectionWorkspace.editKeywords":"Indicadores adicionales de pregunta","settings.selectionWorkspace.editKeywordsDesc":"Solo si la detección automática está desactivada. Escribe un indicador por línea para forzar Preguntar; en otros casos se usan «?» y palabras interrogativas.","settings.selectionPolish.title":"Mejorar selección","settings.selectionPolish.hotkey":"Atajo de activación","settings.selectionPolish.hotkeyDesc":"El atajo entra en vigor de inmediato. Se rechazan los conflictos con la grabación, las preguntas y otros atajos globales.","settings.selectionPolish.delivery":"Tratamiento del resultado","settings.selectionPolish.hint":"Actívalo después de seleccionar texto. No requiere micrófono ni ASR y utiliza el paquete de estilos actual con sus instrucciones para selecciones.","settings.selectionPolish.directReplace":"Reemplazar directamente","settings.selectionPolish.directReplaceHint":"Reemplaza de forma segura la selección original cuando el modelo termina.","settings.selectionPolish.previewConfirm":"Revisar y confirmar","settings.selectionPolish.previewConfirmHint":"Revisa el resultado en una ventana editable y confirma para reemplazar la selección original.","settings.kicker":"AJUSTES","settings.title":"Ajustes","settings.desc":"Grabación, proveedores, atajos y permisos.","settings.network.title":"Red","settings.network.useSystemProxyLabel":"Usar proxy del sistema","settings.network.useSystemProxyDesc":"Al activarlo, las solicitudes usan el proxy del sistema. Al desactivarlo, se conectan directamente, lo que suele reducir la latencia con servicios locales, pero puede impedir el acceso a GitHub y las actualizaciones en algunas regiones. No afecta a los flujos de voz en tiempo real ni a Less Computer.","settings.dataStorage.title":"Almacenamiento de datos","settings.dataStorage.desc":"Historial de conversaciones y contexto guardados en este dispositivo.","settings.dataStorage.cursorContextLabel":"Contexto del cursor (experimental)","settings.dataStorage.cursorContextDesc":"Al mejorar el texto, lee lo que rodea al cursor en el documento para distinguir homófonos, nombres propios y pronombres. Si se activa, ese texto se envía al proveedor LLM configurado junto con la solicitud. Si se desactiva, no se lee nada. Nunca se leen campos de contraseña, Entrada Segura, gestores de contraseñas ni terminales. Solo macOS.","settings.codingConsole.title":"Consola de Claude","settings.codingConsole.desc":"Detecta Claude Code y MCP para controlar el ordenador. Ejecuta Claude sin interfaz, con límites de seguridad, y consulta la salida progresiva y el coste.","settings.codingConsole.guardNote":"Las acciones reversibles se permiten de forma predeterminada. Se bloquean comandos de alto riesgo como rm -rf, sudo y force push. Si el directorio es un repositorio Git, se crea una instantánea antes de cada ejecución para poder revertirla.","settings.codingConsole.status":"Estado","settings.codingConsole.detect":"Detectar","settings.codingConsole.detecting":"Detectando…","settings.codingConsole.installed":"Claude detectado","settings.codingConsole.notInstalled":"No se encontró claude","settings.codingConsole.notInstalledHint":"Instala primero Claude Code (consulta docs.anthropic.com/claude-code) o introduce abajo la ruta completa de su ejecutable.","settings.codingConsole.mcpServers":"{{count}} servidores MCP configurados","settings.codingConsole.computerUsePresent":"MCP de control del escritorio configurado","settings.codingConsole.computerUseAbsent":"Sin MCP de control del escritorio; no es necesario para acciones sencillas como copiar y pegar mediante Bash","settings.codingConsole.exePath":"Ejecutable","settings.codingConsole.workdir":"Directorio de trabajo","settings.codingConsole.workdirDesc":"Opcional. Claude se ejecutará en este directorio. Si es un repositorio Git, se creará una instantánea antes de ejecutarse para poder revertir los cambios.","settings.codingConsole.workdirPlaceholder":"Vacío = ejecutar en un directorio temporal","settings.codingConsole.permissionMode":"Modo de permisos","settings.codingConsole.mode.acceptEdits":"Permitir acciones reversibles","settings.codingConsole.mode.plan":"Solo lectura / plan","settings.codingConsole.mode.default":"Predeterminado (preguntar siempre)","settings.codingConsole.mode.bypassPermissions":"Omitir todos los permisos (riesgoso)","settings.codingConsole.promptPlaceholder":"Pide algo a Claude, por ejemplo, listar los archivos del directorio actual","settings.codingConsole.run":"Ejecutar","settings.codingConsole.running":"Ejecutando…","settings.codingConsole.cancel":"Cancelar","settings.codingConsole.clear":"Borrar","settings.codingConsole.riskWarn":"Intención de alto riesgo detectada: {{reason}}. La protección bloquea los comandos de alto riesgo al ejecutarlos.","settings.codingConsole.toolUse":"herramienta {{name}}","settings.codingConsole.done":"Hecho","settings.codingConsole.doneCost":"Hecho · coste ${{cost}}","settings.codingConsole.cancelled":"Cancelado","settings.codingConsole.outputPlaceholder":"La salida aparecerá aquí progresivamente…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"Mantén pulsada una tecla y habla para que el agente elegido actúe en tu ordenador. Solo macOS.","settings.codingAgent.enable":"Activar Less Computer","settings.codingAgent.comingSoonNote":"La configuración se guarda ahora; la activación por atajo y el flujo de ejecución llegarán en una versión posterior.","settings.codingAgent.hotkeyHint":"Mantén pulsado el atajo para hablar. Al soltarlo, el agente elegido mostrará el resultado en la cápsula.","settings.codingAgent.voiceHotkey":"Tecla para mantener pulsada y hablar","settings.codingAgent.voiceHotkeyDesc":"Mantén pulsado para hablar y suelta para ejecutar. Admite Ctrl, Option o Fn por separado. Consulta sus funciones en los ajustes avanzados.","settings.codingAgent.provider":"Motor del agente","settings.codingAgent.opencodeReady":"OpenCode v{{version}} detectado.","settings.codingAgent.opencodeMissing":"No se encontró el comando opencode. Instálalo con npm i -g opencode-ai e inicia sesión con opencode auth login antes de usarlo.","settings.codingAgent.cliReady":"Se ha detectado {{name}} v{{version}}.","settings.codingAgent.cliMissing":"No se encontró el comando {{name}}. Instálalo e inicia sesión primero, o introduce su ruta absoluta en Ejecutable.","settings.codingAgent.sandboxGuardHint":"Este motor solo ofrece niveles generales de aislamiento, sin una lista de comandos de alto riesgo. Al alcanzar un límite, muestra el error en lugar de una tarjeta para aprobar el comando.","settings.codingAgent.codexModelHint":"Introduce un modelo de Codex (p. ej., gpt-5). Déjalo vacío para usar ~/.codex/config.toml.","settings.codingAgent.codexBudgetHint":"Codex no permite fijar un presupuesto en USD por ejecución; el coste depende de tu proveedor configurado.","settings.codingAgent.codexMode.plan":"Solo lectura / plan","settings.codingAgent.codexMode.workspaceWrite":"Permitir escritura en el espacio de trabajo","settings.codingAgent.codexModelPlaceholder":"Vacío = predeterminado de Codex","settings.codingAgent.dshModelHint":"El perfil sin interfaz de dsh no permite cambiar el modelo. Se usa el definido en el propio perfil de dsh.","settings.codingAgent.panelHotkey":"Atajo del panel (agente por voz)","settings.codingAgent.panelHotkeyDesc":"Graba voz → ASR → Claude → salida progresiva en un panel. Predeterminado: Cmd/Ctrl+Shift+Enter.","settings.codingAgent.quickHotkey":"Atajo de acción rápida","settings.codingAgent.quickHotkeyDesc":"Envía el texto seleccionado a Claude y devuelve el resultado al cursor. Sin panel y más rápido.","settings.codingAgent.model":"Modelo","settings.codingAgent.modelPlaceholder":"Predeterminado: sonnet","settings.codingAgent.modelDefault":"Predeterminado (sonnet automático)","settings.codingAgent.modelHint":"Haiku = más rápido · Sonnet = equilibrado · Opus = más potente","settings.codingAgent.opencodeModelDefault":"Usar el modelo predeterminado de OpenCode","settings.codingAgent.opencodeModelHint":"Obtiene automáticamente los proveedores y modelos disponibles para tu cuenta de OpenCode y guarda la selección de inmediato.","settings.codingAgent.opencodeModelsRefresh":"Actualizar modelos","settings.codingAgent.opencodeModelsRefreshing":"Obteniendo modelos de OpenCode…","settings.codingAgent.opencodeModelsLoaded":"Se han obtenido {{count}} modelos.","settings.codingAgent.opencodeModelsEmpty":"No se recibieron modelos. Inicia sesión en OpenCode o configura primero un proveedor de modelos.","settings.codingAgent.opencodeModelsError":"No se pudieron obtener los modelos: {{message}}","settings.codingAgent.exe":"Ruta del ejecutable","settings.codingAgent.openPanel":"Prueba con texto","settings.codingAgent.openPanelHint":"Abre el panel de Less Computer para comprobar el agente y el modelo actuales usando texto.","settings.codingAgent.openPanelAction":"Abrir Less Computer","settings.debug.cursorLabel":"Cursor","settings.debug.title":"Herramientas de depuración","settings.debug.desc":"Para investigar problemas de reconocimiento. Desactivadas de forma predeterminada.","settings.debug.cursorProbeLabel":"Comprobar contexto del cursor","settings.debug.cursorProbeDesc":"Pulsa y, antes de que termine la cuenta atrás, cambia a la aplicación de destino y selecciona un campo de texto. Se leerá el texto que rodea al cursor para comprobar qué aplicaciones permiten la lectura y cuáles bloquean las protecciones. Una sola lectura, sin enviarla a ningún proveedor.","settings.debug.cursorProbeBtn":"Comprobar en 5 s","settings.debug.cursorProbeCountdown":"Se leerá en {{n}}s…","settings.marketplace.title":"Catálogo","settings.marketplace.desc":"Identidad de autor para subir paquetes al catálogo. Explora e instala estilos en la página Estilos.","settings.marketplace.github.signIn":"Iniciar sesión con GitHub","settings.marketplace.github.signedIn":"Sesión iniciada con GitHub","settings.marketplace.github.signedOut":"Inicia sesión para subir estilos y marcar paquetes con «Me gusta».","settings.marketplace.github.signOut":"Cerrar sesión","settings.marketplace.github.starting":"Iniciando sesión…","settings.marketplace.github.codeHint":"Introduce este código en la página de GitHub que se acaba de abrir:","settings.marketplace.github.openGithub":"Abrir GitHub","settings.marketplace.github.waiting":"GitHub abierto; la sesión se iniciará cuando autorices el acceso…","settings.marketplace.github.failed":"No se pudo iniciar sesión. Inténtalo de nuevo","settings.recording.title":"Grabación y entrada","settings.recording.desc":"Atajo global de grabación y modo de activación.","settings.recording.hotkeyLabel":"Atajo de grabación","settings.recording.hotkeyDescAcc":"Pulsa para grabar voz desde cualquier aplicación (requiere permiso de Accesibilidad).","settings.recording.hotkeyDescNoAcc":"Pulsa para grabar voz desde cualquier aplicación.","settings.recording.modeLabel":"Modo de activación","settings.recording.modeDesc":"Alternar: pulsa una vez para iniciar y otra para detener. Mantener para hablar: graba mientras mantienes pulsado.","settings.recording.modeToggle":"Alternar","settings.recording.modeHold":"Mantener para hablar","settings.recording.modeAuto":"Automático","settings.recording.silenceAutoStopLabel":"Detener tras un silencio","settings.recording.silenceAutoStopDesc":"Solo en modo Alternar. Después de detectar voz, detiene y envía la grabación cuando el silencio dura el tiempo elegido. Desactivado de forma predeterminada; puedes seguir pulsando el atajo o Esc.","settings.recording.silenceAutoStopSecondsLabel":"Duración del silencio","settings.recording.silenceAutoStopSecondsValue":"{{value}}s","settings.recording.migrationNoticeTitle":"El modo de grabación predeterminado ahora es Alternar","settings.recording.migrationNoticeDesc":"Esta actualización cambia el modo predeterminado. Si prefieres mantener pulsado para hablar, cámbialo aquí.","settings.recording.microphoneLabel":"Micrófono preferido","settings.recording.microphoneDesc":"Elige el dispositivo de entrada preferido. Si no está disponible, se usará el predeterminado del sistema.","settings.recording.microphoneDefault":"Micrófono predeterminado del sistema","settings.recording.microphoneDefaultDesc":"Usar el dispositivo de entrada predeterminado del sistema","settings.recording.microphoneSystemDefault":"predeterminado del sistema","settings.recording.microphoneUnavailable":"no disponible","settings.recording.microphoneLoadError":"No se pudieron cargar los micrófonos: {{message}}","settings.recording.microphoneDialogTitle":"Micrófono","settings.recording.microphoneDialogDesc":"Elige un micrófono que pueda captar tu voz.","settings.recording.microphoneMonitorError":"No se pudo supervisar el nivel de entrada: {{message}}","settings.recording.capsuleLabel":"Cápsula de grabación","settings.recording.capsuleDesc":"Muestra una cápsula en la parte inferior de la pantalla mientras grabas.","settings.recording.capsuleStyleTypeless":"Estilo compacto Typeless","settings.recording.capsuleStyleLabel":"Estilo de cápsula","settings.recording.capsuleStyleSiri":"Estilo luminoso Siri","settings.recording.capsuleStyleClassic":"Estilo predeterminado de OpenLess","settings.recording.muteDuringRecordingLabel":"Silenciar durante la grabación","settings.recording.muteDuringRecordingDesc":"Silencia temporalmente el sonido del sistema durante la entrada de voz para evitar el eco de los altavoces.","settings.recording.audioCueLabel":"Sonido al iniciar la grabación","settings.recording.audioCueDesc":"Reproduce un breve sonido sintetizado al pulsar el atajo para empezar a grabar, incluso si la cápsula está oculta.","settings.recording.audioCuePreview":"Escuchar","settings.recording.insertGroupTitle":"Inserción y portapapeles","settings.recording.restoreClipboardLabel":"Restaurar el portapapeles tras insertar","settings.recording.restoreClipboardDesc":"Restaura el contenido original del portapapeles después de pegar correctamente (solo Windows / Linux).","settings.recording.pasteShortcutLabel":"Atajo de pegado simulado","settings.recording.pasteShortcutDesc":"Combinación que se simula al insertar. Algunos terminales necesitan Ctrl+Shift+V (solo Windows / Linux).","settings.recording.pasteShortcutCtrlV":"Ctrl+V (predeterminado / mayoría de aplicaciones)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V (kitty / alacritty / wezterm / mayoría de terminales)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert (xterm / urxvt)","settings.recording.comboRecordLabel":"Grabar atajo","settings.recording.comboRecordDesc":"Pulsa aquí y después la combinación deseada (p. ej., ⌘⇧D). Admite los modos Alternar y Mantener para hablar.","settings.recording.comboRecordBtn":"Grabar atajo","settings.recording.comboResetBtn":"Restablecer","settings.recording.comboMenuToggle":"Más opciones","settings.recording.comboDisableHint":"No se puede desactivar el atajo principal: la grabación necesita un atajo","settings.recording.comboRecordHint":"Pulsa tu combinación de teclas…","settings.recording.comboNeedKey":"Usa una combinación de teclas (p. ej., ⌘⇧J); no basta con una tecla modificadora","settings.recording.comboRecorded":"Atajo registrado","settings.recording.comboClear":"Borrar","settings.recording.comboConflict":"Esta combinación de teclas no está disponible","settings.recording.allowNonTsfFallbackLabel":"Permitir alternativa sin TSF","settings.recording.allowNonTsfFallbackDesc":"Windows: si falla la inserción TSF, usa SendInput Unicode con pausas. Si también falla, copia el texto al portapapeles.","settings.recording.windowsInsertionModeLabel":"Método de inserción en Windows","settings.recording.windowsInsertionModeDesc":"Cómo se inserta el dictado donde está el cursor. El pegado usa el atajo simulado de arriba y conserva los saltos de línea.","settings.recording.windowsInsertionModeTsf":"IME TSF (predeterminado)","settings.recording.windowsInsertionModeSendInput":"Simulación de teclas con SendInput","settings.recording.windowsInsertionModePaste":"Pegado desde el portapapeles (Ctrl+V, etc.)","settings.recording.macosNewlineModeLabel":"Saltos de línea","settings.recording.macosNewlineModeDesc":"Automático usa Line Feed (U+000A / Ctrl+J) en terminales conocidos y Shift+Return en otras aplicaciones. Return por sí solo envía el mensaje.","settings.recording.macosNewlineModeAuto":"Automático (Line Feed en terminales)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return (salto de línea en chats)","settings.recording.macosNewlineModeLineFeed":"Line Feed (CLI del terminal / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return (dividir en mensajes)","settings.recording.windowsSendInputNewlineModeLabel":"Simulación de saltos de línea con SendInput","settings.recording.windowsSendInputNewlineModeDesc":"Cómo convierte SendInput los saltos de línea en teclas. Usa Shift+Enter en chats e Enter en Bloc de notas, VS Code y la mayoría de editores.","settings.recording.windowsSendInputNewlineModeEnter":"Enter (mayoría de editores)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter (campos de chat)","settings.recording.windowsSendInputNewlineModeCrLf":"Unicode CR+LF","settings.recording.windowsShowOpenlessInKeyboardListLabel":"Mostrar OpenLess en la lista de teclados","settings.recording.windowsShowOpenlessInKeyboardListDesc":"Al desactivarlo, Win+Space no pasará por OpenLess. No afecta a SendInput ni al pegado. Vuelve a activarlo para restaurar la entrada.","settings.recording.windowsShowOpenlessInKeyboardListError":"No se pudo actualizar la lista de teclados: el sistema rechazó el cambio del perfil de idioma de OpenLess.","settings.recording.historyGroupTitle":"Historial y contexto","settings.recording.historyRetentionLabel":"Conservación del historial (días)","settings.recording.historyRetentionDesc":"Al guardar nuevos registros, se eliminan los anteriores a este plazo. 0 = sin eliminación por antigüedad.","settings.recording.historyMaxEntriesLabel":"Máximo de registros","settings.recording.historyMaxEntriesDesc":"Máximo de sesiones guardadas en el dispositivo. Vacío = 200. Intervalo: 5–200.","settings.recording.polishContextWindowLabel":"Ventana de contexto para mejorar texto (minutos)","settings.recording.polishContextWindowDesc":"Usa las transcripciones mejoradas de los últimos N minutos como contexto de varias intervenciones. 0 = desactivado.","settings.recording.recordAudioForDebugLabel":"Conservar grabación original (depuración)","settings.recording.recordAudioForDebugDesc":"Guarda el audio original del micrófono en WAV para investigar problemas de reconocimiento.","settings.recording.audioRecordingMaxEntriesLabel":"Máximo de grabaciones originales","settings.recording.audioRecordingMaxEntriesDesc":"Máximo de archivos WAV guardados en el dispositivo. Vacío = 200.","settings.recording.startupGroupTitle":"Inicio","settings.recording.startMinimizedLabel":"Iniciar minimizado (sin ventana principal)","settings.recording.startMinimizedDesc":"Al iniciar, solo se muestra la barra de menús o la bandeja del sistema, nunca la ventana principal.","settings.recording.autoUpdateCheckLabel":"Buscar actualizaciones automáticamente","settings.recording.autoUpdateCheckDesc":"Busca actualizaciones al iniciar y cada 60 minutos.","settings.recording.marketplaceGroupTitle":"Catálogo de paquetes de estilos","settings.recording.marketplaceBaseUrlLabel":"URL del servidor","settings.recording.marketplaceBaseUrlDesc":"Dirección del servidor del catálogo. Vacío = predeterminada.","settings.recording.marketplaceDevLoginLabel":"Usuario de GitHub (identidad de autor)","settings.recording.marketplaceDevLoginDesc":"Identifica a quien sube los paquetes. Si está vacío, no podrás subir ni marcar «Me gusta».","settings.recording.startupAtBoot":"Abrir al iniciar sesión","settings.recording.startupAtBootDesc":"Inicia OpenLess automáticamente cuando inicies sesión.","settings.recording.startupAtBootError":"No se pudo cambiar el inicio automático: {{message}}","settings.channels.backToList":"Volver a los canales","settings.channels.done":"Hecho","settings.channels.llmTitle":"Canales de procesamiento de texto","settings.channels.asrTitle":"Canales de reconocimiento de voz","settings.channels.current":"En uso","settings.channels.enabled":"Activado","settings.channels.disabled":"Desactivado","settings.channels.enabledFor":"Activar {{name}}","settings.channels.modelNotSet":"No se ha indicado ningún modelo","settings.channels.localModelManaged":"Modelo administrado por el sistema o por Modelos locales","settings.channels.lastCheck":"Última comprobación","settings.channels.verifying":"Comprobando…","settings.channels.notVerified":"Sin comprobar","settings.channels.passed":"Comprobación correcta","settings.channels.failed":"Comprobación fallida · {{reason}}","settings.channels.elapsed":"Duración: {{ms}} ms","settings.channels.staleResult":"El resultado tiene más de 24 horas","settings.channels.connectionTitle":"Conexión al servicio","settings.channels.modelTitle":"Ajustes del modelo","settings.channels.modelHint":"Escribe el nombre de un modelo u obtén los modelos de tu proveedor y elige uno.","settings.channels.availableModels":"Modelos disponibles","settings.channels.validationTitle":"Comprobación de conexión","settings.channels.validationHint":"Envía manualmente una solicitud real para comprobar la configuración. Puede consumir saldo del servicio. Guardar los ajustes no ejecuta esta comprobación.","settings.channels.autoSaveHint":"Los cambios se guardan automáticamente. Después de configurar el servicio, puedes comprobar la conexión.","settings.channels.nameHint":"El nombre permite distinguir canales del mismo proveedor. No afecta al modelo ni a la conexión.","settings.channels.errModel":"Modelo","settings.channels.verify":"Verificar","settings.channels.verifyHint":"Hace una llamada real a la API para comprobar si este canal funciona ahora","settings.channels.errTimeout":"tiempo agotado","settings.channels.errNetwork":"red","settings.channels.errEndpoint":"dirección","settings.channels.errGeneric":"fallo","settings.channels.dragHint":"Arrastra para cambiar la prioridad","settings.channels.orderHint":"Se usa el primer canal activado. Arrastra para reordenar; los canales desactivados pasan al final.","settings.channels.empty":"Todavía no hay canales. Elige «Añadir canal» para conectar tu primer servicio.","settings.channels.add":"Añadir canal","settings.channels.edit":"Editar","settings.channels.createTitle":"Añadir canal","settings.channels.editTitle":"Editar canal","settings.channels.providerLabel":"Proveedor","settings.channels.nameLabel":"Nombre del canal (opcional)","settings.channels.namePlaceholder":"P. ej., SiliconFlow — clave principal","settings.channels.create":"Crear","settings.channels.delete":"Eliminar canal","settings.channels.deleteConfirm":"También se borrarán las claves guardadas para este canal.","settings.channels.confirmDelete":"Eliminar","settings.channels.justNow":"ahora mismo","settings.channels.minutesAgo":"hace {{count}}min","settings.channels.hoursAgo":"hace {{count}}h","settings.channels.daysAgo":"hace {{count}}d","settings.channels.localEngineModelHint":"Descarga y cambia modelos locales en Servicios y modelos de IA → Modelos locales.","settings.providers.localEngineNoCredentials":"Los motores locales no necesitan una clave API ni una dirección.","settings.providers.localModelLabel":"Modelo local","settings.providers.localModelEmpty":"Todavía no se ha descargado ningún modelo local","settings.providers.appleSpeechLocalNote":"Apple Speech usa el motor integrado del sistema; no es necesario elegir un modelo.","settings.providers.localEngineNote":"Puedes elegir los modelos descargados en la lista de arriba. Descarga y administra otros desde Modelos locales.","settings.providers.localTag":"Local","settings.providers.llmTitle":"LLM (mejora del texto)","settings.providers.llmDesc":"Protocolo compatible con OpenAI. Admite varios proveedores.","settings.providers.providerLabel":"Proveedor","settings.providers.llmProviderDesc":"Al elegir un preajuste, se completa la URL base predeterminada.","settings.providers.credentialStorageNotice":"Las credenciales se guardan en el almacén seguro del sistema operativo.","settings.providers.codexOAuthNotice":"Codex OAuth usa la sesión local de Codex (~/.codex/auth.json). OpenLess no guarda una clave API ni una URL base para este proveedor.","settings.providers.asrProviderDesc":"Al cambiar de proveedor, se cargan automáticamente sus credenciales.","settings.providers.asrTitle":"ASR (transcripción)","settings.providers.asrDesc":"Convierte las grabaciones de voz en texto.","settings.providers.omniTitle":"Modelo multimodal","settings.providers.omniDesc":"Un modelo convierte directamente el audio y las instrucciones en el texto final (flujo experimental).","settings.providers.pipelineModeLabel":"Modo de procesamiento","settings.providers.pipelineModeHint":"Tradicional: dos etapas, ASR + LLM. Multimodal: una sola pasada con un modelo que admite audio.","settings.providers.pipelineModeTraditional":"Tradicional","settings.providers.pipelineModeMultimodal":"Multimodal","settings.providers.pipelineIsolationNotice":"Cada modo conserva sus propias credenciales. Al cambiar, las del otro modo se guardan sin usarse y se restauran cuando vuelves.","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"TokenHub de Tencent Cloud","settings.providers.presets.customChatCompletions":"Personalizado · Chat Completions","settings.providers.presets.customResponses":"Personalizado · Responses","settings.providers.presets.customMessages":"Personalizado · Messages","settings.providers.presets.ark":"ARK (Volcengine Ark)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"SiliconFlow","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"Xiaomi MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter (modelos gratuitos)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"Alibaba Cloud Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax (M3)","settings.providers.presets.stepfun":"StepFun","settings.providers.presets.custom":"Personalizado","settings.providers.presets.asrVolcengine":"Volcengine bigasr","settings.providers.presets.asrTencentCloud":"ASR en tiempo real Hunyuan de Tencent Cloud","settings.providers.presets.asrBailian":"Alibaba Bailian ASR en tiempo real","settings.providers.presets.asrBailianQwen3":"Bailian Qwen3 ASR en tiempo real","settings.providers.presets.asrBailianFunAsrFlash":"Bailian Fun-ASR-Flash (archivo grabado)","settings.providers.presets.asrSiliconflow":"SiliconFlow SenseVoice","settings.providers.presets.asrStepfun":"StepFun StepAudio ASR","settings.providers.presets.asrZhipu":"Zhipu GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper (compatible)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"Personalizado compatible con OpenAI","settings.providers.presets.asrXiaomiMimo":"Xiaomi MiMo ASR","settings.providers.presets.asrIflytek":"iFlytek ASR en tiempo real","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"sherpa-onnx local (experimental)","settings.providers.presets.asrFoundryLocalWhisper":"Whisper local (Foundry Local)","settings.providers.presets.asrLocalWhisper":"Whisper local (por lotes)","settings.providers.presets.asrLocalQwen3":"Qwen3-ASR local","settings.providers.presets.asrLocalQwen3Mlx":"Qwen3-ASR local (MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"Qwen3-ASR local (C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple Speech (macOS)","settings.providers.presets.omniOpenai":"OpenAI (con audio)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"Alibaba DashScope Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs sube el audio grabado a la dirección configurada para transcribirlo por lotes.","settings.providers.zenmuxVocabularyNote":"ZenMux usa un protocolo de transcripción JSON y no recibe las palabras clave del diccionario (prompt/hotwords). El diccionario sigue interviniendo en la mejora del texto, pero no influye en el reconocimiento de voz.","settings.providers.asrAdvancedNote":"Las opciones avanzadas de abajo solo afectan a los preajustes Personalizado compatible con OpenAI y ZenMux. Los demás conservan su comportamiento integrado.","settings.providers.asrAdvancedVerboseJsonLabel":"Métricas por segmento (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"Solicita métricas por segmento para filtrar alucinaciones si el servidor lo admite. Déjalo desactivado en servidores propios que no las admitan.","settings.providers.asrAdvancedChunkLabel":"Duración del fragmento (ms)","settings.providers.asrAdvancedChunkHint":"0 = sin dividir; envía la grabación completa. La división es útil para grabaciones largas o servidores con límites de duración por solicitud.","settings.providers.asrAdvancedEnableItnLabel":"Normalización numérica (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"Convierte números y unidades hablados en cifras (p. ej., «dos mil veintiséis» → «2026»). Desactívalo para conservar el texto original.","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"Clave API","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"Modo de autenticación","settings.providers.volcengineAuthModeAppIdToken":"Aplicación anterior (APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"Clave API (consola nueva)","settings.providers.volcengineMappingNote":"Actualmente no se necesita Secret Key. El Resource ID predeterminado es volc.seedasr.sauc.duration.","settings.providers.volcengineApiKeyNote":"Usa una clave API creada en la nueva consola de voz; no necesitas APP ID. Créala en Gestión de claves API: console.volcengine.com/speech/new/setting/apikeys. El Resource ID predeterminado es volc.seedasr.sauc.duration.","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"Clave API","settings.providers.xfyunNote":"Obtén AppID y API Key en la página del servicio de ASR en tiempo real de iFlytek Open Platform. El audio es PCM mono de 16 kHz / 16 bits. La API estándar no admite parámetros de palabras clave; configúralas en la consola de iFlytek. El idioma predeterminado es chino mandarín.","settings.providers.tencentCloudAppIdLabel":"AppID de Tencent Cloud","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"Usa las credenciales del servicio de reconocimiento de voz de Tencent Cloud. El modelo predeterminado Hy-ASR-3.0-preview admite chino, inglés y 20 dialectos; Preview solo acepta PCM mono de 16 kHz de hasta 60 segundos y aún no admite contexto ni refuerzo de palabras clave.","settings.providers.tencentTokenHubNote":"Solo se muestran los modelos de lenguaje disponibles en línea. Algunos modelos usan siempre razonamiento; desactivarlo mantiene el comportamiento fijo de ese modelo.","settings.providers.localAsrActiveNotice":"El ASR local ({{name}}) está activo. Cámbialo o desactívalo desde la pestaña Avanzado.","settings.providers.localAsrTakeoverHint":"Al activar «{{name}}», este sustituirá al proveedor ASR.","settings.providers.asrProviderTakenOver":"Hay un motor local activo. Elige otro proveedor en la lista de arriba para cambiar; el motor local se detendrá automáticamente. Administra modelos en Servicios → Modelos locales.","settings.providers.localAsrHint":"Se ejecuta en este equipo y no necesita clave API. Descarga el modelo desde HuggingFace.","settings.providers.foundryLocalAsrHint":"Se ejecuta en este dispositivo y no necesita clave API de ASR. En el primer uso se descargan el entorno de ejecución y el modelo.","settings.providers.localAsrPerformanceWarning":"La inferencia local es más lenta que el ASR en la nube y puede reconocer el chino con menor precisión. Es adecuada para uso sin conexión o con datos sensibles.","settings.providers.localAsrReady":"{{model}} descargado","settings.providers.localAsrNotReady":"{{model}} sin descargar","settings.providers.localAsrGoDownload":"Abrir Modelos para descargar","settings.providers.localAsrManage":"Abrir Modelos","settings.providers.localAsrDownloadedTitle":"Modelos descargados","settings.providers.localAsrDelete":"Eliminar","settings.providers.fillDefault":"Usar valor predeterminado","settings.providers.readFailed":"No se pudo leer","settings.providers.apiKeyLabel":"Clave API","settings.providers.baseUrlLabel":"URL base","settings.providers.modelLabel":"Modelo","settings.providers.customModelLabel":"Modelo personalizado…","settings.providers.presetListLabel":"Volver a los preajustes","settings.providers.temperatureLabel":"Temperatura","settings.providers.temperaturePlaceholder":"Déjalo vacío para omitirlo. Intervalo: 0–2 inclusive, p. ej., 0.3","settings.providers.extraHeadersLabel":"Cabeceras adicionales","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"Razonamiento","settings.providers.thinkingModeOn":"Activado","settings.providers.thinkingModeOff":"Desactivado","settings.providers.requestFormatLabel":"Formato de solicitud","settings.providers.messagesThinkingLabel":"Modo de razonamiento","settings.providers.thinkingAdaptive":"Adaptativo","settings.providers.thinkingBudget":"Presupuesto fijo","settings.providers.maxTokensLabel":"Máximo de tokens de salida","settings.providers.thinkingBudgetLabel":"Presupuesto de tokens de razonamiento","settings.providers.responsesThinkingHint":"Algunos modelos solo permiten reducir el razonamiento, no desactivarlo. Las solicitudes de razonamiento omiten la temperatura.","settings.providers.messagesThinkingHint":"Los modelos antiguos o servicios compatibles pueden necesitar un presupuesto fijo inferior al límite de salida. Las solicitudes de razonamiento omiten la temperatura.","settings.providers.llmRequestFormatInvalid":"Formato de solicitud no válido. Selecciona uno compatible.","settings.providers.llmThinkingModeInvalid":"Modo de razonamiento no válido. Selecciona uno compatible.","settings.providers.llmTokenLimitInvalid":"Los límites de tokens deben ser números enteros positivos.","settings.providers.llmThinkingBudgetInvalid":"El presupuesto de razonamiento debe ser al menos 1024 y, en modo fijo, inferior al límite de salida.","settings.providers.llmResponseIncomplete":"La respuesta no se completó o alcanzó el límite de salida. Se conserva el texto ya mostrado.","settings.providers.llmProtocolHeaderConflict":"Messages establece automáticamente las cabeceras de autenticación y versión. Elimina x-api-key y anthropic-version de las cabeceras adicionales.","settings.providers.llmStreamError":"El servidor devolvió un error de transmisión. Comprueba el modelo y los parámetros de la solicitud.","settings.providers.saveProtocol":"Guardar ajustes del protocolo","settings.providers.thinkingModeHint":"Activa, desactiva o reduce el razonamiento mediante los parámetros admitidos por el formato y el modelo. No se añaden instrucciones de control al prompt.","settings.providers.bailianVocabularyIdLabel":"ID del vocabulario de palabras clave (opcional)","settings.providers.bailianVocabularyIdNote":"Si creaste un vocabulario en DashScope, introduce su ID vocab-... Déjalo vacío para no usar palabras clave.","settings.providers.bailianModelRealtimeHint":"Modelo en tiempo real: transcribe mientras hablas.","settings.providers.bailianModelSyncFileHint":"Modelo síncrono de grabación: transcribe al terminar (máx. 5 min por grabación).","settings.providers.bailianModelAsyncFileHint":"Modelo asíncrono de archivos: sube la grabación y espera a que termine la tarea de transcripción.","settings.providers.appIdLabel":"App ID","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"Resource ID","settings.providers.toolsLabel":"Comprobación de conexión","settings.providers.toolsDesc":"Guarda los campos de arriba y después comprueba el modelo o consulta los modelos disponibles. Si la consulta falla, puedes escribir el modelo manualmente.","settings.providers.validate":"Comprobar","settings.providers.validating":"Comprobando…","settings.providers.fetchModels":"Obtener modelos","settings.providers.loadingModels":"Obteniendo modelos…","settings.providers.modelMissing":"No hay ningún modelo configurado. Introduce primero su ID.","settings.providers.modelsEmpty":"Las credenciales son válidas, pero no se recibieron modelos.","settings.providers.modelsLoaded":"Se han obtenido {{count}} modelos.","settings.providers.searchModels":"Buscar modelos…","settings.providers.noMatchingModels":"Sin modelos coincidentes","settings.providers.orcarouterCatalogHint":"Cargado desde /models de OrcaRouter. Selecciona un modelo del catálogo; los IDs manuales están desactivados para este proveedor.","settings.providers.orcarouterAsrCatalogHint":"Cargado desde /models de OrcaRouter y limitado a modelos Gemini compatibles con entrada de audio. Los IDs manuales están desactivados.","settings.providers.selectModel":"Elige un modelo para completar el campo de arriba","settings.providers.modelSaved":"Modelo {{model}} guardado.","settings.providers.validateSuccess":"Conexión comprobada correctamente.","settings.providers.validateFailed":"La comprobación de conexión falló.","settings.providers.providerHttpStatus":"El proveedor devolvió HTTP {{status}}. Comprueba los permisos de la clave API o la dirección.","settings.providers.endpointMustUseHttps":"Se permiten direcciones HTTP, pero la clave API y el audio pueden quedar expuestos durante la transmisión.","settings.providers.endpointHttpWarning":"Se permiten direcciones HTTP, pero la clave API y el contenido de las solicitudes pueden quedar expuestos durante la transmisión.","settings.providers.endpointInvalid":"El formato de la dirección no es válido.","settings.providers.bailianEndpointSchemeInvalid":"El ASR en tiempo real de Bailian usa la pasarela WebSocket de DashScope. La dirección debe empezar por wss:// (predeterminada: wss://dashscope.aliyuncs.com/api-ws/v1/inference/). Una URL https:// de modo compatible no funciona aquí.","settings.providers.qwen3EndpointSchemeInvalid":"El ASR en tiempo real de Qwen3 usa la pasarela Realtime WebSocket de DashScope. La dirección debe empezar por wss:// (predeterminada: wss://dashscope.aliyuncs.com/api-ws/v1/realtime). Una URL https:// no funciona aquí.","settings.providers.responseTooLarge":"La respuesta del proveedor es demasiado grande para comprobarla de forma segura.","settings.providers.asrInvalidJson":"La respuesta ASR no es JSON válido.","settings.providers.asrMissingTextField":"Falta el campo text en la respuesta ASR.","settings.providers.apiKeyMissing":"La clave API está vacía.","settings.providers.endpointMissing":"La dirección está vacía.","settings.providers.volcengineAppIdMissing":"APP ID está vacío.","settings.providers.volcengineAccessTokenMissing":"Access Token está vacío.","settings.providers.requestTimeout":"La solicitud agotó el tiempo de espera. Inténtalo más tarde.","settings.shortcuts.title":"Ajustes de atajos","settings.shortcuts.descAcc":"Todos los atajos funcionan globalmente. Concede el permiso de Accesibilidad en Permisos.","settings.shortcuts.descNoAcc":"Todos los atajos funcionan globalmente. Si no responden, comprueba el estado de los atajos globales en Permisos.","settings.shortcuts.startStop":"Iniciar / detener grabación","settings.shortcuts.cancel":"Cancelar la grabación actual","settings.shortcuts.confirm":"Confirmar inserción de la cápsula","settings.shortcuts.switchStyle":"Cambiar al estilo anterior","settings.shortcuts.openApp":"Abrir OpenLess","settings.shortcuts.stylePackTitle":"Atajos de estilos","settings.shortcuts.stylePackDesc":"Asigna atajos a tus paquetes favoritos para cambiar con una pulsación. Los paquetes desactivados se volverán a activar automáticamente.","settings.shortcuts.stylePackAdd":"Añadir atajo de estilo","settings.shortcuts.stylePackSelect":"Elegir paquete de estilos","settings.shortcuts.stylePackDisabledSuffix":" (desactivado)","settings.shortcuts.stylePackRemove":"Eliminar","settings.shortcuts.agentPolish":"Mejorar texto seleccionado","settings.shortcuts.agentPolishDesc":"Selecciona texto → pulsa el atajo → Claude lo mejora → se reemplaza la selección.","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"Mantén pulsada una tecla personalizada → habla → Claude ejecuta la tarea → el resultado aparece en una cápsula.","settings.shortcuts.agentVoiceHint":"Configura la tecla para hablar en Avanzado → Less Computer.","settings.shortcuts.agentVoiceTrigger":"Tecla para hablar con Less Computer","settings.shortcuts.enable":"Activar","settings.shortcuts.disable":"Desactivar","settings.shortcuts.confirmHint":"Pulsa ✓ en la cápsula","settings.shortcuts.notSupported":"Todavía no compatible","settings.shortcuts.androidReadOnly":"Los atajos globales no están disponibles en Android. Usa el botón de grabación de Resumen.","settings.permissions.title":"Permisos","settings.permissions.descAcc":"OpenLess necesita estos permisos del sistema. Tras concederlos, cierra la aplicación por completo y vuelve a abrirla.","settings.permissions.descNoAcc":"OpenLess necesita acceso al micrófono. El estado del detector de atajos globales permite comprobar que el componente nativo está activo.","settings.permissions.micLabel":"Micrófono","settings.permissions.micDesc":"Permite capturar tu voz.","settings.permissions.accLabel":"Accesibilidad","settings.permissions.accDesc":"Permite detectar el atajo global e insertar transcripciones donde está el cursor.","settings.permissions.hotkeyLabel":"Atajo global","settings.permissions.hotkeyDescWithAdapter":"Adaptador activo: {{adapter}}. Permite comprobar que el detector de atajos está instalado.","settings.permissions.hotkeyDescPlain":"Permite comprobar que el detector de atajos está instalado.","settings.permissions.networkLabel":"Red","settings.permissions.networkDesc":"Necesaria para los servicios ASR / LLM en la nube. Desactívala para usar solo funciones locales.","settings.permissions.networkOk":"Disponible","settings.permissions.networkOffline":"No disponible","settings.permissions.checking":"Comprobando…","settings.permissions.granted":"Concedido","settings.permissions.notApplicable":"No es necesario","settings.permissions.denied":"No concedido","settings.permissions.indeterminate":"Sin determinar","settings.permissions.micNoDevice":"No se ha detectado ningún micrófono","settings.permissions.openSystem":"Abrir Ajustes del Sistema","settings.permissions.restart":"Restablecer y reiniciar","settings.permissions.grant":"Conceder","settings.permissions.rerunAndroidSetup":"Repetir configuración inicial","settings.permissions.hotkeyInstalled":"Instalado","settings.permissions.hotkeyStarting":"Instalando…","settings.permissions.hotkeyFailed":"El detector falló","settings.permissions.windowsImeLabel":"Motor del método de entrada de Windows","settings.permissions.windowsImeDesc":"Cambia temporalmente al IME TSF de OpenLess durante las sesiones de voz para evitar las limitaciones del portapapeles.","settings.permissions.windowsImeInstalled":"Instalado","settings.permissions.windowsImeUnavailable":"No disponible","settings.permissions.androidImeLabel":"Método de entrada (IME)","settings.permissions.androidImeSelected":"Seleccionado","settings.permissions.androidImeEnabled":"Activado","settings.permissions.androidImeDisabled":"Sin activar","settings.permissions.androidOverlayLabel":"Ventana flotante","settings.permissions.androidAccessibilityLabel":"Servicio de accesibilidad","settings.permissions.androidAccessibilityImpact":"Actívalo para insertar los resultados en el campo actual sin cambiar de teclado. Si está desactivado, los resultados se copian al portapapeles para pegarlos manualmente.","settings.permissions.androidAccessibilityGrantedStale":"Autorizado, sin conexión","settings.permissions.androidAccessibilityMessages.not_android":"El estado de accesibilidad solo está disponible en Android.","settings.permissions.androidAccessibilityMessages.not_enabled":"Activa OpenLess en los ajustes de accesibilidad del sistema.","settings.permissions.androidAccessibilityMessages.operational":"El servicio de accesibilidad está en ejecución.","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"Accesibilidad está autorizada, pero no conectada. Vuelve a activar OpenLess en los ajustes del sistema.","settings.permissions.androidAccessibilityMessages.status_read_failed":"No se pudo consultar el estado de accesibilidad.","settings.permissions.androidShizukuLabel":"Mejoras con Shizuku","settings.permissions.androidShizukuHint":"Opcional. Intenta recuperar el servicio si los ajustes del fabricante bloquean los interruptores manuales; no elimina por completo los conflictos entre aplicaciones. Puede ser necesario reiniciar Shizuku después de reiniciar el dispositivo.","settings.permissions.androidShizukuOpenApp":"Abrir Shizuku","settings.permissions.androidShizukuRequestPermission":"Solicitar autorización","settings.permissions.androidShizukuRecover":"Recuperar accesibilidad","settings.permissions.androidShizukuRecoverConfirm":"¿Usar Shizuku para intentar reactivar el servicio de accesibilidad de OpenLess? Se conservarán los servicios activados al iniciar el cambio. Si el interruptor global está desactivado, activarlo también podría iniciar otros servicios registrados.","settings.permissions.androidShizukuYes":"sí","settings.permissions.androidShizukuNo":"no","settings.permissions.androidShizukuAccessibilityOperational":"Accesibilidad está registrada y en ejecución.","settings.permissions.androidShizukuAccessibilityRegistered":"Registrada: {{registered}} · En ejecución: {{operational}}","settings.permissions.androidShizukuState.notInstalled":"Sin instalar","settings.permissions.androidShizukuState.notRunning":"Sin ejecutar","settings.permissions.androidShizukuState.notAuthorized":"Sin autorizar","settings.permissions.androidShizukuState.authorized":"Autorizado","settings.permissions.androidShizukuState.binderDead":"Desconectado","settings.permissions.androidShizukuState.notAndroid":"No aplicable","settings.permissions.androidShizukuMessages.not_android":"Shizuku solo está disponible en Android.","settings.permissions.androidShizukuMessages.not_installed":"Shizuku o el motor Sui no están instalados.","settings.permissions.androidShizukuMessages.unsupported_backend":"Este motor de Shizuku es demasiado antiguo. Actualiza Shizuku o Sui a la versión 11 o posterior.","settings.permissions.androidShizukuMessages.not_running":"Shizuku no está en ejecución. Inicia primero Shizuku o Sui.","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku no está autorizado. Concede el permiso a OpenLess.","settings.permissions.androidShizukuMessages.binder_dead":"Se perdió la conexión con Shizuku. Reinícialo.","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku autorizado. Accesibilidad está en ejecución.","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku autorizado. Accesibilidad está registrada, pero no está en ejecución.","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku autorizado. Puedes intentar recuperar accesibilidad.","settings.permissions.androidShizukuMessages.operational":"Accesibilidad está registrada y en ejecución.","settings.permissions.androidShizukuMessages.registered_stale":"Accesibilidad está registrada, pero el servicio no está disponible ahora.","settings.permissions.androidShizukuMessages.not_registered":"Accesibilidad no está activada en los ajustes del sistema.","settings.permissions.androidShizukuMessages.already_granted":"El permiso de Shizuku ya estaba concedido.","settings.permissions.androidShizukuMessages.binder_unavailable":"La conexión Binder de Shizuku no estaba disponible al solicitar el permiso.","settings.permissions.androidShizukuMessages.request_cancelled":"Se canceló la solicitud de permiso de Shizuku.","settings.permissions.androidShizukuMessages.granted":"Permiso de Shizuku concedido.","settings.permissions.androidShizukuMessages.denied":"Permiso de Shizuku denegado.","settings.permissions.androidShizukuMessages.permission_permanently_denied":"La autorización de Shizuku está bloqueada. Abre Shizuku y permite OpenLess manualmente.","settings.permissions.androidShizukuMessages.launched":"Se ha abierto la autorización de Shizuku.","settings.permissions.androidShizukuMessages.launch_failed":"No se pudo abrir la autorización de Shizuku.","settings.permissions.androidShizukuMessages.open_shizuku":"Se ha abierto el administrador de Shizuku.","settings.permissions.androidShizukuMessages.jni_error":"No se pudo acceder al motor Shizuku de Android.","settings.permissions.androidShizukuMessages.status_parse_failed":"No se pudo interpretar el estado de Shizuku.","settings.permissions.androidShizukuMessages.user_not_confirmed":"La recuperación requiere confirmación del usuario.","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku no está autorizado o no está disponible.","settings.permissions.androidShizukuMessages.invalid_component":"El ID del componente del servicio de accesibilidad no es válido.","settings.permissions.androidShizukuMessages.service_connect_failed":"No se pudo conectar con el servicio privilegiado de Shizuku.","settings.permissions.androidShizukuMessages.recovery_in_progress":"Ya hay otra recuperación en curso.","settings.permissions.androidShizukuMessages.parse_failed":"No se pudo interpretar el resultado de la recuperación.","settings.permissions.androidShizukuMessages.service_not_bound":"Los ajustes se guardaron, pero accesibilidad aún no está en ejecución.","settings.permissions.androidShizukuMessages.success":"Servicio de accesibilidad recuperado.","settings.permissions.androidShizukuMessages.read_failed":"No se pudieron leer los ajustes de accesibilidad.","settings.permissions.androidShizukuMessages.read_enabled_failed":"No se pudo leer el indicador de activación de accesibilidad.","settings.permissions.androidShizukuMessages.merge_failed":"No se pudieron combinar los servicios de accesibilidad.","settings.permissions.androidShizukuMessages.write_services_failed":"No se pudieron guardar los servicios de accesibilidad activados.","settings.permissions.androidShizukuMessages.write_enabled_failed":"No se pudo activar accesibilidad.","settings.permissions.androidShizukuMessages.readback_failed":"No se pudieron verificar los ajustes de accesibilidad después de guardarlos.","settings.permissions.androidShizukuMessages.oem_rollback":"El fabricante revirtió el cambio de accesibilidad.","settings.permissions.androidShizukuMessages.concurrent_change":"Los ajustes de accesibilidad cambiaron durante la recuperación.","settings.permissions.androidShizukuMessages.partial_rollback":"La recuperación falló y solo se pudieron restaurar parte de los ajustes. Revisa la accesibilidad en los ajustes del sistema.","settings.permissions.androidShizukuMessages.manual_required":"La recuperación automática no puede activar accesibilidad de forma segura si hay otros servicios registrados y el interruptor global está desactivado. Usa los ajustes del sistema.","settings.permissions.androidShizukuMessages.max_retries":"La recuperación falló después de varios intentos.","settings.permissions.androidShizukuMessages.internal_error":"La recuperación falló por un error interno.","settings.permissions.androidShizukuMessages.unknown":"Estado de Shizuku desconocido.","settings.permissions.androidInsertStrategyLabel":"Estrategia de inserción de texto","settings.permissions.androidOverlayTriggerLabel":"Visibilidad de la ventana flotante","settings.permissions.androidOverlayActivationModeLabel":"Activación de la ventana flotante","settings.permissions.androidOverlayLeftSwipeActionLabel":"Acción al deslizar a la izquierda","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"Dirección de deslizamiento para cancelar","settings.permissions.androidOverlaySizeLabel":"Tamaño de la ventana flotante","settings.permissions.androidOverlaySizeHint":"Ajusta el diámetro del botón flotante sin cambiar su posición.","settings.permissions.androidInsertStrategy.accessibility":"Insertar automáticamente en el campo de texto","settings.permissions.androidInsertStrategy.clipboard":"Solo portapapeles","settings.permissions.androidInsertStrategyHint.accessibility":"Requiere accesibilidad; si no está disponible, usa el portapapeles.","settings.permissions.androidInsertStrategyHint.clipboard":"No requiere accesibilidad; solo copia para que pegues manualmente.","settings.permissions.androidOverlayTrigger.background":"Con la aplicación en segundo plano","settings.permissions.androidOverlayTrigger.keyboard":"Cuando aparece el teclado","settings.permissions.androidOverlayTrigger.always":"Siempre visible","settings.permissions.androidOverlayTriggerHint.background":"Sencillo y de bajo consumo; no muestra la ventana mientras escribes en otras aplicaciones.","settings.permissions.androidOverlayTriggerHint.keyboard":"Este modo se ha retirado. Los ajustes existentes vuelven al modo de segundo plano.","settings.permissions.androidOverlayTriggerHint.always":"Siempre disponible, pero permanece en pantalla.","settings.permissions.androidOverlayTriggerDisabled.keyboard":"La activación al mostrar el teclado se ha retirado. Se sustituirá por gestos en la ventana flotante.","settings.permissions.androidOverlayActivationMode.tap":"Pulsar para preparar","settings.permissions.androidOverlayActivationMode.long_press":"Mantener pulsado para preparar","settings.permissions.androidOverlayActivationModeHint.tap":"La primera pulsación prepara la ventana; la segunda inicia el dictado normal.","settings.permissions.androidOverlayActivationModeHint.long_press":"Mantén pulsado para preparar la ventana; al soltar, se detiene la grabación o la intervención de voz actual.","settings.permissions.androidOverlayLeftSwipeAction.translation":"Dictado con traducción","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"Cambiar paquete de estilos","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"Con la ventana preparada, desliza a la izquierda para empezar un dictado con traducción.","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"Con la ventana preparada, desliza a la izquierda para cambiar al paquete anterior.","settings.permissions.androidOverlayCancelSwipeDirection.up":"Deslizar hacia arriba","settings.permissions.androidOverlayCancelSwipeDirection.down":"Deslizar hacia abajo","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"Durante la grabación, desliza hacia arriba para cancelar sin transcribir ni insertar.","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"Durante la grabación, desliza hacia abajo para cancelar sin transcribir ni insertar.","settings.permissions.windowsIme.installed":"Instalado. La entrada de voz cambia temporalmente al IME de OpenLess.","settings.permissions.windowsIme.notInstalled":"Sin instalar. OpenLess usa la alternativa de portapapeles / WM_PASTE.","settings.permissions.windowsIme.registrationBroken":"El registro está dañado. Reinstala el IME de OpenLess.","settings.permissions.windowsIme.notWindows":"Solo disponible en Windows.","settings.advanced.multimodalPipelineTitle":"Reconocimiento multimodal (experimental)","settings.advanced.multimodalPipelineTitleHint":"Reconoce el audio en una sola pasada con un modelo multimodal; su configuración está completamente separada del ASR + LLM tradicional.","settings.advanced.multimodalPipelineLabel":"Activar procesamiento multimodal","settings.advanced.multimodalPipelineHint":"Añade un selector Tradicional / Multimodal a la página de proveedores de IA. Tradicional usa ASR + LLM y Multimodal usa un modelo con audio. Las configuraciones se guardan por separado y nunca comparten credenciales.","settings.advanced.streamingInsertTitle":"Inserción progresiva","settings.advanced.streamingInsertTitleLinux":"Inserción progresiva (experimental)","settings.advanced.streamingInsertDesc":"Inserta el texto carácter a carácter donde está el cursor para reducir la espera percibida. Si no se cumplen las condiciones, pega todo de una vez.","settings.advanced.streamingInsertLabel":"Inserción progresiva","settings.advanced.streamingInsertHintMac":"Cambia temporalmente la fuente de entrada a ABC para que los IME de chino, japonés o coreano no intercepten las teclas. Se restaura al terminar la sesión.","settings.advanced.streamingInsertHintWindows":"SendInput Unicode escribe directamente, sin pasar por TSF / IME y sin cambiar de método de entrada.","settings.advanced.streamingInsertHintLinux":"Usa el complemento fcitx5 para enviar texto; la inserción progresiva simula teclas mediante enigo + XTest.","settings.advanced.streamingInsertSaveClipboardLabel":"Copiar al portapapeles","settings.advanced.streamingInsertSaveClipboardHint":"Después de insertar correctamente, copia el texto final al portapapeles para poder pegarlo otra vez con Cmd+V. Desactivado: no se modifica el portapapeles.","settings.advanced.localAsrTitle":"Modelos ASR locales (experimental)","settings.advanced.localAsrDesc":"Sustituye el ASR en la nube por inferencia en el dispositivo. Para uso sin conexión o con datos sensibles.","settings.advanced.localAsrWarningShort":"La inferencia local es más lenta; un equipo poco potente puede omitir palabras.","settings.advanced.qwen3Desc":"Al activarlo, sustituirá al proveedor ASR.","settings.advanced.sherpaDesc":"Al activarlo, sustituirá al proveedor ASR.","settings.advanced.foundryDesc":"Al activarlo, sustituirá al proveedor ASR.","settings.advanced.notSupportedHere":"No es compatible con esta plataforma; no se incluye un módulo de inferencia.","settings.advanced.enable":"Activar","settings.advanced.alreadyActive":"Activo","settings.advanced.disableLocalLabel":"Desactivar ASR local","settings.advanced.disableLocalDesc":"Vuelve al ASR en la nube (Volcengine bigasr de forma predeterminada).","settings.advanced.disable":"Desactivar","settings.advanced.platformNotSupported":"Esta plataforma no admite la integración de modelos ASR locales.","settings.advanced.confirmEnableLocalTitle":"¿Activar ASR local?","settings.advanced.confirmEnableLocalBody":"La transcripción será más lenta que en la nube y podría ser menos precisa.","settings.advanced.confirm":"Activar","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"Idioma de la interfaz","settings.language.desc":"Cambia el idioma de la interfaz. Se aplica de inmediato y se conserva al volver a iniciar la aplicación.","settings.language.label":"Idioma","settings.language.labelDesc":"Elige «Seguir al sistema» para usar el idioma del sistema operativo al iniciar.","settings.language.followSystem":"Seguir al sistema","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"Algunos menús nativos, como la bandeja del sistema, pueden requerir reiniciar la aplicación para cambiar por completo.","settings.layout.title":"Diseño","settings.theme.title":"Apariencia","settings.theme.label":"Tema","settings.theme.activityHeatmapLabel":"Mostrar el mapa de actividad anual en Resumen","settings.theme.stackedRowLayoutLabel":"Diseño legible (ajuste de filas)","settings.theme.stackedRowLayoutDesc":"En pantallas pequeñas o con texto grande, los controles que no caben en una línea pasan a la siguiente para no desbordarse ni comprimir el texto.","settings.theme.conservativeLayoutLabel":"Diseño conservador","settings.theme.conservativeLayoutDesc":"Las páginas de ajustes y funciones usan una columna a todo el ancho para reducir los desbordamientos. No afecta a la página de inicio ni a las barras superior e inferior.","settings.theme.system":"Seguir al sistema","settings.theme.light":"Claro","settings.theme.dark":"Oscuro","settings.remoteInput.title":"Entrada remota","settings.remoteInput.enableLabel":"Activar entrada remota","settings.remoteInput.enableDesc":"Graba desde el navegador de un móvil o tableta en tu red local. El texto se escribirá donde esté el cursor del ordenador. Requiere HTTPS; confía en el certificado en la primera visita.","settings.remoteInput.portLabel":"Puerto","settings.remoteInput.defaultModeLabel":"Modo de grabación predeterminado","settings.remoteInput.modeToggle":"Pulsar para alternar","settings.remoteInput.modeHold":"Mantener para hablar","settings.remoteInput.urlLabel":"URL de acceso","settings.remoteInput.pinLabel":"Código de vinculación","settings.remoteInput.regeneratePin":"Generar de nuevo","settings.remoteInput.portInUse":"El puerto {{port}} está en uso. Elige otro","settings.remoteInput.startError":"No se pudo iniciar el servicio de entrada remota: {{reason}}","settings.remoteInput.securityHint":"Solo es accesible desde la misma red local y requiere el código de vinculación. Desactívalo cuando no lo uses.","settings.remoteInput.certHint":"Verifica la huella del certificado raíz antes de confiar en él por primera vez. Las versiones anteriores requieren una configuración única; después la confianza se mantiene al reiniciar o cambiar de IP.","settings.remoteInput.certFingerprintLabel":"SHA-256 de la CA raíz de este ordenador","settings.remoteInput.certFingerprintCopy":"Copiar huella completa","settings.remoteInput.certFingerprintCopied":"Huella copiada","settings.remoteInput.certFingerprintUnavailable":"La huella completa no está disponible. No instales ni confíes en un certificado descargado.","settings.remoteInput.certVerifyHint":"Antes de activar la confianza completa, busca el SHA-256 en los detalles del certificado del sistema del teléfono y compara los 64 caracteres con este valor (ignora espacios y dos puntos). Una página web, el nombre del perfil o un identificador no prueban la identidad. Si la huella difiere o no se puede ver completa, detente y elimina el perfil descargado o instalado.","settings.remoteInput.certProfileHint":"Debe haber exactamente un certificado raíz. No instales un perfil con certificados adicionales, VPN o ajustes de gestión de dispositivos.","settings.remoteInput.certTrustWarning":"La descarga inicial del certificado no puede verificar la identidad del ordenador: un dispositivo malicioso en la red local podría sustituir el certificado raíz en un ataque de intermediario. Instálalo solo en una red doméstica o privada de confianza, nunca en redes públicas o compartidas. La CA raíz puede emitir certificados y su clave privada permanece en este ordenador; elimínalo del teléfono cuando dejes de usarlo.","settings.remoteInput.certSetupLink":"Copiar enlace del certificado para iPhone","settings.remoteInput.waitingStart":"El servicio aún no está en ejecución. Desactiva el interruptor y vuelve a activarlo; no reinicies la aplicación.","settings.remoteInput.starting":"Iniciando el servicio de entrada remota…","settings.remoteInput.urlsStale":"Estas direcciones corresponden a la ejecución anterior y pueden estar desactualizadas.","settings.about.tagline":"Habla con naturalidad, escribe con precisión","settings.about.checkUpdate":"Buscar actualizaciones","settings.about.checkUpdateBtn":"Buscar","settings.about.checkStableUpdateBtn":"Buscar versión estable","settings.about.checkBetaUpdateBtn":"Buscar versión Beta","settings.about.checkingUpdate":"Buscando…","settings.about.upToDate":"Ya tienes la última versión.","settings.about.updateError":"No se pudo buscar o instalar la actualización. Inténtalo más tarde.","settings.about.retryBtn":"Reintentar","settings.about.openReleases":"Abrir versiones","settings.about.source":"Código fuente","settings.about.docs":"Documentación","settings.about.feedback":"Comentarios","settings.about.qq":"Grupo de la comunidad en QQ","settings.about.qqDesc":"Busca el número del grupo en QQ o escanea el código QR para unirte.","settings.about.copyQq":"Copiar número del grupo","settings.about.privacy":"Privacidad","settings.about.privacyDesc":"Las grabaciones pueden enviarse al proveedor en la nube que configures para transcribirlas.","settings.about.localFirst":"Prioridad al almacenamiento local","settings.about.linksTitle":"Documentación","settings.about.betaChannelLabel":"Unirse al canal Beta","settings.about.betaChannelToggleLabel":"Activar canal Beta","settings.about.betaChannelDesc":"Al activarlo, las actualizaciones automáticas siguen el canal Beta; al desactivarlo, siguen el estable. Puedes buscar una Beta manualmente con el botón de abajo.","settings.about.autoUpdateSectionTitle":"Actualización automática","settings.about.autoUpdateCheckLabelAndroid":"Buscar y descargar actualizaciones automáticamente","settings.about.autoUpdateCheckDescAndroid":"Busca al iniciar y cada 60 minutos. Si hay una actualización, la descarga y abre el instalador del sistema. Usa el canal indicado por el interruptor Beta de arriba.","settings.about.betaChannelFetching":"Obteniendo la última Beta…","settings.about.betaChannelFetchBtn":"Consultar última Beta","settings.about.betaChannelLatestPrefix":"Última Beta:","settings.about.betaChannelDownloadBtn":"Abrir página de descarga","settings.about.betaChannelRefresh":"Actualizar","settings.about.betaChannelNoBeta":"Todavía no se ha publicado ninguna versión Beta.","settings.about.betaChannelFetchError":"No se pudo consultar la versión Beta. Inténtalo más tarde.","settings.about.betaChannelUpToDate":"Actualizado","settings.about.betaChannelUpdateNow":"Actualizar ahora","settings.about.betaChannelUpdateNowTitle":"Busca y descarga la última Beta y muestra el diálogo de actualización","settings.about.betaChannelChecking":"Buscando…","settings.about.updateDialog.stableChannelSwitch.title":"Cambiar al canal estable","settings.about.updateDialog.stableChannelSwitch.desc":"Versión actual: OpenLess {{currentVersion}}\nVersión de destino: OpenLess {{version}}\nEsto cambia del canal beta al estable. ¿Continuar?","settings.about.updateDialog.available.title":"Actualización disponible","settings.about.updateDialog.available.desc":"OpenLess {{version}} está disponible. ¿Actualizar ahora?","settings.about.updateDialog.downloading.title":"Descargando actualización","settings.about.updateDialog.downloading.desc":"Descargando OpenLess {{version}}. Mantén la aplicación abierta.","settings.about.updateDialog.downloaded.title":"Actualización lista","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} se ha instalado. ¿Reiniciar automáticamente ahora para aplicarlo?","settings.about.updateDialog.installing.title":"Instalando actualización","settings.about.updateDialog.installing.desc":"Instalando OpenLess {{version}}. Mantén la aplicación abierta.","settings.about.updateDialog.install":"Actualizar ahora","settings.about.updateDialog.androidInstall":"Descargar y abrir instalador","settings.about.updateDialog.androidInstalled.title":"Instalador del sistema abierto","settings.about.updateDialog.androidInstalled.desc":"Sigue las indicaciones del sistema para terminar la instalación. Vuelve a abrir OpenLess para usar {{version}}.","settings.about.updateDialog.downloadingLabel":"Descargando…","settings.about.updateDialog.installingLabel":"Instalando…","settings.about.updateDialog.later":"Reiniciar manualmente más tarde","settings.about.updateDialog.restartNow":"Reiniciar ahora","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"{{downloaded}} descargados","settings.about.updateDialog.installError.title":"La actualización falló","settings.about.updateDialog.installError.desc":"La actualización automática no pudo terminar: {{error}}. Puedes descargar e instalar la última versión manualmente.","settings.about.updateDialog.manualDownload":"Descargar manualmente","startup.loading":"Iniciando OpenLess…","startup.loadingDesc":"Conectando con el servicio local y comprobando la compatibilidad.","startup.failed":"OpenLess no pudo iniciarse","startup.recovery":"Vuelve a comprobarlo. Si el problema continúa, cierra la aplicación por completo y ábrela otra vez. Si empezó después de actualizar, comprueba que todos los componentes de la aplicación tengan la misma versión.","startup.retry":"Volver a comprobar","startup.details":"Mostrar detalles del error","modal.serviceViews.label":"Ajustes de servicios","modal.serviceViews.llm":"Modelos de lenguaje","modal.serviceViews.asr":"Reconocimiento de voz","modal.serviceViews.omni":"Multimodal","modal.serviceViews.models":"Modelos locales","modal.serviceViews.connections":"Conexiones","modal.serviceViews.statusConfigured":"Configurado","modal.serviceViews.statusMissing":"Sin configurar","modal.searchPlaceholder":"Buscar una categoría de ajustes…","modal.clearSearch":"Borrar búsqueda","modal.categoriesLabel":"Categorías de ajustes","modal.searchResults":"Resultados de búsqueda","modal.searchCount":"Categorías encontradas: {{count}}","modal.noResults":"No se encontraron categorías. Prueba «micrófono», «modelos» o «tema».","modal.autoSaveHint":"Los cambios se guardan automáticamente","modal.backToAdvanced":"Volver a Experimentos y extensiones","modal.advancedPages.lessComputer":"Elige un agente y configura su modelo, permisos y directorio de trabajo.","modal.advancedPages.claudeConsole":"Detecta Claude Code y consulta la salida de las tareas de prueba.","modal.advancedPages.multimodal":"Administra la activación del reconocimiento multimodal experimental.","modal.advancedPages.debug":"Conserva grabaciones de depuración, inspecciona el contexto del cursor y exporta registros.","modal.descriptions.general":"Elige un micrófono, ajusta la grabación y la entrada de texto o conecta tu móvil.","modal.descriptions.shortcuts":"Configura atajos y elige qué sucede al seleccionar texto.","modal.descriptions.services":"Elige servicios de reconocimiento de voz y procesamiento de texto. Administra canales, modelos locales y conexiones.","modal.descriptions.appearance":"Ajusta el tema, el diseño y el idioma de la interfaz para leer con comodidad.","modal.descriptions.privacy":"Comprueba los permisos y las conexiones. Administra el historial, las grabaciones y los datos locales.","modal.descriptions.advanced":"Configura Less Computer, el procesamiento multimodal y la depuración según tus necesidades.","modal.descriptions.about":"Consulta tu versión, el canal y los ajustes de actualización automática.","modal.searchKeywords.general":"micrófono grabación entrada teléfono remoto LAN PIN cápsula silenciar inicio automático","modal.searchKeywords.shortcuts":"atajo tecla combinación selección mejorar voz edición","modal.searchKeywords.services":"ASR LLM API canal modelo nube local sin conexión red proxy catálogo","modal.searchKeywords.appearance":"tema oscuro claro idioma fuente texto tamaño diseño mapa actividad","modal.searchKeywords.privacy":"permiso micrófono accesibilidad historial grabación almacenamiento privacidad exportar","modal.searchKeywords.advanced":"Less Computer Claude agente multimodal Omni depuración registros experimento","modal.searchKeywords.about":"versión Beta estable actualización actualizar","modal.sections.appearance":"Apariencia e idioma","modal.sections.shortcuts":"Atajos y selección","modal.sections.general":"Grabación y entrada","modal.sections.services":"Servicios y modelos de IA","modal.sections.privacy":"Permisos y datos","modal.sections.advanced":"Experimentos y extensiones","modal.sections.personalize":"Personalización","modal.sections.about":"Acerca de y actualizaciones","modal.sections.helpCenter":"Centro de ayuda","modal.sections.releaseNotes":"Notas de la versión","modal.personalize.font":"Tamaño de fuente","modal.personalize.fontDesc":"Cambia el tamaño del texto de toda la interfaz de inmediato.","modal.personalize.fontSmall":"Pequeño","modal.personalize.fontMedium":"Mediano","modal.personalize.fontLarge":"Grande","modal.personalize.blur":"Intensidad del efecto de cristal","modal.personalize.blurDesc":"Afecta al filtro de fondo interno. La capa esmerilada del sistema macOS no se puede ajustar durante la ejecución.","modal.about.tagline":"Habla con naturalidad, escribe con precisión","modal.about.checkUpdate":"Buscar actualizaciones","modal.about.checkUpdateBtn":"Buscar","modal.about.docs":"Documentación","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"Canal de comentarios","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"Código fuente","modal.about.qq":"Grupo de la comunidad en QQ","modal.about.qqDesc":"Busca el número del grupo en QQ o escanea el código QR para unirte.","modal.about.copyQq":"Copiar número del grupo","modal.about.exportErrorLog":"Exportar registro de errores","modal.about.exportErrorLogDesc":"Guarda el registro de la sesión actual en disco para investigar problemas o enviarnos comentarios.","modal.about.exportErrorLogBtn":"Exportar","modal.about.exporting":"Exportando…","modal.about.exportSuccess":"Guardado","modal.about.exportFailed":"No se pudo exportar","modal.about.privacy":"Privacidad","modal.about.privacyDesc":"Las transcripciones permanecen en este dispositivo. Los proveedores en la nube configurados pueden recibir el audio para transcribirlo.","modal.about.localFirst":"Prioridad al almacenamiento local","windowChrome.restore":"Restaurar","windowChrome.minimize":"Minimizar","windowChrome.maximize":"Maximizar","windowChrome.close":"Cerrar","hotkey.triggers.rightOption":"Option derecha","hotkey.triggers.leftOption":"Option izquierda","hotkey.triggers.rightControl":"Control derecho","hotkey.triggers.leftControl":"Control izquierdo","hotkey.triggers.rightCommand":"Command derecha","hotkey.triggers.leftCommand":"Command izquierda","hotkey.triggers.leftShift":"Shift izquierda","hotkey.triggers.rightShift":"Shift derecha","hotkey.triggers.fn":"Fn (tecla del globo)","hotkey.triggers.rightAlt":"Alt derecha","hotkey.triggers.mediaPlayPause":"⏯ Reproducir / pausar multimedia","hotkey.triggers.custom":"Combinación personalizada…","hotkey.fallback":"Atajo global","hotkey.modeHoldSuffix":" (mantener para hablar)","hotkey.modeToggleSuffix":" (iniciar / detener)","hotkey.modeAutoSuffix":" (detección automática)","hotkey.usageHold":"Mantén pulsado {{trigger}} para hablar y suéltalo para detener.","hotkey.usageToggle":"Pulsa {{trigger}} para empezar y vuelve a pulsarlo para detener.","hotkey.usageAuto":"Pulsa {{trigger}} para iniciar o detener; mantenlo pulsado para hablar y suéltalo para detener.","hotkey.adapter.macEventTap":"Event Tap de macOS","hotkey.adapter.windowsLowLevel":"Detector de teclado de bajo nivel de Windows","hotkey.adapter.fcitx5":"Complemento de entrada fcitx5","hotkey.adapter.unavailable":"No disponible","localAsr.kicker":"ASR LOCAL","localAsr.title":"Modelos","localAsr.desc":"Administra los modelos de reconocimiento de voz del dispositivo.","localAsr.storageTitle":"Ubicación de los modelos","localAsr.storageBaseDir":"Carpeta superior seleccionada","localAsr.storageModelsRoot":"Carpeta real de modelos","localAsr.storageDefault":"Carpeta predeterminada del sistema","localAsr.storageChoose":"Cambiar carpeta","localAsr.storageReset":"Restaurar ubicación predeterminada","localAsr.storageReveal":"Abrir carpeta de modelos","localAsr.storageDesc":"La ubicación personalizada crea OpenLess/models dentro de la carpeta elegida y traslada los modelos existentes. Antes de moverlos, OpenLess cancela las descargas y libera los modelos cargados.","localAsr.storageChooseTitle":"Elegir carpeta superior para los modelos locales","localAsr.storageChangeConfirm":"Los modelos locales se trasladarán a {{path}}/OpenLess/models. Primero se cancelarán las descargas y se liberarán los modelos cargados. ¿Continuar?","localAsr.storageResetConfirm":"Los modelos locales volverán a la carpeta predeterminada del sistema. Carpeta actual: {{path}}. ¿Continuar?","localAsr.modelDir":"Directorio del modelo","localAsr.revealDir":"Abrir directorio","localAsr.deleteConfirm":"¿Eliminar los archivos locales de {{name}}? Esta acción no se puede deshacer.","localAsr.appleSpeechTitle":"Reconocimiento Apple Speech (macOS)","localAsr.appleSpeechDesc":"Transcribe localmente con el reconocimiento de voz integrado de macOS: sin descargar modelos, claves API ni red. Es una alternativa local sin credenciales si tu ASR en la nube falla. macOS pedirá permiso de reconocimiento de voz en el primer uso.","localAsr.appleSpeechUse":"Usar Apple Speech","localAsr.qwenTitle":"Administrador de modelos Qwen3-ASR","localAsr.qwenExperimentalBadge":"Experimental","localAsr.engineUnavailable":"Esta plataforma no incluye el motor Qwen3-ASR. Puedes descargar los modelos, pero todavía no puedes activarlos aquí.","localAsr.qwenUnavailableOnWindows":"Qwen3-ASR todavía no es compatible con Windows. Usa Foundry Local Whisper, más arriba.","localAsr.foundryTitle":"Foundry Local Whisper para Windows","localAsr.foundryDesc":"Reconocimiento de voz en el dispositivo, sin clave API de ASR. El primer uso requiere descargar el entorno de ejecución y el modelo.","localAsr.foundryAvailable":"Disponible en Windows","localAsr.foundryUnavailable":"Solo Windows","localAsr.foundryRuntimeReady":"Entorno de ejecución descargado","localAsr.foundryRuntimeMissing":"Entorno de ejecución sin descargar","localAsr.foundryRuntimeSourceLabel":"Origen del entorno de ejecución","localAsr.foundryRuntimeSourceAuto":"Automático (prioridad a NuGet)","localAsr.foundryRuntimeSourceNuget":"Repositorio oficial de NuGet","localAsr.foundryRuntimeSourceOrtNightly":"Repositorio ORT-Nightly de Microsoft","localAsr.foundryRuntimeSourceDesc":"Los componentes del entorno se descargan antes del primer uso.","localAsr.foundrySelectedModel":"Modelo seleccionado","localAsr.foundryActiveModel":"Alias predeterminado actual","localAsr.foundryLoadedModel":"Modelo cargado","localAsr.foundryNotLoaded":"Sin cargar","localAsr.foundryError":"Estado de Foundry","localAsr.foundrySetDefault":"Usar como predeterminado / Activar ASR local de Windows","localAsr.foundryEnabling":"Activando…","localAsr.foundryPrepare":"Preparar / Descargar / Cargar","localAsr.foundryPreparing":"Preparando…","localAsr.foundryReleasing":"Liberando…","localAsr.foundryRetryPrepare":"Continuar / Reintentar preparación","localAsr.foundryCancelPrepare":"Cancelar preparación","localAsr.foundryCancelRequested":"Cancelación solicitada","localAsr.foundryCancelling":"Cancelando…","localAsr.foundryCancelBestEffort":"Cancelación solicitada. Se detendrá cuando termine el paso actual. Inténtalo de nuevo más tarde.","localAsr.foundryPrepareRuntime":"Preparar entorno de ejecución","localAsr.foundryPrepareModel":"Descargar modelo","localAsr.foundryPrepareLoad":"Cargar modelo","localAsr.foundryPrepareModelSkipped":"El modelo ya está descargado; se omite la descarga","localAsr.foundryPrepareDone":"Hecho","localAsr.foundryPrepareWaiting":"En espera","localAsr.foundryApproxSizeMb":"unos {{mb}} MB","localAsr.foundryLanguageLabel":"Idioma de reconocimiento","localAsr.foundryLanguageAuto":"Automático","localAsr.foundryLanguageZh":"Chino zh","localAsr.foundryLanguageEn":"Inglés en","localAsr.foundryLanguageDesc":"Elige Chino para dictar en chino y Automático si combinas idiomas.","localAsr.foundryModelSmall":"Whisper Small (predeterminado / equilibrado)","localAsr.foundryModelSmallDesc":"Opción predeterminada que equilibra calidad y consumo de recursos.","localAsr.foundryModelMedium":"Whisper Medium (mayor calidad)","localAsr.foundryModelMediumDesc":"Mayor precisión para equipos potentes que admitan descargas más grandes e inferencia más lenta.","localAsr.foundryModelLarge":"Whisper Large V3 Turbo (máxima calidad)","localAsr.foundryModelLargeDesc":"Modelo grande para equipos de gama alta y usos que priorizan la calidad.","localAsr.foundryModelBase":"Whisper Base (más rápido / menos recursos)","localAsr.foundryModelBaseDesc":"Más rápido y con menor consumo de recursos para el dictado diario.","localAsr.foundryModelTiny":"Whisper Tiny (el más rápido / prueba básica)","localAsr.foundryModelTinyDesc":"La opción más rápida para comprobar que Foundry funciona.","localAsr.sherpaTitle":"sherpa-onnx local para Windows (experimental)","localAsr.sherpaDesc":"Windows usa sherpa-onnx para reconocer grabaciones por lotes sin conexión, sin clave API de ASR.","localAsr.sherpaRuntimeReady":"Modelo cargado","localAsr.sherpaRuntimeMissing":"Modelo sin cargar","localAsr.sherpaSetDefault":"Usar como predeterminado / Activar sherpa-onnx","localAsr.sherpaPrepare":"Comprobar archivos locales / Cargar","localAsr.sherpaPreparing":"Cargando…","localAsr.sherpaPrepareLocalFiles":"Comprobar archivos locales del modelo","localAsr.sherpaModelDir":"Directorio del modelo","localAsr.sherpaRevealDir":"Abrir directorio del modelo","localAsr.sherpaError":"Estado de sherpa-onnx","localAsr.sherpaLanguageJa":"Japonés ja","localAsr.sherpaLanguageKo":"Coreano ko","localAsr.sherpaLanguageYue":"Cantonés yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small (predeterminado / prioridad al chino)","localAsr.sherpaModelSenseVoiceDesc":"Modelo experimental predeterminado para dictado en chino o combinando chino e inglés.","localAsr.sherpaModelParaformer":"Paraformer para chino","localAsr.sherpaModelParaformerDesc":"Modelo experimental centrado en el chino.","localAsr.sherpaModelWhisper":"Whisper Small multilingüe","localAsr.sherpaModelWhisperDesc":"Alternativa experimental multilingüe con el comportamiento de la familia Whisper.","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3 (multilingüe)","localAsr.sherpaModelWhisperLargeV3Desc":"La versión multilingüe de código abierto más avanzada de Whisper: gran calidad y descarga de gran tamaño.","localAsr.sherpaModelZipformer":"Zipformer en streaming (zh/en)","localAsr.sherpaModelZipformerDesc":"Modelo en streaming de chino e inglés con la latencia más baja: el texto aparece mientras hablas.","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"Modelo Qwen3-ASR convertido para sherpa-onnx, con reconocimiento multilingüe y mejor tratamiento del contexto en textos largos.","localAsr.modelSelectTitle":"Modelos de este dispositivo","localAsr.modelSelectDesc":"Consulta las descargas, administra archivos o carga un modelo para probarlo.","localAsr.modelSelectPlaceholder":"Selecciona un modelo descargado…","localAsr.modelSelectEmpty":"Todavía no hay modelos descargados. Descarga uno desde «Descargar y administrar».","localAsr.groupDownload":"Descargar y administrar","localAsr.groupOther":"Otros","localAsr.mirrorLabel":"Servidor de descarga","localAsr.mirrorDesc":"huggingface.co es el origen oficial; hf-mirror.com es una réplica de la comunidad que suele funcionar mejor en China continental.","localAsr.mirrorHuggingface":"HuggingFace oficial (huggingface.co)","localAsr.mirrorHfMirror":"Réplica para China continental (hf-mirror.com)","localAsr.activeBadge":"En uso","localAsr.downloadedBadge":"Descargado","localAsr.notDownloadedBadge":"Sin descargar","localAsr.download":"Descargar","localAsr.resume":"Reanudar","localAsr.cancel":"Cancelar","localAsr.delete":"Eliminar","localAsr.setActive":"Usar como predeterminado","localAsr.failed":"Fallido","localAsr.cancelled":"Cancelado","localAsr.files":"archivos","localAsr.sizeLoading":"Consultando tamaño…","localAsr.sizeUnknown":"Tamaño desconocido","localAsr.performanceWarning":"El ASR local es adecuado para uso sin conexión o con datos sensibles. El primer uso requiere descargar un modelo.","localAsr.test":"Cargar y probar","localAsr.testRunning":"Probando…","localAsr.testHeading":"Prueba de audio integrada","localAsr.testExpected":"Esperado","localAsr.testActual":"Obtenido","localAsr.testStats":"Audio {{audio}}s · Carga {{load}}s · Transcripción {{transcribe}}s · Motor {{backend}}","localAsr.testFailed":"La prueba falló","localAsr.engineStatusLabel":"Motor en memoria","localAsr.engineLoaded":"Cargado: {{model}}","localAsr.engineUnloaded":"Sin cargar (la primera transcripción tendrá que cargar el modelo)","localAsr.loadNow":"Cargar ahora","localAsr.releaseNow":"Liberar ahora","localAsr.keepLoadedLabel":"Mantener cargado durante","localAsr.keepLoadedDesc":"Tiempo que Qwen3-ASR permanece en memoria después del último uso antes de liberarse.","localAsr.keepImmediate":"Liberar inmediatamente","localAsr.keep1min":"1 minuto tras el último uso","localAsr.keep5min":"5 minutos tras el último uso (predeterminado)","localAsr.keep30min":"30 minutos tras el último uso","localAsr.keepForever":"No liberar nunca (siempre cargado)","localAsr.sidebarTitle":"Descargados y en descarga","localAsr.activePill":"Activo","localAsr.setDefault":"Usar como predeterminado","localAsr.downloading":"Descargando","localAsr.startDownload":"Iniciar descarga","localAsr.downloadNewModel":"Descargar nuevo modelo","localAsr.activeModelLabel":"Modelo en uso","localAsr.pickerNoModelDownloaded":"Aún no hay modelos descargados; descarga primero uno en la página de modelos locales.","localAsr.partialDownloadsLabel":"Descargas incompletas","localAsr.partialDownloadsDesc":"Las descargas interrumpidas dejaron archivos temporales; límpialos sin afectar a los modelos instalados.","localAsr.cleanupIncomplete":"Limpiar descarga incompleta","localAsr.languagesLabel":"Idiomas","localAsr.partialBytesLabel":"Archivos residuales","localAsr.downloadDialogTitle":"Descargar modelo","localAsr.downloadDialogAlreadyHave":"Los archivos del modelo ya están descargados. Vuelve a su página para cargarlo y probarlo, o elige su proveedor en Transcripción ASR.","localAsr.downloadDialogDesc":"Compara los tamaños y las descripciones, y descarga el modelo que elijas. Cuando esté listo, selecciona su servicio local en Reconocimiento de voz.","localAsr.detailRepo":"Repositorio","localAsr.hfDownloads":"Descargas","localAsr.hfLikes":"Me gusta","localAsr.hfDescription":"Acerca de","localAsr.hfNoDescription":"Todavía no hay descripción","localAsr.hfCardFailed":"No se pudo cargar la información del modelo","localAsr.detailFiles":"archivos","localAsr.detailDownloaded":"Descargado","localAsr.detailEmpty":"Selecciona un modelo para ver sus detalles","localAsr.foundryLanguage":"Idioma","localAsr.foundryRuntimeSource":"Origen del entorno de ejecución","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"Mantener cargado","localAsr.downloadSettingsTitle":"Descarga y almacenamiento","localAsr.downloadSettingsDesc":"Servidor de descarga · ubicación de modelos · motor en memoria","localAsr.libraryEmptyTitle":"Todavía no hay modelos locales","localAsr.libraryEmptyDesc":"Descarga un modelo de reconocimiento de voz para procesar el audio en este dispositivo. Si falta un modelo existente, vuelve a cargar el catálogo.","localAsr.catalogTitle":"Catálogo de modelos","localAsr.catalogEmpty":"No hay modelos disponibles para mostrar. Vuelve a cargar el catálogo e inténtalo de nuevo.","localAsr.reloadCatalog":"Volver a cargar el catálogo","localAsr.engineLabel":"Motor de reconocimiento","localAsr.sizeLabel":"Tamaño del modelo","localAsr.allEngines":"Todos","localAsr.backToCatalog":"Volver al catálogo","localAsr.detailsTitle":"Detalles del modelo","localAsr.testActivateHint":"Cargar y probar activa este modelo y después ejecuta la prueba de audio integrada.","localAsr.downloadProgressHint":"Después de iniciarla, consulta el progreso o cancela la descarga desde la página del modelo.","localAsr.errorDetails":"Detalles del error"},"fr":{"cloudSync.title":"Synchronisation cloud","cloudSync.description":"Utilisez votre compte GitHub pour synchroniser le dictionnaire, les styles et les préférences entre vos appareils.","cloudSync.signIn":"Se connecter avec GitHub","cloudSync.account":"Compte de synchronisation","cloudSync.refresh":"Actualiser l’état","cloudSync.loading":"Vérification de l’état du cloud…","cloudSync.noBackup":"Aucune sauvegarde cloud pour le moment","cloudSync.available":"Sauvegarde cloud disponible","cloudSync.summary":"{{dictionary}} mots · {{corrections}} corrections · {{stylePacks}} styles","cloudSync.updated":"Mis à jour {{time}}","cloudSync.upload":"Sauvegarder dans le cloud","cloudSync.restore":"Restaurer depuis le cloud","cloudSync.delete":"Supprimer la sauvegarde cloud","cloudSync.working":"Synchronisation…","cloudSync.uploadSuccess":"Sauvegarde cloud enregistrée","cloudSync.restoreSuccess":"Réglages restaurés depuis le cloud","cloudSync.deleteSuccess":"Sauvegarde cloud supprimée","cloudSync.failed":"Échec de la synchronisation : {{error}}","cloudSync.conflict":"La copie cloud a changé. Actualisez son état avant de choisir de sauvegarder ou de restaurer.","cloudSync.unavailable":"Le service officiel de synchronisation est actuellement indisponible. Réessayez plus tard.","cloudSync.signInRequired":"Connectez-vous d’abord avec GitHub.","cloudSync.restoreTitle":"Restaurer la sauvegarde cloud ?","cloudSync.restoreDescription":"Les entrées du dictionnaire, corrections, styles et préférences synchronisées du cloud remplaceront leurs équivalents locaux. Les clés API, chemins et autorisations restent sur cet appareil.","cloudSync.deleteTitle":"Supprimer la sauvegarde cloud ?","cloudSync.deleteDescription":"Seule la sauvegarde cloud de ce compte GitHub sera supprimée. Les données locales sont conservées.","cloudSync.confirmRestore":"Restaurer et remplacer","cloudSync.confirmDelete":"Supprimer la sauvegarde","cloudSync.scope":"Synchronise le dictionnaire, les corrections, les icônes de styles et les préférences communes. Les clés API, identifiants et réglages propres à l’appareil restent ici.","macDictationKey.Changed":"Le raccourci a changé pendant l'enregistrement. Réessayez.","macDictationKey.label":"Touche de dictée Mac","macDictationKey.description":"Remplace le raccourci de dictée actuel par la touche micro. En quittant OpenLess, la touche est rendue à macOS.","macDictationKey.Permission":"Autorisez OpenLess dans « Confidentialité et sécurité → Accessibilité » de macOS, puis réessayez.","macDictationKey.Busy":"Terminez la dictée en cours avant de modifier le raccourci.","macDictationKey.Unavailable":"Impossible d'activer le raccourci ; l'association enregistrée est inchangée. Réessayez ou choisissez une autre touche.","app.name":"OpenLess","app.tagline":"Parlez naturellement, écrivez avec précision","common.loading":"Chargement…","common.retry":"Réessayer","common.settingsLoadFailed":"Impossible de charger les réglages","common.refresh":"Actualiser","common.clear":"Effacer","common.copy":"Copier","common.delete":"Supprimer","common.later":"Plus tard","common.cancel":"Annuler","common.close":"Fermer","common.show":"Afficher","common.hide":"Masquer","common.saved":"Enregistré","common.saving":"Enregistrement…","common.experimental":"Expérimental","common.copied":"Copié","common.operationFailed":"L’opération a échoué","common.add":"Ajouter","common.durationSeconds":"{{value}}s","common.durationMillis":"{{value}}ms","common.durationMinutes":"{{value}}min","capsule.thinking":"réflexion","capsule.using":"action","capsule.cancelled":"Annulé","capsule.error":"Une erreur s’est produite","capsule.inserted":"{{count}} insérés","capsule.translating":"Traduction","capsule.selectionPolish.polishing":"Amélioration du texte…","capsule.selectionPolish.replaced":"Remplacé","capsule.selectionPolish.noSelection":"Aucun texte sélectionné","capsule.selectionPolish.failed":"L’amélioration a échoué. Réessayez","selectionPolishPreview.title":"Aperçu du texte amélioré","selectionPolishPreview.subtitle":"Vous pouvez modifier le résultat. La sélection d’origine ne sera remplacée qu’après confirmation.","selectionPolishPreview.cancel":"Annuler","selectionPolishPreview.resultLabel":"Texte amélioré","selectionPolishPreview.sourcePrefix":"Original : ","selectionPolishPreview.applyError":"Impossible d’appliquer : ","selectionPolishPreview.confirmReplace":"Confirmer et remplacer","selectionVoiceIntent.title":"Que souhaitez-vous faire ?","selectionVoiceIntent.subtitle":"Votre instruction vocale a été reconnue. Choisissez comment poursuivre.","selectionVoiceIntent.loading":"Chargement…","selectionVoiceIntent.sourcePrefix":"Sélection : ","selectionVoiceIntent.errorPrefix":"Impossible de continuer : ","selectionVoiceIntent.question":"Poser une question","selectionVoiceIntent.edit":"Modifier la sélection","selectionVoiceIntent.cancel":"Annuler","qa.title":"Questions","qa.headerHint":"Posez une question à tout moment","qa.thinking":"Réflexion…","qa.error":"Une erreur s’est produite. Réessayez.","qa.errorRetry":"Réessayer","qa.errorRetryHint":"Veuillez réessayer.","qa.pinTooltip":"Épingler (garder ouvert)","qa.unpinTooltip":"Détacher","qa.closeTooltip":"Fermer","qa.micLabel":"Poser une question à voix haute","qa.micStop":"Arrêter l’enregistrement","qa.selectionPreview":"À partir du texte sélectionné :","qa.emptyTitle":"Comment puis-je vous aider ?","qa.emptyDesc":"Sélectionnez un texte pour poser une question à son sujet, ou saisissez votre question ci-dessous. Les réponses apparaissent ici et vous pouvez poursuivre la conversation.","qa.recordingHint":"Enregistrement… appuyez de nouveau sur {{recordHotkey}} pour envoyer","qa.mobileRecordLabel":"bouton d’enregistrement","qa.mobileRecordStart":"Démarrer l’enregistrement","qa.mobileRecordStop":"Arrêter et envoyer","qa.composerPlaceholder":"Saisissez une question. Appuyez sur Entrée pour envoyer","qa.composerSend":"Envoyer","qa.statusIdle":"Appuyez sur {{recordHotkey}} pour poser une question","qa.statusRecording":"Enregistrement","qa.statusThinking":"Réflexion","qa.statusError":"Erreur","qa.jumpToLatest":"Aller au dernier message","qa.editApplyReplace":"Aperçu et confirmation de l’insertion","qa.editApplyUnavailable":"Aucun résultat à appliquer","qa.editRevertPrevious":"Conserver la version précédente","qa.editInstructionMode":"Instruction de modification","lessComputer.title":"Less Computer","lessComputer.subtitle":"Que doit faire votre ordinateur ?","lessComputer.you":"Vous","lessComputer.working":"Action en cours…","lessComputer.tool":"{{name}} utilisé","lessComputer.compaction":"Contexte résumé","lessComputer.done":"Terminé","lessComputer.cost":"${{cost}}","lessComputer.error":"Échec. Réessayez.","lessComputer.closeTooltip":"Fermer","lessComputer.jumpToLatest":"Aller au dernier message","lessComputer.inputPlaceholder":"Saisissez une instruction. Appuyez sur Entrée pour envoyer","lessComputer.send":"Envoyer","lessComputer.approvalTitle":"Exécuter la commande bloquée ?","lessComputer.approvalRerunWarning":"L’approbation relance la commande dans un espace de travail déjà modifié. Répéter une opération non idempotente peut produire des effets supplémentaires.","lessComputer.approve":"Approuver","lessComputer.deny":"Refuser","lessComputer.approved":"Approuvé","lessComputer.denied":"Refusé","nav.overview":"Vue d’ensemble","nav.history":"Historique","nav.vocab":"Dictionnaire","nav.style":"Style","nav.marketplace":"Catalogue","nav.translation":"Traduction","nav.selectionAsk":"Questions","nav.corrections":"Corrections","nav.polishMode":"Mode de rédaction","nav.group.style":"Style","nav.group.tools":"Outils","nav.localAsr":"Modèles","nav.more":"Plus","marketplace.kicker":"CATALOGUE","marketplace.title":"Catalogue de packs de styles","marketplace.desc":"Parcourez, installez et partagez les packs de styles de la communauté.","marketplace.searchPlaceholder":"Rechercher un nom, une description ou des étiquettes…","marketplace.sortPopular":"Populaires","marketplace.sortNew":"Récents","marketplace.uploadBtn":"Publier","marketplace.uploadDisabledHint":"Connectez-vous d’abord à GitHub dans Réglages → Catalogue","marketplace.refreshBtn":"Actualiser","marketplace.empty":"Aucun pack de styles pour le moment","marketplace.emptyHint":"Essayez un autre mot-clé ou publiez votre propre pack","marketplace.loadFailed":"Échec du chargement : {{err}}","marketplace.noDescription":"(sans description)","marketplace.installBtn":"Installer","marketplace.installingBtn":"Installation…","marketplace.downloadZipBtn":"Télécharger le ZIP","marketplace.downloadingZipBtn":"Téléchargement…","marketplace.downloadAria":"Télécharger le ZIP de « {{name}} »","marketplace.likeBtn":"J’aime","marketplace.installed":"« {{name}} » installé sur cet appareil","marketplace.downloaded":"ZIP de « {{name}} » téléchargé","marketplace.uploaded":"Envoyé ; en attente de validation","marketplace.uploadTitle":"Choisissez un pack de styles à publier","marketplace.uploadHint":"Envoi sous le nom {{login}}. Le contenu rejoint la file de validation dans le cloud.","marketplace.uploadNoLocal":"Aucun pack local à publier","marketplace.errors.detail":"Impossible de charger les détails : {{err}}","marketplace.errors.install":"Échec de l’installation : {{err}}","marketplace.errors.download":"Impossible de télécharger le ZIP : {{err}}","marketplace.errors.like":"Impossible d’ajouter la mention « J’aime » : {{err}}","marketplace.errors.upload":"Échec de l’envoi : {{err}}","marketplace.errors.loadLocal":"Impossible de charger les packs locaux : {{err}}","marketplace.sortLiked":"Aimés","marketplace.likedEmpty":"Vous n’avez pas encore aimé de pack de styles","marketplace.likedEmptyHint":"Ouvrez un pack et cliquez sur l’étoile ; les packs aimés apparaîtront ici","marketplace.derivativeBadge":"Dérivé de @{{login}}","marketplace.detail.withdrawBtn":"Retirer","marketplace.detail.withdrawConfirm":"Retirer « {{name}} » du catalogue ? Votre copie locale sera conservée.","marketplace.detail.withdrawSuccess":"Retiré du catalogue","marketplace.detail.withdrawFailed":"Impossible de retirer le pack : {{err}}","marketplace.myPacks.buttonLabel":"Mes packs","marketplace.myPacks.buttonTitle":"Voir les publications de {{login}}","marketplace.myPacks.buttonTitleEmpty":"Définissez d’abord votre identité d’auteur dans Réglages → Catalogue","marketplace.myPacks.searchPlaceholder":"Rechercher un nom ou des étiquettes","marketplace.myPacks.notLoggedIn":"Définissez d’abord votre identité d’auteur dans Réglages → Catalogue","marketplace.myPacks.emptyTitle":"Vous n’avez pas encore publié de pack de styles","marketplace.myPacks.emptyHint":"Modifiez un pack dans la page Style et cliquez sur « Publier dans le catalogue », ou envoyez un pack local depuis le coin supérieur droit.","marketplace.myPacks.noMatch":"Aucun pack de styles correspondant","marketplace.myPacks.summary":"{{count}} publiés","marketplace.myPacks.summaryPending":"{{count}} publiés · {{pending}} en attente de validation","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"Mettre à jour","marketplace.myPacks.actions.withdraw":"Retirer","marketplace.myPacks.loadFailed":"Impossible de charger vos packs : {{err}}","marketplace.myPacks.loadingTitle":"Chargement…","marketplace.myPacks.loadingHint":"Récupération de vos dernières publications dans le catalogue.","marketplace.myPacks.loadErrorTitle":"Échec du chargement","marketplace.myPacks.loadErrorRetry":"Réessayer","marketplace.upload.confirmBtn":"Confirmer l’envoi","marketplace.upload.updateTitle":"Mettre à jour « {{name}} »","marketplace.upload.updateHint":"Choisissez la version locale la plus récente, puis cliquez sur « Confirmer l’envoi ». Le pack portant le même nom est présélectionné.","marketplace.upload.recommendedBadge":"Recommandé","marketplace.state.pending":"En attente","marketplace.state.approved":"Publié","marketplace.state.rejected":"Refusé","marketplace.state.withdrawn":"Retiré","marketplace.state.superseded":"Remplacé","marketplace.state.unknown":"Inconnu","marketplace.oauth.title":"Se connecter avec GitHub","marketplace.oauth.generating":"Génération du code de l’appareil…","marketplace.oauth.browserHint":"Ouvrez {{uri}} dans votre navigateur et saisissez ce code :","marketplace.oauth.copyBtn":"Copier","marketplace.oauth.copied":"Code de l’appareil copié","marketplace.oauth.copyFailed":"Impossible de copier : {{err}}","marketplace.oauth.openBrowserBtn":"Ouvrir le navigateur","marketplace.oauth.cancelBtn":"Annuler","marketplace.oauth.waiting":"En attente de l’autorisation dans le navigateur…","marketplace.oauth.successAs":"Connecté en tant que @{{login}}","marketplace.oauth.retryBtn":"Réessayer","marketplace.oauth.closeBtn":"Fermer","marketplace.oauth.loginBtn":"Se connecter","marketplace.oauth.loginTooltip":"Se connecter avec GitHub","marketplace.oauth.reloginTooltip":"Cliquez pour vous reconnecter ou changer de compte (actuel : @{{login}})","marketplace.modal.loggedIn":"Identité de connexion actuelle ; modifiez-la dans Réglages → Enregistrement → Catalogue","marketplace.modal.notLoggedIn":"Non connecté ; définissez votre nom d’auteur dans Réglages → Enregistrement → Catalogue","marketplace.modal.notLoggedInLabel":"Non connecté","shell.shortcutLabel":"Raccourci d’enregistrement","shell.shortcutHint":"Démarrer / Arrêter","shell.betaTag":"BETA","shell.betaNote":"Stockage local, sauvegarde cloud facultative","shell.navHint.overview":"Vue d’ensemble : statistiques d’utilisation et état des services et autorisations","shell.navHint.history":"Historique des dictées : recherchez, réécoutez et copiez les transcriptions précédentes","shell.navHint.vocab":"Dictionnaire : mots personnalisés pour mieux reconnaître les noms propres","shell.navHint.style":"Styles de rédaction : gérez les styles de sortie et les instructions personnalisées","shell.navHint.translation":"Traduction : maintenez Maj pendant que vous parlez pour insérer le texte dans une autre langue","shell.navHint.selectionAsk":"Questions sur la sélection : sélectionnez du texte, puis posez une question à voix haute","shell.navHint.settings":"Préférences : raccourcis, fournisseurs, confidentialité et mises à jour","shell.footer.account":"Compte","shell.footer.feedback":"Commentaires","shell.footer.settings":"Réglages","shell.footer.help":"Aide","shell.footer.version":"Version {{version}}","shell.footer.helpPopover.tagline":"Saisie vocale privilégiant le traitement local","shell.footer.helpPopover.releaseNotes":"Notes de version ↗","shell.footer.helpPopover.docs":"Centre d’aide ↗","shell.providerPrompt.title":"Configurer les services vocaux","shell.providerPrompt.body":"Aucun service ASR ni LLM n’est encore configuré. Ajoutez des identifiants pour utiliser la saisie vocale et l’amélioration du texte.","shell.providerPrompt.later":"Plus tard","shell.providerPrompt.openSettings":"Ouvrir les réglages","shell.hotkeyModePrompt.title":"Vérifier le mode d’enregistrement","shell.hotkeyModePrompt.body":"Le mode par défaut est désormais Basculer. Si vous aviez changé le mode de déclenchement, vérifiez-le dans les réglages d’enregistrement.","shell.hotkeyModePrompt.later":"Me le rappeler plus tard","shell.hotkeyModePrompt.openSettings":"Ouvrir Enregistrement","onboarding.welcome":"Bienvenue dans OpenLess","onboarding.intro":"Parlez et écrivez depuis votre appareil. Deux autorisations système sont nécessaires avant de commencer.","onboarding.accessibilityTitle":"Accessibilité","onboarding.hotkeyTitle":"Raccourci global","onboarding.accessibilityDesc":"Permet de détecter le raccourci global (par défaut : {{trigger}}) et d’insérer les transcriptions à l’emplacement du curseur.","onboarding.hotkeyDesc":"Permet de vérifier que le détecteur de raccourcis globaux est disponible.","onboarding.micTitle":"Microphone","onboarding.micDesc":"Permet de capter votre voix.","onboarding.actionNotApplicable":"Non nécessaire","onboarding.actionGranted":"Accordé","onboarding.actionOpenSystem":"Ouvrir Réglages Système","onboarding.actionRestart":"Réinitialiser l’accessibilité et redémarrer OpenLess","onboarding.actionGrant":"Accorder","onboarding.actionRequestMic":"Demander l’accès","onboarding.micNoDeviceHint":"Aucun microphone détecté. Connectez et activez un microphone, puis réessayez.","onboarding.accessibilityHint":"Après avoir accordé l’autorisation, vous devez **quitter complètement OpenLess**, puis le rouvrir (exigence TCC de macOS).","onboarding.footerHint":"Cette configuration se ferme quand les deux autorisations sont accordées. Sinon, quittez OpenLess depuis la barre des menus et relancez-le.","onboarding.continueToSettings":"Ouvrir uniquement les réglages (sans voix ni raccourcis globaux)","onboarding.androidContinue":"Continuer vers l’application","onboarding.androidFooterHint":"La dictée nécessite l’accès au microphone. Cliquez sur « Demander l’accès » ci-dessus ou continuez pour l’accorder plus tard dans Vue d’ensemble.","onboarding.androidTitle":"Configurer OpenLess","onboarding.androidIntro":"Configurez progressivement les autorisations et services du mobile.","onboarding.androidStepCounter":"Étape {{current}} sur {{total}}","onboarding.androidBack":"Retour","onboarding.androidNext":"Suivant","onboarding.androidFinish":"Terminer et ouvrir","onboarding.androidSteps.microphoneTitle":"Autorisation du microphone","onboarding.androidSteps.microphoneDesc":"Ouvrez le dialogue d’autorisation Android et autorisez OpenLess à enregistrer votre voix.","onboarding.androidSteps.accessibilityTitle":"Service d’accessibilité","onboarding.androidSteps.accessibilityDesc":"Insère les résultats dans le champ actif et aide à détecter le contexte de saisie.","onboarding.androidSteps.overlayPermissionTitle":"Autorisation de fenêtre flottante","onboarding.androidSteps.overlayPermissionDesc":"Autorisez OpenLess à afficher le contrôle d’enregistrement au-dessus des autres applications.","onboarding.androidSteps.overlayConfigTitle":"Réglages de la fenêtre flottante","onboarding.androidSteps.overlayConfigDesc":"Configurez la visibilité, l’activation, les gestes de balayage et la taille du bouton.","onboarding.androidSteps.asrTitle":"Service ASR dans le cloud","onboarding.androidSteps.asrDesc":"Configurez le fournisseur de reconnaissance vocale, la clé, l’adresse et le modèle.","onboarding.androidSteps.llmTitle":"Service LLM","onboarding.androidSteps.llmDesc":"Configurez le modèle de langage pour améliorer le texte, traduire et répondre aux questions.","overview.refresh":"Actualiser l’état","overview.servicesTitle":"Services vocaux actuels","overview.statsTitle":"Votre activité","overview.omniKind":"Voix multimodale","overview.omniName":"Modèle Omni actuel","overview.statusLoading":"Lecture de la configuration des services…","overview.configureProvider":"Configurer","overview.manageProvider":"Gérer le service","overview.recentEmptyHint":"Aucune dictée pour le moment. Essayez avec le guide ci-dessus ; le résultat apparaîtra ici.","overview.providerHelp.asr":"Transforme votre voix en texte.","overview.providerHelp.llm":"Organise et améliore le texte selon votre style.","overview.providerHelp.omni":"Un même modèle reconnaît la voix et traite le texte.","overview.actions.refresh":"Réessayer","overview.actions.services":"Services et modèles d’IA","overview.actions.general":"Enregistrement et saisie","overview.actions.shortcuts":"Raccourcis","overview.actions.privacy":"Autorisations et données","overview.guide.nextStep":"Étape suivante","overview.guide.loadingTitle":"Lecture de votre configuration","overview.guide.loadingDesc":"Vos services actuels et la prochaine étape apparaîtront dans un instant.","overview.guide.unavailableTitle":"L’état des services est indisponible","overview.guide.unavailableDesc":"Réessayez ou ouvrez les services d’IA pour vérifier votre configuration.","overview.guide.servicesTitle":"Configurez vos services vocaux","overview.guide.servicesDesc":"Commencez par choisir les services de reconnaissance vocale et de traitement du texte. En mode Omni, seul le modèle multimodal actif doit être configuré.","overview.guide.permissionsTitle":"Vérifiez l’état de vos raccourcis","overview.guide.permissionsDesc":"L’adaptateur de raccourcis est indisponible. Ouvrez Autorisations et données pour voir son état et les options disponibles.","overview.guide.shortcutsTitle":"Choisissez un raccourci d’enregistrement","overview.guide.shortcutsDesc":"Choisissez un raccourci pratique pour commencer à dicter pendant que vous écrivez.","overview.guide.recordingTitle":"Choisissez comment enregistrer","overview.guide.recordingDesc":"La configuration du service est enregistrée. Ouvrez les réglages d’enregistrement pour choisir le microphone et le mode.","overview.guide.tryDictationTitle":"Essayez une dictée","overview.guide.tryDictationDesc":"Placez le curseur à l’endroit où vous voulez écrire. {{shortcut}}","overview.guide.permissionsHint":"La voix ou les raccourcis ne répondent pas ? Vérifiez les autorisations, l’accès au microphone et l’état des raccourcis dans Autorisations et données.","overview.kicker":"TABLEAU DE BORD","overview.title":"Vue d’ensemble du jour","overview.desc":"Statistiques de dictée du jour et état du système.","overview.pressPrefix":"Appuyez sur","overview.pressSuffix":"pour commencer","overview.asrKind":"Reconnaissance vocale","overview.llmKind":"Traitement du texte","overview.asrName":"Volcengine","overview.asrSubname":"bigmodel","overview.llmName":"Compatible OpenAI","overview.llmConfigured":"LLM actif configuré","overview.llmNotConfigured":"Non configuré","overview.statusConfigured":"Configuré","overview.statusNotConfigured":"Non configuré","overview.statusUnknown":"Indisponible","overview.credentialsLoadError":"Impossible de lire l’état des identifiants","overview.metricChars":"Caractères aujourd’hui","overview.metricSegments":"{{count}} segments","overview.metricDuration":"Durée totale du jour","overview.metricAvg":"Moyenne par segment","overview.metricAvgTrend":"Moyenne du jour","overview.metricNoData":"Aucune donnée","overview.historyLoadError":"Impossible de charger l’historique","overview.metricTotal":"Nombre total d’entrées","overview.metricTotalTrend":"Archive locale (200 maximum)","overview.activityTitle":"Activité annuelle","overview.activityCount":"{{count}} dictée(s)","overview.activityLoadError":"Impossible de charger l’activité","overview.period.ariaLabel":"Période du rapport","overview.period.last7Days":"7 derniers jours","overview.period.last30Days":"30 derniers jours","overview.period.dailyAverage":"{{value}} / jour","overview.period.minutes":"{{value}} min","overview.period.hoursMinutes":"{{hours}} h {{minutes}} min","overview.metricName.ariaLabel":"Indicateur","overview.metricName.count":"Nombre","overview.metricName.chars":"Caractères","overview.metricName.duration":"Durée","overview.recentTitle":"Transcriptions récentes","overview.recentAll":"Tout voir →","overview.recentEmpty":"Aucune entrée pour le moment. Appuyez sur {{trigger}} pour démarrer votre premier enregistrement.","overview.recentLoadFailed":"Impossible de charger les transcriptions récentes. Réessayez.","overview.historyRetry":"Réessayer","overview.weekDays.0":"Dim","overview.weekDays.1":"Lun","overview.weekDays.2":"Mar","overview.weekDays.3":"Mer","overview.weekDays.4":"Jeu","overview.weekDays.5":"Ven","overview.weekDays.6":"Sam","overview.inAppDictation.title":"Dictée dans l’application","overview.inAppDictation.start":"Démarrer l’enregistrement","overview.inAppDictation.stop":"Arrêter l’enregistrement","overview.inAppDictation.idle":"Appuyez pour commencer à enregistrer","overview.inAppDictation.recording":"Enregistrement…","overview.inAppDictation.processing":"Traitement…","overview.androidMicBanner.title":"Autorisation du microphone nécessaire","overview.androidMicBanner.desc":"Accordez l’accès au microphone pour utiliser la dictée et la saisie vocale dans l’application.","overview.androidMicBanner.grant":"Demander l’accès","overview.androidMicBanner.openSettings":"Ouvrir les réglages","history.exportError":"Impossible d’exporter l’enregistrement. Réessayez.","history.kicker":"HISTORIQUE","history.title":"Historique","history.desc":"Transcriptions enregistrées sur cet appareil.","history.filterAll":"Tout","history.summary":"{{total}} au total · {{shown}} affichées","history.searchPlaceholder":"Rechercher dans les transcriptions… ({{shortcut}})","history.searchNoMatch":"Aucune entrée ne correspond à « {{query}} ».","history.empty":"Aucun historique. Appuyez sur {{trigger}} pour enregistrer.","history.loadFailed":"Impossible de charger l’historique : {{err}}","history.retry":"Réessayer","history.clearFailed":"Impossible d’effacer l’historique : {{err}}","history.deleteFailed":"Impossible de supprimer l’entrée : {{err}}","history.copyFailed":"Impossible de copier : {{err}}","history.playRecording":"Lire l’enregistrement","history.audioLoading":"Chargement…","history.audioDecodeFailed":"Impossible de décoder l’audio : {{err}}","history.exportRecording":"Exporter l’enregistrement","history.exportFailed":"Échec de l’exportation : {{err}}","history.retranscribe":"Retranscrire","history.retranscribing":"Transcription…","history.retranscribeFailed":"Échec de la nouvelle transcription : {{err}}","history.rawLabel":"Brut","history.rawEmpty":"(vide)","history.selectHint":"Sélectionnez une entrée à gauche pour afficher ses détails.","history.recorded":"Enregistrement : {{duration}}","history.stepAsr":"Transcription","history.multimodalPipeline":"Multimodal","history.stepAsrHint":"Temps d’attente de la transcription après avoir relâché la touche. La reconnaissance en temps réel transcrit pendant que vous parlez ; ce délai est donc généralement bien plus court que l’enregistrement.","history.stepPolish":"Amélioration","history.stepInsert":"Insertion","history.chars":"{{count}} caractères","history.vocabHits":"{{count}} correspondances du dictionnaire","history.inserted":"Inséré","history.pasteSent":"Collage envoyé","history.copiedFallback":"Copié (utilisez {{shortcut}})","history.insertFailed":"Échec de l’insertion","history.confirmClear":"Supprimer les {{count}} entrées de l’historique ? Cette action est irréversible.","history.backToList":"Retour à la liste","history.repolish.title":"Améliorer à nouveau","history.repolish.hint":"Améliore à nouveau la transcription ci-dessus. Les résultats ne sont visibles que pendant cette visite et ne modifient pas l’entrée. Si le pack d’origine a été supprimé ou si l’entrée est antérieure aux packs de styles, le style actuel sera utilisé.","history.repolish.retry":"Réessayer avec le même style","history.repolish.retrying":"Nouvel essai…","history.repolish.apply":"Appliquer","history.repolish.applying":"Amélioration du texte…","history.repolish.pickStyle":"Choisir un pack de styles","history.repolish.noPacks":"Aucun pack de styles disponible.","history.repolish.packsLoadFailed":"Impossible de charger les packs de styles : {{err}}","history.repolish.failed":"La nouvelle amélioration a échoué : {{err}}","history.repolish.timeout":"Le fournisseur LLM n’a pas répondu sous 30 secondes. Choisissez un fournisseur plus rapide ou réessayez plus tard ; les modèles gratuits ont souvent une file d’attente.","history.repolish.resultTitle":"Résultat de {{name}}","history.repolish.retryResultTitle":"Résultat du nouvel essai","history.repolish.empty":"(le modèle a renvoyé un résultat vide)","history.repolish.clear":"Effacer les résultats","vocabCard.title":"Mémoriser ce mot ?","vocabCard.accept":"Mémoriser","vocabCard.reject":"Ignorer","insertFallbackCard.copy":"Copier","insertFallbackCard.copied":"Copié","insertFallbackCard.copyFailed":"Impossible de copier","insertFallbackCard.dismiss":"Fermer","vocab.selectAllVisible":"Sélectionner les résultats actuels","vocab.selectedCount":"{{count}} mots sélectionnés","vocab.selectWord":"Sélectionner « {{phrase}} »","vocab.deleteSelected":"Supprimer la sélection ({{count}})","vocab.batchDeleteFailed":"Impossible de supprimer {{count}} mots. Ils restent sélectionnés pour que vous puissiez réessayer.","vocab.kicker":"DICTIONNAIRE","vocab.title":"Dictionnaire","vocab.desc":"Ajoutez des termes ou du jargon pour améliorer la précision de la reconnaissance.","vocab.sectionTitle":"Entrées","vocab.placeholder":"Saisissez un mot, puis appuyez sur Entrée ou cliquez sur Ajouter…","vocab.tip":"Chinois et anglais combinés acceptés · les préfixes numériques sont comparés littéralement · les correspondances sont comptées automatiquement","vocab.loadFailed":"Échec du chargement : {{err}}","vocab.empty":"Aucune entrée pour le moment. Ajoutez un terme ou une expression spécialisée ci-dessus pour que le modèle les privilégie.","vocab.tipDisabled":"Cliquez pour désactiver cette entrée","vocab.tipEnabled":"Cliquez pour activer cette entrée","vocab.removeAria":"Supprimer","vocab.edit":"Modifier","vocab.editTitle":"Modifier le mot","vocab.editSave":"Enregistrer","vocab.editEmpty":"Le mot ne peut pas être vide.","vocab.filter.all":"Tous","vocab.filter.auto":"Ajoutés automatiquement","vocab.filter.manual":"Ajoutés manuellement","vocab.searchPlaceholder":"Rechercher","vocab.searchEmpty":"Aucun mot correspondant.","vocab.newWord":"Nouveau mot","vocab.newWordTitle":"Ajouter des mots","vocab.newWordDesc":"Saisissez un mot ou importez plusieurs mots à partir de modèles prédéfinis.","vocab.newWordInputPlaceholder":"Saisissez un mot, puis appuyez sur Entrée pour l’ajouter…","vocab.newWordTemplates":"Modèles prédéfinis","vocab.newWordTemplateCount":"{{count}} mots","vocab.newWordAddSelected":"Ajouter la sélection","vocab.learnedSection":"Collectés automatiquement ({{count}})","vocab.removeAllLearned":"Tout supprimer","vocab.corrections.title":"Règles de correction","vocab.corrections.tip":"Corrige les erreurs fréquentes de reconnaissance vocale. Accepte le caractère générique numérique {num}.","vocab.corrections.patternPlaceholder":"Texte erroné, p. ex. {num} voies","vocab.corrections.replacementPlaceholder":"Texte souhaité, p. ex. {num} voix","vocab.corrections.empty":"Aucune règle de correction pour le moment.","vocab.corrections.invalid":"Seuls les remplacements littéraux ou un caractère générique numérique {num} sont acceptés, par exemple {num} voies → {num} voix.","vocab.corrections.tipDisabled":"Cliquez pour désactiver cette règle","vocab.corrections.tipEnabled":"Cliquez pour activer cette règle","vocab.corrections.removeAria":"Supprimer la règle de correction","vocab.corrections.learnedBadge":"auto","vocab.corrections.learnedTip":"Collectée automatiquement à partir de vos corrections. Vous pouvez la supprimer à tout moment.","vocab.corrections.onlyLearned":"Automatiques uniquement ({{count}})","vocab.corrections.removeAllLearned":"Supprimer toutes les règles automatiques","vocab.corrections.suggestTitle":"Mémoriser cette correction ?","vocab.corrections.suggestAccept":"Mémoriser","vocab.corrections.suggestDismiss":"Non merci","vocab.presets.title":"Préréglages par contexte","vocab.presets.tip":"Sélectionnez-en plusieurs pour les appliquer ensemble. Vous pouvez les modifier ou en créer.","vocab.presets.create":"Nouveau préréglage","vocab.presets.apply":"Appliquer la sélection","vocab.presets.save":"Enregistrer le préréglage","vocab.presets.edit":"Modifier {{name}}","vocab.presets.newPreset":"Nouveau préréglage","vocab.presets.namePlaceholder":"Nom du préréglage","vocab.presets.wordsPlaceholder":"Termes séparés par des virgules ou des retours à la ligne","style.kicker":"STYLE","style.title":"Style de sortie","style.desc":"Choisissez le style de sortie par défaut pour les enregistrements.","style.masterToggle":"Interrupteur principal","style.currentDefault":"Style par défaut actuel","style.ariaSetDefault":"Définir par défaut","style.saveFailed":"Échec de l’enregistrement : {{error}}","style.customPromptTitle":"Instructions personnalisées","style.customPromptPlaceholder":"Facultatif. S’ajoutent aux instructions système intégrées à ce style.","style.customPromptHint":"Laissez vide pour conserver le comportement actuel. Après enregistrement, les instructions s’appliquent à la dictée et aux améliorations ultérieures. Vous pouvez aussi enregistrer avec Ctrl/Cmd+Enter.","style.customPromptSave":"Enregistrer les instructions","style.customPromptDirty":"Non enregistré","style.systemPromptMovedHint":"L’édition des instructions système complètes se trouve désormais dans Réglages → Fournisseurs. Cette page gère seulement les styles actifs et le style par défaut.","style.modes.raw.name":"Brut","style.modes.raw.desc":"Ajoute uniquement la ponctuation et les pauses naturelles, sans réécrire ni développer.","style.modes.raw.sample":"Conserve le rythme oral et les phrases d’origine ; supprime les hésitations comme « euh » ou « vous savez ».","style.modes.light.name":"Retouche légère","style.modes.light.desc":"Supprime les hésitations, ajoute la ponctuation et produit un texte naturel prêt à envoyer.","style.modes.light.sample":"Fluidifie la transcription sans lui donner un ton artificiel ; vos habitudes et votre ton sont préservés.","style.modes.structured.name":"Structuré","style.modes.structured.desc":"Structure les échanges de programmation, le dépannage et les retours produit avec une terminologie précise.","style.modes.structured.sample":"1. Premier sujet\na. Point\nb. Point\n2. Deuxième sujet\na. Point\nb. Point","style.modes.formal.name":"Formel","style.modes.formal.desc":"Un ton adapté aux courriels et au travail : plus complet et professionnel.","style.modes.formal.sample":"Détecte les salutations et les formules de clôture des courriels, sans ajouter de politesses inutiles.","style.pack.builtinTags.minimalEdits":"Retouches minimales","style.pack.builtinTags.strongCorrection":"Correction renforcée","style.pack.builtinTags.communication":"Communication","style.pack.builtinTags.natural":"Naturel","style.pack.builtinTags.organized":"Structuré","style.pack.builtinTags.workplaceCommunication":"Communication professionnelle","style.pack.builtinTags.aiCoding":"Programmation avec l’IA","style.pack.builtinTags.technicalStructure":"Structure technique","style.pack.newName":"Style sans titre","style.pack.newDescription":"Décrivez brièvement quand utiliser ce style.","style.pack.uploadIcon":"Importer une icône SVG pour {{name}}","style.pack.resetIcon":"Rétablir l’icône par défaut","style.pack.iconSaved":"Icône enregistrée","style.pack.iconInvalid":"Choisissez une icône SVG valide, sans ressources externes (256 Ko maximum).","style.pack.iconSaveFailed":"Impossible d’enregistrer l’icône. Réessayez.","style.pack.selectionListTitle":"Styles pour la sélection","style.pack.selectionListDesc":"Améliore la grammaire, la clarté et la mise en forme du texte sélectionné, sans reconnaissance vocale. Choisissez séparément son style et ses instructions.","style.pack.dictationTab":"Styles d’enregistrement / ASR","style.pack.selectionTab":"Amélioration de la sélection","style.pack.current":"Actuel","style.pack.useForSelection":"Utiliser pour la sélection","style.pack.writtenPolish":"Amélioration du texte écrit","style.pack.selectionPromptTitle":"Instructions pour la sélection (sans ASR)","style.pack.selectionPromptHint":"Pour du texte écrit sélectionné par l’utilisateur, pas une transcription. Ne le traitez pas comme une dictée et ne répondez pas à ses questions.","style.pack.selectionPromptEditorDesc":"Modifiez les instructions destinées au texte écrit explicitement sélectionné par l’utilisateur, sans ASR.","style.pack.dictationPromptEditorDesc":"Modifiez les instructions du style d’enregistrement / ASR ; l’entrée est le texte transcrit après la dictée.","style.pack.dictationPromptTitle":"Instructions d’enregistrement / ASR","style.pack.dictationPromptHint":"Pour les transcriptions après dictée. Définissez ici les règles de nettoyage du langage oral, de correction des erreurs ASR et de restauration des termes.","style.pack.selectionPromptFallback":"Aucune instruction pour le texte écrit ; une configuration sûre par défaut sera utilisée.","style.pack.selectionActivated":"« {{name}} » sera utilisé pour améliorer les sélections.","style.pack.selectionActivateFailed":"Impossible de changer le style de sélection : {{err}}","style.pack.selectionChars":"{{count}} caractères","style.pack.kicker":"PACKS DE STYLES","style.pack.title":"Packs de styles","style.pack.desc":"Gérez vos packs de styles locaux.","style.pack.marketplaceBtn":"Catalogue","style.pack.loadFailed":"Impossible de charger les packs de styles : {{err}}","style.pack.importZip":"Importer un ZIP","style.pack.exportZip":"Exporter en ZIP","style.pack.exportShort":"Exporter","style.pack.publishMarketplace":"Publier dans le catalogue","style.pack.updateMarketplace":"Mettre à jour la version du catalogue","style.pack.publishDisabledHint":"Configurez d’abord votre connexion GitHub dans Réglages → Catalogue","style.pack.publishSuccess":"Publié ; en attente de validation dans le catalogue","style.pack.publishFailed":"Échec de la publication : {{err}}","style.pack.publishBuiltinRejected":"Les packs intégrés ne peuvent pas être publiés. Créez d’abord une copie dans l’éditeur.","style.pack.builtin":"Intégré","style.pack.imported":"Importé","style.pack.active":"Actif","style.pack.activate":"Activer","style.pack.edit":"Modifier","style.pack.closeEditor":"Fermer","style.pack.unsaved":"Non enregistré","style.pack.listTitle":"Packs locaux","style.pack.listDesc":"Parcourez les packs et changez de style.","style.pack.listCount":"{{count}} packs","style.pack.addPackTileTitle":"Nouveau pack","style.pack.addPackTileHint":"Commencez avec un modèle vierge.","style.pack.createSuccess":"Nouveau pack créé.","style.pack.createFailed":"Impossible de créer le pack : {{err}}","style.pack.save":"Enregistrer","style.pack.revert":"Rétablir","style.pack.saveSuccess":"Pack de styles enregistré.","style.pack.saveFailed":"Impossible d’enregistrer le pack : {{err}}","style.pack.activateSuccess":"« {{name}} » est désormais le pack actuel.","style.pack.activateFailed":"Impossible de définir le pack actuel : {{err}}","style.pack.importSuccess":"« {{name}} » importé.","style.pack.importFailed":"Impossible d’importer le ZIP : {{err}}","style.pack.exportSuccess":"Exporté vers {{path}}","style.pack.exportFailed":"Impossible d’exporter le ZIP : {{err}}","style.pack.exportDirtyFirst":"Enregistrez ce pack avant de l’exporter en ZIP.","style.pack.resetBuiltin":"Réinitialiser","style.pack.resetSuccess":"« {{name}} » réinitialisé.","style.pack.resetFailed":"Impossible de réinitialiser le pack : {{err}}","style.pack.deleteImported":"Supprimer","style.pack.deleteConfirm":"Supprimer « {{name}} » ? Cette action est irréversible.","style.pack.deleteSuccess":"« {{name}} » supprimé.","style.pack.deleteFailed":"Impossible de supprimer le pack : {{err}}","style.pack.summaryCurrentEmpty":"Aucun pack sélectionné","style.pack.editorTitle":"Modifier le pack","style.pack.editorDesc":"Modifiez ce pack.","style.pack.metaTitle":"Informations d’installation","style.pack.metaSource":"Origine","style.pack.metaBaseMode":"Mode de base","style.pack.metaUpdatedAt":"Mis à jour","style.pack.fieldName":"Nom","style.pack.fieldAuthor":"Auteur","style.pack.fieldAuthorPlaceholder":"Libellé d’origine facultatif","style.pack.fieldVersion":"Version","style.pack.fieldTags":"Étiquettes","style.pack.fieldTagsPlaceholder":"Étiquettes séparées par des virgules, p. ex. communauté, voix off, formel","style.pack.fieldDescription":"Description","style.pack.fieldModel":"Modèle recommandé (métadonnées)","style.pack.fieldModelPlaceholder":"Facultatif, p. ex. gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"Métadonnées uniquement. Ne change pas le modèle.","style.pack.fieldCompatibility":"Version compatible de l’application","style.pack.fieldCompatibilityPlaceholder":"Facultatif, p. ex. >=1.3.0","style.pack.fullPromptTitle":"Instructions système","style.pack.fullPromptHint":"Les instructions propres à ce pack.","style.pack.promptChars":"{{count}} caractères","style.pack.runtimeTitle":"Directives d’exécution d’OpenLess","style.pack.runtimeDesc":"Compléments d’exécution en lecture seule.","style.pack.runtimeContextTitle":"Éléments de contexte","style.pack.runtimeContextDesc":"D’après la langue et le contexte de l’application","style.pack.runtimeContextEmpty":"Non ajouté dans cet aperçu.","style.pack.runtimeHotwordTitle":"Bloc de mots-clés","style.pack.runtimeHotwordDesc":"D’après les mots-clés activés","style.pack.runtimeHotwordEmpty":"Non ajouté dans cet aperçu.","style.pack.runtimeHistoryTitle":"Règles pour l’historique de conversation","style.pack.runtimeHistoryDesc":"Uniquement pour l’amélioration sur plusieurs interventions","style.pack.runtimeHistoryEmpty":"Ajouté uniquement en présence d’interventions précédentes.","style.pack.runtimeActive":"Actif","style.pack.runtimeInactive":"Inactif","style.pack.runtimePreviewFailed":"Impossible de générer l’aperçu d’exécution : {{err}}","style.pack.runtimePreviewOmittedFrontApp":"L’aperçu omet le nom de l’application au premier plan.","style.pack.examplesTitle":"Exemples de résultats","style.pack.examplesDesc":"Exportés avec le pack.","style.pack.addExample":"Ajouter un exemple","style.pack.examplesEmpty":"Aucun exemple pour le moment.","style.pack.exampleTitlePlaceholder":"Titre de l’exemple {{index}}","style.pack.exampleInput":"Entrée","style.pack.exampleOutput":"Sortie","style.pack.examplesCount":"{{count}} exemples","style.pack.discardCloseConfirm":"Abandonner les modifications non enregistrées et fermer l’éditeur ?","style.pack.discardSwitchConfirm":"Abandonner les modifications non enregistrées et passer à « {{name}} » ?","style.pack.derivativeBadge":"Dérivé de @{{login}}","translation.searchLanguages":"Rechercher une langue…","translation.noMatchingLanguages":"Aucune langue correspondante","translation.selectedLanguages":"{{count}} langues sélectionnées","translation.languageSupportHint":"Les langues de reconnaissance disponibles dépendent du fournisseur. Les langues de traduction sont indépendantes de celle de l’application.","translation.kicker":"TRADUCTION","translation.title":"Traduction","translation.desc":"Traduit automatiquement les enregistrements dans la langue choisie avant d’insérer le texte.","translation.statusEnabled":"Activée","translation.statusDisabled":"Désactivée","translation.working.title":"Langues habituelles","translation.working.desc":"Sélectionnez les langues que vous utilisez régulièrement pour améliorer la rédaction et la traduction.","translation.target.title":"Langue de traduction","translation.target.desc":"Appuyez sur Maj pendant l’enregistrement pour traduire. Si la traduction est désactivée, Maj n’a aucun effet.","translation.target.disabled":"Désactivée (Maj sans effet)","translation.target.sameAsWorking":"La langue cible correspond à votre seule langue habituelle : la traduction sera sans effet et Maj améliorera simplement le texte. Choisissez une autre cible ou ajoutez une langue habituelle ci-dessus.","translation.style.title":"Style de traduction","translation.style.desc":"Hérite automatiquement du pack actif dans la page Style.","translation.style.unavailable":"Indisponible","translation.save.workingFailed":"Impossible d’enregistrer les langues habituelles. Réessayez.","translation.save.targetFailed":"Impossible d’enregistrer la langue de traduction. Réessayez.","translation.save.hotkeyRegisterFailed":"Impossible d’enregistrer le raccourci de traduction auprès du système. La préférence n’a pas été sauvegardée.","translation.save.hotkeySaveFailed":"Impossible de sauvegarder le raccourci de traduction. Réessayez.","translation.howto.title":"Mode d’emploi","translation.howto.step1":"Placez le curseur dans un champ de texte.","translation.howto.step2":"Appuyez sur {{trigger}} pour démarrer l’enregistrement.","translation.howto.step3":"Appuyez une fois sur {{shortcut}} pendant l’enregistrement pour activer la traduction.","translation.howto.step4":"Appuyez de nouveau sur {{trigger}} pour arrêter.","translation.howto.step5":"Le texte traduit est inséré à l’emplacement du curseur.","translation.howto.indicatorTitle":"Comment vérifier que la traduction est active","translation.howto.indicatorDesc":"Un indicateur bleu « Traduction » apparaît en bas de l’écran après avoir appuyé sur Maj.","translation.howto.fallbackTitle":"Solution de repli","translation.howto.fallbackDesc":"Si la traduction échoue, la transcription brute est insérée à la place.","selectionAsk.title":"Questions sur la sélection","selectionAsk.desc":"Sélectionnez du texte et posez des questions à voix haute, puis poursuivez la conversation.","selectionAsk.shortcutSettings":"Réglages des raccourcis","selectionAsk.guide.openTitle":"Ouvrez le panneau","selectionAsk.guide.openDesc":"Appuyez sur {{hotkey}} pour commencer une conversation.","selectionAsk.guide.unsetDesc":"Attribuez d’abord un raccourci aux questions sur la sélection dans Réglages des raccourcis.","selectionAsk.guide.selectTitle":"Sélectionnez un texte à explorer","selectionAsk.guide.askTitle":"Posez votre question à voix haute","selectionAsk.guide.askDesc":"Appuyez sur {{recordHotkey}} pour enregistrer, puis de nouveau pour envoyer.","selectionAsk.guide.followup":"Réutilisez le raccourci d’enregistrement pour poser une autre question.","selectionAsk.guide.dismiss":"Fermer le panneau et terminer cette conversation","selectionAsk.hotkey.title":"Raccourci pour ouvrir le panneau","selectionAsk.save.historySaveFailed":"Impossible d’enregistrer le réglage d’historique des questions. Réessayez.","selectionAsk.history.title":"Conserver l’historique","selectionAsk.history.desc":"Enregistre les conversations sur cet appareil. Désactivé par défaut.","selectionAsk.howto.title":"Mode d’emploi","selectionAsk.howto.step2":"Sélectionnez du texte dans une application.","settings.selectionWorkspace.title":"Assistant de sélection","settings.selectionWorkspace.hint":"Sélectionnez du texte, puis utilisez un seul raccourci : amélioration directe sans édition vocale ; sinon, maintenez et parlez, puis choisissez Question ou Modification.","settings.selectionWorkspace.polishHotkey":"Raccourci de l’assistant de sélection","settings.selectionWorkspace.polishHotkeyDesc":"Améliore directement le texte sans édition vocale ; sinon, maintenez pour parler. L’enregistrement suit les réglages généraux.","settings.selectionWorkspace.polishDelivery":"Traitement du résultat","settings.selectionWorkspace.voiceDeliveryDesc":"Après une modification vocale, remplacez directement la sélection ou vérifiez le résultat dans le panneau Questions avant de confirmer.","settings.selectionWorkspace.voiceEnable":"Modification vocale","settings.selectionWorkspace.voiceEnableDesc":"Utilise le même raccourci ci-dessus. L’enregistrement suit les réglages généraux (actuel : {{recordingLabel}}).","settings.selectionWorkspace.autoIntent":"Détecter automatiquement l’intention","settings.selectionWorkspace.autoIntentDesc":"Le modèle configuré distingue les questions des modifications. S’il échoue, la détection repose sur les mots interrogatifs.","settings.selectionWorkspace.editKeywords":"Indices de question supplémentaires","settings.selectionWorkspace.editKeywordsDesc":"Uniquement lorsque la détection automatique est désactivée. Un indice par ligne force le mode Question ; sinon, « ? » et les mots interrogatifs servent d’indices.","settings.selectionPolish.title":"Amélioration de la sélection","settings.selectionPolish.hotkey":"Raccourci de déclenchement","settings.selectionPolish.hotkeyDesc":"Le raccourci prend effet immédiatement. Les conflits avec l’enregistrement, les questions ou d’autres raccourcis globaux sont refusés.","settings.selectionPolish.delivery":"Traitement du résultat","settings.selectionPolish.hint":"Déclenchez après avoir sélectionné du texte. Aucun microphone ni ASR n’est nécessaire. Le pack actuel est utilisé avec ses instructions dédiées aux sélections.","settings.selectionPolish.directReplace":"Remplacer directement","settings.selectionPolish.directReplaceHint":"Remplace la sélection d’origine de façon sûre lorsque le modèle a terminé.","settings.selectionPolish.previewConfirm":"Vérifier et confirmer","settings.selectionPolish.previewConfirmHint":"Vérifiez le résultat dans une fenêtre modifiable, puis confirmez pour remplacer la sélection d’origine.","settings.kicker":"RÉGLAGES","settings.title":"Réglages","settings.desc":"Enregistrement, fournisseurs, raccourcis et autorisations.","settings.network.title":"Réseau","settings.network.useSystemProxyLabel":"Utiliser le proxy système","settings.network.useSystemProxyDesc":"Les requêtes suivent le proxy système si cette option est activée. Sinon, elles se connectent directement, ce qui réduit souvent la latence des services locaux, mais peut empêcher l’accès à GitHub ou aux mises à jour dans certaines régions. Les flux vocaux en temps réel et Less Computer ne sont pas concernés.","settings.dataStorage.title":"Stockage des données","settings.dataStorage.desc":"Historique des conversations et contexte conservés sur cet appareil.","settings.dataStorage.cursorContextLabel":"Contexte du curseur (expérimental)","settings.dataStorage.cursorContextDesc":"Lors de l’amélioration du texte, lit le contenu autour du curseur dans votre document pour distinguer les homophones, noms propres et pronoms. S’il est activé, ce texte accompagne la requête au fournisseur LLM configuré. Sinon, rien n’est lu. Les champs de mot de passe, la saisie sécurisée, les gestionnaires de mots de passe et les terminaux sont toujours exclus. macOS uniquement.","settings.codingConsole.title":"Console Claude","settings.codingConsole.desc":"Détectez Claude Code et le MCP de contrôle de l’ordinateur, puis exécutez Claude sans interface avec des protections. Consultez la sortie progressive et le coût.","settings.codingConsole.guardNote":"Les actions réversibles sont autorisées par défaut ; les commandes à risque comme rm -rf, sudo et force push sont bloquées. Si le dossier est un dépôt Git, un instantané est créé avant chaque exécution pour permettre un retour arrière.","settings.codingConsole.status":"État","settings.codingConsole.detect":"Détecter","settings.codingConsole.detecting":"Détection…","settings.codingConsole.installed":"Claude détecté","settings.codingConsole.notInstalled":"claude introuvable","settings.codingConsole.notInstalledHint":"Installez d’abord Claude Code (voir docs.anthropic.com/claude-code) ou saisissez le chemin complet de son exécutable ci-dessous.","settings.codingConsole.mcpServers":"{{count}} serveur(s) MCP configuré(s)","settings.codingConsole.computerUsePresent":"MCP de contrôle du bureau configuré","settings.codingConsole.computerUseAbsent":"Aucun MCP de contrôle du bureau ; non requis pour les actions simples comme copier et coller via Bash","settings.codingConsole.exePath":"Exécutable","settings.codingConsole.workdir":"Répertoire de travail","settings.codingConsole.workdirDesc":"Facultatif. Claude s’exécute dans ce dossier. Un dépôt Git permet de créer un instantané avant l’exécution pour revenir en arrière.","settings.codingConsole.workdirPlaceholder":"Vide = utiliser un dossier temporaire","settings.codingConsole.permissionMode":"Mode d’autorisation","settings.codingConsole.mode.acceptEdits":"Autoriser les actions réversibles","settings.codingConsole.mode.plan":"Lecture seule / plan","settings.codingConsole.mode.default":"Par défaut (toujours demander)","settings.codingConsole.mode.bypassPermissions":"Ignorer toutes les autorisations (risqué)","settings.codingConsole.promptPlaceholder":"Demandez une action à Claude, par exemple lister les fichiers du dossier actuel","settings.codingConsole.run":"Exécuter","settings.codingConsole.running":"Exécution…","settings.codingConsole.cancel":"Annuler","settings.codingConsole.clear":"Effacer","settings.codingConsole.riskWarn":"Intention à haut risque détectée : {{reason}}. La protection bloque les commandes à haut risque pendant l’exécution.","settings.codingConsole.toolUse":"outil {{name}}","settings.codingConsole.done":"Terminé","settings.codingConsole.doneCost":"Terminé · coût ${{cost}}","settings.codingConsole.cancelled":"Annulé","settings.codingConsole.outputPlaceholder":"La sortie s’affichera progressivement ici…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"Maintenez une touche et parlez pour que l’agent choisi agisse sur votre ordinateur. macOS uniquement.","settings.codingAgent.enable":"Activer Less Computer","settings.codingAgent.comingSoonNote":"La configuration est enregistrée ; le déclenchement par raccourci et le flux d’exécution arriveront dans une version ultérieure.","settings.codingAgent.hotkeyHint":"Maintenez le raccourci pour parler. À son relâchement, l’agent choisi affiche le résultat dans la capsule.","settings.codingAgent.voiceHotkey":"Touche à maintenir pour parler","settings.codingAgent.voiceHotkeyDesc":"Maintenez pour parler, relâchez pour exécuter. Accepte Ctrl, Option ou Fn seuls. Consultez ses fonctions dans les réglages avancés.","settings.codingAgent.provider":"Moteur de l’agent","settings.codingAgent.opencodeReady":"OpenCode v{{version}} détecté.","settings.codingAgent.opencodeMissing":"Commande opencode introuvable. Installez-la avec npm i -g opencode-ai et connectez-vous avec opencode auth login avant utilisation.","settings.codingAgent.cliReady":"{{name}} v{{version}} détecté.","settings.codingAgent.cliMissing":"Commande {{name}} introuvable. Installez-la et connectez-vous d’abord, ou indiquez son chemin absolu dans Exécutable.","settings.codingAgent.sandboxGuardHint":"Ce moteur propose seulement des niveaux généraux d’isolation, sans liste de commandes à haut risque. Lorsqu’une limite est atteinte, l’erreur est affichée telle quelle, sans carte d’approbation de commande.","settings.codingAgent.codexModelHint":"Saisissez un modèle Codex (p. ex. gpt-5) ou laissez vide pour utiliser ~/.codex/config.toml.","settings.codingAgent.codexBudgetHint":"Codex ne propose pas de plafond en USD par exécution ; les frais dépendent du fournisseur configuré.","settings.codingAgent.codexMode.plan":"Lecture seule / plan","settings.codingAgent.codexMode.workspaceWrite":"Autoriser l’écriture dans l’espace de travail","settings.codingAgent.codexModelPlaceholder":"Vide = choix par défaut de Codex","settings.codingAgent.dshModelHint":"Le profil sans interface de dsh ne permet pas de changer de modèle. Le modèle est défini dans le propre profil de dsh.","settings.codingAgent.panelHotkey":"Raccourci du panneau (agent vocal)","settings.codingAgent.panelHotkeyDesc":"Enregistrement vocal → ASR → Claude → sortie progressive dans un panneau. Par défaut : Cmd/Ctrl+Shift+Enter.","settings.codingAgent.quickHotkey":"Raccourci d’action rapide","settings.codingAgent.quickHotkeyDesc":"Envoie le texte sélectionné à Claude et insère le résultat au curseur. Sans panneau, pour aller plus vite.","settings.codingAgent.model":"Modèle","settings.codingAgent.modelPlaceholder":"Par défaut : sonnet","settings.codingAgent.modelDefault":"Par défaut (sonnet automatique)","settings.codingAgent.modelHint":"Haiku = le plus rapide · Sonnet = équilibré · Opus = le plus puissant","settings.codingAgent.opencodeModelDefault":"Utiliser le modèle par défaut d’OpenCode","settings.codingAgent.opencodeModelHint":"Récupère automatiquement les fournisseurs et modèles disponibles pour le compte OpenCode actuel, puis enregistre immédiatement votre choix.","settings.codingAgent.opencodeModelsRefresh":"Actualiser les modèles","settings.codingAgent.opencodeModelsRefreshing":"Récupération des modèles OpenCode…","settings.codingAgent.opencodeModelsLoaded":"{{count}} modèles récupérés.","settings.codingAgent.opencodeModelsEmpty":"Aucun modèle reçu. Connectez-vous à OpenCode ou configurez d’abord un fournisseur.","settings.codingAgent.opencodeModelsError":"Impossible de récupérer les modèles : {{message}}","settings.codingAgent.exe":"Chemin de l’exécutable","settings.codingAgent.openPanel":"Test par texte","settings.codingAgent.openPanelHint":"Ouvrez Less Computer et vérifiez l’agent et le modèle actuels avec une instruction écrite.","settings.codingAgent.openPanelAction":"Ouvrir Less Computer","settings.debug.cursorLabel":"Curseur","settings.debug.title":"Outils de débogage","settings.debug.desc":"Pour diagnostiquer les problèmes de reconnaissance ; désactivés par défaut.","settings.debug.cursorProbeLabel":"Sonde du contexte du curseur","settings.debug.cursorProbeDesc":"Cliquez, puis passez à l’application cible et placez le curseur dans un champ avant la fin du décompte. La sonde lit le texte autour du curseur pour vérifier quelles applications sont lisibles et lesquelles sont bloquées par les protections. Une seule lecture, sans envoi à un fournisseur.","settings.debug.cursorProbeBtn":"Sonder dans 5 s","settings.debug.cursorProbeCountdown":"Lecture dans {{n}}s…","settings.marketplace.title":"Catalogue","settings.marketplace.desc":"Identité d’auteur pour publier des packs. Parcourez et installez les styles dans la page Styles.","settings.marketplace.github.signIn":"Se connecter avec GitHub","settings.marketplace.github.signedIn":"Connecté avec GitHub","settings.marketplace.github.signedOut":"Connectez-vous pour publier des styles et aimer des packs.","settings.marketplace.github.signOut":"Se déconnecter","settings.marketplace.github.starting":"Connexion…","settings.marketplace.github.codeHint":"Saisissez ce code sur la page GitHub qui vient de s’ouvrir :","settings.marketplace.github.openGithub":"Ouvrir GitHub","settings.marketplace.github.waiting":"GitHub est ouvert ; la connexion suivra votre autorisation…","settings.marketplace.github.failed":"Échec de la connexion. Réessayez","settings.recording.title":"Enregistrement et saisie","settings.recording.desc":"Raccourci global d’enregistrement et mode de déclenchement.","settings.recording.hotkeyLabel":"Raccourci d’enregistrement","settings.recording.hotkeyDescAcc":"Appuyez pour enregistrer votre voix depuis toute application (autorisation d’accessibilité requise).","settings.recording.hotkeyDescNoAcc":"Appuyez pour enregistrer votre voix depuis toute application.","settings.recording.modeLabel":"Mode de déclenchement","settings.recording.modeDesc":"Basculer : appuyez une fois pour démarrer, puis à nouveau pour arrêter. Maintenir pour parler : enregistre tant que la touche est enfoncée.","settings.recording.modeToggle":"Basculer","settings.recording.modeHold":"Maintenir pour parler","settings.recording.modeAuto":"Automatique","settings.recording.silenceAutoStopLabel":"Arrêter après un silence","settings.recording.silenceAutoStopDesc":"En mode Basculer uniquement. Après avoir détecté la voix, arrête et envoie l’enregistrement lorsque le silence dure le temps choisi. Désactivé par défaut ; le raccourci et Échap restent disponibles.","settings.recording.silenceAutoStopSecondsLabel":"Durée du silence","settings.recording.silenceAutoStopSecondsValue":"{{value}}s","settings.recording.migrationNoticeTitle":"Le mode d’enregistrement par défaut est désormais Basculer","settings.recording.migrationNoticeDesc":"Cette mise à jour change le mode par défaut. Si vous préférez maintenir la touche pour parler, rétablissez ce mode ici.","settings.recording.microphoneLabel":"Microphone préféré","settings.recording.microphoneDesc":"Choisissez le périphérique d’entrée préféré. S’il est indisponible, celui par défaut du système est utilisé.","settings.recording.microphoneDefault":"Microphone par défaut du système","settings.recording.microphoneDefaultDesc":"Utiliser le périphérique d’entrée par défaut du système","settings.recording.microphoneSystemDefault":"par défaut du système","settings.recording.microphoneUnavailable":"indisponible","settings.recording.microphoneLoadError":"Impossible de charger les microphones : {{message}}","settings.recording.microphoneDialogTitle":"Microphone","settings.recording.microphoneDialogDesc":"Choisissez un microphone capable de capter votre voix.","settings.recording.microphoneMonitorError":"Impossible de surveiller le niveau d’entrée : {{message}}","settings.recording.capsuleLabel":"Capsule d’enregistrement","settings.recording.capsuleDesc":"Affiche une capsule en bas de l’écran pendant l’enregistrement.","settings.recording.capsuleStyleTypeless":"Style compact Typeless","settings.recording.capsuleStyleLabel":"Style de capsule","settings.recording.capsuleStyleSiri":"Style lumineux Siri","settings.recording.capsuleStyleClassic":"Style par défaut d’OpenLess","settings.recording.muteDuringRecordingLabel":"Couper le son pendant l’enregistrement","settings.recording.muteDuringRecordingDesc":"Coupe temporairement le son système pendant la saisie vocale pour éviter l’écho des haut-parleurs.","settings.recording.audioCueLabel":"Son de début d’enregistrement","settings.recording.audioCueDesc":"Joue un bref son synthétisé lorsque vous appuyez sur le raccourci pour enregistrer, même si la capsule est masquée.","settings.recording.audioCuePreview":"Écouter","settings.recording.insertGroupTitle":"Insertion et presse-papiers","settings.recording.restoreClipboardLabel":"Restaurer le presse-papiers après insertion","settings.recording.restoreClipboardDesc":"Restaure le contenu initial du presse-papiers après un collage réussi (Windows / Linux uniquement).","settings.recording.pasteShortcutLabel":"Raccourci de collage simulé","settings.recording.pasteShortcutDesc":"Combinaison simulée pour insérer le texte. Certains terminaux nécessitent Ctrl+Shift+V (Windows / Linux uniquement).","settings.recording.pasteShortcutCtrlV":"Ctrl+V (par défaut / plupart des applications)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V (kitty / alacritty / wezterm / plupart des terminaux)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert (xterm / urxvt)","settings.recording.comboRecordLabel":"Enregistrer un raccourci","settings.recording.comboRecordDesc":"Cliquez, puis appuyez sur la combinaison souhaitée (p. ex. ⌘⇧D). Accepte les modes Basculer et Maintenir pour parler.","settings.recording.comboRecordBtn":"Enregistrer un raccourci","settings.recording.comboResetBtn":"Réinitialiser","settings.recording.comboMenuToggle":"Plus d’options","settings.recording.comboDisableHint":"Le raccourci principal ne peut pas être désactivé : l’enregistrement a besoin d’un raccourci","settings.recording.comboRecordHint":"Appuyez sur votre combinaison…","settings.recording.comboNeedKey":"Utilisez une combinaison (p. ex. ⌘⇧J) ; une touche de modification seule ne suffit pas","settings.recording.comboRecorded":"Raccourci enregistré","settings.recording.comboClear":"Effacer","settings.recording.comboConflict":"Cette combinaison n’est pas disponible","settings.recording.allowNonTsfFallbackLabel":"Autoriser une solution de repli sans TSF","settings.recording.allowNonTsfFallbackDesc":"Windows : si l’insertion TSF échoue, utilise SendInput Unicode avec des pauses. En cas de nouvel échec, copie le texte dans le presse-papiers.","settings.recording.windowsInsertionModeLabel":"Méthode d’insertion sous Windows","settings.recording.windowsInsertionModeDesc":"Définit comment la dictée est insérée au curseur. Le collage utilise le raccourci simulé ci-dessus et conserve les sauts de ligne.","settings.recording.windowsInsertionModeTsf":"IME TSF (par défaut)","settings.recording.windowsInsertionModeSendInput":"Simulation de touches SendInput","settings.recording.windowsInsertionModePaste":"Collage depuis le presse-papiers (Ctrl+V, etc.)","settings.recording.macosNewlineModeLabel":"Sauts de ligne","settings.recording.macosNewlineModeDesc":"Automatique utilise Line Feed (U+000A / Ctrl+J) dans les terminaux connus et Shift+Return ailleurs. Return seul envoie le message.","settings.recording.macosNewlineModeAuto":"Automatique (Line Feed dans les terminaux)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return (nouvelle ligne dans les chats)","settings.recording.macosNewlineModeLineFeed":"Line Feed (CLI de terminal / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return (séparer en messages)","settings.recording.windowsSendInputNewlineModeLabel":"Simulation des sauts de ligne avec SendInput","settings.recording.windowsSendInputNewlineModeDesc":"Définit comment SendInput convertit les sauts de ligne en touches. Utilisez Shift+Enter dans les chats, et Enter dans Bloc-notes, VS Code et la plupart des éditeurs.","settings.recording.windowsSendInputNewlineModeEnter":"Enter (plupart des éditeurs)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter (champs de discussion)","settings.recording.windowsSendInputNewlineModeCrLf":"Unicode CR+LF","settings.recording.windowsShowOpenlessInKeyboardListLabel":"Afficher OpenLess dans la liste des claviers","settings.recording.windowsShowOpenlessInKeyboardListDesc":"Si cette option est désactivée, Win+Space ne passe plus par OpenLess. SendInput et le collage ne sont pas affectés. Réactivez-la pour restaurer l’entrée.","settings.recording.windowsShowOpenlessInKeyboardListError":"Impossible de mettre à jour la liste des claviers : le système a refusé la modification du profil linguistique d’OpenLess.","settings.recording.historyGroupTitle":"Historique et contexte","settings.recording.historyRetentionLabel":"Conservation de l’historique (jours)","settings.recording.historyRetentionDesc":"Les entrées plus anciennes sont supprimées lors de nouveaux enregistrements. 0 = pas de suppression selon l’ancienneté.","settings.recording.historyMaxEntriesLabel":"Nombre maximal d’entrées","settings.recording.historyMaxEntriesDesc":"Nombre maximal de sessions conservées localement. Vide = 200. Plage : 5–200.","settings.recording.polishContextWindowLabel":"Fenêtre de contexte d’amélioration (minutes)","settings.recording.polishContextWindowDesc":"Utilise les transcriptions améliorées des N dernières minutes comme contexte de plusieurs interventions. 0 = désactivé.","settings.recording.recordAudioForDebugLabel":"Conserver l’enregistrement brut (débogage)","settings.recording.recordAudioForDebugDesc":"Enregistre l’audio brut du microphone en WAV pour diagnostiquer les problèmes de reconnaissance.","settings.recording.audioRecordingMaxEntriesLabel":"Nombre maximal d’enregistrements bruts","settings.recording.audioRecordingMaxEntriesDesc":"Nombre maximal de fichiers WAV conservés localement. Vide = 200.","settings.recording.startupGroupTitle":"Démarrage","settings.recording.startMinimizedLabel":"Démarrer réduit (sans fenêtre principale)","settings.recording.startMinimizedDesc":"Au lancement, seule la barre des menus ou la zone de notification est affichée, jamais la fenêtre principale.","settings.recording.autoUpdateCheckLabel":"Rechercher automatiquement les mises à jour","settings.recording.autoUpdateCheckDesc":"Recherche les mises à jour au lancement, puis toutes les 60 minutes.","settings.recording.marketplaceGroupTitle":"Catalogue de packs de styles","settings.recording.marketplaceBaseUrlLabel":"URL du serveur","settings.recording.marketplaceBaseUrlDesc":"Adresse du serveur du catalogue. Vide = adresse par défaut.","settings.recording.marketplaceDevLoginLabel":"Identifiant GitHub (identité d’auteur)","settings.recording.marketplaceDevLoginDesc":"Identifie l’auteur des publications. Si le champ est vide, la publication et les mentions « J’aime » sont désactivées.","settings.recording.startupAtBoot":"Ouvrir à la connexion","settings.recording.startupAtBootDesc":"Démarre automatiquement OpenLess à l’ouverture de votre session.","settings.recording.startupAtBootError":"Impossible de modifier le démarrage automatique : {{message}}","settings.channels.backToList":"Retour aux canaux","settings.channels.done":"Terminé","settings.channels.llmTitle":"Canaux de traitement du texte","settings.channels.asrTitle":"Canaux de reconnaissance vocale","settings.channels.current":"En cours d’utilisation","settings.channels.enabled":"Activé","settings.channels.disabled":"Désactivé","settings.channels.enabledFor":"Activer {{name}}","settings.channels.modelNotSet":"Aucun modèle explicitement défini","settings.channels.localModelManaged":"Modèle géré par le système ou par Modèles locaux","settings.channels.lastCheck":"Dernière vérification","settings.channels.verifying":"Vérification…","settings.channels.notVerified":"Pas encore vérifié","settings.channels.passed":"Vérification réussie","settings.channels.failed":"Échec de la vérification · {{reason}}","settings.channels.elapsed":"Durée : {{ms}} ms","settings.channels.staleResult":"Le résultat date de plus de 24 heures","settings.channels.connectionTitle":"Connexion au service","settings.channels.modelTitle":"Réglages du modèle","settings.channels.modelHint":"Saisissez le nom du modèle ou récupérez les modèles de votre fournisseur pour en choisir un.","settings.channels.availableModels":"Modèles disponibles","settings.channels.validationTitle":"Vérification de la connexion","settings.channels.validationHint":"Envoyez manuellement une requête réelle pour vérifier cette configuration. Elle peut consommer des crédits du service. L’enregistrement des réglages ne lance pas de vérification.","settings.channels.autoSaveHint":"Les modifications sont enregistrées automatiquement. Une fois le service configuré, vous pouvez vérifier la connexion.","settings.channels.nameHint":"Ce nom distingue les canaux d’un même fournisseur. Il n’affecte ni le modèle ni la connexion.","settings.channels.errModel":"Modèle","settings.channels.verify":"Vérifier","settings.channels.verifyHint":"Effectue un appel réel à l’API pour vérifier que ce canal fonctionne actuellement","settings.channels.errTimeout":"délai dépassé","settings.channels.errNetwork":"réseau","settings.channels.errEndpoint":"adresse","settings.channels.errGeneric":"échec","settings.channels.dragHint":"Faites glisser pour changer la priorité","settings.channels.orderHint":"Les requêtes utilisent le premier canal activé. Faites glisser pour réordonner ; les canaux désactivés passent en bas.","settings.channels.empty":"Aucun canal pour le moment. Choisissez « Ajouter un canal » pour connecter votre premier service.","settings.channels.add":"Ajouter un canal","settings.channels.edit":"Modifier","settings.channels.createTitle":"Ajouter un canal","settings.channels.editTitle":"Modifier le canal","settings.channels.providerLabel":"Fournisseur","settings.channels.nameLabel":"Nom du canal (facultatif)","settings.channels.namePlaceholder":"P. ex. SiliconFlow — clé principale","settings.channels.create":"Créer","settings.channels.delete":"Supprimer le canal","settings.channels.deleteConfirm":"La suppression efface aussi les clés enregistrées pour ce canal.","settings.channels.confirmDelete":"Supprimer","settings.channels.justNow":"à l’instant","settings.channels.minutesAgo":"il y a {{count}}min","settings.channels.hoursAgo":"il y a {{count}}h","settings.channels.daysAgo":"il y a {{count}}j","settings.channels.localEngineModelHint":"Téléchargez et changez les modèles locaux dans Services et modèles d’IA → Modèles locaux.","settings.providers.localEngineNoCredentials":"Les moteurs locaux n’ont besoin ni de clé API ni d’adresse.","settings.providers.localModelLabel":"Modèle local","settings.providers.localModelEmpty":"Aucun modèle local téléchargé","settings.providers.appleSpeechLocalNote":"Apple Speech utilise le moteur intégré du système ; aucun modèle à sélectionner.","settings.providers.localEngineNote":"Sélectionnez les modèles téléchargés dans la liste ci-dessus. Téléchargez-en d’autres et gérez-les depuis Modèles locaux.","settings.providers.localTag":"Local","settings.providers.llmTitle":"LLM (amélioration du texte)","settings.providers.llmDesc":"Protocole compatible OpenAI. Plusieurs fournisseurs sont acceptés.","settings.providers.providerLabel":"Fournisseur","settings.providers.llmProviderDesc":"Le choix d’un préréglage renseigne automatiquement l’URL de base.","settings.providers.credentialStorageNotice":"Les identifiants sont conservés dans le coffre sécurisé du système d’exploitation.","settings.providers.codexOAuthNotice":"Codex OAuth utilise la session locale de Codex (~/.codex/auth.json). OpenLess ne conserve ni clé API ni URL de base pour ce fournisseur.","settings.providers.asrProviderDesc":"Changer de fournisseur charge automatiquement les identifiants correspondants.","settings.providers.asrTitle":"ASR (transcription)","settings.providers.asrDesc":"Convertit la voix enregistrée en texte.","settings.providers.omniTitle":"Modèle multimodal","settings.providers.omniDesc":"Un modèle transforme directement l’audio et les instructions en texte final (flux expérimental).","settings.providers.pipelineModeLabel":"Mode de traitement","settings.providers.pipelineModeHint":"Traditionnel : deux étapes, ASR + LLM. Multimodal : un seul passage avec un modèle capable de traiter l’audio.","settings.providers.pipelineModeTraditional":"Traditionnel","settings.providers.pipelineModeMultimodal":"Multimodal","settings.providers.pipelineIsolationNotice":"Les deux modes conservent des identifiants distincts. Changer de mode garde l’autre configuration sans l’utiliser ; elle est restaurée à votre retour.","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"TokenHub Tencent Cloud","settings.providers.presets.customChatCompletions":"Personnalisé · Chat Completions","settings.providers.presets.customResponses":"Personnalisé · Responses","settings.providers.presets.customMessages":"Personnalisé · Messages","settings.providers.presets.ark":"ARK (Volcengine Ark)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"SiliconFlow","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"Xiaomi MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter (modèles gratuits)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"Alibaba Cloud Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax (M3)","settings.providers.presets.stepfun":"StepFun","settings.providers.presets.custom":"Personnalisé","settings.providers.presets.asrVolcengine":"Volcengine bigasr","settings.providers.presets.asrTencentCloud":"ASR temps réel Hunyuan de Tencent Cloud","settings.providers.presets.asrBailian":"Alibaba Bailian ASR en temps réel","settings.providers.presets.asrBailianQwen3":"Bailian Qwen3 ASR en temps réel","settings.providers.presets.asrBailianFunAsrFlash":"Bailian Fun-ASR-Flash (fichier enregistré)","settings.providers.presets.asrSiliconflow":"SiliconFlow SenseVoice","settings.providers.presets.asrStepfun":"StepFun StepAudio ASR","settings.providers.presets.asrZhipu":"Zhipu GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper (compatible)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"Personnalisé compatible OpenAI","settings.providers.presets.asrXiaomiMimo":"Xiaomi MiMo ASR","settings.providers.presets.asrIflytek":"iFlytek ASR en temps réel","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"sherpa-onnx local (expérimental)","settings.providers.presets.asrFoundryLocalWhisper":"Whisper local (Foundry Local)","settings.providers.presets.asrLocalWhisper":"Whisper local (par lots)","settings.providers.presets.asrLocalQwen3":"Qwen3-ASR local","settings.providers.presets.asrLocalQwen3Mlx":"Qwen3-ASR local (MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"Qwen3-ASR local (C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple Speech (macOS)","settings.providers.presets.omniOpenai":"OpenAI (avec audio)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"Alibaba DashScope Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs envoie l’audio enregistré à l’adresse configurée pour une transcription par lots.","settings.providers.zenmuxVocabularyNote":"ZenMux utilise un protocole de transcription JSON et ne reçoit pas les mots-clés du dictionnaire (prompt/hotwords). Le dictionnaire reste utilisé pour améliorer le texte, mais n’influence pas la reconnaissance vocale.","settings.providers.asrAdvancedNote":"Les options avancées ci-dessous concernent uniquement les préréglages Personnalisé compatible OpenAI et ZenMux. Les autres fournisseurs conservent leur comportement intégré.","settings.providers.asrAdvancedVerboseJsonLabel":"Métriques des segments (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"Demande les métriques de segments pour filtrer les hallucinations si le serveur le permet. Désactivez cette option sur les serveurs auto-hébergés qui ne la prennent pas en charge.","settings.providers.asrAdvancedChunkLabel":"Durée des fragments (ms)","settings.providers.asrAdvancedChunkHint":"0 = aucun découpage ; envoie l’enregistrement complet. Le découpage convient aux longs enregistrements ou aux serveurs limitant la durée des requêtes.","settings.providers.asrAdvancedEnableItnLabel":"Normalisation des nombres (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"Convertit les nombres et unités prononcés en chiffres (p. ex. « deux mille vingt-six » → « 2026 »). Désactivez-la pour conserver le texte brut.","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"Clé API","settings.providers.volcengineResourceIdLabel":"Resource ID","settings.providers.volcengineAuthModeLabel":"Mode d’authentification","settings.providers.volcengineAuthModeAppIdToken":"Ancienne application (APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"Clé API (nouvelle console)","settings.providers.volcengineMappingNote":"Secret Key n’est pas nécessaire actuellement. Le Resource ID par défaut est volc.seedasr.sauc.duration.","settings.providers.volcengineApiKeyNote":"Utilisez une clé API créée dans la nouvelle console vocale, sans APP ID. Créez-la dans la gestion des clés API : console.volcengine.com/speech/new/setting/apikeys. Le Resource ID par défaut est volc.seedasr.sauc.duration.","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"Clé API","settings.providers.xfyunNote":"Obtenez AppID et API Key sur la page du service ASR en temps réel d’iFlytek Open Platform. L’audio est en PCM mono 16 kHz / 16 bits. L’API standard n’accepte pas de paramètre de mots-clés ; configurez-les dans la console iFlytek. La langue par défaut est le chinois mandarin.","settings.providers.tencentCloudAppIdLabel":"AppID Tencent Cloud","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"Utilise les identifiants du service de reconnaissance vocale de Tencent Cloud. Le modèle par défaut Hy-ASR-3.0-preview prend en charge le chinois, l’anglais et 20 dialectes ; Preview n’accepte que le PCM mono 16 kHz jusqu’à 60 secondes et ne gère pas encore le contexte ni le renforcement de mots-clés.","settings.providers.tencentTokenHubNote":"Seuls les modèles de langage disponibles en ligne sont listés. Certains modèles raisonnent toujours ; désactiver le raisonnement conserve le comportement fixe du modèle.","settings.providers.localAsrActiveNotice":"L’ASR local ({{name}}) est actif. Changez-le ou désactivez-le dans l’onglet Avancé.","settings.providers.localAsrTakeoverHint":"Une fois activé, « {{name}} » remplacera le fournisseur ASR.","settings.providers.asrProviderTakenOver":"Un moteur local est actif. Choisissez un autre fournisseur ci-dessus pour changer ; le moteur local s’arrêtera automatiquement. Gérez les modèles dans Services → Modèles locaux.","settings.providers.localAsrHint":"Fonctionne sur cet ordinateur, sans clé API. Téléchargez le modèle depuis HuggingFace.","settings.providers.foundryLocalAsrHint":"Fonctionne sur cet appareil, sans clé API ASR. Le premier usage télécharge le moteur et le modèle.","settings.providers.localAsrPerformanceWarning":"L’inférence locale est plus lente que l’ASR dans le cloud et peut être moins précise en chinois. Elle convient à l’usage hors ligne ou aux données sensibles.","settings.providers.localAsrReady":"{{model}} téléchargé","settings.providers.localAsrNotReady":"{{model}} non téléchargé","settings.providers.localAsrGoDownload":"Ouvrir Modèles pour télécharger","settings.providers.localAsrManage":"Ouvrir Modèles","settings.providers.localAsrDownloadedTitle":"Modèles téléchargés","settings.providers.localAsrDelete":"Supprimer","settings.providers.fillDefault":"Renseigner la valeur par défaut","settings.providers.readFailed":"Échec de la lecture","settings.providers.apiKeyLabel":"Clé API","settings.providers.baseUrlLabel":"URL de base","settings.providers.modelLabel":"Modèle","settings.providers.customModelLabel":"Modèle personnalisé…","settings.providers.presetListLabel":"Retour aux préréglages","settings.providers.temperatureLabel":"Température","settings.providers.temperaturePlaceholder":"Laissez vide pour omettre ce paramètre. Plage : 0–2 inclus, p. ex. 0.3","settings.providers.extraHeadersLabel":"En-têtes supplémentaires","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"Raisonnement","settings.providers.thinkingModeOn":"Activé","settings.providers.thinkingModeOff":"Désactivé","settings.providers.requestFormatLabel":"Format de requête","settings.providers.messagesThinkingLabel":"Mode de raisonnement","settings.providers.thinkingAdaptive":"Adaptatif","settings.providers.thinkingBudget":"Budget fixe","settings.providers.maxTokensLabel":"Nombre maximal de jetons en sortie","settings.providers.thinkingBudgetLabel":"Budget de jetons de raisonnement","settings.providers.responsesThinkingHint":"Certains modèles permettent seulement de réduire le raisonnement, pas de le désactiver. Les requêtes de raisonnement omettent la température.","settings.providers.messagesThinkingHint":"Les anciens modèles ou passerelles compatibles peuvent nécessiter un budget fixe inférieur à la limite de sortie. Les requêtes de raisonnement omettent la température.","settings.providers.llmRequestFormatInvalid":"Format de requête non valide. Sélectionnez un format pris en charge.","settings.providers.llmThinkingModeInvalid":"Mode de raisonnement non valide. Sélectionnez un mode pris en charge.","settings.providers.llmTokenLimitInvalid":"Les limites de jetons doivent être des entiers positifs.","settings.providers.llmThinkingBudgetInvalid":"Le budget de raisonnement doit être au moins de 1024 et, en mode fixe, inférieur à la limite de sortie.","settings.providers.llmResponseIncomplete":"La réponse est incomplète ou a atteint la limite de sortie. Le texte déjà affiché est conservé.","settings.providers.llmProtocolHeaderConflict":"Messages définit automatiquement les en-têtes d’authentification et de version. Retirez x-api-key et anthropic-version des en-têtes supplémentaires.","settings.providers.llmStreamError":"Le serveur a renvoyé une erreur de flux. Vérifiez le modèle et les paramètres de la requête.","settings.providers.saveProtocol":"Enregistrer les réglages du protocole","settings.providers.thinkingModeHint":"Activez, désactivez ou réduisez le raisonnement avec les paramètres pris en charge par le format et le modèle. Aucune instruction de contrôle n’est ajoutée au prompt.","settings.providers.bailianVocabularyIdLabel":"ID du vocabulaire de mots-clés (facultatif)","settings.providers.bailianVocabularyIdNote":"Si vous avez créé un vocabulaire dans DashScope, saisissez son ID vocab-... Laissez vide pour ne pas utiliser de mots-clés.","settings.providers.bailianModelRealtimeHint":"Modèle en temps réel : transcrit pendant que vous parlez.","settings.providers.bailianModelSyncFileHint":"Modèle d’enregistrement synchrone : transcrit une fois l’enregistrement terminé (5 min maximum).","settings.providers.bailianModelAsyncFileHint":"Modèle de fichiers asynchrone : envoie l’enregistrement et attend la fin de la transcription.","settings.providers.appIdLabel":"App ID","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"Resource ID","settings.providers.toolsLabel":"Vérification de la connexion","settings.providers.toolsDesc":"Enregistrez les champs ci-dessus, puis vérifiez le modèle choisi ou récupérez les modèles disponibles. Vous pouvez saisir un modèle manuellement si la récupération échoue.","settings.providers.validate":"Vérifier","settings.providers.validating":"Vérification…","settings.providers.fetchModels":"Récupérer les modèles","settings.providers.loadingModels":"Récupération des modèles…","settings.providers.modelMissing":"Aucun modèle configuré. Saisissez d’abord un ID de modèle.","settings.providers.modelsEmpty":"Les identifiants sont valides, mais aucun modèle n’a été renvoyé.","settings.providers.modelsLoaded":"{{count}} modèles récupérés.","settings.providers.searchModels":"Rechercher des modèles…","settings.providers.noMatchingModels":"Aucun modèle correspondant","settings.providers.orcarouterCatalogHint":"Chargé depuis /models d’OrcaRouter. Sélectionnez un modèle du catalogue ; les IDs manuels sont désactivés pour ce fournisseur.","settings.providers.orcarouterAsrCatalogHint":"Chargé depuis /models d’OrcaRouter et limité aux modèles Gemini compatibles avec l’entrée audio. Les IDs manuels sont désactivés.","settings.providers.selectModel":"Sélectionnez un modèle pour remplir le champ ci-dessus","settings.providers.modelSaved":"Modèle {{model}} enregistré.","settings.providers.validateSuccess":"Connexion vérifiée avec succès.","settings.providers.validateFailed":"Échec de la vérification de connexion.","settings.providers.providerHttpStatus":"Le fournisseur a renvoyé HTTP {{status}}. Vérifiez les autorisations de la clé API ou l’adresse.","settings.providers.endpointMustUseHttps":"Les adresses HTTP sont autorisées, mais les clés API et l’audio peuvent être exposés pendant le transfert.","settings.providers.endpointHttpWarning":"Les adresses HTTP sont autorisées, mais les clés API et le contenu des requêtes peuvent être exposés pendant le transfert.","settings.providers.endpointInvalid":"Le format de l’adresse est invalide.","settings.providers.bailianEndpointSchemeInvalid":"L’ASR en temps réel de Bailian utilise la passerelle WebSocket de DashScope. L’adresse doit commencer par wss:// (par défaut : wss://dashscope.aliyuncs.com/api-ws/v1/inference/). Une URL https:// de mode compatible ne fonctionne pas ici.","settings.providers.qwen3EndpointSchemeInvalid":"L’ASR en temps réel de Qwen3 utilise la passerelle Realtime WebSocket de DashScope. L’adresse doit commencer par wss:// (par défaut : wss://dashscope.aliyuncs.com/api-ws/v1/realtime). Une URL https:// ne fonctionne pas ici.","settings.providers.responseTooLarge":"La réponse du fournisseur est trop volumineuse pour être vérifiée de façon sûre.","settings.providers.asrInvalidJson":"La réponse ASR n’est pas un JSON valide.","settings.providers.asrMissingTextField":"Le champ text est absent de la réponse ASR.","settings.providers.apiKeyMissing":"La clé API est vide.","settings.providers.endpointMissing":"L’adresse est vide.","settings.providers.volcengineAppIdMissing":"APP ID est vide.","settings.providers.volcengineAccessTokenMissing":"Access Token est vide.","settings.providers.requestTimeout":"Le délai de la requête est dépassé. Réessayez plus tard.","settings.shortcuts.title":"Réglages des raccourcis","settings.shortcuts.descAcc":"Tous les raccourcis sont globaux. L’autorisation d’accessibilité doit être accordée dans Autorisations.","settings.shortcuts.descNoAcc":"Tous les raccourcis sont globaux. S’ils ne répondent pas, vérifiez l’état du raccourci global dans Autorisations.","settings.shortcuts.startStop":"Démarrer / arrêter l’enregistrement","settings.shortcuts.cancel":"Annuler l’enregistrement actuel","settings.shortcuts.confirm":"Confirmer l’insertion de la capsule","settings.shortcuts.switchStyle":"Passer au style précédent","settings.shortcuts.openApp":"Ouvrir OpenLess","settings.shortcuts.stylePackTitle":"Raccourcis de styles","settings.shortcuts.stylePackDesc":"Associez un raccourci à chaque pack favori pour changer d’une seule pression. Les packs désactivés sont réactivés automatiquement.","settings.shortcuts.stylePackAdd":"Ajouter un raccourci de style","settings.shortcuts.stylePackSelect":"Choisir un pack de styles","settings.shortcuts.stylePackDisabledSuffix":" (désactivé)","settings.shortcuts.stylePackRemove":"Supprimer","settings.shortcuts.agentPolish":"Améliorer le texte sélectionné","settings.shortcuts.agentPolishDesc":"Sélectionnez du texte → appuyez → Claude l’améliore → la sélection est remplacée.","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"Maintenez une touche personnalisée → parlez → Claude exécute la tâche → le résultat apparaît dans une capsule.","settings.shortcuts.agentVoiceHint":"Définissez la touche à maintenir dans Avancé → Less Computer.","settings.shortcuts.agentVoiceTrigger":"Touche à maintenir pour Less Computer","settings.shortcuts.enable":"Activer","settings.shortcuts.disable":"Désactiver","settings.shortcuts.confirmHint":"Cliquez sur ✓ dans la capsule","settings.shortcuts.notSupported":"Pas encore pris en charge","settings.shortcuts.androidReadOnly":"Les raccourcis globaux ne sont pas disponibles sur Android. Utilisez le bouton d’enregistrement de Vue d’ensemble.","settings.permissions.title":"Autorisations","settings.permissions.descAcc":"OpenLess a besoin des autorisations système suivantes. Après les avoir accordées, quittez complètement l’application et relancez-la.","settings.permissions.descNoAcc":"OpenLess a besoin du microphone et utilise l’état du détecteur de raccourcis globaux pour vérifier que le composant natif fonctionne.","settings.permissions.micLabel":"Microphone","settings.permissions.micDesc":"Permet de capter votre voix.","settings.permissions.accLabel":"Accessibilité","settings.permissions.accDesc":"Permet de détecter le raccourci global et d’insérer les transcriptions au curseur.","settings.permissions.hotkeyLabel":"Raccourci global","settings.permissions.hotkeyDescWithAdapter":"Adaptateur actif : {{adapter}}. Permet de vérifier que le détecteur de raccourcis est installé.","settings.permissions.hotkeyDescPlain":"Permet de vérifier que le détecteur de raccourcis est installé.","settings.permissions.networkLabel":"Réseau","settings.permissions.networkDesc":"Nécessaire aux services ASR / LLM dans le cloud. Désactivez-le pour un usage entièrement local.","settings.permissions.networkOk":"Disponible","settings.permissions.networkOffline":"Indisponible","settings.permissions.checking":"Vérification…","settings.permissions.granted":"Accordé","settings.permissions.notApplicable":"Non nécessaire","settings.permissions.denied":"Non accordé","settings.permissions.indeterminate":"Indéterminé","settings.permissions.micNoDevice":"Aucun microphone détecté","settings.permissions.openSystem":"Ouvrir Réglages Système","settings.permissions.restart":"Réinitialiser et redémarrer","settings.permissions.grant":"Accorder","settings.permissions.rerunAndroidSetup":"Relancer la configuration","settings.permissions.hotkeyInstalled":"Installé","settings.permissions.hotkeyStarting":"Installation…","settings.permissions.hotkeyFailed":"Échec du détecteur","settings.permissions.windowsImeLabel":"Moteur de saisie Windows","settings.permissions.windowsImeDesc":"Passe temporairement à l’IME TSF d’OpenLess pendant les sessions vocales pour éviter les limites du presse-papiers.","settings.permissions.windowsImeInstalled":"Installé","settings.permissions.windowsImeUnavailable":"Indisponible","settings.permissions.androidImeLabel":"Méthode de saisie (IME)","settings.permissions.androidImeSelected":"Sélectionnée","settings.permissions.androidImeEnabled":"Activée","settings.permissions.androidImeDisabled":"Non activée","settings.permissions.androidOverlayLabel":"Fenêtre flottante","settings.permissions.androidAccessibilityLabel":"Service d’accessibilité","settings.permissions.androidAccessibilityImpact":"Activez-le pour insérer les résultats dans le champ actuel sans changer de clavier. Sinon, les résultats sont copiés dans le presse-papiers pour un collage manuel.","settings.permissions.androidAccessibilityGrantedStale":"Autorisé, non connecté","settings.permissions.androidAccessibilityMessages.not_android":"L’état de l’accessibilité n’est disponible que sur Android.","settings.permissions.androidAccessibilityMessages.not_enabled":"Activez OpenLess dans les réglages d’accessibilité du système.","settings.permissions.androidAccessibilityMessages.operational":"Le service d’accessibilité fonctionne.","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"L’accessibilité est autorisée, mais non connectée. Réactivez OpenLess dans les réglages système.","settings.permissions.androidAccessibilityMessages.status_read_failed":"Impossible de lire l’état de l’accessibilité.","settings.permissions.androidShizukuLabel":"Améliorations Shizuku","settings.permissions.androidShizukuHint":"Facultatif. Tente de rétablir le service lorsque les réglages du fabricant bloquent les commandes manuelles, sans éliminer tous les conflits entre applications. Il peut être nécessaire de relancer Shizuku après un redémarrage.","settings.permissions.androidShizukuOpenApp":"Ouvrir Shizuku","settings.permissions.androidShizukuRequestPermission":"Demander l’autorisation","settings.permissions.androidShizukuRecover":"Rétablir l’accessibilité","settings.permissions.androidShizukuRecoverConfirm":"Utiliser Shizuku pour tenter de réactiver le service d’accessibilité d’OpenLess ? Les services déjà actifs au début de l’écriture seront conservés. Si l’interrupteur global est désactivé, l’activer peut aussi démarrer d’autres services enregistrés.","settings.permissions.androidShizukuYes":"oui","settings.permissions.androidShizukuNo":"non","settings.permissions.androidShizukuAccessibilityOperational":"L’accessibilité est enregistrée et fonctionne.","settings.permissions.androidShizukuAccessibilityRegistered":"Enregistrée : {{registered}} · En fonctionnement : {{operational}}","settings.permissions.androidShizukuState.notInstalled":"Non installé","settings.permissions.androidShizukuState.notRunning":"Non démarré","settings.permissions.androidShizukuState.notAuthorized":"Non autorisé","settings.permissions.androidShizukuState.authorized":"Autorisé","settings.permissions.androidShizukuState.binderDead":"Déconnecté","settings.permissions.androidShizukuState.notAndroid":"Sans objet","settings.permissions.androidShizukuMessages.not_android":"Shizuku n’est disponible que sur Android.","settings.permissions.androidShizukuMessages.not_installed":"Shizuku ou le moteur Sui n’est pas installé.","settings.permissions.androidShizukuMessages.unsupported_backend":"Ce moteur Shizuku est trop ancien. Mettez Shizuku ou Sui à jour vers la version 11 ou ultérieure.","settings.permissions.androidShizukuMessages.not_running":"Shizuku ne fonctionne pas. Démarrez d’abord Shizuku ou Sui.","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku n’est pas autorisé. Accordez l’autorisation à OpenLess.","settings.permissions.androidShizukuMessages.binder_dead":"Connexion Shizuku perdue. Relancez Shizuku.","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku autorisé. L’accessibilité fonctionne.","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku autorisé. L’accessibilité est enregistrée, mais ne fonctionne pas.","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku autorisé. Vous pouvez tenter de rétablir l’accessibilité.","settings.permissions.androidShizukuMessages.operational":"L’accessibilité est enregistrée et fonctionne.","settings.permissions.androidShizukuMessages.registered_stale":"L’accessibilité est enregistrée, mais le service est actuellement indisponible.","settings.permissions.androidShizukuMessages.not_registered":"L’accessibilité n’est pas activée dans les réglages système.","settings.permissions.androidShizukuMessages.already_granted":"L’autorisation Shizuku était déjà accordée.","settings.permissions.androidShizukuMessages.binder_unavailable":"La connexion Binder de Shizuku était indisponible lors de la demande d’autorisation.","settings.permissions.androidShizukuMessages.request_cancelled":"La demande d’autorisation Shizuku a été annulée.","settings.permissions.androidShizukuMessages.granted":"Autorisation Shizuku accordée.","settings.permissions.androidShizukuMessages.denied":"Autorisation Shizuku refusée.","settings.permissions.androidShizukuMessages.permission_permanently_denied":"L’autorisation Shizuku est bloquée. Ouvrez Shizuku et autorisez OpenLess manuellement.","settings.permissions.androidShizukuMessages.launched":"La page d’autorisation Shizuku est ouverte.","settings.permissions.androidShizukuMessages.launch_failed":"Impossible d’ouvrir l’autorisation Shizuku.","settings.permissions.androidShizukuMessages.open_shizuku":"Le gestionnaire Shizuku est ouvert.","settings.permissions.androidShizukuMessages.jni_error":"Impossible d’accéder au moteur Shizuku d’Android.","settings.permissions.androidShizukuMessages.status_parse_failed":"Impossible d’interpréter l’état de Shizuku.","settings.permissions.androidShizukuMessages.user_not_confirmed":"Le rétablissement nécessite votre confirmation.","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku n’est pas autorisé ou est indisponible.","settings.permissions.androidShizukuMessages.invalid_component":"L’ID du composant du service d’accessibilité est invalide.","settings.permissions.androidShizukuMessages.service_connect_failed":"Impossible de se connecter au service privilégié Shizuku.","settings.permissions.androidShizukuMessages.recovery_in_progress":"Un autre rétablissement est déjà en cours.","settings.permissions.androidShizukuMessages.parse_failed":"Impossible d’interpréter le résultat du rétablissement.","settings.permissions.androidShizukuMessages.service_not_bound":"Les réglages ont été enregistrés, mais l’accessibilité ne fonctionne pas encore.","settings.permissions.androidShizukuMessages.success":"Service d’accessibilité rétabli.","settings.permissions.androidShizukuMessages.read_failed":"Impossible de lire les réglages d’accessibilité.","settings.permissions.androidShizukuMessages.read_enabled_failed":"Impossible de lire l’indicateur d’activation de l’accessibilité.","settings.permissions.androidShizukuMessages.merge_failed":"Impossible de fusionner les services d’accessibilité.","settings.permissions.androidShizukuMessages.write_services_failed":"Impossible d’enregistrer les services d’accessibilité activés.","settings.permissions.androidShizukuMessages.write_enabled_failed":"Impossible d’activer l’accessibilité.","settings.permissions.androidShizukuMessages.readback_failed":"Impossible de vérifier les réglages d’accessibilité après l’écriture.","settings.permissions.androidShizukuMessages.oem_rollback":"Le fabricant a annulé la modification de l’accessibilité.","settings.permissions.androidShizukuMessages.concurrent_change":"Les réglages d’accessibilité ont changé pendant le rétablissement.","settings.permissions.androidShizukuMessages.partial_rollback":"Le rétablissement a échoué et les réglages n’ont été que partiellement restaurés. Vérifiez l’accessibilité dans les réglages système.","settings.permissions.androidShizukuMessages.manual_required":"Le rétablissement automatique ne peut pas activer l’accessibilité sans risque si d’autres services sont enregistrés alors que l’interrupteur global est désactivé. Utilisez les réglages système.","settings.permissions.androidShizukuMessages.max_retries":"Le rétablissement a échoué après plusieurs tentatives.","settings.permissions.androidShizukuMessages.internal_error":"Le rétablissement a échoué en raison d’une erreur interne.","settings.permissions.androidShizukuMessages.unknown":"État Shizuku inconnu.","settings.permissions.androidInsertStrategyLabel":"Stratégie d’insertion du texte","settings.permissions.androidOverlayTriggerLabel":"Visibilité de la fenêtre flottante","settings.permissions.androidOverlayActivationModeLabel":"Activation de la fenêtre flottante","settings.permissions.androidOverlayLeftSwipeActionLabel":"Action du balayage vers la gauche","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"Direction du balayage d’annulation","settings.permissions.androidOverlaySizeLabel":"Taille de la fenêtre flottante","settings.permissions.androidOverlaySizeHint":"Ajuste le diamètre du bouton flottant sans changer sa position.","settings.permissions.androidInsertStrategy.accessibility":"Insertion automatique dans le champ de saisie","settings.permissions.androidInsertStrategy.clipboard":"Presse-papiers uniquement","settings.permissions.androidInsertStrategyHint.accessibility":"Nécessite l’accessibilité ; utilise le presse-papiers si elle est indisponible.","settings.permissions.androidInsertStrategyHint.clipboard":"Ne nécessite pas l’accessibilité ; copie uniquement pour un collage manuel.","settings.permissions.androidOverlayTrigger.background":"Lorsque l’application est en arrière-plan","settings.permissions.androidOverlayTrigger.keyboard":"À l’apparition du clavier","settings.permissions.androidOverlayTrigger.always":"Toujours visible","settings.permissions.androidOverlayTriggerHint.background":"Simple et économe en batterie ; aucune fenêtre flottante pendant la saisie dans d’autres applications.","settings.permissions.androidOverlayTriggerHint.keyboard":"Ce mode a été retiré. Les réglages existants repassent en mode arrière-plan.","settings.permissions.androidOverlayTriggerHint.always":"Toujours disponible, mais reste affichée en permanence.","settings.permissions.androidOverlayTriggerDisabled.keyboard":"L’affichage déclenché par le clavier a été retiré. Des gestes sur la fenêtre remplaceront la détection du clavier.","settings.permissions.androidOverlayActivationMode.tap":"Appuyer pour préparer","settings.permissions.androidOverlayActivationMode.long_press":"Maintenir pour préparer","settings.permissions.androidOverlayActivationModeHint.tap":"Le premier appui prépare la fenêtre ; le second démarre une dictée normale.","settings.permissions.androidOverlayActivationModeHint.long_press":"Maintenez pour préparer la fenêtre ; relâchez pour arrêter l’enregistrement ou la question vocale en cours.","settings.permissions.androidOverlayLeftSwipeAction.translation":"Dictée avec traduction","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"Changer de pack de styles","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"Lorsque la fenêtre est préparée, balayez vers la gauche pour démarrer une dictée traduite.","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"Lorsque la fenêtre est préparée, balayez vers la gauche pour passer au pack précédent.","settings.permissions.androidOverlayCancelSwipeDirection.up":"Balayer vers le haut","settings.permissions.androidOverlayCancelSwipeDirection.down":"Balayer vers le bas","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"Balayez vers le haut pendant l’enregistrement pour annuler sans transcription ni insertion.","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"Balayez vers le bas pendant l’enregistrement pour annuler sans transcription ni insertion.","settings.permissions.windowsIme.installed":"Installé. La saisie vocale passe temporairement à l’IME d’OpenLess.","settings.permissions.windowsIme.notInstalled":"Non installé. OpenLess utilise le presse-papiers / WM_PASTE comme solution de repli.","settings.permissions.windowsIme.registrationBroken":"L’enregistrement système est endommagé. Réinstallez l’IME d’OpenLess.","settings.permissions.windowsIme.notWindows":"Disponible uniquement sous Windows.","settings.advanced.multimodalPipelineTitle":"Reconnaissance multimodale (expérimentale)","settings.advanced.multimodalPipelineTitleHint":"Reconnaît l’audio en un seul passage avec un modèle multimodal. Sa configuration est entièrement séparée de l’ASR + LLM traditionnel.","settings.advanced.multimodalPipelineLabel":"Activer le traitement multimodal","settings.advanced.multimodalPipelineHint":"Ajoute un sélecteur Traditionnel / Multimodal à la page des fournisseurs d’IA. Traditionnel utilise ASR + LLM ; Multimodal utilise un modèle avec audio. Les configurations sont séparées et ne partagent jamais d’identifiants.","settings.advanced.streamingInsertTitle":"Insertion progressive","settings.advanced.streamingInsertTitleLinux":"Insertion progressive (expérimentale)","settings.advanced.streamingInsertDesc":"Insère le texte caractère par caractère au curseur pour réduire l’attente ressentie. Si les conditions ne sont pas réunies, le texte est collé en une seule fois.","settings.advanced.streamingInsertLabel":"Insertion progressive","settings.advanced.streamingInsertHintMac":"Passe temporairement à la source de saisie ABC pour empêcher les IME chinois, japonais et coréens d’intercepter les touches. La source précédente est restaurée à la fin.","settings.advanced.streamingInsertHintWindows":"SendInput Unicode écrit directement, sans passer par TSF / IME et sans changer de méthode de saisie.","settings.advanced.streamingInsertHintLinux":"Utilise le complément fcitx5 pour envoyer le texte ; l’insertion progressive simule les touches avec enigo + XTest.","settings.advanced.streamingInsertSaveClipboardLabel":"Copier dans le presse-papiers","settings.advanced.streamingInsertSaveClipboardHint":"Après une insertion réussie, copie le texte final dans le presse-papiers pour pouvoir le recoller avec Cmd+V. Désactivé : le presse-papiers n’est jamais modifié.","settings.advanced.localAsrTitle":"Modèles ASR locaux (expérimentaux)","settings.advanced.localAsrDesc":"Remplace l’ASR dans le cloud par l’inférence sur l’appareil. Pour l’usage hors ligne ou les données sensibles.","settings.advanced.localAsrWarningShort":"L’inférence locale est plus lente ; un appareil insuffisamment puissant peut omettre des mots.","settings.advanced.qwen3Desc":"Une fois activé, il remplace le fournisseur ASR.","settings.advanced.sherpaDesc":"Une fois activé, il remplace le fournisseur ASR.","settings.advanced.foundryDesc":"Une fois activé, il remplace le fournisseur ASR.","settings.advanced.notSupportedHere":"Non pris en charge sur cette plateforme ; aucun module d’inférence n’est inclus.","settings.advanced.enable":"Activer","settings.advanced.alreadyActive":"Actif","settings.advanced.disableLocalLabel":"Désactiver l’ASR local","settings.advanced.disableLocalDesc":"Revenir à l’ASR dans le cloud (Volcengine bigasr par défaut).","settings.advanced.disable":"Désactiver","settings.advanced.platformNotSupported":"L’intégration des modèles ASR locaux n’est pas prise en charge sur cette plateforme.","settings.advanced.confirmEnableLocalTitle":"Activer l’ASR local ?","settings.advanced.confirmEnableLocalBody":"La transcription sera plus lente que dans le cloud et peut être moins précise.","settings.advanced.confirm":"Activer","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"Langue de l’interface","settings.language.desc":"Change la langue de l’interface immédiatement et conserve ce choix au prochain lancement.","settings.language.label":"Langue","settings.language.labelDesc":"Choisissez « Suivre le système » pour utiliser la langue du système au lancement.","settings.language.followSystem":"Suivre le système","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"Certains menus natifs, comme la zone de notification, peuvent nécessiter un redémarrage pour changer complètement de langue.","settings.layout.title":"Disposition","settings.theme.title":"Apparence","settings.theme.label":"Thème","settings.theme.activityHeatmapLabel":"Afficher la carte d’activité annuelle dans Vue d’ensemble","settings.theme.stackedRowLayoutLabel":"Disposition lisible (retour à la ligne)","settings.theme.stackedRowLayoutDesc":"Sur les petits écrans ou avec du texte agrandi, les contrôles trop larges passent à la ligne suivante plutôt que de déborder ou comprimer le texte.","settings.theme.conservativeLayoutLabel":"Disposition prudente","settings.theme.conservativeLayoutDesc":"Les pages de réglages et de fonctions utilisent une seule colonne pleine largeur pour limiter les débordements, sauf l’accueil et les barres supérieure et inférieure.","settings.theme.system":"Suivre le système","settings.theme.light":"Clair","settings.theme.dark":"Sombre","settings.remoteInput.title":"Saisie à distance","settings.remoteInput.enableLabel":"Activer la saisie à distance","settings.remoteInput.enableDesc":"Enregistrez depuis le navigateur d’un téléphone ou d’une tablette sur votre réseau local. Le texte est inséré au curseur de l’ordinateur. HTTPS est requis ; approuvez le certificat à la première visite.","settings.remoteInput.portLabel":"Port","settings.remoteInput.defaultModeLabel":"Mode d’enregistrement par défaut","settings.remoteInput.modeToggle":"Appuyer pour basculer","settings.remoteInput.modeHold":"Maintenir pour parler","settings.remoteInput.urlLabel":"URL d’accès","settings.remoteInput.pinLabel":"Code d’association","settings.remoteInput.regeneratePin":"Régénérer","settings.remoteInput.portInUse":"Le port {{port}} est utilisé. Choisissez-en un autre","settings.remoteInput.startError":"Impossible de démarrer la saisie à distance : {{reason}}","settings.remoteInput.securityHint":"Accessible uniquement sur le même réseau local, avec le code d’association. Désactivez-la lorsque vous ne l’utilisez pas.","settings.remoteInput.certHint":"Vérifiez l’empreinte du certificat racine avant de lui faire confiance la première fois. Les anciennes versions exigent un réglage unique ; ensuite la confiance est conservée après redémarrage ou changement d’adresse IP.","settings.remoteInput.certFingerprintLabel":"SHA-256 de la CA racine de cet ordinateur","settings.remoteInput.certFingerprintCopy":"Copier l’empreinte complète","settings.remoteInput.certFingerprintCopied":"Empreinte copiée","settings.remoteInput.certFingerprintUnavailable":"L’empreinte complète n’est pas disponible. N’installez et n’approuvez aucun certificat téléchargé.","settings.remoteInput.certVerifyHint":"Avant d’activer la confiance complète, retrouvez le SHA-256 dans les détails du certificat du système du téléphone et comparez les 64 caractères avec cette valeur (espaces et deux-points ignorés). Une page web, le nom du profil ou un identifiant ne prouvent pas l’identité. Si l’empreinte diffère ou n’est pas entièrement visible, arrêtez et supprimez le profil téléchargé ou installé.","settings.remoteInput.certProfileHint":"Il ne doit y avoir exactement qu’un certificat racine. N’installez pas un profil contenant des certificats supplémentaires, un VPN ou des réglages de gestion d’appareils.","settings.remoteInput.certTrustWarning":"Le téléchargement initial du certificat ne permet pas de vérifier l’identité de l’ordinateur : un appareil malveillant du réseau local pourrait remplacer le certificat racine par une attaque de l’homme du milieu. N’installez le certificat que sur un réseau domestique ou privé de confiance, jamais sur un réseau public ou partagé. La CA racine peut émettre des certificats et sa clé privée reste sur cet ordinateur ; supprimez-la de votre téléphone lorsque vous ne l’utilisez plus.","settings.remoteInput.certSetupLink":"Copier le lien du certificat iPhone","settings.remoteInput.waitingStart":"Le service ne fonctionne pas encore. Désactivez puis réactivez l’interrupteur, sans redémarrer l’application.","settings.remoteInput.starting":"Démarrage de la saisie à distance…","settings.remoteInput.urlsStale":"Ces adresses proviennent du lancement précédent et peuvent être obsolètes.","settings.about.tagline":"Parlez naturellement, écrivez avec précision","settings.about.checkUpdate":"Rechercher des mises à jour","settings.about.checkUpdateBtn":"Rechercher","settings.about.checkStableUpdateBtn":"Rechercher une version stable","settings.about.checkBetaUpdateBtn":"Rechercher une version Beta","settings.about.checkingUpdate":"Recherche…","settings.about.upToDate":"Vous utilisez déjà la dernière version.","settings.about.updateError":"La recherche ou l’installation de la mise à jour a échoué. Réessayez plus tard.","settings.about.retryBtn":"Réessayer","settings.about.openReleases":"Ouvrir les versions","settings.about.source":"Code source","settings.about.docs":"Documentation","settings.about.feedback":"Commentaires","settings.about.qq":"Groupe communautaire QQ","settings.about.qqDesc":"Recherchez le numéro du groupe dans QQ ou scannez le code QR pour le rejoindre.","settings.about.copyQq":"Copier le numéro du groupe","settings.about.privacy":"Confidentialité","settings.about.privacyDesc":"Les enregistrements peuvent être envoyés au fournisseur cloud configuré pour la transcription.","settings.about.localFirst":"Priorité au traitement local","settings.about.linksTitle":"Documentation","settings.about.betaChannelLabel":"Rejoindre le canal Beta","settings.about.betaChannelToggleLabel":"Activer le canal Beta","settings.about.betaChannelDesc":"Si cette option est activée, les mises à jour automatiques suivent le canal Beta ; sinon, le canal stable. Le bouton ci-dessous permet de rechercher une Beta manuellement.","settings.about.autoUpdateSectionTitle":"Mise à jour automatique","settings.about.autoUpdateCheckLabelAndroid":"Rechercher et télécharger les mises à jour automatiquement","settings.about.autoUpdateCheckDescAndroid":"Vérifie au lancement, puis toutes les 60 minutes. Si une mise à jour est disponible, la télécharge et ouvre l’installateur système. Le canal suit l’interrupteur Beta ci-dessus.","settings.about.betaChannelFetching":"Récupération de la dernière Beta…","settings.about.betaChannelFetchBtn":"Consulter la dernière Beta","settings.about.betaChannelLatestPrefix":"Dernière Beta :","settings.about.betaChannelDownloadBtn":"Ouvrir la page de téléchargement","settings.about.betaChannelRefresh":"Actualiser","settings.about.betaChannelNoBeta":"Aucune version Beta n’a encore été publiée.","settings.about.betaChannelFetchError":"Impossible de récupérer les informations de la Beta. Réessayez plus tard.","settings.about.betaChannelUpToDate":"À jour","settings.about.betaChannelUpdateNow":"Mettre à jour maintenant","settings.about.betaChannelUpdateNowTitle":"Recherche et télécharge la dernière Beta, puis affiche le dialogue de mise à jour","settings.about.betaChannelChecking":"Recherche…","settings.about.updateDialog.stableChannelSwitch.title":"Passer au canal stable","settings.about.updateDialog.stableChannelSwitch.desc":"Version actuelle : OpenLess {{currentVersion}}\nVersion cible : OpenLess {{version}}\nVous allez passer du canal bêta au canal stable. Continuer ?","settings.about.updateDialog.available.title":"Mise à jour disponible","settings.about.updateDialog.available.desc":"OpenLess {{version}} est disponible. Mettre à jour maintenant ?","settings.about.updateDialog.downloading.title":"Téléchargement de la mise à jour","settings.about.updateDialog.downloading.desc":"Téléchargement d’OpenLess {{version}}. Gardez l’application ouverte.","settings.about.updateDialog.downloaded.title":"Mise à jour prête","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} est installé. Redémarrer automatiquement maintenant pour l’appliquer ?","settings.about.updateDialog.installing.title":"Installation de la mise à jour","settings.about.updateDialog.installing.desc":"Installation d’OpenLess {{version}}. Gardez l’application ouverte.","settings.about.updateDialog.install":"Mettre à jour maintenant","settings.about.updateDialog.androidInstall":"Télécharger et ouvrir l’installateur","settings.about.updateDialog.androidInstalled.title":"Installateur système ouvert","settings.about.updateDialog.androidInstalled.desc":"Suivez les indications du système pour terminer l’installation. Rouvrez OpenLess pour utiliser {{version}}.","settings.about.updateDialog.downloadingLabel":"Téléchargement…","settings.about.updateDialog.installingLabel":"Installation…","settings.about.updateDialog.later":"Redémarrer manuellement plus tard","settings.about.updateDialog.restartNow":"Redémarrer maintenant","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"{{downloaded}} téléchargés","settings.about.updateDialog.installError.title":"Échec de la mise à jour","settings.about.updateDialog.installError.desc":"La mise à jour automatique n’a pas abouti : {{error}}. Vous pouvez télécharger et installer la dernière version manuellement.","settings.about.updateDialog.manualDownload":"Télécharger manuellement","startup.loading":"Démarrage d’OpenLess…","startup.loadingDesc":"Connexion au service local et vérification de la compatibilité.","startup.failed":"OpenLess n’a pas pu démarrer","startup.recovery":"Vérifiez à nouveau. Si le problème persiste, quittez complètement l’application et rouvrez-la. S’il est apparu après une mise à jour, vérifiez que tous les composants utilisent la même version.","startup.retry":"Vérifier à nouveau","startup.details":"Afficher les détails de l’erreur","modal.serviceViews.label":"Réglages des services","modal.serviceViews.llm":"Modèles de langage","modal.serviceViews.asr":"Reconnaissance vocale","modal.serviceViews.omni":"Multimodal","modal.serviceViews.models":"Modèles locaux","modal.serviceViews.connections":"Connexions","modal.serviceViews.statusConfigured":"Configuré","modal.serviceViews.statusMissing":"Non configuré","modal.searchPlaceholder":"Rechercher une catégorie de réglages…","modal.clearSearch":"Effacer la recherche","modal.categoriesLabel":"Catégories de réglages","modal.searchResults":"Résultats de recherche","modal.searchCount":"Catégories trouvées : {{count}}","modal.noResults":"Aucune catégorie correspondante. Essayez « microphone », « modèles » ou « thème ».","modal.autoSaveHint":"Les modifications sont enregistrées automatiquement","modal.backToAdvanced":"Retour à Expériences et extensions","modal.advancedPages.lessComputer":"Choisissez un agent et configurez son modèle, ses autorisations et son répertoire de travail.","modal.advancedPages.claudeConsole":"Détectez Claude Code et consultez la sortie des tâches de test.","modal.advancedPages.multimodal":"Gérez l’activation de la reconnaissance multimodale expérimentale.","modal.advancedPages.debug":"Conservez des enregistrements de débogage, inspectez le contexte du curseur et exportez des journaux.","modal.descriptions.general":"Choisissez un microphone, réglez l’enregistrement et la saisie de texte, ou connectez votre téléphone.","modal.descriptions.shortcuts":"Configurez les raccourcis et choisissez l’action appliquée au texte sélectionné.","modal.descriptions.services":"Choisissez les services de reconnaissance vocale et de traitement du texte. Gérez les canaux, modèles locaux et connexions.","modal.descriptions.appearance":"Réglez le thème, la disposition et la langue de l’interface pour une lecture confortable.","modal.descriptions.privacy":"Vérifiez les autorisations et les connexions. Gérez l’historique, les enregistrements et les données locales.","modal.descriptions.advanced":"Configurez Less Computer, le traitement multimodal et le débogage selon vos besoins.","modal.descriptions.about":"Consultez votre version, le canal et les réglages de mise à jour automatique.","modal.searchKeywords.general":"microphone enregistrement saisie téléphone distant réseau local LAN PIN capsule muet démarrage automatique","modal.searchKeywords.shortcuts":"raccourci touche combinaison sélection amélioration voix modification","modal.searchKeywords.services":"ASR LLM API canal modèle cloud local hors ligne réseau proxy catalogue","modal.searchKeywords.appearance":"thème sombre clair langue police texte taille disposition carte activité","modal.searchKeywords.privacy":"autorisation microphone accessibilité historique enregistrement stockage confidentialité exporter","modal.searchKeywords.advanced":"Less Computer Claude agent multimodal Omni débogage journaux expérience","modal.searchKeywords.about":"version Beta stable mise à jour actualisation","modal.sections.appearance":"Apparence et langue","modal.sections.shortcuts":"Raccourcis et sélection","modal.sections.general":"Enregistrement et saisie","modal.sections.services":"Services et modèles d’IA","modal.sections.privacy":"Autorisations et données","modal.sections.advanced":"Expériences et extensions","modal.sections.personalize":"Personnalisation","modal.sections.about":"À propos et mises à jour","modal.sections.helpCenter":"Centre d’aide","modal.sections.releaseNotes":"Notes de version","modal.personalize.font":"Taille de la police","modal.personalize.fontDesc":"Redimensionne immédiatement le texte de toute l’interface.","modal.personalize.fontSmall":"Petite","modal.personalize.fontMedium":"Moyenne","modal.personalize.fontLarge":"Grande","modal.personalize.blur":"Intensité de l’effet de verre","modal.personalize.blurDesc":"Modifie le filtre de flou interne. La couche dépolie du système macOS ne peut pas être réglée pendant l’exécution.","modal.about.tagline":"Parlez naturellement, écrivez avec précision","modal.about.checkUpdate":"Rechercher des mises à jour","modal.about.checkUpdateBtn":"Rechercher","modal.about.docs":"Documentation","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"Canal de commentaires","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"Code source","modal.about.qq":"Groupe communautaire QQ","modal.about.qqDesc":"Recherchez le numéro du groupe dans QQ ou scannez le code QR pour le rejoindre.","modal.about.copyQq":"Copier le numéro du groupe","modal.about.exportErrorLog":"Exporter le journal d’erreurs","modal.about.exportErrorLogDesc":"Enregistre le journal de la session actuelle sur disque pour le diagnostic ou pour nous envoyer un signalement.","modal.about.exportErrorLogBtn":"Exporter","modal.about.exporting":"Exportation…","modal.about.exportSuccess":"Enregistré","modal.about.exportFailed":"Échec de l’exportation","modal.about.privacy":"Confidentialité","modal.about.privacyDesc":"Les transcriptions restent sur cet appareil. Les fournisseurs cloud configurés peuvent recevoir l’audio pour le transcrire.","modal.about.localFirst":"Priorité au traitement local","windowChrome.restore":"Rétablir","windowChrome.minimize":"Réduire","windowChrome.maximize":"Agrandir","windowChrome.close":"Fermer","hotkey.triggers.rightOption":"Option droite","hotkey.triggers.leftOption":"Option gauche","hotkey.triggers.rightControl":"Contrôle droit","hotkey.triggers.leftControl":"Contrôle gauche","hotkey.triggers.rightCommand":"Commande droite","hotkey.triggers.leftCommand":"Commande gauche","hotkey.triggers.leftShift":"Maj gauche","hotkey.triggers.rightShift":"Maj droite","hotkey.triggers.fn":"Fn (touche Globe)","hotkey.triggers.rightAlt":"Alt droite","hotkey.triggers.mediaPlayPause":"⏯ Lecture / pause multimédia","hotkey.triggers.custom":"Combinaison personnalisée…","hotkey.fallback":"Raccourci global","hotkey.modeHoldSuffix":" (maintenir pour parler)","hotkey.modeToggleSuffix":" (démarrer / arrêter)","hotkey.modeAutoSuffix":" (détection automatique)","hotkey.usageHold":"Maintenez {{trigger}} pour parler, puis relâchez pour arrêter.","hotkey.usageToggle":"Appuyez sur {{trigger}} pour démarrer, puis de nouveau pour arrêter.","hotkey.usageAuto":"Appuyez sur {{trigger}} pour démarrer ou arrêter ; maintenez pour parler et relâchez pour arrêter.","hotkey.adapter.macEventTap":"Event Tap de macOS","hotkey.adapter.windowsLowLevel":"Détecteur clavier bas niveau de Windows","hotkey.adapter.fcitx5":"Complément de saisie fcitx5","hotkey.adapter.unavailable":"Indisponible","localAsr.kicker":"ASR LOCAL","localAsr.title":"Modèles","localAsr.desc":"Gérez les modèles de reconnaissance vocale de cet appareil.","localAsr.storageTitle":"Emplacement des modèles","localAsr.storageBaseDir":"Dossier parent sélectionné","localAsr.storageModelsRoot":"Dossier réel des modèles","localAsr.storageDefault":"Dossier par défaut du système","localAsr.storageChoose":"Changer de dossier","localAsr.storageReset":"Rétablir l’emplacement par défaut","localAsr.storageReveal":"Ouvrir le dossier des modèles","localAsr.storageDesc":"Le stockage personnalisé crée OpenLess/models dans le dossier choisi et y déplace les modèles existants. OpenLess annule les téléchargements et libère les modèles chargés avant de déplacer les fichiers.","localAsr.storageChooseTitle":"Choisir le dossier parent des modèles locaux","localAsr.storageChangeConfirm":"Les modèles locaux seront déplacés vers {{path}}/OpenLess/models. Les téléchargements seront d’abord annulés et les modèles chargés libérés. Continuer ?","localAsr.storageResetConfirm":"Les modèles locaux seront replacés dans le dossier système par défaut. Dossier actuel : {{path}}. Continuer ?","localAsr.modelDir":"Répertoire du modèle","localAsr.revealDir":"Ouvrir le répertoire","localAsr.deleteConfirm":"Supprimer les fichiers locaux de {{name}} ? Cette action est irréversible.","localAsr.appleSpeechTitle":"Reconnaissance Apple Speech (macOS)","localAsr.appleSpeechDesc":"Transcrit localement avec le moteur vocal intégré de macOS, sans téléchargement de modèle, clé API ni réseau. Une solution locale sans identifiants si votre ASR cloud est peu fiable. macOS demandera l’autorisation de reconnaissance vocale lors du premier usage.","localAsr.appleSpeechUse":"Utiliser Apple Speech","localAsr.qwenTitle":"Gestionnaire de modèles Qwen3-ASR","localAsr.qwenExperimentalBadge":"Expérimental","localAsr.engineUnavailable":"Le moteur d’inférence Qwen3-ASR n’est pas inclus sur cette plateforme. Vous pouvez télécharger les modèles, mais pas encore les activer ici.","localAsr.qwenUnavailableOnWindows":"Qwen3-ASR n’est pas encore pris en charge sous Windows. Utilisez Foundry Local Whisper ci-dessus.","localAsr.foundryTitle":"Foundry Local Whisper pour Windows","localAsr.foundryDesc":"Reconnaissance vocale sur l’appareil, sans clé API ASR. Le premier usage nécessite le téléchargement du moteur et du modèle.","localAsr.foundryAvailable":"Disponible sous Windows","localAsr.foundryUnavailable":"Windows uniquement","localAsr.foundryRuntimeReady":"Composants d’exécution téléchargés","localAsr.foundryRuntimeMissing":"Composants d’exécution non téléchargés","localAsr.foundryRuntimeSourceLabel":"Source des composants d’exécution","localAsr.foundryRuntimeSourceAuto":"Automatique (priorité à NuGet)","localAsr.foundryRuntimeSourceNuget":"Dépôt officiel NuGet","localAsr.foundryRuntimeSourceOrtNightly":"Dépôt Microsoft ORT-Nightly","localAsr.foundryRuntimeSourceDesc":"Les composants d’exécution sont téléchargés avant le premier usage.","localAsr.foundrySelectedModel":"Modèle sélectionné","localAsr.foundryActiveModel":"Alias par défaut actuel","localAsr.foundryLoadedModel":"Modèle chargé","localAsr.foundryNotLoaded":"Non chargé","localAsr.foundryError":"État de Foundry","localAsr.foundrySetDefault":"Définir par défaut / Activer l’ASR local Windows","localAsr.foundryEnabling":"Activation…","localAsr.foundryPrepare":"Préparer / Télécharger / Charger","localAsr.foundryPreparing":"Préparation…","localAsr.foundryReleasing":"Libération…","localAsr.foundryRetryPrepare":"Continuer / Réessayer la préparation","localAsr.foundryCancelPrepare":"Annuler la préparation","localAsr.foundryCancelRequested":"Annulation demandée","localAsr.foundryCancelling":"Annulation…","localAsr.foundryCancelBestEffort":"Annulation demandée. L’arrêt aura lieu à la fin de l’étape actuelle. Réessayez plus tard.","localAsr.foundryPrepareRuntime":"Préparer les composants d’exécution","localAsr.foundryPrepareModel":"Télécharger le modèle","localAsr.foundryPrepareLoad":"Charger le modèle","localAsr.foundryPrepareModelSkipped":"Le modèle est déjà téléchargé ; téléchargement ignoré","localAsr.foundryPrepareDone":"Terminé","localAsr.foundryPrepareWaiting":"En attente","localAsr.foundryApproxSizeMb":"environ {{mb}} Mo","localAsr.foundryLanguageLabel":"Langue de reconnaissance","localAsr.foundryLanguageAuto":"Automatique","localAsr.foundryLanguageZh":"Chinois zh","localAsr.foundryLanguageEn":"Anglais en","localAsr.foundryLanguageDesc":"Choisissez Chinois pour la dictée en chinois et Automatique si vous alternez les langues.","localAsr.foundryModelSmall":"Whisper Small (par défaut / équilibré)","localAsr.foundryModelSmallDesc":"Option par défaut équilibrant la qualité et l’utilisation des ressources.","localAsr.foundryModelMedium":"Whisper Medium (qualité supérieure)","localAsr.foundryModelMediumDesc":"Plus précis, pour les appareils puissants capables de gérer des téléchargements volumineux et une inférence plus lente.","localAsr.foundryModelLarge":"Whisper Large V3 Turbo (qualité maximale)","localAsr.foundryModelLargeDesc":"Grand modèle pour les appareils haut de gamme et les usages privilégiant la qualité.","localAsr.foundryModelBase":"Whisper Base (plus rapide / moins de ressources)","localAsr.foundryModelBaseDesc":"Plus rapide et moins gourmand pour la dictée quotidienne légère.","localAsr.foundryModelTiny":"Whisper Tiny (le plus rapide / test de base)","localAsr.foundryModelTinyDesc":"L’option la plus rapide pour vérifier que Foundry fonctionne.","localAsr.sherpaTitle":"sherpa-onnx local pour Windows (expérimental)","localAsr.sherpaDesc":"Windows utilise sherpa-onnx pour la reconnaissance locale par lots, hors ligne et sans clé API ASR.","localAsr.sherpaRuntimeReady":"Modèle chargé","localAsr.sherpaRuntimeMissing":"Modèle non chargé","localAsr.sherpaSetDefault":"Définir par défaut / Activer sherpa-onnx","localAsr.sherpaPrepare":"Vérifier les fichiers locaux / Charger","localAsr.sherpaPreparing":"Chargement…","localAsr.sherpaPrepareLocalFiles":"Vérifier les fichiers locaux du modèle","localAsr.sherpaModelDir":"Répertoire du modèle","localAsr.sherpaRevealDir":"Ouvrir le répertoire du modèle","localAsr.sherpaError":"État de sherpa-onnx","localAsr.sherpaLanguageJa":"Japonais ja","localAsr.sherpaLanguageKo":"Coréen ko","localAsr.sherpaLanguageYue":"Cantonais yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small (par défaut / priorité au chinois)","localAsr.sherpaModelSenseVoiceDesc":"Modèle expérimental par défaut pour la dictée en chinois ou mêlant chinois et anglais.","localAsr.sherpaModelParaformer":"Paraformer chinois","localAsr.sherpaModelParaformerDesc":"Modèle expérimental spécialisé en chinois.","localAsr.sherpaModelWhisper":"Whisper Small multilingue","localAsr.sherpaModelWhisperDesc":"Solution expérimentale multilingue au comportement conforme à la famille Whisper.","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3 (multilingue)","localAsr.sherpaModelWhisperLargeV3Desc":"La version multilingue open source la plus avancée de Whisper : grande qualité et téléchargement volumineux.","localAsr.sherpaModelZipformer":"Zipformer streaming (zh/en)","localAsr.sherpaModelZipformerDesc":"Modèle streaming chinois-anglais à la latence la plus faible — le texte apparaît pendant que vous parlez.","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"Modèle Qwen3-ASR converti pour sherpa-onnx, avec reconnaissance multilingue et meilleure gestion du contexte long.","localAsr.modelSelectTitle":"Modèles sur cet appareil","localAsr.modelSelectDesc":"Suivez les téléchargements, gérez les fichiers ou chargez un modèle pour le tester.","localAsr.modelSelectPlaceholder":"Sélectionnez un modèle téléchargé…","localAsr.modelSelectEmpty":"Aucun modèle téléchargé. Téléchargez-en un dans « Télécharger et gérer ».","localAsr.groupDownload":"Télécharger et gérer","localAsr.groupOther":"Autres","localAsr.mirrorLabel":"Serveur de téléchargement","localAsr.mirrorDesc":"huggingface.co est la source officielle ; hf-mirror.com est un miroir communautaire souvent plus accessible depuis la Chine continentale.","localAsr.mirrorHuggingface":"HuggingFace officiel (huggingface.co)","localAsr.mirrorHfMirror":"Miroir pour la Chine continentale (hf-mirror.com)","localAsr.activeBadge":"En cours d’utilisation","localAsr.downloadedBadge":"Téléchargé","localAsr.notDownloadedBadge":"Non téléchargé","localAsr.download":"Télécharger","localAsr.resume":"Reprendre","localAsr.cancel":"Annuler","localAsr.delete":"Supprimer","localAsr.setActive":"Définir par défaut","localAsr.failed":"Échec","localAsr.cancelled":"Annulé","localAsr.files":"fichiers","localAsr.sizeLoading":"Récupération de la taille…","localAsr.sizeUnknown":"Taille inconnue","localAsr.performanceWarning":"L’ASR local convient à l’usage hors ligne ou aux données sensibles. Le premier usage nécessite le téléchargement d’un modèle.","localAsr.test":"Charger et tester","localAsr.testRunning":"Test…","localAsr.testHeading":"Test audio intégré","localAsr.testExpected":"Attendu","localAsr.testActual":"Obtenu","localAsr.testStats":"Audio {{audio}}s · Chargement {{load}}s · Transcription {{transcribe}}s · Moteur {{backend}}","localAsr.testFailed":"Échec du test","localAsr.engineStatusLabel":"Moteur en mémoire","localAsr.engineLoaded":"Chargé : {{model}}","localAsr.engineUnloaded":"Non chargé (la première transcription devra charger le modèle)","localAsr.loadNow":"Charger maintenant","localAsr.releaseNow":"Libérer maintenant","localAsr.keepLoadedLabel":"Conserver en mémoire pendant","localAsr.keepLoadedDesc":"Durée pendant laquelle Qwen3-ASR reste en mémoire après sa dernière utilisation avant d’être libéré.","localAsr.keepImmediate":"Libérer immédiatement","localAsr.keep1min":"1 minute après la dernière utilisation","localAsr.keep5min":"5 minutes après la dernière utilisation (par défaut)","localAsr.keep30min":"30 minutes après la dernière utilisation","localAsr.keepForever":"Ne jamais libérer (toujours chargé)","localAsr.sidebarTitle":"Téléchargés et en téléchargement","localAsr.activePill":"Actif","localAsr.setDefault":"Définir par défaut","localAsr.downloading":"Téléchargement","localAsr.startDownload":"Démarrer le téléchargement","localAsr.downloadNewModel":"Télécharger un nouveau modèle","localAsr.activeModelLabel":"Modèle utilisé","localAsr.pickerNoModelDownloaded":"Aucun modèle téléchargé pour l’instant — commencez par la page des modèles locaux.","localAsr.partialDownloadsLabel":"Téléchargements incomplets","localAsr.partialDownloadsDesc":"Des téléchargements interrompus ont laissé des fichiers temporaires ; nettoyez-les sans toucher aux modèles installés.","localAsr.cleanupIncomplete":"Nettoyer le téléchargement incomplet","localAsr.languagesLabel":"Langues","localAsr.partialBytesLabel":"Fichiers restants","localAsr.downloadDialogTitle":"Télécharger un modèle","localAsr.downloadDialogAlreadyHave":"Les fichiers du modèle sont téléchargés. Revenez à sa page pour le charger et le tester, ou choisissez son fournisseur dans Transcription ASR.","localAsr.downloadDialogDesc":"Comparez les tailles et descriptions, puis téléchargez le modèle choisi. Lorsqu’il est prêt, sélectionnez le service local correspondant dans Reconnaissance vocale.","localAsr.detailRepo":"Dépôt","localAsr.hfDownloads":"Téléchargements","localAsr.hfLikes":"Mentions J’aime","localAsr.hfDescription":"À propos","localAsr.hfNoDescription":"Aucune description pour le moment","localAsr.hfCardFailed":"Impossible de charger les informations du modèle","localAsr.detailFiles":"fichiers","localAsr.detailDownloaded":"Téléchargé","localAsr.detailEmpty":"Sélectionnez un modèle pour afficher ses détails","localAsr.foundryLanguage":"Langue","localAsr.foundryRuntimeSource":"Source des composants d’exécution","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"Conserver en mémoire","localAsr.downloadSettingsTitle":"Téléchargement et stockage","localAsr.downloadSettingsDesc":"Serveur de téléchargement · emplacement des modèles · moteur en mémoire","localAsr.libraryEmptyTitle":"Aucun modèle local pour le moment","localAsr.libraryEmptyDesc":"Téléchargez un modèle de reconnaissance vocale pour traiter l’audio sur cet appareil. Si un modèle existant manque, rechargez le catalogue.","localAsr.catalogTitle":"Catalogue de modèles","localAsr.catalogEmpty":"Aucun modèle à afficher. Rechargez le catalogue et réessayez.","localAsr.reloadCatalog":"Recharger le catalogue","localAsr.engineLabel":"Moteur de reconnaissance","localAsr.sizeLabel":"Taille du modèle","localAsr.allEngines":"Tous","localAsr.backToCatalog":"Retour au catalogue","localAsr.detailsTitle":"Détails du modèle","localAsr.testActivateHint":"Charger et tester active ce modèle, puis exécute le test audio intégré.","localAsr.downloadProgressHint":"Après le démarrage, suivez la progression ou annulez le téléchargement depuis la page du modèle.","localAsr.errorDetails":"Détails de l’erreur"},"de":{"cloudSync.title":"Cloud-Synchronisierung","cloudSync.description":"Synchronisiere dein Wörterbuch, deine Stile und Einstellungen über dein GitHub-Konto auf mehreren Geräten.","cloudSync.signIn":"Mit GitHub anmelden","cloudSync.account":"Synchronisierungskonto","cloudSync.refresh":"Status aktualisieren","cloudSync.loading":"Cloud-Status wird geprüft…","cloudSync.noBackup":"Noch keine Cloud-Sicherung","cloudSync.available":"Cloud-Sicherung verfügbar","cloudSync.summary":"Wörter: {{dictionary}} · Korrekturen: {{corrections}} · Stile: {{stylePacks}}","cloudSync.updated":"Aktualisiert: {{time}}","cloudSync.upload":"In der Cloud sichern","cloudSync.restore":"Aus der Cloud wiederherstellen","cloudSync.delete":"Cloud-Sicherung löschen","cloudSync.working":"Wird synchronisiert…","cloudSync.uploadSuccess":"Cloud-Sicherung gespeichert","cloudSync.restoreSuccess":"Cloud-Einstellungen wiederhergestellt","cloudSync.deleteSuccess":"Cloud-Sicherung gelöscht","cloudSync.failed":"Synchronisierung fehlgeschlagen: {{error}}","cloudSync.conflict":"Die Cloud-Kopie wurde geändert. Aktualisiere ihren Status, bevor du sie sicherst oder wiederherstellst.","cloudSync.unavailable":"Der offizielle Synchronisierungsdienst ist derzeit nicht verfügbar. Versuche es später erneut.","cloudSync.signInRequired":"Melde dich zuerst mit GitHub an.","cloudSync.restoreTitle":"Cloud-Sicherung wiederherstellen?","cloudSync.restoreDescription":"Wörterbucheinträge, Korrekturen, Stile und synchronisierte Einstellungen aus der Cloud ersetzen die entsprechenden lokalen Daten. API-Schlüssel, Gerätepfade und Berechtigungen bleiben auf diesem Gerät.","cloudSync.deleteTitle":"Cloud-Sicherung löschen?","cloudSync.deleteDescription":"Dadurch wird nur die Cloud-Sicherung dieses GitHub-Kontos gelöscht. Die lokalen Daten bleiben erhalten.","cloudSync.confirmRestore":"Wiederherstellen und ersetzen","cloudSync.confirmDelete":"Sicherung löschen","cloudSync.scope":"Synchronisiert Wörterbucheinträge, Korrekturen, Stilsymbole und allgemeine Einstellungen. API-Schlüssel, Zugangsdaten und Geräteeinstellungen bleiben auf diesem Gerät.","macDictationKey.Changed":"Der Shortcut wurde während des Speicherns geändert. Bitte erneut versuchen.","macDictationKey.label":"Mac-Diktat-Taste","macDictationKey.description":"Ersetzt den aktuellen Diktat-Shortcut durch die Mikrofontaste. Beim Beenden von OpenLess wird die Taste an macOS zurückgegeben.","macDictationKey.Permission":"Erlaube OpenLess unter macOS „Datenschutz & Sicherheit → Bedienungshilfen“ und versuche es erneut.","macDictationKey.Busy":"Beende erst die aktuelle Diktat-Sitzung, bevor du den Shortcut änderst.","macDictationKey.Unavailable":"Der Shortcut konnte nicht aktiviert werden; die gespeicherte Zuordnung ist unverändert. Versuche es erneut oder wähle eine andere Taste.","app.name":"OpenLess","app.tagline":"Natürlich sprechen, klar schreiben","common.loading":"Wird geladen…","common.retry":"Erneut versuchen","common.settingsLoadFailed":"Einstellungen konnten nicht geladen werden","common.refresh":"Aktualisieren","common.clear":"Leeren","common.copy":"Kopieren","common.delete":"Löschen","common.later":"Später","common.cancel":"Abbrechen","common.close":"Schließen","common.show":"Einblenden","common.hide":"Ausblenden","common.saved":"Gespeichert","common.saving":"Wird gespeichert…","common.experimental":"Experimentell","common.copied":"Kopiert","common.operationFailed":"Vorgang fehlgeschlagen","common.add":"Hinzufügen","common.durationSeconds":"{{value}}s","common.durationMillis":"{{value}}ms","common.durationMinutes":"{{value}}m","capsule.thinking":"denkt nach","capsule.using":"verwendet","capsule.cancelled":"Abgebrochen","capsule.error":"Ein Fehler ist aufgetreten","capsule.inserted":"{{count}} eingefügt","capsule.translating":"Wird übersetzt","capsule.selectionPolish.polishing":"Wird überarbeitet…","capsule.selectionPolish.replaced":"Ersetzt","capsule.selectionPolish.noSelection":"Kein Text ausgewählt","capsule.selectionPolish.failed":"Überarbeitung fehlgeschlagen. Erneut versuchen","selectionPolishPreview.title":"Vorschau der Textüberarbeitung","selectionPolishPreview.subtitle":"Das Ergebnis lässt sich bearbeiten. Die ursprüngliche Auswahl wird erst nach deiner Bestätigung ersetzt.","selectionPolishPreview.cancel":"Abbrechen","selectionPolishPreview.resultLabel":"Überarbeitetes Ergebnis","selectionPolishPreview.sourcePrefix":"Original: ","selectionPolishPreview.applyError":"Anwenden fehlgeschlagen: ","selectionPolishPreview.confirmReplace":"Bestätigen und ersetzen","selectionVoiceIntent.title":"Was möchtest du tun?","selectionVoiceIntent.subtitle":"Deine gesprochene Anweisung wurde erkannt. Wähle den nächsten Schritt.","selectionVoiceIntent.loading":"Wird geladen…","selectionVoiceIntent.sourcePrefix":"Auswahl: ","selectionVoiceIntent.errorPrefix":"Fortsetzen fehlgeschlagen: ","selectionVoiceIntent.question":"Eine Frage stellen","selectionVoiceIntent.edit":"Auswahl bearbeiten","selectionVoiceIntent.cancel":"Abbrechen","qa.title":"Nachfragen","qa.headerHint":"Jederzeit fragen","qa.thinking":"Denkt nach…","qa.error":"Ein Fehler ist aufgetreten. Versuche es erneut.","qa.errorRetry":"Erneut versuchen","qa.errorRetryHint":"Versuche es erneut.","qa.pinTooltip":"Anheften (geöffnet lassen)","qa.unpinTooltip":"Anheften aufheben","qa.closeTooltip":"Schließen","qa.micLabel":"Frage sprechen","qa.micStop":"Aufnahme beenden","qa.selectionPreview":"Aus dem ausgewählten Text:","qa.emptyTitle":"Wie kann ich helfen?","qa.emptyDesc":"Wähle einen Text aus, zu dem du etwas fragen möchtest, oder gib unten deine Frage ein. Die Antworten erscheinen hier. Du kannst beliebig oft nachfragen.","qa.recordingHint":"Aufnahme läuft… Zum Senden erneut {{recordHotkey}} drücken","qa.mobileRecordLabel":"Aufnahmetaste","qa.mobileRecordStart":"Aufnahme starten","qa.mobileRecordStop":"Beenden und senden","qa.composerPlaceholder":"Frage eingeben. Mit Enter senden","qa.composerSend":"Senden","qa.statusIdle":"Zum Fragen {{recordHotkey}} drücken","qa.statusRecording":"Aufnahme läuft","qa.statusThinking":"Denkt nach","qa.statusError":"Fehler","qa.jumpToLatest":"Zur neuesten Nachricht","qa.editApplyReplace":"Einfügen prüfen und bestätigen","qa.editApplyUnavailable":"Kein bearbeitetes Ergebnis zum Anwenden","qa.editRevertPrevious":"Vorherige Version behalten","qa.editInstructionMode":"Bearbeitungsanweisung","lessComputer.title":"Less Computer","lessComputer.subtitle":"Was soll dein Computer tun?","lessComputer.you":"Du","lessComputer.working":"Wird ausgeführt…","lessComputer.tool":"{{name}} verwendet","lessComputer.compaction":"Kontext zusammengefasst","lessComputer.done":"Fertig","lessComputer.cost":"${{cost}}","lessComputer.error":"Fehlgeschlagen. Erneut versuchen.","lessComputer.closeTooltip":"Schließen","lessComputer.jumpToLatest":"Zur neuesten Nachricht","lessComputer.inputPlaceholder":"Befehl eingeben, mit Enter senden","lessComputer.send":"Senden","lessComputer.approvalTitle":"Blockierten Befehl ausführen?","lessComputer.approvalRerunWarning":"Hinweis: Die Freigabe führt den Befehl im bereits veränderten Arbeitsbereich erneut aus. Bei Vorgängen, die sich nicht unverändert wiederholen lassen, können zusätzliche Änderungen entstehen.","lessComputer.approve":"Freigeben","lessComputer.deny":"Ablehnen","lessComputer.approved":"Freigegeben","lessComputer.denied":"Abgelehnt","nav.overview":"Übersicht","nav.history":"Verlauf","nav.vocab":"Wörterbuch","nav.style":"Stil","nav.marketplace":"Marktplatz","nav.translation":"Übersetzung","nav.selectionAsk":"Nachfragen","nav.corrections":"Korrekturen","nav.polishMode":"Überarbeitungsmodus","nav.group.style":"Stil","nav.group.tools":"Werkzeuge","nav.localAsr":"Modelle","nav.more":"Mehr","marketplace.kicker":"MARKTPLATZ","marketplace.title":"Stilpaket-Marktplatz","marketplace.desc":"Stilpakete der Community entdecken, installieren und teilen.","marketplace.searchPlaceholder":"Name, Beschreibung oder Schlagwörter suchen…","marketplace.sortPopular":"Beliebt","marketplace.sortNew":"Neueste","marketplace.uploadBtn":"Hochladen","marketplace.uploadDisabledHint":"Melde dich zuerst unter Einstellungen → Marktplatz mit GitHub an","marketplace.refreshBtn":"Aktualisieren","marketplace.empty":"Noch keine Stilpakete","marketplace.emptyHint":"Versuche einen anderen Suchbegriff oder lade ein eigenes Paket hoch","marketplace.loadFailed":"Laden fehlgeschlagen: {{err}}","marketplace.noDescription":"(keine Beschreibung)","marketplace.installBtn":"Installieren","marketplace.installingBtn":"Wird installiert…","marketplace.downloadZipBtn":"ZIP herunterladen","marketplace.downloadingZipBtn":"Wird heruntergeladen…","marketplace.downloadAria":"„{{name}}“ als ZIP herunterladen","marketplace.likeBtn":"Gefällt mir","marketplace.installed":"„{{name}}“ lokal installiert","marketplace.downloaded":"„{{name}}“ als ZIP heruntergeladen","marketplace.uploaded":"Hochgeladen – Prüfung ausstehend","marketplace.uploadTitle":"Stilpaket zum Hochladen wählen","marketplace.uploadHint":"Du lädst als {{login}} hoch. Der Inhalt wird zur Prüfung in die Cloud übertragen.","marketplace.uploadNoLocal":"Keine lokalen Stilpakete zum Hochladen","marketplace.errors.detail":"Details konnten nicht geladen werden: {{err}}","marketplace.errors.install":"Installation fehlgeschlagen: {{err}}","marketplace.errors.download":"ZIP-Download fehlgeschlagen: {{err}}","marketplace.errors.like":"Markieren fehlgeschlagen: {{err}}","marketplace.errors.upload":"Hochladen fehlgeschlagen: {{err}}","marketplace.errors.loadLocal":"Lokale Pakete konnten nicht geladen werden: {{err}}","marketplace.sortLiked":"Gefällt mir","marketplace.likedEmpty":"Du hast noch keine Stilpakete mit „Gefällt mir“ markiert","marketplace.likedEmptyHint":"Öffne ein Paket und klicke auf den Stern. Markierte Pakete erscheinen hier","marketplace.derivativeBadge":"Abgeleitet von @{{login}}","marketplace.detail.withdrawBtn":"Zurückziehen","marketplace.detail.withdrawConfirm":"„{{name}}“ vom Marktplatz zurückziehen? Deine lokale Kopie bleibt erhalten.","marketplace.detail.withdrawSuccess":"Vom Marktplatz zurückgezogen","marketplace.detail.withdrawFailed":"Zurückziehen fehlgeschlagen: {{err}}","marketplace.myPacks.buttonLabel":"Meine Pakete","marketplace.myPacks.buttonTitle":"Veröffentlichungen von {{login}} ansehen","marketplace.myPacks.buttonTitleEmpty":"Lege zuerst unter Einstellungen → Marktplatz dein Veröffentlichungsprofil fest","marketplace.myPacks.searchPlaceholder":"Nach Namen oder Schlagwörtern suchen","marketplace.myPacks.notLoggedIn":"Lege zuerst unter Einstellungen → Marktplatz dein Veröffentlichungsprofil fest","marketplace.myPacks.emptyTitle":"Du hast noch keine Stilpakete veröffentlicht","marketplace.myPacks.emptyHint":"Bearbeite ein Paket auf der Seite „Stil“ und klicke auf „Auf dem Marktplatz veröffentlichen“, oder lade oben rechts ein lokales Paket hoch.","marketplace.myPacks.noMatch":"Keine passenden Stilpakete","marketplace.myPacks.summary":"{{count}} veröffentlicht","marketplace.myPacks.summaryPending":"{{count}} veröffentlicht · {{pending}} warten auf Prüfung","marketplace.myPacks.versionDate":"v{{version}} · {{date}}","marketplace.myPacks.stats":"★ {{likes}} · ↓ {{downloads}}","marketplace.myPacks.actions.update":"Aktualisieren","marketplace.myPacks.actions.withdraw":"Zurückziehen","marketplace.myPacks.loadFailed":"Meine Pakete konnten nicht geladen werden: {{err}}","marketplace.myPacks.loadingTitle":"Wird geladen…","marketplace.myPacks.loadingHint":"Deine neuesten Veröffentlichungen werden vom Marktplatz abgerufen.","marketplace.myPacks.loadErrorTitle":"Laden fehlgeschlagen","marketplace.myPacks.loadErrorRetry":"Erneut versuchen","marketplace.upload.confirmBtn":"Hochladen bestätigen","marketplace.upload.updateTitle":"„{{name}}“ aktualisieren","marketplace.upload.updateHint":"Wähle die neuere lokale Version und klicke auf „Hochladen bestätigen“. Ein Paket mit demselben Namen ist bereits ausgewählt.","marketplace.upload.recommendedBadge":"Empfohlen","marketplace.state.pending":"Ausstehend","marketplace.state.approved":"Veröffentlicht","marketplace.state.rejected":"Abgelehnt","marketplace.state.withdrawn":"Zurückgezogen","marketplace.state.superseded":"Ersetzt","marketplace.state.unknown":"Unbekannt","marketplace.oauth.title":"Mit GitHub anmelden","marketplace.oauth.generating":"Gerätecode wird erstellt…","marketplace.oauth.browserHint":"Öffne {{uri}} im Browser und gib diesen Code ein:","marketplace.oauth.copyBtn":"Kopieren","marketplace.oauth.copied":"Gerätecode kopiert","marketplace.oauth.copyFailed":"Kopieren fehlgeschlagen: {{err}}","marketplace.oauth.openBrowserBtn":"Browser öffnen","marketplace.oauth.cancelBtn":"Abbrechen","marketplace.oauth.waiting":"Warten auf Freigabe im Browser…","marketplace.oauth.successAs":"Als @{{login}} angemeldet","marketplace.oauth.retryBtn":"Erneut versuchen","marketplace.oauth.closeBtn":"Schließen","marketplace.oauth.loginBtn":"Anmelden","marketplace.oauth.loginTooltip":"Mit GitHub anmelden","marketplace.oauth.reloginTooltip":"Erneut anmelden oder Konto wechseln (aktuell @{{login}})","marketplace.modal.loggedIn":"Aktuelles Anmeldeprofil – unter Einstellungen → Aufnahme → Marktplatz ändern","marketplace.modal.notLoggedIn":"Nicht angemeldet – lege unter Einstellungen → Aufnahme → Marktplatz deinen Veröffentlichungsnamen fest","marketplace.modal.notLoggedInLabel":"Nicht angemeldet","shell.shortcutLabel":"Aufnahmekurzbefehl","shell.shortcutHint":"Starten / Beenden","shell.betaTag":"BETA","shell.betaNote":"Lokale Speicherung, optionale Cloud-Sicherung","shell.navHint.overview":"Statusübersicht: Nutzungsstatistik, Dienste und Berechtigungen","shell.navHint.history":"Diktatverlauf: frühere Transkripte suchen, abspielen und kopieren","shell.navHint.vocab":"Wörterbuch: eigene Begriffe für eine bessere Erkennung von Eigennamen","shell.navHint.style":"Textstile: Ausgabestile und eigene Prompts verwalten","shell.navHint.translation":"Übersetzung: Beim Sprechen Shift gedrückt halten, um Text in der Zielsprache einzufügen","shell.navHint.selectionAsk":"Zum ausgewählten Text fragen: Text auswählen und eine Frage dazu sprechen","shell.navHint.settings":"Einstellungen: Kurzbefehle, Dienste, Datenschutz und Updates","shell.footer.account":"Konto","shell.footer.feedback":"Rückmeldung","shell.footer.settings":"Einstellungen","shell.footer.help":"Hilfe","shell.footer.version":"Version {{version}}","shell.footer.helpPopover.tagline":"Spracheingabe mit lokalem Schwerpunkt","shell.footer.helpPopover.releaseNotes":"Versionshinweise ↗","shell.footer.helpPopover.docs":"Hilfezentrum ↗","shell.providerPrompt.title":"Sprachdienste einrichten","shell.providerPrompt.body":"Ein ASR- oder LLM-Dienst ist noch nicht eingerichtet. Spracheingabe und Textüberarbeitung sind erst nach dem Hinzufügen der Zugangsdaten verfügbar.","shell.providerPrompt.later":"Später","shell.providerPrompt.openSettings":"Einstellungen öffnen","shell.hotkeyModePrompt.title":"Aufnahmemodus prüfen","shell.hotkeyModePrompt.body":"Standardmäßig wird die Aufnahme jetzt per Tastendruck ein- und ausgeschaltet. Falls du den Auslösemodus zuvor geändert hast, prüfe ihn bitte in den Aufnahmeeinstellungen.","shell.hotkeyModePrompt.later":"Später erinnern","shell.hotkeyModePrompt.openSettings":"Aufnahmeeinstellungen öffnen","onboarding.welcome":"Willkommen bei OpenLess","onboarding.intro":"Lokal sprechen, lokal schreiben. Vor dem Start werden zwei Systemberechtigungen benötigt.","onboarding.accessibilityTitle":"Bedienungshilfen","onboarding.hotkeyTitle":"Globaler Kurzbefehl","onboarding.accessibilityDesc":"Erfasst den globalen Kurzbefehl (Standard: {{trigger}}) und fügt Transkripte an der Cursorposition ein.","onboarding.hotkeyDesc":"Prüft, ob die Überwachung globaler Kurzbefehle verfügbar ist.","onboarding.micTitle":"Mikrofon","onboarding.micDesc":"Erfasst deine Spracheingabe.","onboarding.actionNotApplicable":"Nicht erforderlich","onboarding.actionGranted":"Erlaubt","onboarding.actionOpenSystem":"Systemeinstellungen öffnen","onboarding.actionRestart":"Bedienungshilfen zurücksetzen und OpenLess neu starten","onboarding.actionGrant":"Erlauben","onboarding.actionRequestMic":"Zugriff anfordern","onboarding.micNoDeviceHint":"Kein Mikrofon erkannt. Schließe ein Mikrofon an, aktiviere es und versuche es erneut.","onboarding.accessibilityHint":"Nach der Freigabe musst du **OpenLess vollständig beenden** und erneut öffnen (Vorgabe von macOS TCC).","onboarding.footerHint":"Diese Einführung schließt sich automatisch, sobald beide Berechtigungen erteilt wurden. Falls sie weiterhin angezeigt wird, beende OpenLess über die Menüleiste und starte es erneut.","onboarding.continueToSettings":"Nur Einstellungen öffnen (Spracheingabe und globale Kurzbefehle nicht verfügbar)","onboarding.androidContinue":"Zur App","onboarding.androidFooterHint":"Für Diktate ist Mikrofonzugriff erforderlich. Tippe oben auf „Zugriff anfordern“ oder fahre fort und erteile ihn später in der Übersicht.","onboarding.androidTitle":"OpenLess einrichten","onboarding.androidIntro":"Richte Berechtigungen und Dienste für Mobilgeräte Schritt für Schritt ein.","onboarding.androidStepCounter":"Schritt {{current}} von {{total}}","onboarding.androidBack":"Zurück","onboarding.androidNext":"Weiter","onboarding.androidFinish":"Abschließen und öffnen","onboarding.androidSteps.microphoneTitle":"Mikrofonberechtigung","onboarding.androidSteps.microphoneDesc":"Öffne den Android-Berechtigungsdialog und erlaube OpenLess, Sprache aufzunehmen.","onboarding.androidSteps.accessibilityTitle":"Bedienungshilfendienst","onboarding.androidSteps.accessibilityDesc":"Fügt Erkennungsergebnisse in das aktive Eingabefeld ein und hilft, den Eingabekontext zu erkennen.","onboarding.androidSteps.overlayPermissionTitle":"Berechtigung für schwebende Fenster","onboarding.androidSteps.overlayPermissionDesc":"Erlaube OpenLess, die Aufnahmesteuerung über anderen Apps anzuzeigen.","onboarding.androidSteps.overlayConfigTitle":"Einstellungen für schwebende Fenster","onboarding.androidSteps.overlayConfigDesc":"Sichtbarkeit, Aktivierung, Wischaktionen und Tastengröße einstellen.","onboarding.androidSteps.asrTitle":"ASR-Clouddienst","onboarding.androidSteps.asrDesc":"Dienst für Spracherkennung, Schlüssel, Endpunkt und Modell einrichten.","onboarding.androidSteps.llmTitle":"LLM-Dienst","onboarding.androidSteps.llmDesc":"Das Sprachmodell für Textüberarbeitung, Übersetzung und Fragen einrichten.","overview.refresh":"Status aktualisieren","overview.servicesTitle":"Aktuelle Sprachdienste","overview.statsTitle":"Deine Aktivität","overview.omniKind":"Multimodale Spracheingabe","overview.omniName":"Aktuelles Omni-Modell","overview.statusLoading":"Dienstkonfiguration wird gelesen…","overview.configureProvider":"Einrichten","overview.manageProvider":"Dienst verwalten","overview.recentEmptyHint":"Noch keine Diktate. Probiere es mit der Anleitung oben aus. Dein Ergebnis erscheint hier.","overview.providerHelp.asr":"Wandelt deine Sprache in Text um.","overview.providerHelp.llm":"Gliedert und überarbeitet Text in deinem Stil.","overview.providerHelp.omni":"Ein Modell übernimmt Spracherkennung und Textverarbeitung.","overview.actions.refresh":"Erneut versuchen","overview.actions.services":"KI-Dienste und Modelle","overview.actions.general":"Aufnahme und Eingabe","overview.actions.shortcuts":"Kurzbefehle","overview.actions.privacy":"Berechtigungen und Daten","overview.guide.nextStep":"Nächster Schritt","overview.guide.loadingTitle":"Deine Konfiguration wird gelesen","overview.guide.loadingDesc":"Deine aktuellen Dienste und der nächste Schritt erscheinen gleich.","overview.guide.unavailableTitle":"Dienststatus nicht verfügbar","overview.guide.unavailableDesc":"Lies den Status erneut oder prüfe deine Konfiguration unter „KI-Dienste“.","overview.guide.servicesTitle":"Sprachdienste einrichten","overview.guide.servicesDesc":"Beginne hier: Wähle Dienste für Spracherkennung und Textverarbeitung. Im Omni-Modus muss nur das aktive multimodale Modell eingerichtet werden.","overview.guide.permissionsTitle":"Kurzbefehlstatus prüfen","overview.guide.permissionsDesc":"Der Kurzbefehladapter ist nicht verfügbar. Unter „Berechtigungen und Daten“ findest du seinen Status und die verfügbaren Optionen.","overview.guide.shortcutsTitle":"Aufnahmekurzbefehl wählen","overview.guide.shortcutsDesc":"Wähle einen leicht erreichbaren Kurzbefehl, um beim Schreiben ein Diktat zu starten.","overview.guide.recordingTitle":"Aufnahmeart wählen","overview.guide.recordingDesc":"Deine Dienstkonfiguration ist gespeichert. Wähle in den Aufnahmeeinstellungen dein Mikrofon und den Aufnahmemodus.","overview.guide.tryDictationTitle":"Diktat ausprobieren","overview.guide.tryDictationDesc":"Setze den Cursor an die gewünschte Eingabestelle. {{shortcut}}","overview.guide.permissionsHint":"Aufnahme oder Kurzbefehle reagieren nicht? Prüfe Berechtigungen, Mikrofonzugriff und Kurzbefehlstatus unter „Berechtigungen und Daten“.","overview.kicker":"ÜBERSICHT","overview.title":"Heutige Übersicht","overview.desc":"Diktatstatistik und Systemstatus für heute.","overview.pressPrefix":"Drücke","overview.pressSuffix":"zum Starten","overview.asrKind":"Spracherkennung","overview.llmKind":"Textverarbeitung","overview.asrName":"Volcengine","overview.asrSubname":"bigmodel","overview.llmName":"OpenAI-kompatibel","overview.llmConfigured":"Aktives LLM eingerichtet","overview.llmNotConfigured":"Nicht eingerichtet","overview.statusConfigured":"Eingerichtet","overview.statusNotConfigured":"Nicht eingerichtet","overview.statusUnknown":"Nicht verfügbar","overview.credentialsLoadError":"Status der Zugangsdaten konnte nicht gelesen werden","overview.metricChars":"Zeichen heute","overview.metricSegments":"Abschnitte: {{count}}","overview.metricDuration":"Gesamtdauer heute","overview.metricAvg":"Durchschnitt pro Abschnitt","overview.metricAvgTrend":"Heutiger Durchschnitt","overview.metricNoData":"Keine Daten","overview.historyLoadError":"Verlauf konnte nicht geladen werden","overview.metricTotal":"Einträge insgesamt","overview.metricTotalTrend":"Lokales Archiv (max. 200)","overview.activityTitle":"Aktivität im Jahr","overview.activityCount":"Diktate: {{count}}","overview.activityLoadError":"Aktivitätsdaten konnten nicht geladen werden","overview.period.ariaLabel":"Auswertungszeitraum","overview.period.last7Days":"Letzte 7 Tage","overview.period.last30Days":"Letzte 30 Tage","overview.period.dailyAverage":"{{value}} / Tag","overview.period.minutes":"{{value}} Min.","overview.period.hoursMinutes":"{{hours}} Std. {{minutes}} Min.","overview.metricName.ariaLabel":"Kennzahl","overview.metricName.count":"Anzahl","overview.metricName.chars":"Zeichen","overview.metricName.duration":"Dauer","overview.recentTitle":"Neueste Transkripte","overview.recentAll":"Alle anzeigen →","overview.recentEmpty":"Noch keine Einträge. Drücke {{trigger}}, um deine erste Aufnahme zu starten.","overview.recentLoadFailed":"Neueste Transkripte konnten nicht geladen werden. Versuche es erneut.","overview.historyRetry":"Erneut versuchen","overview.weekDays.0":"So","overview.weekDays.1":"Mo","overview.weekDays.2":"Di","overview.weekDays.3":"Mi","overview.weekDays.4":"Do","overview.weekDays.5":"Fr","overview.weekDays.6":"Sa","overview.inAppDictation.title":"Diktat in der App","overview.inAppDictation.start":"Aufnahme starten","overview.inAppDictation.stop":"Aufnahme beenden","overview.inAppDictation.idle":"Zum Aufnehmen tippen","overview.inAppDictation.recording":"Aufnahme läuft…","overview.inAppDictation.processing":"Wird verarbeitet…","overview.androidMicBanner.title":"Mikrofonberechtigung erforderlich","overview.androidMicBanner.desc":"Erlaube den Mikrofonzugriff, um Diktate und Spracheingabe in der App zu nutzen.","overview.androidMicBanner.grant":"Zugriff anfordern","overview.androidMicBanner.openSettings":"Einstellungen öffnen","history.exportError":"Die Aufnahme konnte nicht exportiert werden. Versuche es erneut.","history.kicker":"VERLAUF","history.title":"Verlauf","history.desc":"Lokal gespeicherte Transkripte.","history.filterAll":"Alle","history.summary":"{{total}} insgesamt · {{shown}} angezeigt","history.searchPlaceholder":"Transkripte durchsuchen… ({{shortcut}})","history.searchNoMatch":"Keine Einträge für „{{query}}“.","history.empty":"Noch kein Verlauf. Drücke {{trigger}}, um etwas aufzunehmen.","history.loadFailed":"Verlauf konnte nicht geladen werden: {{err}}","history.retry":"Erneut versuchen","history.clearFailed":"Verlauf konnte nicht geleert werden: {{err}}","history.deleteFailed":"Eintrag konnte nicht gelöscht werden: {{err}}","history.copyFailed":"Kopieren fehlgeschlagen: {{err}}","history.playRecording":"Aufnahme abspielen","history.audioLoading":"Wird geladen…","history.audioDecodeFailed":"Audio konnte nicht dekodiert werden: {{err}}","history.exportRecording":"Aufnahme exportieren","history.exportFailed":"Export fehlgeschlagen: {{err}}","history.retranscribe":"Erneut transkribieren","history.retranscribing":"Wird transkribiert…","history.retranscribeFailed":"Erneute Transkription fehlgeschlagen: {{err}}","history.rawLabel":"Rohtext","history.rawEmpty":"(leer)","history.selectHint":"Wähle links einen Eintrag aus, um die Details anzuzeigen.","history.recorded":"Aufnahmedauer: {{duration}}","history.stepAsr":"Transkribieren","history.multimodalPipeline":"Multimodal","history.stepAsrHint":"Wartezeit auf das Transkript nach dem Loslassen der Taste. Die laufende Spracherkennung arbeitet bereits während des Sprechens, daher ist diese Zeit meist deutlich kürzer als die Aufnahme.","history.stepPolish":"Überarbeiten","history.stepInsert":"Einfügen","history.chars":"{{count}} Zeichen","history.vocabHits":"{{count}} Wörterbuchtreffer","history.inserted":"Eingefügt","history.pasteSent":"Einfügebefehl gesendet","history.copiedFallback":"Kopiert (mit {{shortcut}} einfügen)","history.insertFailed":"Einfügen fehlgeschlagen","history.confirmClear":"Alle {{count}} Verlaufseinträge löschen? Dies kann nicht rückgängig gemacht werden.","history.backToList":"Zurück zur Liste","history.repolish.title":"Erneut überarbeiten","history.repolish.hint":"Überarbeitet das obige Transkript erneut. Die Ergebnisse werden nur für diesen Aufruf angezeigt und nicht im Eintrag gespeichert. Wurde das ursprüngliche Stilpaket gelöscht oder stammt der Eintrag aus der Zeit vor Stilpaketen, wird der aktuelle Stil verwendet.","history.repolish.retry":"Mit demselben Stil wiederholen","history.repolish.retrying":"Wird erneut versucht…","history.repolish.apply":"Anwenden","history.repolish.applying":"Wird überarbeitet…","history.repolish.pickStyle":"Stilpaket wählen","history.repolish.noPacks":"Keine Stilpakete verfügbar.","history.repolish.packsLoadFailed":"Stilpakete konnten nicht geladen werden: {{err}}","history.repolish.failed":"Erneute Überarbeitung fehlgeschlagen: {{err}}","history.repolish.timeout":"Der aktuelle LLM-Dienst hat nicht innerhalb von 30 Sekunden geantwortet. Wähle einen schnelleren Dienst oder versuche es später erneut. Bei kostenlosen Modellangeboten entstehen häufig Wartezeiten.","history.repolish.resultTitle":"Ergebnis von {{name}}","history.repolish.retryResultTitle":"Ergebnis des erneuten Versuchs","history.repolish.empty":"(das Modell hat ein leeres Ergebnis zurückgegeben)","history.repolish.clear":"Ergebnisse leeren","vocabCard.title":"Dieses Wort merken?","vocabCard.accept":"Merken","vocabCard.reject":"Überspringen","insertFallbackCard.copy":"Kopieren","insertFallbackCard.copied":"Kopiert","insertFallbackCard.copyFailed":"Kopieren fehlgeschlagen","insertFallbackCard.dismiss":"Ausblenden","vocab.selectAllVisible":"Aktuelle Ergebnisse auswählen","vocab.selectedCount":"Ausgewählte Wörter: {{count}}","vocab.selectWord":"„{{phrase}}“ auswählen","vocab.deleteSelected":"Auswahl löschen ({{count}})","vocab.batchDeleteFailed":"Löschen fehlgeschlagen. Betroffene Wörter: {{count}}. Sie bleiben für einen erneuten Versuch ausgewählt.","vocab.kicker":"WÖRTERBUCH","vocab.title":"Wörterbuch","vocab.desc":"Füge Begriffe oder Fachwörter hinzu, um die Erkennungsgenauigkeit zu verbessern.","vocab.sectionTitle":"Einträge","vocab.placeholder":"Wort eingeben, Enter drücken oder auf „Hinzufügen“ klicken…","vocab.tip":"Chinesisch und Englisch mischbar · Zahlenpräfixe werden wörtlich abgeglichen · Treffer werden automatisch gezählt","vocab.loadFailed":"Laden fehlgeschlagen: {{err}}","vocab.empty":"Noch keine Einträge. Füge oben einen Begriff oder ein Fachwort hinzu, damit das Modell es bevorzugt erkennt.","vocab.tipDisabled":"Klicken, um diesen Eintrag zu deaktivieren","vocab.tipEnabled":"Klicken, um diesen Eintrag zu aktivieren","vocab.removeAria":"Entfernen","vocab.edit":"Bearbeiten","vocab.editTitle":"Wort bearbeiten","vocab.editSave":"Speichern","vocab.editEmpty":"Das Wort darf nicht leer sein.","vocab.filter.all":"Alle","vocab.filter.auto":"Automatisch hinzugefügt","vocab.filter.manual":"Manuell hinzugefügt","vocab.searchPlaceholder":"Suchen","vocab.searchEmpty":"Keine passenden Wörter.","vocab.newWord":"Neues Wort","vocab.newWordTitle":"Neue Wörter hinzufügen","vocab.newWordDesc":"Gib ein Wort direkt ein oder importiere mehrere Begriffe aus Vorlagen.","vocab.newWordInputPlaceholder":"Wort eingeben und mit Enter hinzufügen…","vocab.newWordTemplates":"Vorlagen","vocab.newWordTemplateCount":"Wörter: {{count}}","vocab.newWordAddSelected":"Auswahl hinzufügen","vocab.learnedSection":"Automatisch gesammelt ({{count}})","vocab.removeAllLearned":"Alle entfernen","vocab.corrections.title":"Korrekturregeln","vocab.corrections.tip":"Behebt häufige ASR-Fehler. Unterstützt den Zahlenplatzhalter {num}.","vocab.corrections.patternPlaceholder":"Fehlerhafter Text, z. B. {num} mahl","vocab.corrections.replacementPlaceholder":"Zieltext, z. B. {num} mal","vocab.corrections.empty":"Noch keine Korrekturregeln.","vocab.corrections.invalid":"Unterstützt werden nur wörtliche Ersetzungen oder ein einzelner Zahlenplatzhalter {num}, beispielsweise {num} mahl → {num} mal.","vocab.corrections.tipDisabled":"Klicken, um diese Regel zu deaktivieren","vocab.corrections.tipEnabled":"Klicken, um diese Regel zu aktivieren","vocab.corrections.removeAria":"Korrekturregel entfernen","vocab.corrections.learnedBadge":"auto","vocab.corrections.learnedTip":"Automatisch aus deinen eigenen Änderungen gelernt. Du kannst die Regel jederzeit löschen.","vocab.corrections.onlyLearned":"Nur automatisch gesammelte ({{count}})","vocab.corrections.removeAllLearned":"Alle automatisch gesammelten löschen","vocab.corrections.suggestTitle":"Diese Korrektur merken?","vocab.corrections.suggestAccept":"Merken","vocab.corrections.suggestDismiss":"Nein, danke","vocab.presets.title":"Vorlagen für Anwendungsfälle","vocab.presets.tip":"Wähle mehrere Vorlagen aus, um sie gemeinsam anzuwenden. Vorlagen lassen sich bearbeiten und neu erstellen.","vocab.presets.create":"Neue Vorlage","vocab.presets.apply":"Auswahl anwenden","vocab.presets.save":"Vorlage speichern","vocab.presets.edit":"{{name}} bearbeiten","vocab.presets.newPreset":"Neue Vorlage","vocab.presets.namePlaceholder":"Name der Vorlage","vocab.presets.wordsPlaceholder":"Begriffe (durch Kommas oder Zeilenumbrüche getrennt)","style.kicker":"STIL","style.title":"Ausgabestil","style.desc":"Wähle den Standardstil für Aufnahmeergebnisse.","style.masterToggle":"Hauptschalter","style.currentDefault":"Aktueller Standard","style.ariaSetDefault":"Als Standard festlegen","style.saveFailed":"Speichern fehlgeschlagen: {{error}}","style.customPromptTitle":"Eigener Prompt","style.customPromptPlaceholder":"Optional. Wird an den integrierten System-Prompt dieses Stils angehängt.","style.customPromptHint":"Leer lassen, um das aktuelle Verhalten beizubehalten. Nach dem Speichern gilt der Prompt für die laufende Überarbeitung und das erneute Überarbeiten mit diesem Stil. Speichern ist auch mit Ctrl/Cmd+Enter möglich.","style.customPromptSave":"Prompt speichern","style.customPromptDirty":"Nicht gespeichert","style.systemPromptMovedHint":"Der vollständige System-Prompt wird jetzt unter Einstellungen -> Dienste bearbeitet. Hier legst du nur noch fest, welche Stile aktiv sind und welcher als Standard dient.","style.modes.raw.name":"Rohtext","style.modes.raw.desc":"Ergänzt nur Satzzeichen und natürliche Absätze, ohne den Text umzuschreiben oder zu erweitern.","style.modes.raw.sample":"Behält den gesprochenen Rhythmus bei. Füllwörter wie „äh“ oder „weißt du“ entfallen, die Sätze bleiben erhalten.","style.modes.light.name":"Leicht überarbeiten","style.modes.light.desc":"Entfernt Füllwörter, ergänzt Satzzeichen und formuliert natürlich lesbaren Text.","style.modes.light.sample":"Macht das Transkript flüssiger, ohne einstudiert zu wirken. Dein Ton und deine Ausdrucksweise bleiben erhalten.","style.modes.structured.name":"Strukturiert","style.modes.structured.desc":"Strukturiert Programmierfragen, Fehleranalysen und Produktfeedback mit präziser Fachsprache.","style.modes.structured.sample":"1. Erstes Thema\na. Punkt\nb. Punkt\n2. Zweites Thema\na. Punkt\nb. Punkt","style.modes.formal.name":"Formell","style.modes.formal.desc":"Passend für E-Mails und den Beruf: vollständiger und professioneller formuliert.","style.modes.formal.sample":"Erkennt Begrüßungen und Grußformeln in E-Mails und vermeidet leere Höflichkeitsfloskeln.","style.pack.builtinTags.minimalEdits":"Minimale Änderungen","style.pack.builtinTags.strongCorrection":"Gründliche Korrektur","style.pack.builtinTags.communication":"Kommunikation","style.pack.builtinTags.natural":"Natürlich","style.pack.builtinTags.organized":"Übersichtlich","style.pack.builtinTags.workplaceCommunication":"Berufliche Kommunikation","style.pack.builtinTags.aiCoding":"KI-Programmierung","style.pack.builtinTags.technicalStructure":"Technische Struktur","style.pack.newName":"Unbenannter Stil","style.pack.newDescription":"Beschreibe kurz, wofür sich dieser Stil eignet.","style.pack.uploadIcon":"SVG-Symbol für {{name}} hochladen","style.pack.resetIcon":"Standardsymbol wiederherstellen","style.pack.iconSaved":"Symbol gespeichert","style.pack.iconInvalid":"Wähle ein gültiges SVG-Symbol ohne externe Ressourcen (bis 256 KB).","style.pack.iconSaveFailed":"Das Symbol konnte nicht gespeichert werden. Versuche es erneut.","style.pack.selectionListTitle":"Stile für ausgewählten Text","style.pack.selectionListDesc":"Überarbeitet bereits geschriebenen Text ohne ASR: Grammatik, Klarheit und Formatierung. Wähle dafür einen eigenen Stil und Prompt.","style.pack.dictationTab":"Aufnahme- / ASR-Stile","style.pack.selectionTab":"Auswahl überarbeiten","style.pack.current":"Aktuell","style.pack.useForSelection":"Für Auswahl verwenden","style.pack.writtenPolish":"Geschriebenen Text überarbeiten","style.pack.selectionPromptTitle":"Prompt für Textauswahl (ohne ASR)","style.pack.selectionPromptHint":"Für ausgewählten geschriebenen Text, nicht für ASR-Ausgabe. Behandle ihn nicht als Transkript und beantworte keine darin enthaltenen Fragen.","style.pack.selectionPromptEditorDesc":"Bearbeitet den Prompt für Textauswahl. Die Eingabe ist aktiv ausgewählter geschriebener Text, ohne ASR.","style.pack.dictationPromptEditorDesc":"Bearbeitet den Aufnahme-/ASR-Prompt. Die Eingabe ist das nach dem Diktat erkannte Transkript.","style.pack.dictationPromptTitle":"Aufnahme- / ASR-Prompt","style.pack.dictationPromptHint":"Für ASR-Text nach dem Diktat. Lege hier Regeln für gesprochene Sprache, Erkennungsfehler und die Wiederherstellung von Fachbegriffen fest.","style.pack.selectionPromptFallback":"Noch kein Prompt für geschriebenen Text eingerichtet. Eine sichere Standardeinstellung wird verwendet.","style.pack.selectionActivated":"„{{name}}“ für die Überarbeitung von Textauswahl festgelegt.","style.pack.selectionActivateFailed":"Stil für Textauswahl konnte nicht gewechselt werden: {{err}}","style.pack.selectionChars":"{{count}} Zeichen","style.pack.kicker":"STILPAKETE","style.pack.title":"Stilpakete","style.pack.desc":"Lokale Stilpakete verwalten.","style.pack.marketplaceBtn":"Marktplatz","style.pack.loadFailed":"Stilpakete konnten nicht geladen werden: {{err}}","style.pack.importZip":"ZIP importieren","style.pack.exportZip":"ZIP exportieren","style.pack.exportShort":"Exportieren","style.pack.publishMarketplace":"Auf dem Marktplatz veröffentlichen","style.pack.updateMarketplace":"Marktplatzversion aktualisieren","style.pack.publishDisabledHint":"Melde dich zuerst unter Einstellungen → Marktplatz mit GitHub an","style.pack.publishSuccess":"Veröffentlicht – wartet auf Prüfung im Marktplatz","style.pack.publishFailed":"Veröffentlichen fehlgeschlagen: {{err}}","style.pack.publishBuiltinRejected":"Integrierte Pakete können nicht veröffentlicht werden. Erstelle zuerst über „Bearbeiten“ eine Kopie.","style.pack.builtin":"Integriert","style.pack.imported":"Importiert","style.pack.active":"Aktiv","style.pack.activate":"Aktivieren","style.pack.edit":"Bearbeiten","style.pack.closeEditor":"Schließen","style.pack.unsaved":"Nicht gespeichert","style.pack.listTitle":"Lokale Pakete","style.pack.listDesc":"Pakete ansehen und wechseln.","style.pack.listCount":"Pakete: {{count}}","style.pack.addPackTileTitle":"Neues Paket","style.pack.addPackTileHint":"Mit einer leeren Vorlage beginnen.","style.pack.createSuccess":"Neues Paket erstellt.","style.pack.createFailed":"Paket konnte nicht erstellt werden: {{err}}","style.pack.save":"Speichern","style.pack.revert":"Zurücksetzen","style.pack.saveSuccess":"Stilpaket gespeichert.","style.pack.saveFailed":"Stilpaket konnte nicht gespeichert werden: {{err}}","style.pack.activateSuccess":"„{{name}}“ als aktuelles Paket festgelegt.","style.pack.activateFailed":"Aktuelles Stilpaket konnte nicht festgelegt werden: {{err}}","style.pack.importSuccess":"„{{name}}“ importiert.","style.pack.importFailed":"ZIP-Import fehlgeschlagen: {{err}}","style.pack.exportSuccess":"Nach {{path}} exportiert","style.pack.exportFailed":"ZIP-Export fehlgeschlagen: {{err}}","style.pack.exportDirtyFirst":"Speichere dieses Paket vor dem ZIP-Export.","style.pack.resetBuiltin":"Zurücksetzen","style.pack.resetSuccess":"„{{name}}“ zurückgesetzt.","style.pack.resetFailed":"Paket konnte nicht zurückgesetzt werden: {{err}}","style.pack.deleteImported":"Löschen","style.pack.deleteConfirm":"„{{name}}“ löschen? Dies kann nicht rückgängig gemacht werden.","style.pack.deleteSuccess":"„{{name}}“ gelöscht.","style.pack.deleteFailed":"Paket konnte nicht gelöscht werden: {{err}}","style.pack.summaryCurrentEmpty":"Noch kein Paket ausgewählt","style.pack.editorTitle":"Paket bearbeiten","style.pack.editorDesc":"Dieses Paket bearbeiten.","style.pack.metaTitle":"Installationsinformationen","style.pack.metaSource":"Quelle","style.pack.metaBaseMode":"Basismodus","style.pack.metaUpdatedAt":"Aktualisiert","style.pack.fieldName":"Name","style.pack.fieldAuthor":"Autor","style.pack.fieldAuthorPlaceholder":"Optionale Quellenangabe","style.pack.fieldVersion":"Version","style.pack.fieldTags":"Schlagwörter","style.pack.fieldTagsPlaceholder":"Durch Kommas getrennt, z. B. Community, Kommentar, formell","style.pack.fieldDescription":"Beschreibung","style.pack.fieldModel":"Empfohlenes Modell (Metadaten)","style.pack.fieldModelPlaceholder":"Optional, z. B. gpt-4.1 / deepseek-v3","style.pack.fieldModelHint":"Nur Metadaten. Wechselt nicht das Modell.","style.pack.fieldCompatibility":"Kompatible App-Version","style.pack.fieldCompatibilityPlaceholder":"Optional, z. B. >=1.3.0","style.pack.fullPromptTitle":"System-Prompt","style.pack.fullPromptHint":"Der zu diesem Paket gehörende Prompt.","style.pack.promptChars":"{{count}} Zeichen","style.pack.runtimeTitle":"OpenLess-Laufzeitanweisungen","style.pack.runtimeDesc":"Schreibgeschützte Ergänzungen zur Laufzeit.","style.pack.runtimeContextTitle":"Kontextgrundlage","style.pack.runtimeContextDesc":"Aus Sprach- und App-Kontext","style.pack.runtimeContextEmpty":"In der aktuellen Vorschau nicht ergänzt.","style.pack.runtimeHotwordTitle":"Begriffsblock","style.pack.runtimeHotwordDesc":"Aus aktivierten Wörterbucheinträgen","style.pack.runtimeHotwordEmpty":"In der aktuellen Vorschau nicht ergänzt.","style.pack.runtimeHistoryTitle":"Regeln für mehrstufigen Verlauf","style.pack.runtimeHistoryDesc":"Nur bei laufender Überarbeitung über mehrere Gesprächsrunden","style.pack.runtimeHistoryEmpty":"Wird nur ergänzt, wenn vorherige Gesprächsrunden existieren.","style.pack.runtimeActive":"Aktiv","style.pack.runtimeInactive":"Inaktiv","style.pack.runtimePreviewFailed":"Laufzeitvorschau konnte nicht erstellt werden: {{err}}","style.pack.runtimePreviewOmittedFrontApp":"Die Vorschau enthält keinen Namen der aktiven App.","style.pack.examplesTitle":"Beispiele","style.pack.examplesDesc":"Werden mit dem Paket exportiert.","style.pack.addExample":"Beispiel hinzufügen","style.pack.examplesEmpty":"Noch keine Beispiele.","style.pack.exampleTitlePlaceholder":"Titel für Beispiel {{index}}","style.pack.exampleInput":"Eingabe","style.pack.exampleOutput":"Ausgabe","style.pack.examplesCount":"Beispiele: {{count}}","style.pack.discardCloseConfirm":"Ungespeicherte Änderungen verwerfen und den Editor schließen?","style.pack.discardSwitchConfirm":"Ungespeicherte Änderungen verwerfen und zu „{{name}}“ wechseln?","style.pack.derivativeBadge":"Abgeleitet von @{{login}}","translation.searchLanguages":"Sprachen suchen…","translation.noMatchingLanguages":"Keine passenden Sprachen","translation.selectedLanguages":"Ausgewählte Sprachen: {{count}}","translation.languageSupportHint":"Die verfügbaren Erkennungssprachen hängen vom Dienst ab. Übersetzungsziele sind unabhängig von der App-Sprache.","translation.kicker":"ÜBERSETZUNG","translation.title":"Übersetzung","translation.desc":"Aufnahmen vor dem Einfügen automatisch in eine Zielsprache übersetzen.","translation.statusEnabled":"Aktiviert","translation.statusDisabled":"Deaktiviert","translation.working.title":"Arbeitssprachen","translation.working.desc":"Wähle regelmäßig verwendete Sprachen, um Überarbeitung und Übersetzung zu verbessern.","translation.target.title":"Zielsprache der Übersetzung","translation.target.desc":"Drücke während der Aufnahme Shift, um die Übersetzung zu aktivieren. Bei „Deaktiviert“ hat Shift keine Wirkung.","translation.target.disabled":"Deaktiviert (Shift ohne Wirkung)","translation.target.sameAsWorking":"Das Übersetzungsziel entspricht deiner einzigen Arbeitssprache. Shift löst deshalb nur die normale Textüberarbeitung aus. Wähle eine andere Zielsprache oder füge oben eine weitere Arbeitssprache hinzu.","translation.style.title":"Übersetzungsstil","translation.style.desc":"Übernimmt automatisch das aktive Stilpaket von der Seite „Stil“.","translation.style.unavailable":"Nicht verfügbar","translation.save.workingFailed":"Arbeitssprachen konnten nicht gespeichert werden. Versuche es erneut.","translation.save.targetFailed":"Übersetzungsziel konnte nicht gespeichert werden. Versuche es erneut.","translation.save.hotkeyRegisterFailed":"Der Übersetzungskurzbefehl konnte nicht registriert werden. Die Einstellung wurde nicht gespeichert.","translation.save.hotkeySaveFailed":"Übersetzungskurzbefehl konnte nicht gespeichert werden. Versuche es erneut.","translation.howto.title":"So funktioniert es","translation.howto.step1":"Setze den Cursor in ein beliebiges Textfeld.","translation.howto.step2":"Drücke {{trigger}}, um die Aufnahme zu starten.","translation.howto.step3":"Drücke während der Aufnahme einmal {{shortcut}}, um die Übersetzung zu aktivieren.","translation.howto.step4":"Drücke erneut {{trigger}}, um die Aufnahme zu beenden.","translation.howto.step5":"Der übersetzte Text wird an der Cursorposition eingefügt.","translation.howto.indicatorTitle":"So erkennst du den Übersetzungsmodus","translation.howto.indicatorDesc":"Nach dem Drücken von Shift erscheint unten auf dem Bildschirm die blaue Anzeige „Wird übersetzt“.","translation.howto.fallbackTitle":"Verhalten bei Fehlern","translation.howto.fallbackDesc":"Schlägt die Übersetzung fehl, wird stattdessen das ursprüngliche Transkript eingefügt.","selectionAsk.title":"Zum ausgewählten Text fragen","selectionAsk.desc":"Text auswählen und Fragen dazu sprechen, auch mit mehreren Rückfragen.","selectionAsk.shortcutSettings":"Kurzbefehlseinstellungen","selectionAsk.guide.openTitle":"Fenster öffnen","selectionAsk.guide.openDesc":"Drücke {{hotkey}}, um ein Gespräch zu beginnen.","selectionAsk.guide.unsetDesc":"Lege zuerst in den Kurzbefehlseinstellungen einen Kurzbefehl für Fragen zur Textauswahl fest.","selectionAsk.guide.selectTitle":"Text zum Nachfragen auswählen","selectionAsk.guide.askTitle":"Frage sprechen","selectionAsk.guide.askDesc":"Drücke {{recordHotkey}} zum Aufnehmen und erneut zum Senden.","selectionAsk.guide.followup":"Verwende den Aufnahmekurzbefehl erneut, um nachzufragen.","selectionAsk.guide.dismiss":"Fenster schließen und dieses Gespräch beenden","selectionAsk.hotkey.title":"Kurzbefehl zum Öffnen des Fensters","selectionAsk.save.historySaveFailed":"Die Einstellung für den Frageverlauf konnte nicht gespeichert werden. Versuche es erneut.","selectionAsk.history.title":"Verlauf speichern","selectionAsk.history.desc":"Speichert Fragen und Antworten lokal. Standardmäßig deaktiviert.","selectionAsk.howto.title":"So funktioniert es","selectionAsk.howto.step2":"Wähle Text in einer beliebigen App aus.","settings.selectionWorkspace.title":"Assistent für Textauswahl","settings.selectionWorkspace.hint":"Wähle Text aus und verwende einen Kurzbefehl: Ohne Sprachbearbeitung wird der Text direkt überarbeitet. Mit Sprachbearbeitung hältst du die Taste gedrückt und sprichst; danach wählst du „Fragen“ oder „Bearbeiten“.","settings.selectionWorkspace.polishHotkey":"Kurzbefehl für den Auswahlassistenten","settings.selectionWorkspace.polishHotkeyDesc":"Überarbeitet direkt, wenn Sprachbearbeitung aus ist. Andernfalls zum Sprechen gedrückt halten. Für die Aufnahme gelten die globalen Einstellungen.","settings.selectionWorkspace.polishDelivery":"Ergebnis anwenden","settings.selectionWorkspace.voiceDeliveryDesc":"Nach der Sprachbearbeitung: Auswahl direkt ersetzen oder im Fragefenster prüfen und bestätigen.","settings.selectionWorkspace.voiceEnable":"Sprachbearbeitung","settings.selectionWorkspace.voiceEnableDesc":"Verwendet denselben Kurzbefehl wie oben. Die Aufnahme folgt den globalen Einstellungen (aktuell: {{recordingLabel}}).","settings.selectionWorkspace.autoIntent":"Absicht automatisch erkennen","settings.selectionWorkspace.autoIntentDesc":"Das eingerichtete Modell unterscheidet standardmäßig zwischen Fragen und Bearbeitungsaufträgen. Bei Modellfehlern wird anhand von Fragewörtern entschieden.","settings.selectionWorkspace.editKeywords":"Weitere Hinweise auf Fragen","settings.selectionWorkspace.editKeywordsDesc":"Nur bei deaktivierter automatischer Erkennung. Ein Hinweis pro Zeile erzwingt den Fragemodus. Ansonsten wird anhand von „?“ und Fragewörtern entschieden.","settings.selectionPolish.title":"Textauswahl überarbeiten","settings.selectionPolish.hotkey":"Auslösender Kurzbefehl","settings.selectionPolish.hotkeyDesc":"Aufgezeichnete Kurzbefehle gelten sofort. Konflikte mit Aufnahme-, Frage- oder anderen globalen Kurzbefehlen werden abgelehnt.","settings.selectionPolish.delivery":"Ergebnis anwenden","settings.selectionPolish.hint":"Nach dem Auswählen eines Textes auslösen. Benötigt weder Mikrofon noch ASR und verwendet das aktuelle Stilpaket mit dem eigenen Prompt für Textauswahl.","settings.selectionPolish.directReplace":"Direkt ersetzen","settings.selectionPolish.directReplaceHint":"Ersetzt die ursprüngliche Auswahl nach Abschluss des Modells.","settings.selectionPolish.previewConfirm":"Prüfen und bestätigen","settings.selectionPolish.previewConfirmHint":"Prüfe und bearbeite das Ergebnis im Vorschaufenster und bestätige anschließend das Ersetzen.","settings.kicker":"EINSTELLUNGEN","settings.title":"Einstellungen","settings.desc":"Aufnahme, Dienste, Kurzbefehle und Berechtigungen.","settings.network.title":"Netzwerk","settings.network.useSystemProxyLabel":"Systemproxy verwenden","settings.network.useSystemProxyDesc":"Anfragen verwenden den Systemproxy, wenn diese Option aktiv ist. Andernfalls werden alle Anfragen direkt gesendet, was bei inländischen Diensten meist schneller ist. Ausländische Dienste wie GitHub-Anmeldung und Updates können dann fehlschlagen. Echtzeit-Sprachstreams und Less Computer sind davon unabhängig.","settings.dataStorage.title":"Datenspeicherung","settings.dataStorage.desc":"Gesprächsverlauf und Kontext, die auf diesem Gerät gespeichert werden.","settings.dataStorage.cursorContextLabel":"Cursorkontext (experimentell)","settings.dataStorage.cursorContextDesc":"Liest beim Überarbeiten den Text rund um den Cursor im aktuellen Dokument, damit das Modell gleich klingende Wörter, Eigennamen und Pronomen unterscheiden kann. Bei Aktivierung wird dieser Text mit der Anfrage an deinen LLM-Dienst gesendet; andernfalls wird nichts gelesen. Passwortfelder, Secure Input, Passwortmanager und Terminals werden nie gelesen. Nur unter macOS.","settings.codingConsole.title":"Claude-Konsole","settings.codingConsole.desc":"Prüft den lokalen Status von Claude Code und MCP (Computersteuerung). Führt Claude unter festgelegten Einschränkungen ohne eigene Oberfläche aus und zeigt Ausgabe und Kosten laufend an.","settings.codingConsole.guardNote":"Umkehrbare Aktionen sind standardmäßig erlaubt. Riskante Befehle wie rm -rf, sudo oder force push werden blockiert. Ist das Arbeitsverzeichnis ein Git-Repository, wird vor jeder Ausführung eine Sicherung für das Zurücksetzen erstellt.","settings.codingConsole.status":"Status","settings.codingConsole.detect":"Erkennen","settings.codingConsole.detecting":"Wird erkannt…","settings.codingConsole.installed":"Claude erkannt","settings.codingConsole.notInstalled":"claude nicht gefunden","settings.codingConsole.notInstalledHint":"Installiere zuerst Claude Code (siehe docs.anthropic.com/claude-code) oder gib unten den vollständigen Pfad zur ausführbaren Datei ein.","settings.codingConsole.mcpServers":"{{count}} MCP-Server eingerichtet","settings.codingConsole.computerUsePresent":"MCP für Desktopsteuerung (Computer Use) eingerichtet","settings.codingConsole.computerUseAbsent":"Kein MCP für Desktopsteuerung eingerichtet (einfache Aktionen wie Kopieren und Einfügen funktionieren über Bash; MCP ist dafür nicht erforderlich)","settings.codingConsole.exePath":"Ausführbare Datei","settings.codingConsole.workdir":"Arbeitsverzeichnis","settings.codingConsole.workdirDesc":"Optional. Claude arbeitet in diesem Verzeichnis. In einem Git-Repository wird vor der Ausführung eine Sicherung zum Zurücksetzen erstellt.","settings.codingConsole.workdirPlaceholder":"Leer = in einem temporären Verzeichnis ausführen","settings.codingConsole.permissionMode":"Berechtigungsmodus","settings.codingConsole.mode.acceptEdits":"Erlauben (umkehrbar)","settings.codingConsole.mode.plan":"Nur lesen / planen","settings.codingConsole.mode.default":"Standard (jedes Mal fragen)","settings.codingConsole.mode.bypassPermissions":"Alle Prüfungen umgehen (riskant)","settings.codingConsole.promptPlaceholder":"Gib Claude einen Auftrag, z. B. Dateien im aktuellen Verzeichnis auflisten","settings.codingConsole.run":"Ausführen","settings.codingConsole.running":"Wird ausgeführt…","settings.codingConsole.cancel":"Abbrechen","settings.codingConsole.clear":"Leeren","settings.codingConsole.riskWarn":"Riskante Absicht erkannt: {{reason}}. Die Schutzfunktion blockiert riskante Befehle bei der Ausführung.","settings.codingConsole.toolUse":"Werkzeug {{name}}","settings.codingConsole.done":"Fertig","settings.codingConsole.doneCost":"Fertig · Kosten ${{cost}}","settings.codingConsole.cancelled":"Abgebrochen","settings.codingConsole.outputPlaceholder":"Die laufende Ausgabe erscheint hier…","settings.codingAgent.title":"Less Computer","settings.codingAgent.desc":"Halte eine Taste gedrückt und sprich. Der gewählte Agent bedient deinen Computer. Nur unter macOS.","settings.codingAgent.enable":"Less Computer aktivieren","settings.codingAgent.comingSoonNote":"Die Konfiguration wird bereits gespeichert. Kurzbefehl und Ausführungsablauf folgen in einer späteren Version.","settings.codingAgent.hotkeyHint":"Halte nach der Aktivierung den Kurzbefehl zum Sprechen gedrückt. Nach dem Loslassen zeigt der gewählte Agent das Ergebnis in der Kapsel an.","settings.codingAgent.voiceHotkey":"Sprechtaste","settings.codingAgent.voiceHotkeyDesc":"Zum Sprechen gedrückt halten, zum Ausführen loslassen. Unterstützt einzelne Tasten wie Ctrl/Option/Fn. Die Funktionsbeschreibung steht unter „Erweitert“.","settings.codingAgent.provider":"Agent-Backend","settings.codingAgent.opencodeReady":"OpenCode v{{version}} erkannt.","settings.codingAgent.opencodeMissing":"Der Befehl opencode wurde nicht gefunden. Installiere ihn mit npm i -g opencode-ai und melde dich vor der Verwendung mit opencode auth login an.","settings.codingAgent.cliReady":"{{name}} v{{version}} erkannt.","settings.codingAgent.cliMissing":"Der Befehl {{name}} wurde nicht gefunden. Installiere das Programm und melde dich an, oder gib unten bei „Ausführbare Datei“ den absoluten Pfad ein.","settings.codingAgent.sandboxGuardHint":"Dieses Backend bietet nur allgemeine Sandbox-Stufen und keine Liste riskanter Einzelbefehle. Erreicht es eine Grenze, meldet es den Fehler direkt, ohne eine Freigabekarte für den Befehl anzuzeigen.","settings.codingAgent.codexModelHint":"Gib einen Codex-Modellnamen ein (z. B. gpt-5). Leer lassen, um die Einstellung aus ~/.codex/config.toml zu verwenden.","settings.codingAgent.codexBudgetHint":"Codex bietet keine Kostenobergrenze in USD pro Ausführung. Die Gebühren hängen vom eingerichteten Anbieter ab.","settings.codingAgent.codexMode.plan":"Nur lesen / planen","settings.codingAgent.codexMode.workspaceWrite":"Schreiben im Arbeitsbereich erlauben","settings.codingAgent.codexModelPlaceholder":"Leer = Codex-Standard","settings.codingAgent.dshModelHint":"Das Profil von dsh ohne Oberfläche bietet keinen Modellwechsel. Das Modell wird im eigenen dsh-Profil festgelegt und kann hier nicht geändert werden.","settings.codingAgent.panelHotkey":"Fensterkurzbefehl (Sprachagent)","settings.codingAgent.panelHotkeyDesc":"Sprache aufnehmen → ASR → Claude → laufende Ausgabe im Fenster. Standard: Cmd/Ctrl+Shift+Enter.","settings.codingAgent.quickHotkey":"Kurzbefehl für Schnellauftrag","settings.codingAgent.quickHotkeyDesc":"Ausgewählten Text → Claude → Ergebnis an der Cursorposition. Ohne Fenster, für schnellere Abläufe.","settings.codingAgent.model":"Modell","settings.codingAgent.modelPlaceholder":"Standard: sonnet","settings.codingAgent.modelDefault":"Standard (automatisch sonnet)","settings.codingAgent.modelHint":"Haiku = am schnellsten · Sonnet = ausgewogen · Opus = am leistungsfähigsten","settings.codingAgent.opencodeModelDefault":"OpenCode-Standardmodell verwenden","settings.codingAgent.opencodeModelHint":"Ruft automatisch die verfügbaren Anbieter und Modelle des aktuellen OpenCode-Kontos ab und speichert deine Auswahl sofort.","settings.codingAgent.opencodeModelsRefresh":"Modelle aktualisieren","settings.codingAgent.opencodeModelsRefreshing":"OpenCode-Modelle werden abgerufen…","settings.codingAgent.opencodeModelsLoaded":"Abgerufene Modelle: {{count}}.","settings.codingAgent.opencodeModelsEmpty":"Es wurden keine Modelle zurückgegeben. Melde dich zuerst bei OpenCode an oder richte einen Modellanbieter ein.","settings.codingAgent.opencodeModelsError":"Modelle konnten nicht abgerufen werden: {{message}}","settings.codingAgent.exe":"Pfad zur ausführbaren Datei","settings.codingAgent.openPanel":"Texttest","settings.codingAgent.openPanelHint":"Öffne das Less Computer-Fenster und prüfe den aktuellen Agenten und das Modell mit einer Texteingabe.","settings.codingAgent.openPanelAction":"Less Computer öffnen","settings.debug.cursorLabel":"Cursor","settings.debug.title":"Diagnosewerkzeuge","settings.debug.desc":"Zur Untersuchung von Erkennungsproblemen. Standardmäßig deaktiviert.","settings.debug.cursorProbeLabel":"Cursorkontext prüfen","settings.debug.cursorProbeDesc":"Klicke hier, wechsle dann zur Ziel-App und klicke vor Ablauf des Countdowns in ein Textfeld. Die Prüfung liest den Text rund um den Cursor. So erkennst du, welche Apps lesbar sind und welche die Schutzfunktion blockiert. Einmaliger Lesezugriff, ohne Übertragung an einen Anbieter.","settings.debug.cursorProbeBtn":"Prüfen (in 5s)","settings.debug.cursorProbeCountdown":"Lesen in {{n}}s…","settings.marketplace.title":"Marktplatz","settings.marketplace.desc":"Veröffentlichungsprofil für den Stilmarktplatz. Stile kannst du auf der Seite „Stile“ ansehen und installieren.","settings.marketplace.github.signIn":"Mit GitHub anmelden","settings.marketplace.github.signedIn":"Mit GitHub angemeldet","settings.marketplace.github.signedOut":"Melde dich an, um Stile hochzuladen und Pakete mit „Gefällt mir“ zu markieren.","settings.marketplace.github.signOut":"Abmelden","settings.marketplace.github.starting":"Anmeldung wird gestartet…","settings.marketplace.github.codeHint":"Gib diesen Code auf der gerade geöffneten GitHub-Seite ein:","settings.marketplace.github.openGithub":"GitHub öffnen","settings.marketplace.github.waiting":"GitHub geöffnet – nach deiner Freigabe wirst du angemeldet…","settings.marketplace.github.failed":"Anmeldung fehlgeschlagen. Versuche es erneut","settings.recording.title":"Aufnahme und Eingabe","settings.recording.desc":"Globaler Aufnahmekurzbefehl und Auslösemodus.","settings.recording.hotkeyLabel":"Aufnahmekurzbefehl","settings.recording.hotkeyDescAcc":"Drücken, um überall Sprache aufzunehmen (Berechtigung für Bedienungshilfen erforderlich).","settings.recording.hotkeyDescNoAcc":"Drücken, um überall Sprache aufzunehmen.","settings.recording.modeLabel":"Auslösemodus","settings.recording.modeDesc":"Umschalten = einmal drücken zum Starten, erneut drücken zum Beenden. Gedrückt halten = aufnehmen, solange die Taste gehalten wird.","settings.recording.modeToggle":"Umschalten","settings.recording.modeHold":"Gedrückt halten","settings.recording.modeAuto":"Automatisch","settings.recording.silenceAutoStopLabel":"Bei Stille automatisch beenden","settings.recording.silenceAutoStopDesc":"Nur im Umschaltmodus. Nach erkannter Sprache wird die Aufnahme automatisch beendet und gesendet, sobald die gewählte Dauer ohne Sprache verstrichen ist. Standardmäßig aus. Erneuter Tastendruck und Esc funktionieren weiterhin.","settings.recording.silenceAutoStopSecondsLabel":"Dauer der Stille","settings.recording.silenceAutoStopSecondsValue":"{{value}}s","settings.recording.migrationNoticeTitle":"Standard-Aufnahmemodus ist jetzt „Umschalten“","settings.recording.migrationNoticeDesc":"Dieses Update ändert die Standardeinstellung. Falls du lieber die Taste gedrückt hältst, kannst du hier zurückwechseln.","settings.recording.microphoneLabel":"Bevorzugtes Mikrofon","settings.recording.microphoneDesc":"Wähle das bevorzugte Eingabegerät. Ist es nicht verfügbar, wird der Systemstandard verwendet.","settings.recording.microphoneDefault":"Standardmikrofon des Systems","settings.recording.microphoneDefaultDesc":"Standardeingabegerät des Systems verwenden","settings.recording.microphoneSystemDefault":"Systemstandard","settings.recording.microphoneUnavailable":"nicht verfügbar","settings.recording.microphoneLoadError":"Mikrofone konnten nicht geladen werden: {{message}}","settings.recording.microphoneDialogTitle":"Mikrofon","settings.recording.microphoneDialogDesc":"Wähle ein Mikrofon, das deine Stimme aufnehmen kann.","settings.recording.microphoneMonitorError":"Eingangspegel konnte nicht überwacht werden: {{message}}","settings.recording.capsuleLabel":"Aufnahmekapsel","settings.recording.capsuleDesc":"Zeigt während der Aufnahme eine halbtransparente Kapsel am unteren Bildschirmrand.","settings.recording.capsuleStyleTypeless":"Kompakter Typeless-Stil","settings.recording.capsuleStyleLabel":"Kapselstil","settings.recording.capsuleStyleSiri":"Schimmernder Siri-Stil","settings.recording.capsuleStyleClassic":"OpenLess-Standardstil","settings.recording.muteDuringRecordingLabel":"Während der Aufnahme stummschalten","settings.recording.muteDuringRecordingDesc":"Schaltet die Systemausgabe während der Spracheingabe vorübergehend stumm, um Lautsprecherechos zu vermeiden.","settings.recording.audioCueLabel":"Ton bei Aufnahmestart","settings.recording.audioCueDesc":"Spielt einen kurzen synthetischen Ton ab, wenn du die Aufnahme per Kurzbefehl startest. Auch bei ausgeblendeter Kapsel.","settings.recording.audioCuePreview":"Anhören","settings.recording.insertGroupTitle":"Einfügen und Zwischenablage","settings.recording.restoreClipboardLabel":"Zwischenablage nach dem Einfügen wiederherstellen","settings.recording.restoreClipboardDesc":"Stellt die ursprüngliche Zwischenablage nach erfolgreichem Einfügen wieder her (nur Windows / Linux).","settings.recording.pasteShortcutLabel":"Simulierter Einfügekurzbefehl","settings.recording.pasteShortcutDesc":"Tastenkombination zum Einfügen. Einige Terminals benötigen Ctrl+Shift+V (nur Windows / Linux).","settings.recording.pasteShortcutCtrlV":"Ctrl+V (Standard / die meisten Apps)","settings.recording.pasteShortcutCtrlShiftV":"Ctrl+Shift+V (kitty / alacritty / wezterm / die meisten Terminals)","settings.recording.pasteShortcutShiftInsert":"Shift+Insert (xterm / urxvt)","settings.recording.comboRecordLabel":"Kurzbefehl aufzeichnen","settings.recording.comboRecordDesc":"Klicke hier und drücke die gewünschte Tastenkombination (z. B. ⌘⇧D). Unterstützt die Modi „Umschalten“ und „Gedrückt halten“.","settings.recording.comboRecordBtn":"Kurzbefehl aufzeichnen","settings.recording.comboResetBtn":"Zurücksetzen","settings.recording.comboMenuToggle":"Weitere Optionen","settings.recording.comboDisableHint":"Der zentrale Kurzbefehl kann nicht deaktiviert werden – für Aufnahmen wird ein Kurzbefehl benötigt","settings.recording.comboRecordHint":"Drücke deine Tastenkombination…","settings.recording.comboNeedKey":"Verwende eine Tastenkombination (z. B. ⌘⇧J). Eine einzelne Modifikatortaste reicht nicht aus","settings.recording.comboRecorded":"Aufgezeichnet","settings.recording.comboClear":"Leeren","settings.recording.comboConflict":"Diese Tastenkombination ist nicht verfügbar","settings.recording.allowNonTsfFallbackLabel":"Alternative ohne TSF erlauben","settings.recording.allowNonTsfFallbackDesc":"Windows: Falls das Einfügen über TSF fehlschlägt, wird Unicode-Text dosiert über SendInput eingegeben. Schlägt auch das fehl, wird der Text in die Zwischenablage kopiert.","settings.recording.windowsInsertionModeLabel":"Einfügemethode unter Windows","settings.recording.windowsInsertionModeDesc":"Legt fest, wie Diktatergebnisse an der Cursorposition eingefügt werden. Einfügen über die Zwischenablage nutzt den obigen Kurzbefehl und erhält Zeilenumbrüche.","settings.recording.windowsInsertionModeTsf":"TSF-Eingabemethode (Standard)","settings.recording.windowsInsertionModeSendInput":"SendInput-Tastensimulation","settings.recording.windowsInsertionModePaste":"Über Zwischenablage einfügen (Ctrl+V usw.)","settings.recording.macosNewlineModeLabel":"Zeilenumbrüche","settings.recording.macosNewlineModeDesc":"„Automatisch“ verwendet Line Feed (U+000A / Ctrl+J) in bekannten Terminal-Apps und sonst Shift+Return. Ein einzelnes Return sendet die Nachricht.","settings.recording.macosNewlineModeAuto":"Automatisch (Line Feed in Terminals)","settings.recording.macosNewlineModeShiftReturn":"Shift+Return (Zeilenumbruch im Chat)","settings.recording.macosNewlineModeLineFeed":"Line Feed (Terminal-CLI / Ctrl+J)","settings.recording.macosNewlineModeReturn":"Return (auf mehrere Nachrichten aufteilen)","settings.recording.windowsSendInputNewlineModeLabel":"Zeilenumbrüche mit SendInput","settings.recording.windowsSendInputNewlineModeDesc":"Legt fest, welche Tasten SendInput für Zeilenumbrüche simuliert. Nutze Shift+Enter für Chatfelder und Enter für Notepad / VS Code und die meisten Editoren.","settings.recording.windowsSendInputNewlineModeEnter":"Enter (die meisten Editoren)","settings.recording.windowsSendInputNewlineModeShiftEnter":"Shift+Enter (Chateingabefelder)","settings.recording.windowsSendInputNewlineModeCrLf":"CR+LF Unicode","settings.recording.windowsShowOpenlessInKeyboardListLabel":"OpenLess in der Tastaturliste anzeigen","settings.recording.windowsShowOpenlessInKeyboardListDesc":"Wenn deaktiviert, wechselt Win+Space nicht zu OpenLess. SendInput und Einfügen über die Zwischenablage funktionieren weiterhin. Aktiviere die Option erneut, um den Eintrag wiederherzustellen.","settings.recording.windowsShowOpenlessInKeyboardListError":"Die Tastaturliste konnte nicht aktualisiert werden: Das System hat die Änderung des OpenLess-Sprachprofils abgelehnt.","settings.recording.historyGroupTitle":"Verlauf und Kontext","settings.recording.historyRetentionLabel":"Verlauf aufbewahren (Tage)","settings.recording.historyRetentionDesc":"Ältere Einträge werden beim Speichern neuer Einträge entfernt. 0 = keine zeitabhängige Bereinigung.","settings.recording.historyMaxEntriesLabel":"Maximale Verlaufseinträge","settings.recording.historyMaxEntriesDesc":"Maximal lokal gespeicherte Sitzungen. Leer = 200. Bereich: 5–200.","settings.recording.polishContextWindowLabel":"Kontextfenster für Überarbeitung (Minuten)","settings.recording.polishContextWindowDesc":"Verwendet überarbeitete Transkripte der letzten N Minuten als Gesprächskontext. 0 = deaktiviert.","settings.recording.recordAudioForDebugLabel":"Rohaufnahmen behalten (Diagnose)","settings.recording.recordAudioForDebugDesc":"Speichert das rohe Mikrofonaudio als WAV, um Erkennungsprobleme zu untersuchen.","settings.recording.audioRecordingMaxEntriesLabel":"Maximale Rohaufnahmen","settings.recording.audioRecordingMaxEntriesDesc":"Maximale Anzahl lokal gespeicherter WAV-Dateien. Leer = 200.","settings.recording.startupGroupTitle":"Startverhalten","settings.recording.startMinimizedLabel":"Minimiert starten (ohne Hauptfenster)","settings.recording.startMinimizedDesc":"Zeigt bei keinem Startweg das Hauptfenster an. Nur Menüleiste / Infobereich.","settings.recording.autoUpdateCheckLabel":"Automatisch nach Updates suchen","settings.recording.autoUpdateCheckDesc":"Sucht beim Start und alle 60 Minuten nach Updates.","settings.recording.marketplaceGroupTitle":"Stilpaket-Marktplatz","settings.recording.marketplaceBaseUrlLabel":"Backend-URL","settings.recording.marketplaceBaseUrlDesc":"URL des Marktplatz-Backends. Leer lassen, um den Standard zu verwenden.","settings.recording.marketplaceDevLoginLabel":"GitHub-Anmeldename (Veröffentlichungsprofil)","settings.recording.marketplaceDevLoginDesc":"Identifiziert die hochladende Person. Leer lassen, um Hochladen und „Gefällt mir“ zu deaktivieren.","settings.recording.startupAtBoot":"Bei Anmeldung starten","settings.recording.startupAtBootDesc":"Startet OpenLess automatisch, wenn du dich anmeldest.","settings.recording.startupAtBootError":"Start bei Anmeldung konnte nicht geändert werden: {{message}}","settings.channels.backToList":"Zurück zu den Kanälen","settings.channels.done":"Fertig","settings.channels.llmTitle":"Kanäle für Textverarbeitung","settings.channels.asrTitle":"Kanäle für Spracherkennung","settings.channels.current":"Aktuell verwendet","settings.channels.enabled":"Aktiviert","settings.channels.disabled":"Deaktiviert","settings.channels.enabledFor":"{{name}} aktivieren","settings.channels.modelNotSet":"Kein Modell ausdrücklich festgelegt","settings.channels.localModelManaged":"Das Modell wird vom System oder unter „Lokale Modelle“ verwaltet","settings.channels.lastCheck":"Letzte Prüfung","settings.channels.verifying":"Wird geprüft…","settings.channels.notVerified":"Noch nicht geprüft","settings.channels.passed":"Prüfung bestanden","settings.channels.failed":"Prüfung fehlgeschlagen · {{reason}}","settings.channels.elapsed":"Dauer: {{ms}} ms","settings.channels.staleResult":"Das Ergebnis ist älter als 24 Stunden","settings.channels.connectionTitle":"Dienstverbindung","settings.channels.modelTitle":"Modelleinstellungen","settings.channels.modelHint":"Gib einen Modellnamen direkt ein oder rufe die Modelle des Anbieters ab und wähle eines aus.","settings.channels.availableModels":"Verfügbare Modelle","settings.channels.validationTitle":"Verbindungsprüfung","settings.channels.validationHint":"Sendet manuell eine echte Anfrage, um diese Konfiguration zu prüfen. Dabei kann Dienstguthaben verbraucht werden. Das Speichern der Einstellungen führt keine Prüfung aus.","settings.channels.autoSaveHint":"Änderungen werden automatisch gespeichert. Anschließend kannst du die Verbindung manuell prüfen.","settings.channels.nameHint":"Dieser Name unterscheidet Kanäle desselben Anbieters. Er beeinflusst weder Modell noch Verbindung.","settings.channels.errModel":"Modell","settings.channels.verify":"Prüfen","settings.channels.verifyHint":"Prüft diesen Kanal mit einem echten API-Aufruf auf aktuelle Funktionsfähigkeit","settings.channels.errTimeout":"Zeitüberschreitung","settings.channels.errNetwork":"Netzwerk","settings.channels.errEndpoint":"Endpunkt","settings.channels.errGeneric":"fehlgeschlagen","settings.channels.dragHint":"Zum Ändern der Priorität ziehen","settings.channels.orderHint":"Anfragen nutzen den ersten aktivierten Kanal. Ziehen ändert die Reihenfolge; deaktivierte Kanäle werden nach unten verschoben.","settings.channels.empty":"Noch keine Kanäle. Verbinde deinen ersten Dienst über „Kanal hinzufügen“.","settings.channels.add":"Kanal hinzufügen","settings.channels.edit":"Bearbeiten","settings.channels.createTitle":"Kanal hinzufügen","settings.channels.editTitle":"Kanal bearbeiten","settings.channels.providerLabel":"Anbieter","settings.channels.nameLabel":"Kanalname (optional)","settings.channels.namePlaceholder":"z. B. SiliconFlow – Hauptschlüssel","settings.channels.create":"Erstellen","settings.channels.delete":"Kanal löschen","settings.channels.deleteConfirm":"Beim Löschen werden auch die für diesen Kanal gespeicherten Schlüssel entfernt.","settings.channels.confirmDelete":"Löschen","settings.channels.justNow":"gerade eben","settings.channels.minutesAgo":"vor {{count}} Min.","settings.channels.hoursAgo":"vor {{count}} Std.","settings.channels.daysAgo":"vor {{count}} Tagen","settings.channels.localEngineModelHint":"Lokale Modelle lassen sich unter KI-Dienste und Modelle → Lokale Modelle herunterladen und wechseln.","settings.providers.localEngineNoCredentials":"Lokale Engines benötigen weder API-Schlüssel noch Endpunkt.","settings.providers.localModelLabel":"Lokales Modell","settings.providers.localModelEmpty":"Noch kein lokales Modell heruntergeladen","settings.providers.appleSpeechLocalNote":"Apple Speech verwendet die integrierte System-Engine. Eine Modellauswahl ist nicht erforderlich.","settings.providers.localEngineNote":"Heruntergeladene lokale Modelle können oben direkt gewählt werden. Weitere Modelle findest du unter „Lokale Modelle“.","settings.providers.localTag":"Lokal","settings.providers.llmTitle":"LLM (Textüberarbeitung)","settings.providers.llmDesc":"OpenAI-kompatibles Protokoll mit Unterstützung für mehrere Anbieter.","settings.providers.providerLabel":"Anbieter","settings.providers.llmProviderDesc":"Die Auswahl einer Vorlage trägt automatisch die Standard-Basis-URL ein.","settings.providers.credentialStorageNotice":"Zugangsdaten werden im geschützten Zugangsspeicher des Betriebssystems gespeichert.","settings.providers.codexOAuthNotice":"Codex OAuth nutzt die lokale Codex-Anmeldung (~/.codex/auth.json). OpenLess speichert dafür weder API-Schlüssel noch Basis-URL.","settings.providers.asrProviderDesc":"Beim Anbieterwechsel werden automatisch die zugehörigen Zugangsdaten geladen.","settings.providers.asrTitle":"ASR (Transkription)","settings.providers.asrDesc":"Wandelt aufgenommene Sprache in Text um.","settings.providers.omniTitle":"Multimodales Modell","settings.providers.omniDesc":"Ein Modell erzeugt direkt aus Audio und Prompt den fertigen Text (experimenteller Ablauf).","settings.providers.pipelineModeLabel":"Verarbeitungsmodus","settings.providers.pipelineModeHint":"Klassisch = ASR + LLM in zwei Schritten. Multimodal = ein audiotaugliches Modell in einem Durchgang.","settings.providers.pipelineModeTraditional":"Klassisch","settings.providers.pipelineModeMultimodal":"Multimodal","settings.providers.pipelineIsolationNotice":"Die beiden Modi speichern ihre Zugangsdaten vollständig getrennt. Beim Wechsel bleiben die Daten des anderen Modus gespeichert und werden beim Zurückwechseln wieder verwendet.","settings.providers.presets.opencode":"OpenCode Zen","settings.providers.presets.tencentTokenHub":"Tencent Cloud TokenHub","settings.providers.presets.customChatCompletions":"Benutzerdefiniert · Chat Completions","settings.providers.presets.customResponses":"Benutzerdefiniert · Responses","settings.providers.presets.customMessages":"Benutzerdefiniert · Messages","settings.providers.presets.ark":"ARK (Volcengine Ark)","settings.providers.presets.deepseek":"DeepSeek","settings.providers.presets.siliconflow":"SiliconFlow","settings.providers.presets.atlascloud":"Atlas Cloud","settings.providers.presets.openai":"OpenAI","settings.providers.presets.gemini":"Google Gemini","settings.providers.presets.codexOAuth":"Codex OAuth","settings.providers.presets.mimo":"Xiaomi MiMo","settings.providers.presets.cometapi":"CometAPI","settings.providers.presets.openrouterFree":"OpenRouter (kostenlose Modelle)","settings.providers.presets.orcarouter":"OrcaRouter","settings.providers.presets.alibabaCoding":"Alibaba Cloud Coding Plan","settings.providers.presets.codingPlanX":"CodingPlanX","settings.providers.presets.minimax":"MiniMax (M3)","settings.providers.presets.stepfun":"StepFun","settings.providers.presets.custom":"Benutzerdefiniert","settings.providers.presets.asrVolcengine":"Volcengine bigasr","settings.providers.presets.asrTencentCloud":"Tencent Cloud Hunyuan Echtzeit-ASR","settings.providers.presets.asrBailian":"Alibaba Bailian Echtzeit-ASR","settings.providers.presets.asrBailianQwen3":"Bailian Qwen3 Realtime ASR","settings.providers.presets.asrBailianFunAsrFlash":"Bailian Fun-ASR-Flash (Aufnahmedatei)","settings.providers.presets.asrSiliconflow":"SiliconFlow SenseVoice","settings.providers.presets.asrStepfun":"StepFun StepAudio ASR","settings.providers.presets.asrZhipu":"Zhipu GLM-ASR","settings.providers.presets.asrGroq":"Groq Whisper-large-v3","settings.providers.presets.asrWhisper":"OpenAI Whisper (kompatibel)","settings.providers.presets.asrOpenrouter":"OpenRouter Whisper","settings.providers.presets.asrZenmux":"ZenMux","settings.providers.presets.asrOpenAiCompatible":"Eigener OpenAI-kompatibler Dienst","settings.providers.presets.asrXiaomiMimo":"Xiaomi MiMo ASR","settings.providers.presets.asrIflytek":"iFlytek Echtzeit-ASR","settings.providers.presets.asrElevenLabs":"ElevenLabs Scribe","settings.providers.presets.asrSherpaOnnxLocal":"Lokales sherpa-onnx (experimentell)","settings.providers.presets.asrFoundryLocalWhisper":"Lokales Whisper (Foundry Local)","settings.providers.presets.asrLocalWhisper":"Lokales Whisper (Stapelverarbeitung)","settings.providers.presets.asrLocalQwen3":"Lokales Qwen3-ASR","settings.providers.presets.asrLocalQwen3Mlx":"Lokales Qwen3-ASR (MLX / Metal)","settings.providers.presets.asrLocalQwen3C":"Lokales Qwen3-ASR (C / CPU)","settings.providers.presets.asrAppleSpeech":"Apple Speech (macOS)","settings.providers.presets.omniOpenai":"OpenAI (mit Audiounterstützung)","settings.providers.presets.omniGemini":"Google Gemini","settings.providers.presets.omniDashscope":"Alibaba DashScope Omni","settings.providers.elevenLabsUploadNotice":"ElevenLabs lädt die Audioaufnahme zur Stapeltranskription an den eingerichteten Endpunkt hoch.","settings.providers.zenmuxVocabularyNote":"ZenMux verwendet ein JSON-Transkriptionsprotokoll und erhält keine Wörterbuchbegriffe (prompt/hotwords). Das Wörterbuch wird weiterhin bei der Überarbeitung verwendet, beeinflusst aber nicht die Spracherkennung.","settings.providers.asrAdvancedNote":"Die folgenden erweiterten Optionen gelten nur für die Vorlagen „Eigener OpenAI-kompatibler Dienst“ und „ZenMux“. Andere Anbietervorlagen behalten ihr integriertes Verhalten.","settings.providers.asrAdvancedVerboseJsonLabel":"Abschnittsmetriken (verbose_json)","settings.providers.asrAdvancedVerboseJsonHint":"Fordert Abschnittsmetriken zur Filterung erfundener Inhalte an, sofern der Server dies unterstützt. Für selbst betriebene Server ohne diese Funktion deaktiviert lassen.","settings.providers.asrAdvancedChunkLabel":"Abschnittsdauer (ms)","settings.providers.asrAdvancedChunkHint":"0 = keine Aufteilung; die gesamte Aufnahme wird auf einmal gesendet. Aufgeteilte Anfragen eignen sich für lange Aufnahmen oder Server mit Zeitlimits pro Anfrage.","settings.providers.asrAdvancedEnableItnLabel":"Zahlennormalisierung (enable_itn)","settings.providers.asrAdvancedEnableItnHint":"Wandelt gesprochene Zahlen und Einheiten in Ziffern um, z. B. „zweitausendsechsundzwanzig“ → „2026“. Deaktivieren, um den Rohtext zu behalten.","settings.providers.volcengineAppKeyLabel":"APP ID","settings.providers.volcengineAccessKeyLabel":"Access Token","settings.providers.volcengineApiKeyLabel":"API-Schlüssel","settings.providers.volcengineResourceIdLabel":"Ressourcen-ID","settings.providers.volcengineAuthModeLabel":"Anmeldemethode","settings.providers.volcengineAuthModeAppIdToken":"Bisherige App-Anmeldung (APP ID + Access Token)","settings.providers.volcengineAuthModeApiKey":"API-Schlüssel (neue Konsole)","settings.providers.volcengineMappingNote":"Ein Secret Key wird derzeit nicht benötigt. Standard-Ressourcen-ID: volc.seedasr.sauc.duration.","settings.providers.volcengineApiKeyNote":"Verwendet einen API-Schlüssel aus der neuen Sprachkonsole. Eine APP ID ist nicht erforderlich. Erstelle ihn in der API-Schlüsselverwaltung: console.volcengine.com/speech/new/setting/apikeys. Standard-Ressourcen-ID: volc.seedasr.sauc.duration.","settings.providers.xfyunAppIdLabel":"AppID","settings.providers.xfyunApiKeyLabel":"API-Schlüssel","settings.providers.xfyunNote":"AppID und API-Schlüssel findest du auf der Dienstseite „Realtime ASR“ der iFlytek Open Platform. Audioformat: 16 kHz / 16 Bit / Mono-PCM. Die Standard-API hat keinen Begriffsparameter; persönliche Begriffe werden in der iFlytek-Konsole eingerichtet. Standardsprache ist Mandarin-Chinesisch.","settings.providers.tencentCloudAppIdLabel":"Tencent Cloud AppID","settings.providers.tencentCloudSecretIdLabel":"SecretID","settings.providers.tencentCloudSecretKeyLabel":"SecretKey","settings.providers.tencentCloudNote":"Verwendet die Zugangsdaten der Tencent-Cloud-Spracherkennung. Das Standardmodell Hy-ASR-3.0-preview unterstützt Chinesisch, Englisch und 20 Dialekte; Preview nimmt nur Mono-PCM mit 16 kHz bis 60 Sekunden an und unterstützt noch keinen Kontext oder Hotword-Boosting.","settings.providers.tencentTokenHubNote":"Es werden nur aktuell verfügbare Sprachmodelle angezeigt. Einige Modelle nutzen immer Reasoning; das Ausschalten von Reasoning behält das feste Verhalten des jeweiligen Modells bei.","settings.providers.localAsrActiveNotice":"Lokale ASR ({{name}}) ist aktuell aktiv. Wechsle oder deaktiviere sie unter „Erweitert“.","settings.providers.localAsrTakeoverHint":"Sobald „{{name}}“ aktiviert ist, übernimmt dieses Modell die Spracherkennung.","settings.providers.asrProviderTakenOver":"Eine lokale Engine ist aktiv. Wähle oben einen anderen Anbieter, um zu wechseln; die lokale Engine stoppt automatisch. Lokale Modelle verwaltest du unter Dienste → Lokale Modelle.","settings.providers.localAsrHint":"Läuft auf diesem Computer und benötigt keinen API-Schlüssel. Lade das Modell von HuggingFace herunter.","settings.providers.foundryLocalAsrHint":"Läuft auf diesem Gerät und benötigt keinen ASR-API-Schlüssel. Bei der ersten Verwendung werden Laufzeitkomponenten und Modell heruntergeladen.","settings.providers.localAsrPerformanceWarning":"Lokale Inferenz ist langsamer als Cloud-ASR und kann Chinesisch weniger genau erkennen. Besonders geeignet für Offline-Nutzung oder sensible Daten.","settings.providers.localAsrReady":"{{model}} heruntergeladen","settings.providers.localAsrNotReady":"{{model}} nicht heruntergeladen","settings.providers.localAsrGoDownload":"Zum Herunterladen die Modellseite öffnen","settings.providers.localAsrManage":"Modellseite öffnen","settings.providers.localAsrDownloadedTitle":"Heruntergeladene Modelle","settings.providers.localAsrDelete":"Löschen","settings.providers.fillDefault":"Standardwert eintragen","settings.providers.readFailed":"Lesen fehlgeschlagen","settings.providers.apiKeyLabel":"API-Schlüssel","settings.providers.baseUrlLabel":"Basis-URL","settings.providers.modelLabel":"Modell","settings.providers.customModelLabel":"Eigenes Modell…","settings.providers.presetListLabel":"Zurück zu den Vorlagen","settings.providers.temperatureLabel":"Temperatur","settings.providers.temperaturePlaceholder":"Leer = nicht senden; Bereich 0–2 einschließlich, z. B. 0.3","settings.providers.extraHeadersLabel":"Zusätzliche Header","settings.providers.extraHeadersPlaceholder":"{\"custom-head\":\"...\"}","settings.providers.thinkingModeLabel":"Denkmodus","settings.providers.thinkingModeOn":"Ein","settings.providers.thinkingModeOff":"Aus","settings.providers.requestFormatLabel":"Anfrageformat","settings.providers.messagesThinkingLabel":"Denkmodus","settings.providers.thinkingAdaptive":"Adaptiv","settings.providers.thinkingBudget":"Festes Budget","settings.providers.maxTokensLabel":"Maximale Ausgabetokens","settings.providers.thinkingBudgetLabel":"Tokenbudget für das Denken","settings.providers.responsesThinkingHint":"Bei einigen Modellen lässt sich das Denken nur reduzieren, nicht abschalten. Anfragen mit Denken senden keinen Temperaturparameter.","settings.providers.messagesThinkingHint":"Ältere Modelle oder kompatible Gateways benötigen möglicherweise ein festes Budget unterhalb der Ausgabegrenze. Anfragen mit Denken senden keinen Temperaturparameter.","settings.providers.llmRequestFormatInvalid":"Ungültiges Anfrageformat. Wähle ein unterstütztes Format.","settings.providers.llmThinkingModeInvalid":"Ungültiger Denkmodus. Wähle einen unterstützten Modus.","settings.providers.llmTokenLimitInvalid":"Tokenlimits müssen positive ganze Zahlen sein.","settings.providers.llmThinkingBudgetInvalid":"Das Denkbudget muss mindestens 1024 betragen und im festen Modus unter der Ausgabegrenze liegen.","settings.providers.llmResponseIncomplete":"Die Antwort ist unvollständig oder hat die Ausgabegrenze erreicht. Bereits ausgegebener Text bleibt erhalten.","settings.providers.llmProtocolHeaderConflict":"Messages setzt die Authentifizierungs- und Versionsheader automatisch. Entferne x-api-key und anthropic-version aus den zusätzlichen Headern.","settings.providers.llmStreamError":"Der Server hat einen Streamfehler gemeldet. Prüfe das Modell und die Anfrageparameter.","settings.providers.saveProtocol":"Protokolleinstellungen speichern","settings.providers.thinkingModeHint":"Aktiviere, deaktiviere oder reduziere das Denken mit den vom Anfrageformat und Modell unterstützten Parametern. Dem Prompt werden keine Steueranweisungen hinzugefügt.","settings.providers.bailianVocabularyIdLabel":"Wörterbuch-ID für Begriffe (optional)","settings.providers.bailianVocabularyIdNote":"Wenn du bei DashScope ein Begriffswörterbuch erstellt hast, gib seine vocab-... ID ein. Leer lassen, um keine Begriffe zu übergeben.","settings.providers.bailianModelRealtimeHint":"Echtzeitmodell · transkribiert während des Sprechens.","settings.providers.bailianModelSyncFileHint":"Synchrones Aufnahmemodell · transkribiert nach dem Beenden (einzelne Aufnahme ≤ 5 Min.).","settings.providers.bailianModelAsyncFileHint":"Asynchrones Dateimodell · lädt die Aufnahme hoch und wartet auf den Transkriptionsauftrag.","settings.providers.appIdLabel":"App-ID","settings.providers.accessKeyLabel":"Access Key","settings.providers.resourceIdLabel":"Ressourcen-ID","settings.providers.toolsLabel":"Verbindungsprüfung","settings.providers.toolsDesc":"Speichere die Felder oben und prüfe anschließend das gewählte Modell oder rufe Modelle ab. Falls das Abrufen fehlschlägt, bleibt die manuelle Eingabe möglich.","settings.providers.validate":"Prüfen","settings.providers.validating":"Wird geprüft…","settings.providers.fetchModels":"Modelle abrufen","settings.providers.loadingModels":"Modelle werden abgerufen…","settings.providers.modelMissing":"Kein Modell eingerichtet. Gib zuerst eine Modell-ID ein.","settings.providers.modelsEmpty":"Die Zugangsdaten sind gültig, aber es wurden keine Modelle zurückgegeben.","settings.providers.modelsLoaded":"Abgerufene Modelle: {{count}}.","settings.providers.searchModels":"Modelle suchen…","settings.providers.noMatchingModels":"Keine passenden Modelle","settings.providers.orcarouterCatalogHint":"Geladen aus OrcaRouter /models. Wähle ein Katalog-Modell; manuelle Modell-IDs sind für diesen Anbieter deaktiviert.","settings.providers.orcarouterAsrCatalogHint":"Geladen aus OrcaRouter /models, begrenzt auf Gemini-Modelle mit Audio-Eingabe. Manuelle Modell-IDs sind deaktiviert.","settings.providers.selectModel":"Wähle ein Modell, um das Feld oben auszufüllen","settings.providers.modelSaved":"Modell {{model}} gespeichert.","settings.providers.validateSuccess":"Verbindungsprüfung bestanden.","settings.providers.validateFailed":"Verbindungsprüfung fehlgeschlagen.","settings.providers.providerHttpStatus":"Der Anbieter hat HTTP {{status}} zurückgegeben. Prüfe die Berechtigungen des API-Schlüssels oder den Endpunkt.","settings.providers.endpointMustUseHttps":"HTTP-Endpunkte sind erlaubt, aber API-Schlüssel und Audioinhalte können bei der Übertragung abgefangen werden.","settings.providers.endpointHttpWarning":"HTTP-Endpunkte sind erlaubt, aber API-Schlüssel und Anfrageinhalte können bei der Übertragung abgefangen werden.","settings.providers.endpointInvalid":"Das Endpunktformat ist ungültig.","settings.providers.bailianEndpointSchemeInvalid":"Bailian Echtzeit-ASR verwendet das DashScope-WebSocket-Gateway. Der Endpunkt muss mit wss:// beginnen (Standard: wss://dashscope.aliyuncs.com/api-ws/v1/inference/). Eine https://-URL im Kompatibilitätsmodus funktioniert hier nicht.","settings.providers.qwen3EndpointSchemeInvalid":"Qwen3 Echtzeit-ASR verwendet das DashScope-Realtime-WebSocket-Gateway. Der Endpunkt muss mit wss:// beginnen (Standard: wss://dashscope.aliyuncs.com/api-ws/v1/realtime). Eine https://-URL funktioniert hier nicht.","settings.providers.responseTooLarge":"Die Anbieterantwort ist zu groß, um sie sicher zu prüfen.","settings.providers.asrInvalidJson":"Die ASR-Antwort ist kein gültiges JSON.","settings.providers.asrMissingTextField":"In der ASR-Antwort fehlt das Feld text.","settings.providers.apiKeyMissing":"Der API-Schlüssel ist leer.","settings.providers.endpointMissing":"Der Endpunkt ist leer.","settings.providers.volcengineAppIdMissing":"Die APP ID ist leer.","settings.providers.volcengineAccessTokenMissing":"Der Access Token ist leer.","settings.providers.requestTimeout":"Zeitüberschreitung bei der Anfrage. Versuche es später erneut.","settings.shortcuts.title":"Kurzbefehlseinstellungen","settings.shortcuts.descAcc":"Alle Kurzbefehle gelten global. Unter „Berechtigungen“ muss der Zugriff auf Bedienungshilfen erlaubt sein.","settings.shortcuts.descNoAcc":"Alle Kurzbefehle gelten global. Falls sie nicht reagieren, prüfe ihren Status unter „Berechtigungen“.","settings.shortcuts.startStop":"Aufnahme starten / beenden","settings.shortcuts.cancel":"Aktuelle Aufnahme abbrechen","settings.shortcuts.confirm":"Einfügen über die Kapsel bestätigen","settings.shortcuts.switchStyle":"Zum vorherigen Stil wechseln","settings.shortcuts.openApp":"OpenLess öffnen","settings.shortcuts.stylePackTitle":"Stilkurzbefehle","settings.shortcuts.stylePackDesc":"Weise deinen Lieblingsstilpaketen Kurzbefehle zu, um mit einem Tastendruck zu wechseln. Deaktivierte Pakete werden dabei automatisch wieder aktiviert.","settings.shortcuts.stylePackAdd":"Stilkurzbefehl hinzufügen","settings.shortcuts.stylePackSelect":"Stilpaket wählen","settings.shortcuts.stylePackDisabledSuffix":" (deaktiviert)","settings.shortcuts.stylePackRemove":"Entfernen","settings.shortcuts.agentPolish":"Ausgewählten Text überarbeiten","settings.shortcuts.agentPolishDesc":"Text auswählen → drücken → Claude überarbeitet ihn → Auswahl wird ersetzt.","settings.shortcuts.agentVoice":"Less Computer","settings.shortcuts.agentVoiceDesc":"Eigene Taste gedrückt halten → sprechen → Claude führt den Auftrag aus → Ergebnis erscheint in der Kapsel.","settings.shortcuts.agentVoiceHint":"Lege die Sprechtaste unter Erweitert → Less Computer fest.","settings.shortcuts.agentVoiceTrigger":"Sprechtaste für Less Computer","settings.shortcuts.enable":"Aktivieren","settings.shortcuts.disable":"Deaktivieren","settings.shortcuts.confirmHint":"Klicke auf ✓ in der Kapsel","settings.shortcuts.notSupported":"Noch nicht unterstützt","settings.shortcuts.androidReadOnly":"Globale Kurzbefehle sind auf Android nicht verfügbar. Nutze die Aufnahmetaste auf der Übersichtsseite.","settings.permissions.title":"Berechtigungen","settings.permissions.descAcc":"OpenLess benötigt die folgenden Systemberechtigungen. Beende die App nach der Freigabe vollständig und starte sie erneut, damit Änderungen wirksam werden.","settings.permissions.descNoAcc":"OpenLess benötigt Mikrofonzugriff und prüft anhand des globalen Kurzbefehlstatus, ob der native Hook läuft.","settings.permissions.micLabel":"Mikrofon","settings.permissions.micDesc":"Erfasst deine Spracheingabe.","settings.permissions.accLabel":"Bedienungshilfen","settings.permissions.accDesc":"Erfasst den globalen Kurzbefehl und fügt Transkripte an der Cursorposition ein.","settings.permissions.hotkeyLabel":"Globaler Kurzbefehl","settings.permissions.hotkeyDescWithAdapter":"Aktiver Adapter: {{adapter}}. Prüft, ob die Kurzbefehlüberwachung installiert ist.","settings.permissions.hotkeyDescPlain":"Prüft, ob die Kurzbefehlüberwachung installiert ist.","settings.permissions.networkLabel":"Netzwerk","settings.permissions.networkDesc":"Für Cloud-ASR- und LLM-Anfragen erforderlich. Für rein lokale Nutzung deaktivieren.","settings.permissions.networkOk":"Verfügbar","settings.permissions.networkOffline":"Nicht verfügbar","settings.permissions.checking":"Wird geprüft…","settings.permissions.granted":"Erlaubt","settings.permissions.notApplicable":"Nicht erforderlich","settings.permissions.denied":"Nicht erlaubt","settings.permissions.indeterminate":"Unbestimmt","settings.permissions.micNoDevice":"Kein Mikrofon erkannt","settings.permissions.openSystem":"Systemeinstellungen öffnen","settings.permissions.restart":"Zurücksetzen und neu starten","settings.permissions.grant":"Erlauben","settings.permissions.rerunAndroidSetup":"Einrichtung erneut ausführen","settings.permissions.hotkeyInstalled":"Installiert","settings.permissions.hotkeyStarting":"Wird installiert…","settings.permissions.hotkeyFailed":"Kurzbefehlüberwachung fehlgeschlagen","settings.permissions.windowsImeLabel":"Windows-Eingabemethode","settings.permissions.windowsImeDesc":"Wechselt während Sprachsitzungen vorübergehend zur OpenLess-TSF-Eingabemethode, um Einschränkungen der Zwischenablage zu umgehen.","settings.permissions.windowsImeInstalled":"Installiert","settings.permissions.windowsImeUnavailable":"Nicht verfügbar","settings.permissions.androidImeLabel":"Eingabemethode (IME)","settings.permissions.androidImeSelected":"Ausgewählt","settings.permissions.androidImeEnabled":"Aktiviert","settings.permissions.androidImeDisabled":"Nicht aktiviert","settings.permissions.androidOverlayLabel":"Schwebendes Fenster","settings.permissions.androidAccessibilityLabel":"Bedienungshilfendienst","settings.permissions.androidAccessibilityImpact":"Aktiviere diesen Dienst, um Ergebnisse ohne Tastaturwechsel im aktuellen Eingabefeld auszugeben. Andernfalls werden sie zum manuellen Einfügen in die Zwischenablage kopiert.","settings.permissions.androidAccessibilityGrantedStale":"Erlaubt, nicht verbunden","settings.permissions.androidAccessibilityMessages.not_android":"Der Bedienungshilfenstatus ist nur auf Android verfügbar.","settings.permissions.androidAccessibilityMessages.not_enabled":"Aktiviere OpenLess in den Bedienungshilfeneinstellungen des Systems.","settings.permissions.androidAccessibilityMessages.operational":"Der Bedienungshilfendienst läuft.","settings.permissions.androidAccessibilityMessages.authorized_not_connected":"Bedienungshilfen sind erlaubt, aber nicht verbunden. Aktiviere OpenLess in den Systemeinstellungen erneut.","settings.permissions.androidAccessibilityMessages.status_read_failed":"Der Bedienungshilfenstatus konnte nicht gelesen werden.","settings.permissions.androidShizukuLabel":"Shizuku-Erweiterung","settings.permissions.androidShizukuHint":"Optional. Versucht die Wiederherstellung, wenn Herstellereinstellungen manuelle Schalter blockieren. Gleichzeitige Änderungen durch andere Apps lassen sich nicht vollständig vermeiden. Shizuku muss nach einem Geräteneustart möglicherweise neu gestartet werden.","settings.permissions.androidShizukuOpenApp":"Shizuku öffnen","settings.permissions.androidShizukuRequestPermission":"Freigabe anfordern","settings.permissions.androidShizukuRecover":"Bedienungshilfen wiederherstellen","settings.permissions.androidShizukuRecoverConfirm":"Den OpenLess-Bedienungshilfendienst mit Shizuku erneut aktivieren? OpenLess berücksichtigt dabei die beim Schreiben bereits aktivierten Dienste. Ist der globale Bedienungshilfenschalter aus, können beim Aktivieren auch andere registrierte Dienste starten.","settings.permissions.androidShizukuYes":"ja","settings.permissions.androidShizukuNo":"nein","settings.permissions.androidShizukuAccessibilityOperational":"Bedienungshilfen sind registriert und laufen.","settings.permissions.androidShizukuAccessibilityRegistered":"Registriert: {{registered}} · Aktiv: {{operational}}","settings.permissions.androidShizukuState.notInstalled":"Nicht installiert","settings.permissions.androidShizukuState.notRunning":"Nicht gestartet","settings.permissions.androidShizukuState.notAuthorized":"Nicht freigegeben","settings.permissions.androidShizukuState.authorized":"Freigegeben","settings.permissions.androidShizukuState.binderDead":"Verbindung getrennt","settings.permissions.androidShizukuState.notAndroid":"Nicht zutreffend","settings.permissions.androidShizukuMessages.not_android":"Shizuku ist nur auf Android verfügbar.","settings.permissions.androidShizukuMessages.not_installed":"Shizuku oder das Sui-Backend ist nicht installiert.","settings.permissions.androidShizukuMessages.unsupported_backend":"Dieses Shizuku-Backend ist zu alt. Aktualisiere Shizuku oder Sui auf v11 oder neuer.","settings.permissions.androidShizukuMessages.not_running":"Shizuku läuft nicht. Starte zuerst Shizuku oder Sui.","settings.permissions.androidShizukuMessages.not_authorized":"Shizuku ist nicht freigegeben. Erteile OpenLess die Berechtigung.","settings.permissions.androidShizukuMessages.binder_dead":"Verbindung zu Shizuku verloren. Starte Shizuku neu.","settings.permissions.androidShizukuMessages.authorized_operational":"Shizuku freigegeben. Bedienungshilfen laufen.","settings.permissions.androidShizukuMessages.authorized_registered_stale":"Shizuku freigegeben. Bedienungshilfen sind registriert, laufen aber nicht.","settings.permissions.androidShizukuMessages.authorized_can_recover":"Shizuku freigegeben. Du kannst die Wiederherstellung der Bedienungshilfen versuchen.","settings.permissions.androidShizukuMessages.operational":"Bedienungshilfen sind registriert und laufen.","settings.permissions.androidShizukuMessages.registered_stale":"Bedienungshilfen sind registriert, der Dienst ist derzeit aber nicht verfügbar.","settings.permissions.androidShizukuMessages.not_registered":"Bedienungshilfen sind in den Systemeinstellungen nicht aktiviert.","settings.permissions.androidShizukuMessages.already_granted":"Die Shizuku-Berechtigung wurde bereits erteilt.","settings.permissions.androidShizukuMessages.binder_unavailable":"Der Shizuku-Binder war während der Berechtigungsanfrage nicht verfügbar.","settings.permissions.androidShizukuMessages.request_cancelled":"Die Shizuku-Berechtigungsanfrage wurde abgebrochen.","settings.permissions.androidShizukuMessages.granted":"Shizuku-Berechtigung erteilt.","settings.permissions.androidShizukuMessages.denied":"Shizuku-Berechtigung verweigert.","settings.permissions.androidShizukuMessages.permission_permanently_denied":"Die Shizuku-Freigabe wurde blockiert. Öffne Shizuku und erlaube OpenLess den Zugriff manuell.","settings.permissions.androidShizukuMessages.launched":"Shizuku-Freigabe geöffnet.","settings.permissions.androidShizukuMessages.launch_failed":"Shizuku-Freigabe konnte nicht geöffnet werden.","settings.permissions.androidShizukuMessages.open_shizuku":"Shizuku-Verwaltung geöffnet.","settings.permissions.androidShizukuMessages.jni_error":"Das Android-Shizuku-Backend konnte nicht erreicht werden.","settings.permissions.androidShizukuMessages.status_parse_failed":"Shizuku-Status konnte nicht ausgewertet werden.","settings.permissions.androidShizukuMessages.user_not_confirmed":"Die Wiederherstellung muss bestätigt werden.","settings.permissions.androidShizukuMessages.shizuku_unavailable":"Shizuku ist nicht freigegeben oder nicht verfügbar.","settings.permissions.androidShizukuMessages.invalid_component":"Ungültige Komponenten-ID des Bedienungshilfendienstes.","settings.permissions.androidShizukuMessages.service_connect_failed":"Verbindung zum privilegierten Shizuku-Dienst fehlgeschlagen.","settings.permissions.androidShizukuMessages.recovery_in_progress":"Eine andere Wiederherstellung läuft bereits.","settings.permissions.androidShizukuMessages.parse_failed":"Das Wiederherstellungsergebnis konnte nicht ausgewertet werden.","settings.permissions.androidShizukuMessages.service_not_bound":"Die Einstellungen wurden geschrieben, aber die Bedienungshilfen laufen noch nicht.","settings.permissions.androidShizukuMessages.success":"Bedienungshilfendienst wiederhergestellt.","settings.permissions.androidShizukuMessages.read_failed":"Bedienungshilfeneinstellungen konnten nicht gelesen werden.","settings.permissions.androidShizukuMessages.read_enabled_failed":"Der Aktivierungsstatus der Bedienungshilfen konnte nicht gelesen werden.","settings.permissions.androidShizukuMessages.merge_failed":"Bedienungshilfendienste konnten nicht zusammengeführt werden.","settings.permissions.androidShizukuMessages.write_services_failed":"Aktivierte Bedienungshilfendienste konnten nicht gespeichert werden.","settings.permissions.androidShizukuMessages.write_enabled_failed":"Bedienungshilfen konnten nicht aktiviert werden.","settings.permissions.androidShizukuMessages.readback_failed":"Bedienungshilfeneinstellungen konnten nach dem Schreiben nicht überprüft werden.","settings.permissions.androidShizukuMessages.oem_rollback":"Der Gerätehersteller hat die Änderung der Bedienungshilfen zurückgesetzt.","settings.permissions.androidShizukuMessages.concurrent_change":"Die Bedienungshilfeneinstellungen wurden während der Wiederherstellung geändert.","settings.permissions.androidShizukuMessages.partial_rollback":"Die Wiederherstellung ist fehlgeschlagen und die Einstellungen konnten nur teilweise zurückgesetzt werden. Prüfe die Bedienungshilfeneinstellungen des Systems.","settings.permissions.androidShizukuMessages.manual_required":"Die automatische Wiederherstellung kann Bedienungshilfen nicht sicher aktivieren, solange bei ausgeschaltetem Hauptschalter andere registrierte Dienste vorhanden sind. Verwende die Systemeinstellungen.","settings.permissions.androidShizukuMessages.max_retries":"Wiederherstellung nach mehreren Versuchen fehlgeschlagen.","settings.permissions.androidShizukuMessages.internal_error":"Wiederherstellung wegen eines internen Fehlers fehlgeschlagen.","settings.permissions.androidShizukuMessages.unknown":"Unbekannter Shizuku-Status.","settings.permissions.androidInsertStrategyLabel":"Texteinfügemethode","settings.permissions.androidOverlayTriggerLabel":"Sichtbarkeit des schwebenden Fensters","settings.permissions.androidOverlayActivationModeLabel":"Aktivierung des schwebenden Fensters","settings.permissions.androidOverlayLeftSwipeActionLabel":"Aktion beim Wischen nach links","settings.permissions.androidOverlayCancelSwipeDirectionLabel":"Wischrichtung zum Abbrechen","settings.permissions.androidOverlaySizeLabel":"Größe des schwebenden Fensters","settings.permissions.androidOverlaySizeHint":"Ändert den Durchmesser der schwebenden Taste und behält ihre Position bei.","settings.permissions.androidInsertStrategy.accessibility":"Automatisch im Eingabefeld ausgeben","settings.permissions.androidInsertStrategy.clipboard":"Nur Zwischenablage","settings.permissions.androidInsertStrategyHint.accessibility":"Benötigt Bedienungshilfen. Bei Nichtverfügbarkeit wird die Zwischenablage verwendet.","settings.permissions.androidInsertStrategyHint.clipboard":"Keine Bedienungshilfenberechtigung nötig. Kopiert nur zum manuellen Einfügen.","settings.permissions.androidOverlayTrigger.background":"Wenn die App im Hintergrund ist","settings.permissions.androidOverlayTrigger.keyboard":"Wenn die Tastatur erscheint","settings.permissions.androidOverlayTrigger.always":"Immer sichtbar","settings.permissions.androidOverlayTriggerHint.background":"Einfach und energiesparend. Kein schwebendes Fenster beim Tippen in anderen Apps.","settings.permissions.androidOverlayTriggerHint.keyboard":"Dieser Modus wird nicht weitergeführt. Bestehende Einstellungen werden auf „Im Hintergrund“ zurückgesetzt.","settings.permissions.androidOverlayTriggerHint.always":"Jederzeit verfügbar, aber dauerhaft auf dem Bildschirm.","settings.permissions.androidOverlayTriggerDisabled.keyboard":"Die Anzeige beim Öffnen der Tastatur wird nicht weitergeführt. Fenstergesten sollen die Tastaturerkennung ersetzen.","settings.permissions.androidOverlayActivationMode.tap":"Zum Aktivieren tippen","settings.permissions.androidOverlayActivationMode.long_press":"Zum Aktivieren lange drücken","settings.permissions.androidOverlayActivationModeHint.tap":"Erstes Tippen aktiviert das Fenster, zweites Tippen startet ein normales Diktat.","settings.permissions.androidOverlayActivationModeHint.long_press":"Gedrückt halten, um das Fenster zu aktivieren. Loslassen beendet die aktuelle Aufnahme oder Fragerunde.","settings.permissions.androidOverlayLeftSwipeAction.translation":"Diktat mit Übersetzung","settings.permissions.androidOverlayLeftSwipeAction.style_pack":"Stilpaket wechseln","settings.permissions.androidOverlayLeftSwipeActionHint.translation":"Nach dem Aktivieren nach links wischen, um ein Übersetzungsdiktat zu starten.","settings.permissions.androidOverlayLeftSwipeActionHint.style_pack":"Nach dem Aktivieren nach links wischen, um zum vorherigen Stilpaket zu wechseln.","settings.permissions.androidOverlayCancelSwipeDirection.up":"Nach oben wischen","settings.permissions.androidOverlayCancelSwipeDirection.down":"Nach unten wischen","settings.permissions.androidOverlayCancelSwipeDirectionHint.up":"Während der Aufnahme nach oben wischen, um ohne Transkription oder Einfügen abzubrechen.","settings.permissions.androidOverlayCancelSwipeDirectionHint.down":"Während der Aufnahme nach unten wischen, um ohne Transkription oder Einfügen abzubrechen.","settings.permissions.windowsIme.installed":"Installiert. Die Spracheingabe wechselt vorübergehend zur OpenLess-Eingabemethode.","settings.permissions.windowsIme.notInstalled":"Nicht installiert. OpenLess verwendet die Alternative über Zwischenablage/WM_PASTE.","settings.permissions.windowsIme.registrationBroken":"Die Registrierung ist beschädigt. Installiere die OpenLess-Eingabemethode erneut.","settings.permissions.windowsIme.notWindows":"Nur unter Windows verfügbar.","settings.advanced.multimodalPipelineTitle":"Multimodale Spracherkennung (experimentell)","settings.advanced.multimodalPipelineTitleHint":"Spracherkennung in einem Durchgang mit einem multimodalen Modell. Die klassische ASR- und LLM-Konfiguration ist vollständig getrennt.","settings.advanced.multimodalPipelineLabel":"Multimodale Verarbeitung aktivieren","settings.advanced.multimodalPipelineHint":"Ergänzt auf der KI-Diensteseite den Schalter „Klassisch / Multimodal“. Klassisch = ASR + LLM; multimodal = ein audiotaugliches Modell. Beide Konfigurationen werden getrennt gespeichert und teilen keine Zugangsdaten.","settings.advanced.streamingInsertTitle":"Laufend einfügen","settings.advanced.streamingInsertTitleLinux":"Laufend einfügen (experimentell)","settings.advanced.streamingInsertDesc":"Fügt den Text Zeichen für Zeichen an der Cursorposition ein und verkürzt so die wahrgenommene Wartezeit. Sind die Voraussetzungen nicht erfüllt, wird der Text auf einmal eingefügt.","settings.advanced.streamingInsertLabel":"Laufend einfügen","settings.advanced.streamingInsertHintMac":"Wechselt die Eingabequelle vorübergehend zu ABC, damit chinesische, japanische oder koreanische Eingabemethoden die Tasten nicht abfangen. Nach der Sitzung wird die ursprüngliche Quelle wiederhergestellt.","settings.advanced.streamingInsertHintWindows":"SendInput gibt Unicode direkt ein und umgeht TSF / IME. Ein Wechsel der Eingabemethode ist nicht erforderlich.","settings.advanced.streamingInsertHintLinux":"Verwendet das fcitx5-Plugin zur Textübermittlung. Laufendes Einfügen simuliert Tasten über enigo + XTest.","settings.advanced.streamingInsertSaveClipboardLabel":"In Zwischenablage kopieren","settings.advanced.streamingInsertSaveClipboardHint":"Kopiert nach erfolgreichem Einfügen den fertigen Text in die Zwischenablage, damit du ihn mit Cmd+V erneut einfügen kannst. Bei „Aus“ bleibt die Zwischenablage unberührt.","settings.advanced.localAsrTitle":"Lokale ASR-Modelle (experimentell)","settings.advanced.localAsrDesc":"Verlagert die Transkription von Cloud-ASR auf das Gerät. Für Offline-Nutzung oder sensible Daten.","settings.advanced.localAsrWarningShort":"Lokale Inferenz ist langsamer. Zu schwache Hardware kann Wörter verlieren.","settings.advanced.qwen3Desc":"Nach der Aktivierung übernimmt dieses Modell die Spracherkennung.","settings.advanced.sherpaDesc":"Nach der Aktivierung übernimmt dieses Modell die Spracherkennung.","settings.advanced.foundryDesc":"Nach der Aktivierung übernimmt dieses Modell die Spracherkennung.","settings.advanced.notSupportedHere":"Auf dieser Plattform nicht unterstützt. Kein Inferenzmodul enthalten.","settings.advanced.enable":"Aktivieren","settings.advanced.alreadyActive":"Aktiv","settings.advanced.disableLocalLabel":"Lokale ASR deaktivieren","settings.advanced.disableLocalDesc":"Zur Cloud-ASR zurückwechseln (Standard: Volcengine bigasr).","settings.advanced.disable":"Deaktivieren","settings.advanced.platformNotSupported":"Lokale ASR-Modelle werden auf dieser Plattform nicht unterstützt.","settings.advanced.confirmEnableLocalTitle":"Lokale ASR aktivieren?","settings.advanced.confirmEnableLocalBody":"Die Transkription wird langsamer als in der Cloud und möglicherweise weniger genau.","settings.advanced.confirm":"Aktivieren","settings.language.es":"Español","settings.language.fr":"Français","settings.language.de":"Deutsch","settings.language.title":"Sprache der Oberfläche","settings.language.desc":"Wechselt die Sprache der Oberfläche sofort und speichert die Auswahl für spätere Starts.","settings.language.label":"Sprache","settings.language.labelDesc":"Wähle „Systemsprache“, um beim Start die Sprache des Betriebssystems zu übernehmen.","settings.language.followSystem":"Systemsprache","settings.language.zh":"简体中文","settings.language.zhTW":"繁體中文","settings.language.en":"English","settings.language.ja":"日本語 (Beta)","settings.language.ko":"한국어 (Beta)","settings.language.restartHint":"Einige native Menüs, etwa im Infobereich, wechseln möglicherweise erst nach einem App-Neustart vollständig die Sprache.","settings.layout.title":"Layout","settings.theme.title":"Darstellung","settings.theme.label":"Design","settings.theme.activityHeatmapLabel":"Jährliche Aktivitätsübersicht in der Übersicht anzeigen","settings.theme.stackedRowLayoutLabel":"Lesbares Layout (Zeilen umbrechen)","settings.theme.stackedRowLayoutDesc":"Auf kleinen Bildschirmen oder bei großer Schrift wechseln Tasten und Steuerelemente, die nicht mehr in eine Zeile passen, in die nächste Zeile. So läuft nichts über und Text wird nicht zusammengedrückt.","settings.theme.conservativeLayoutLabel":"Konservatives Layout","settings.theme.conservativeLayoutDesc":"Außer auf der Startseite sowie in der oberen und unteren Leiste verwenden Einstellungs- und Funktionsseiten eine einzige Spalte über die volle Breite, um horizontalen Überlauf zu vermeiden.","settings.theme.system":"Systemeinstellung","settings.theme.light":"Hell","settings.theme.dark":"Dunkel","settings.remoteInput.title":"Ferneingabe","settings.remoteInput.enableLabel":"Ferneingabe aktivieren","settings.remoteInput.enableDesc":"Nimm über den Browser eines Smartphones oder Tablets im lokalen Netzwerk auf. Der Text wird am Cursor deines Computers eingefügt (HTTPS erforderlich; dem Zertifikat beim ersten Besuch vertrauen).","settings.remoteInput.portLabel":"Port","settings.remoteInput.defaultModeLabel":"Standard-Aufnahmemodus","settings.remoteInput.modeToggle":"Zum Umschalten tippen","settings.remoteInput.modeHold":"Zum Sprechen gedrückt halten","settings.remoteInput.urlLabel":"Zugriffs-URL","settings.remoteInput.pinLabel":"Kopplungscode","settings.remoteInput.regeneratePin":"Neu erstellen","settings.remoteInput.portInUse":"Port {{port}} ist belegt. Wähle einen anderen Port","settings.remoteInput.startError":"Der Ferneingabedienst konnte nicht gestartet werden: {{reason}}","settings.remoteInput.securityHint":"Nur im selben lokalen Netzwerk erreichbar und durch den Kopplungscode geschützt. Bei Nichtgebrauch ausschalten.","settings.remoteInput.certHint":"Prüfe vor der erstmaligen Vertrauensstellung den Fingerabdruck des Root-Zertifikats. Ältere Versionen erfordern eine einmalige Einrichtung; danach bleibt die Vertrauensstellung über Neustarts und IP-Wechsel hinweg erhalten.","settings.remoteInput.certFingerprintLabel":"Root-CA-SHA-256 dieses Computers","settings.remoteInput.certFingerprintCopy":"Vollständigen Fingerabdruck kopieren","settings.remoteInput.certFingerprintCopied":"Fingerabdruck kopiert","settings.remoteInput.certFingerprintUnavailable":"Der vollständige Fingerabdruck ist nicht verfügbar. Installiere oder vertraue kein heruntergeladenes Zertifikat.","settings.remoteInput.certVerifyHint":"Suche vor dem Aktivieren der vollständigen Vertrauensstellung den SHA-256 in den Zertifikatdetails des Telefons und vergleiche alle 64 Zeichen mit diesem Wert (Leerzeichen und Doppelpunkte ignorieren). Webseite, Profilname oder Bezeichner können die Identität nicht beweisen. Weicht der Fingerabdruck ab oder ist nicht vollständig einsehbar, brich ab und entferne das heruntergeladene oder installierte Profil.","settings.remoteInput.certProfileHint":"Erwarte genau ein Root-Zertifikat. Installiere kein Profil mit zusätzlichen Zertifikaten, VPN- oder Geräteverwaltungseinstellungen.","settings.remoteInput.certTrustWarning":"Beim ersten Zertifikatsdownload kann die Identität des Computers nicht geprüft werden: Ein bösartiges Gerät im lokalen Netzwerk könnte das Root-Zertifikat in einem Man-in-the-Middle-Angriff ersetzen. Installiere es nur in einem vertrauenswürdigen Heim- oder Privatnetzwerk, niemals in öffentlichen oder geteilten Netzwerken. Die Root-CA kann Zertifikate ausstellen, ihr privater Schlüssel bleibt auf diesem Computer; entferne sie vom Smartphone, wenn du sie nicht mehr brauchst.","settings.remoteInput.certSetupLink":"iPhone-Zertifikatslink kopieren","settings.remoteInput.waitingStart":"Der Dienst läuft noch nicht. Schalte die Funktion aus und wieder ein. Ein App-Neustart ist nicht erforderlich.","settings.remoteInput.starting":"Ferneingabedienst wird gestartet…","settings.remoteInput.urlsStale":"Diese Adressen stammen vom vorherigen Start und sind möglicherweise veraltet.","settings.about.tagline":"Natürlich sprechen, klar schreiben","settings.about.checkUpdate":"Nach Updates suchen","settings.about.checkUpdateBtn":"Prüfen","settings.about.checkStableUpdateBtn":"Stabile Version prüfen","settings.about.checkBetaUpdateBtn":"Beta-Version prüfen","settings.about.checkingUpdate":"Wird geprüft…","settings.about.upToDate":"Du verwendest bereits die neueste Version.","settings.about.updateError":"Updatesuche oder Installation fehlgeschlagen. Versuche es später erneut.","settings.about.retryBtn":"Erneut versuchen","settings.about.openReleases":"Veröffentlichungen öffnen","settings.about.source":"Quellcode","settings.about.docs":"Dokumentation","settings.about.feedback":"Rückmeldung","settings.about.qq":"QQ-Community-Gruppe","settings.about.qqDesc":"Suche in QQ nach der Gruppennummer oder scanne den QR-Code, um beizutreten.","settings.about.copyQq":"Gruppennummer kopieren","settings.about.privacy":"Datenschutz","settings.about.privacyDesc":"Aufnahmen können zur Transkription an den von dir eingerichteten Cloud-Anbieter gesendet werden.","settings.about.localFirst":"Lokal orientiert","settings.about.linksTitle":"Dokumentation","settings.about.betaChannelLabel":"Beta-Kanal verwenden","settings.about.betaChannelToggleLabel":"Beta-Kanal aktivieren","settings.about.betaChannelDesc":"Bei Aktivierung verwendet die automatische Updatesuche den Beta-Kanal, andernfalls die stabile Version. Über die Taste unten kannst du jederzeit manuell nach Betas suchen.","settings.about.autoUpdateSectionTitle":"Automatische Updates","settings.about.autoUpdateCheckLabelAndroid":"Automatisch nach Updates suchen und herunterladen","settings.about.autoUpdateCheckDescAndroid":"Prüft beim Start und alle 60 Minuten. Verfügbare Updates werden heruntergeladen und im Systeminstallationsprogramm geöffnet. Der Kanal folgt dem Beta-Schalter oben.","settings.about.betaChannelFetching":"Neueste Beta wird abgerufen…","settings.about.betaChannelFetchBtn":"Neueste Beta suchen","settings.about.betaChannelLatestPrefix":"Neueste Beta:","settings.about.betaChannelDownloadBtn":"Downloadseite öffnen","settings.about.betaChannelRefresh":"Aktualisieren","settings.about.betaChannelNoBeta":"Es wurde noch keine Beta-Version veröffentlicht.","settings.about.betaChannelFetchError":"Beta-Versionsinformationen konnten nicht abgerufen werden. Versuche es später erneut.","settings.about.betaChannelUpToDate":"Aktuell","settings.about.betaChannelUpdateNow":"Jetzt aktualisieren","settings.about.betaChannelUpdateNowTitle":"Neueste Beta prüfen und herunterladen, anschließend den Updatedialog anzeigen","settings.about.betaChannelChecking":"Wird geprüft…","settings.about.updateDialog.stableChannelSwitch.title":"Zum stabilen Kanal wechseln","settings.about.updateDialog.stableChannelSwitch.desc":"Aktuelle Version: OpenLess {{currentVersion}}\nZielversion: OpenLess {{version}}\nDadurch wechselst du vom Beta-Kanal zum stabilen Kanal. Fortfahren?","settings.about.updateDialog.available.title":"Update verfügbar","settings.about.updateDialog.available.desc":"OpenLess {{version}} ist verfügbar. Jetzt aktualisieren?","settings.about.updateDialog.downloading.title":"Update wird heruntergeladen","settings.about.updateDialog.downloading.desc":"OpenLess {{version}} wird heruntergeladen. Lass die App geöffnet.","settings.about.updateDialog.downloaded.title":"Update bereit","settings.about.updateDialog.downloaded.desc":"OpenLess {{version}} wurde installiert. Jetzt automatisch neu starten, um es anzuwenden?","settings.about.updateDialog.installing.title":"Update wird installiert","settings.about.updateDialog.installing.desc":"OpenLess {{version}} wird installiert. Lass die App geöffnet.","settings.about.updateDialog.install":"Jetzt aktualisieren","settings.about.updateDialog.androidInstall":"Herunterladen und Installation öffnen","settings.about.updateDialog.androidInstalled.title":"Systeminstallation geöffnet","settings.about.updateDialog.androidInstalled.desc":"Folge den Systemhinweisen, um die Installation abzuschließen. Öffne OpenLess erneut, um {{version}} zu verwenden.","settings.about.updateDialog.downloadingLabel":"Wird heruntergeladen…","settings.about.updateDialog.installingLabel":"Wird installiert…","settings.about.updateDialog.later":"Später manuell neu starten","settings.about.updateDialog.restartNow":"Jetzt neu starten","settings.about.updateDialog.progress":"{{progress}}% · {{downloaded}} / {{total}}","settings.about.updateDialog.progressUnknown":"{{downloaded}} heruntergeladen","settings.about.updateDialog.installError.title":"Update fehlgeschlagen","settings.about.updateDialog.installError.desc":"Das automatische Update konnte nicht abgeschlossen werden: {{error}}. Du kannst die neueste Version manuell herunterladen und installieren.","settings.about.updateDialog.manualDownload":"Manuell herunterladen","startup.loading":"OpenLess wird gestartet…","startup.loadingDesc":"Verbindung zum lokalen Dienst wird hergestellt und die Kompatibilität geprüft.","startup.failed":"OpenLess konnte nicht gestartet werden","startup.recovery":"Prüfe erneut. Falls das Problem bleibt, beende die App vollständig und öffne sie wieder. Trat es nach einem Update auf, stelle sicher, dass alle App-Komponenten dieselbe Version verwenden.","startup.retry":"Erneut prüfen","startup.details":"Fehlerdetails anzeigen","modal.serviceViews.label":"Diensteinstellungen","modal.serviceViews.llm":"Sprachmodelle","modal.serviceViews.asr":"Spracherkennung","modal.serviceViews.omni":"Multimodal","modal.serviceViews.models":"Lokale Modelle","modal.serviceViews.connections":"Verbindungen","modal.serviceViews.statusConfigured":"Eingerichtet","modal.serviceViews.statusMissing":"Nicht eingerichtet","modal.searchPlaceholder":"Einstellungskategorie suchen…","modal.clearSearch":"Suche leeren","modal.categoriesLabel":"Einstellungskategorien","modal.searchResults":"Suchergebnisse","modal.searchCount":"Gefundene Kategorien: {{count}}","modal.noResults":"Keine passenden Kategorien. Versuche „Mikrofon“, „Modelle“ oder „Design“.","modal.autoSaveHint":"Änderungen werden automatisch gespeichert","modal.backToAdvanced":"Zurück zu Experimente und Erweiterungen","modal.advancedPages.lessComputer":"Wähle einen Agenten und konfiguriere Modell, Berechtigungen und Arbeitsverzeichnis.","modal.advancedPages.claudeConsole":"Erkenne Claude Code und prüfe die Ausgabe von Testaufträgen.","modal.advancedPages.multimodal":"Verwalte die experimentelle multimodale Spracherkennung.","modal.advancedPages.debug":"Diagnoseaufnahmen speichern, Cursorkontext prüfen und Protokolle exportieren.","modal.descriptions.general":"Mikrofon wählen, Aufnahme und Texteingabe anpassen oder dein Smartphone verbinden.","modal.descriptions.shortcuts":"Kurzbefehle einrichten und Aktionen für ausgewählten Text festlegen.","modal.descriptions.services":"Spracherkennungs- und Textverarbeitungsdienste wählen. Kanäle, lokale Modelle und Verbindungen verwalten.","modal.descriptions.appearance":"Design, Seitenlayout und Sprache der Oberfläche für angenehmes Lesen anpassen.","modal.descriptions.privacy":"Systemberechtigungen und Verbindungen prüfen. Verlauf, Aufnahmen und lokale Daten verwalten.","modal.descriptions.advanced":"Less Computer, multimodale Verarbeitung und Diagnose nach Bedarf einrichten.","modal.descriptions.about":"Version, Updatekanal und automatische Updateeinstellungen anzeigen.","modal.searchKeywords.general":"Mikrofon Aufnahme Eingabe Smartphone Ferneingabe LAN PIN Kapsel Stumm Start Autostart","modal.searchKeywords.shortcuts":"Kurzbefehl Hotkey Taste Tastenkombination Auswahl Überarbeitung Sprachbearbeitung","modal.searchKeywords.services":"ASR LLM API Kanal Modell Cloud Lokal Offline Netzwerk Proxy Marktplatz","modal.searchKeywords.appearance":"Design Dunkel Hell Sprache Schrift Textgröße Layout Aktivitätsübersicht","modal.searchKeywords.privacy":"Berechtigung Mikrofon Bedienungshilfen Verlauf Aufnahme Speicher Datenschutz Export","modal.searchKeywords.advanced":"Less Computer Claude Agent Multimodal Omni Diagnose Protokolle Experiment","modal.searchKeywords.about":"Version Beta Stabil Update Aktualisierung","modal.sections.appearance":"Darstellung und Sprache","modal.sections.shortcuts":"Kurzbefehle und Auswahl","modal.sections.general":"Aufnahme und Eingabe","modal.sections.services":"KI-Dienste und Modelle","modal.sections.privacy":"Berechtigungen und Daten","modal.sections.advanced":"Experimente und Erweiterungen","modal.sections.personalize":"Anpassen","modal.sections.about":"Über OpenLess und Updates","modal.sections.helpCenter":"Hilfezentrum","modal.sections.releaseNotes":"Versionshinweise","modal.personalize.font":"Schriftgröße","modal.personalize.fontDesc":"Skaliert die Schriftgröße der gesamten Oberfläche sofort.","modal.personalize.fontSmall":"Klein","modal.personalize.fontMedium":"Mittel","modal.personalize.fontLarge":"Groß","modal.personalize.blur":"Stärke des Glaseffekts","modal.personalize.blurDesc":"Passt die Stärke des internen Hintergrundfilters an. Die systemeigene macOS-Milchglasschicht lässt sich zur Laufzeit nicht ändern.","modal.about.tagline":"Natürlich sprechen, klar schreiben","modal.about.checkUpdate":"Nach Updates suchen","modal.about.checkUpdateBtn":"Prüfen","modal.about.docs":"Dokumentation","modal.about.docsBtn":"openless.app/docs ↗","modal.about.feedback":"Rückmeldung senden","modal.about.feedbackBtn":"GitHub Issues ↗","modal.about.source":"Quellcode","modal.about.qq":"QQ-Community-Gruppe","modal.about.qqDesc":"Suche in QQ nach der Gruppennummer oder scanne den QR-Code, um beizutreten.","modal.about.copyQq":"Gruppennummer kopieren","modal.about.exportErrorLog":"Fehlerprotokoll exportieren","modal.about.exportErrorLogDesc":"Speichert das Protokoll der aktuellen Sitzung für die Fehleranalyse oder zum Senden einer Rückmeldung.","modal.about.exportErrorLogBtn":"Exportieren","modal.about.exporting":"Wird exportiert…","modal.about.exportSuccess":"Gespeichert","modal.about.exportFailed":"Export fehlgeschlagen","modal.about.privacy":"Datenschutz","modal.about.privacyDesc":"Transkripte bleiben auf diesem Gerät. Eingerichtete Cloud-Anbieter können Audioaufnahmen zur Transkription erhalten.","modal.about.localFirst":"Lokal orientiert","windowChrome.restore":"Wiederherstellen","windowChrome.minimize":"Minimieren","windowChrome.maximize":"Maximieren","windowChrome.close":"Schließen","hotkey.triggers.rightOption":"Rechte Option-Taste","hotkey.triggers.leftOption":"Linke Option-Taste","hotkey.triggers.rightControl":"Rechte Control-Taste","hotkey.triggers.leftControl":"Linke Control-Taste","hotkey.triggers.rightCommand":"Rechte Command-Taste","hotkey.triggers.leftCommand":"Linke Command-Taste","hotkey.triggers.leftShift":"Linke Shift-Taste","hotkey.triggers.rightShift":"Rechte Shift-Taste","hotkey.triggers.fn":"Fn (Globustaste)","hotkey.triggers.rightAlt":"Rechte Alt-Taste","hotkey.triggers.mediaPlayPause":"⏯ Medienwiedergabe / Pause","hotkey.triggers.custom":"Eigene Tastenkombination…","hotkey.fallback":"Globaler Kurzbefehl","hotkey.modeHoldSuffix":" (zum Sprechen gedrückt halten)","hotkey.modeToggleSuffix":" (starten / beenden)","hotkey.modeAutoSuffix":" (automatisch erkennen)","hotkey.usageHold":"Halte {{trigger}} zum Sprechen gedrückt und lasse die Taste zum Beenden los.","hotkey.usageToggle":"Drücke {{trigger}} zum Starten und erneut zum Beenden.","hotkey.usageAuto":"Tippe {{trigger}} zum Starten / Beenden an oder halte die Taste zum Sprechen gedrückt und lasse sie zum Beenden los.","hotkey.adapter.macEventTap":"macOS Event Tap","hotkey.adapter.windowsLowLevel":"Windows-Tastaturüberwachung (Low-Level-Hook)","hotkey.adapter.fcitx5":"fcitx5-Eingabemethoden-Plugin","hotkey.adapter.unavailable":"Nicht verfügbar","localAsr.kicker":"LOKALE ASR","localAsr.title":"Modelle","localAsr.desc":"Spracherkennungsmodelle auf diesem Gerät verwalten.","localAsr.storageTitle":"Speicherort für Modelle","localAsr.storageBaseDir":"Gewählter übergeordneter Ordner","localAsr.storageModelsRoot":"Tatsächlicher Modellordner","localAsr.storageDefault":"Standardordner des Systems","localAsr.storageChoose":"Ordner ändern","localAsr.storageReset":"Auf Standard zurücksetzen","localAsr.storageReveal":"Modellordner öffnen","localAsr.storageDesc":"Bei einem eigenen Speicherort wird OpenLess/models im gewählten Ordner erstellt und vorhandene Modelle werden dorthin verschoben. Zuvor bricht OpenLess Downloads ab und entlädt geladene Modelle.","localAsr.storageChooseTitle":"Übergeordneten Speicherordner für lokale Modelle wählen","localAsr.storageChangeConfirm":"Vorhandene lokale Modelle werden nach {{path}}/OpenLess/models verschoben. Zuvor werden Downloads abgebrochen und geladene Modelle entladen. Fortfahren?","localAsr.storageResetConfirm":"Vorhandene lokale Modelle werden in den Systemstandardordner zurückverschoben. Aktueller Ordner: {{path}}. Fortfahren?","localAsr.modelDir":"Modellverzeichnis","localAsr.revealDir":"Verzeichnis öffnen","localAsr.deleteConfirm":"Lokale Modelldateien von {{name}} löschen? Dies kann nicht rückgängig gemacht werden.","localAsr.appleSpeechTitle":"Spracherkennung mit Apple Speech (macOS)","localAsr.appleSpeechDesc":"Transkribiert Sprache lokal mit der integrierten macOS-Spracherkennung: ohne Modelldownload, API-Schlüssel oder Netzwerk. Eine lokale Alternative ohne Zugangsdaten, wenn die Cloud-ASR unzuverlässig ist. macOS fragt bei der ersten Verwendung nach der Berechtigung zur Spracherkennung.","localAsr.appleSpeechUse":"Apple Speech verwenden","localAsr.qwenTitle":"Qwen3-ASR-Modellverwaltung","localAsr.qwenExperimentalBadge":"Experimentell","localAsr.engineUnavailable":"Die Qwen3-ASR-Inferenz-Engine ist auf dieser Plattform nicht enthalten. Modelle können heruntergeladen, Qwen3-ASR kann hier aber noch nicht aktiviert werden.","localAsr.qwenUnavailableOnWindows":"Qwen3-ASR wird unter Windows noch nicht unterstützt. Verwende stattdessen oben Foundry Local Whisper.","localAsr.foundryTitle":"Windows Foundry Local Whisper","localAsr.foundryDesc":"Spracherkennung auf dem Gerät, ohne ASR-API-Schlüssel. Bei der ersten Verwendung müssen Laufzeit und Modell heruntergeladen werden.","localAsr.foundryAvailable":"Unter Windows verfügbar","localAsr.foundryUnavailable":"Nur Windows","localAsr.foundryRuntimeReady":"Laufzeitkomponenten heruntergeladen","localAsr.foundryRuntimeMissing":"Laufzeitkomponenten nicht heruntergeladen","localAsr.foundryRuntimeSourceLabel":"Quelle der Laufzeitkomponenten","localAsr.foundryRuntimeSourceAuto":"Automatisch (NuGet zuerst)","localAsr.foundryRuntimeSourceNuget":"Offizielle NuGet-Quelle","localAsr.foundryRuntimeSourceOrtNightly":"Microsoft ORT-Nightly-Quelle","localAsr.foundryRuntimeSourceDesc":"Laufzeitkomponenten werden vor der ersten Verwendung heruntergeladen.","localAsr.foundrySelectedModel":"Gewähltes Modell","localAsr.foundryActiveModel":"Aktueller Standardalias","localAsr.foundryLoadedModel":"Geladenes Modell","localAsr.foundryNotLoaded":"Nicht geladen","localAsr.foundryError":"Foundry-Status","localAsr.foundrySetDefault":"Als Standard festlegen / lokale Windows-ASR aktivieren","localAsr.foundryEnabling":"Wird aktiviert…","localAsr.foundryPrepare":"Vorbereiten / Herunterladen / Laden","localAsr.foundryPreparing":"Wird vorbereitet…","localAsr.foundryReleasing":"Wird entladen…","localAsr.foundryRetryPrepare":"Fortsetzen / Vorbereitung wiederholen","localAsr.foundryCancelPrepare":"Vorbereitung abbrechen","localAsr.foundryCancelRequested":"Abbruch angefordert","localAsr.foundryCancelling":"Wird abgebrochen…","localAsr.foundryCancelBestEffort":"Abbruch angefordert. Der Vorgang stoppt nach dem aktuellen Schritt. Versuche es später erneut.","localAsr.foundryPrepareRuntime":"Laufzeitkomponenten vorbereiten","localAsr.foundryPrepareModel":"Modell herunterladen","localAsr.foundryPrepareLoad":"Modell laden","localAsr.foundryPrepareModelSkipped":"Modell bereits heruntergeladen; Download übersprungen","localAsr.foundryPrepareDone":"Fertig","localAsr.foundryPrepareWaiting":"Wartet","localAsr.foundryApproxSizeMb":"ca. {{mb}} MB","localAsr.foundryLanguageLabel":"Erkennungssprache","localAsr.foundryLanguageAuto":"Automatisch","localAsr.foundryLanguageZh":"Chinesisch zh","localAsr.foundryLanguageEn":"Englisch en","localAsr.foundryLanguageDesc":"Wähle „Chinesisch“ für chinesische Diktate oder „Automatisch“ für gemischte Sprachen.","localAsr.foundryModelSmall":"Whisper Small (Standard / ausgewogen)","localAsr.foundryModelSmallDesc":"Ausgewogene Standardoption für Qualität und Ressourcenverbrauch.","localAsr.foundryModelMedium":"Whisper Medium (höhere Qualität)","localAsr.foundryModelMediumDesc":"Höhere Genauigkeit für leistungsfähigere Geräte, die größere Downloads und langsamere Inferenz bewältigen können.","localAsr.foundryModelLarge":"Whisper Large V3 Turbo (beste Qualität)","localAsr.foundryModelLargeDesc":"Großes Modell für leistungsstarke Geräte und höchste Qualitätsansprüche.","localAsr.foundryModelBase":"Whisper Base (schneller / sparsamer)","localAsr.foundryModelBaseDesc":"Schneller und ressourcenschonender für einfache alltägliche Diktate.","localAsr.foundryModelTiny":"Whisper Tiny (am schnellsten / Funktionstest)","localAsr.foundryModelTinyDesc":"Schnellste Testoption, um die Funktionsfähigkeit von Foundry zu prüfen.","localAsr.sherpaTitle":"Lokales sherpa-onnx unter Windows (experimentell)","localAsr.sherpaDesc":"Windows verwendet sherpa-onnx für lokale Offline-Stapelerkennung ohne ASR-API-Schlüssel.","localAsr.sherpaRuntimeReady":"Modell geladen","localAsr.sherpaRuntimeMissing":"Modell nicht geladen","localAsr.sherpaSetDefault":"Als Standard festlegen / sherpa-onnx aktivieren","localAsr.sherpaPrepare":"Lokale Dateien prüfen / Laden","localAsr.sherpaPreparing":"Wird geladen…","localAsr.sherpaPrepareLocalFiles":"Lokale Modelldateien prüfen","localAsr.sherpaModelDir":"Modellverzeichnis","localAsr.sherpaRevealDir":"Modellverzeichnis öffnen","localAsr.sherpaError":"sherpa-onnx-Status","localAsr.sherpaLanguageJa":"Japanisch ja","localAsr.sherpaLanguageKo":"Koreanisch ko","localAsr.sherpaLanguageYue":"Kantonesisch yue","localAsr.sherpaModelSenseVoice":"SenseVoice Small (Standard / Schwerpunkt Chinesisch)","localAsr.sherpaModelSenseVoiceDesc":"Experimentelles Standardmodell für chinesische und gemischte chinesisch-englische Diktate.","localAsr.sherpaModelParaformer":"Paraformer Chinese","localAsr.sherpaModelParaformerDesc":"Experimentelles Modell mit Schwerpunkt Chinesisch.","localAsr.sherpaModelWhisper":"Whisper Small mehrsprachig","localAsr.sherpaModelWhisperDesc":"Experimentelle mehrsprachige Alternative mit dem Verhalten der Whisper-Modellfamilie.","localAsr.sherpaModelWhisperLargeV3":"Whisper Large V3 (mehrsprachig)","localAsr.sherpaModelWhisperLargeV3Desc":"Leistungsstärkste mehrsprachige Open-Source-Whisper-Variante: hohe Qualität, großer Download.","localAsr.sherpaModelZipformer":"Zipformer-Streaming (zh/en)","localAsr.sherpaModelZipformerDesc":"Streaming-Modell für Chinesisch und Englisch mit der geringsten Latenz – Text erscheint beim Sprechen.","localAsr.sherpaModelQwen3":"Qwen3-ASR 0.6B INT8","localAsr.sherpaModelQwen3Desc":"Konvertiertes sherpa-onnx-Qwen3-ASR-Modell mit mehrsprachiger Erkennung und besserer Verarbeitung längerer Kontexte.","localAsr.modelSelectTitle":"Modelle auf diesem Gerät","localAsr.modelSelectDesc":"Downloads verfolgen, Dateien verwalten oder ein Modell zum Testen laden.","localAsr.modelSelectPlaceholder":"Heruntergeladenes Modell wählen…","localAsr.modelSelectEmpty":"Noch keine heruntergeladenen Modelle. Wähle eines unter „Herunterladen und verwalten“.","localAsr.groupDownload":"Herunterladen und verwalten","localAsr.groupOther":"Weitere","localAsr.mirrorLabel":"Download-Spiegelserver","localAsr.mirrorDesc":"huggingface.co ist die offizielle Quelle. hf-mirror.com ist ein Community-Spiegelserver, der aus Festlandchina oft besser erreichbar ist.","localAsr.mirrorHuggingface":"Offizielles HuggingFace (huggingface.co)","localAsr.mirrorHfMirror":"Spiegelserver für Festlandchina (hf-mirror.com)","localAsr.activeBadge":"In Verwendung","localAsr.downloadedBadge":"Heruntergeladen","localAsr.notDownloadedBadge":"Nicht heruntergeladen","localAsr.download":"Herunterladen","localAsr.resume":"Fortsetzen","localAsr.cancel":"Abbrechen","localAsr.delete":"Löschen","localAsr.setActive":"Als Standard festlegen","localAsr.failed":"Fehlgeschlagen","localAsr.cancelled":"Abgebrochen","localAsr.files":"Dateien","localAsr.sizeLoading":"Größe wird abgerufen…","localAsr.sizeUnknown":"Größe unbekannt","localAsr.performanceWarning":"Lokale ASR eignet sich besonders für Offline-Nutzung oder sensible Daten. Vor der ersten Verwendung muss das Modell heruntergeladen werden.","localAsr.test":"Laden und testen","localAsr.testRunning":"Wird getestet…","localAsr.testHeading":"Integrierter Audiotest","localAsr.testExpected":"Erwartet","localAsr.testActual":"Erkannt","localAsr.testStats":"Audio {{audio}}s · Laden {{load}}s · Transkription {{transcribe}}s · Backend {{backend}}","localAsr.testFailed":"Test fehlgeschlagen","localAsr.engineStatusLabel":"Engine im Arbeitsspeicher","localAsr.engineLoaded":"Geladen: {{model}}","localAsr.engineUnloaded":"Nicht geladen (vor der ersten Transkription muss das Modell geladen werden)","localAsr.loadNow":"Jetzt laden","localAsr.releaseNow":"Jetzt entladen","localAsr.keepLoadedLabel":"Geladen halten für","localAsr.keepLoadedDesc":"Wie lange Qwen3-ASR nach der letzten Verwendung im Arbeitsspeicher bleibt, bevor es entladen wird.","localAsr.keepImmediate":"Sofort entladen","localAsr.keep1min":"1 Minute nach letzter Verwendung","localAsr.keep5min":"5 Minuten nach letzter Verwendung (Standard)","localAsr.keep30min":"30 Minuten nach letzter Verwendung","localAsr.keepForever":"Nie entladen (immer geladen)","localAsr.sidebarTitle":"Heruntergeladen und laufende Downloads","localAsr.activePill":"Aktiv","localAsr.setDefault":"Als Standard festlegen","localAsr.downloading":"Wird heruntergeladen","localAsr.startDownload":"Download starten","localAsr.downloadNewModel":"Neues Modell herunterladen","localAsr.activeModelLabel":"Aktives Modell","localAsr.pickerNoModelDownloaded":"Noch keine Modelle heruntergeladen — lade sie zuerst auf der Seite „Lokale Modelle“.","localAsr.partialDownloadsLabel":"Unvollständige Downloads","localAsr.partialDownloadsDesc":"Abgebrochene Downloads haben temporäre Dateien hinterlassen; bereinige sie ohne die installierten Modelle zu beeinflussen.","localAsr.cleanupIncomplete":"Unvollständigen Download bereinigen","localAsr.languagesLabel":"Sprachen","localAsr.partialBytesLabel":"Restdateien","localAsr.downloadDialogTitle":"Modell herunterladen","localAsr.downloadDialogAlreadyHave":"Die Modelldateien sind heruntergeladen. Kehre zur Modellseite zurück, um es zu laden und zu testen, oder wähle seinen Anbieter unter „ASR-Transkription“.","localAsr.downloadDialogDesc":"Vergleiche Modellgrößen und Beschreibungen und lade das gewünschte Modell herunter. Wähle anschließend den passenden lokalen Dienst unter „Spracherkennung“.","localAsr.detailRepo":"Repository","localAsr.hfDownloads":"Downloads","localAsr.hfLikes":"Gefällt mir","localAsr.hfDescription":"Über das Modell","localAsr.hfNoDescription":"Noch keine Beschreibung","localAsr.hfCardFailed":"Modellinformationen konnten nicht geladen werden","localAsr.detailFiles":"Dateien","localAsr.detailDownloaded":"Heruntergeladen","localAsr.detailEmpty":"Wähle ein Modell aus, um seine Details anzuzeigen","localAsr.foundryLanguage":"Sprache","localAsr.foundryRuntimeSource":"Laufzeitquelle","localAsr.mirrorGithubRelease":"GitHub Releases","localAsr.keep":"Geladen halten","localAsr.downloadSettingsTitle":"Download und Speicher","localAsr.downloadSettingsDesc":"Spiegelserver · Modellspeicherort · Engine im Arbeitsspeicher","localAsr.libraryEmptyTitle":"Noch keine lokalen Modelle","localAsr.libraryEmptyDesc":"Lade ein Spracherkennungsmodell herunter, um Audio auf diesem Gerät zu verarbeiten. Fehlt ein bereits vorhandenes Modell, lade den Katalog neu.","localAsr.catalogTitle":"Modellkatalog","localAsr.catalogEmpty":"Keine Modelle zur Anzeige verfügbar. Lade den Katalog neu und versuche es erneut.","localAsr.reloadCatalog":"Katalog neu laden","localAsr.engineLabel":"Erkennungs-Engine","localAsr.sizeLabel":"Modellgröße","localAsr.allEngines":"Alle","localAsr.backToCatalog":"Zurück zum Katalog","localAsr.detailsTitle":"Modelldetails","localAsr.testActivateHint":"„Laden und testen“ aktiviert dieses Modell und führt anschließend den integrierten Audiotest aus.","localAsr.downloadProgressHint":"Nach dem Start kannst du den Fortschritt auf der Modellseite verfolgen oder den Download abbrechen.","localAsr.errorDetails":"Fehlerdetails"}}
diff --git a/openless-all/app/linux-egui/examples/headless_host.rs b/openless-all/app/linux-egui/examples/headless_host.rs
index d7c45080c..7e7e6bf04 100644
--- a/openless-all/app/linux-egui/examples/headless_host.rs
+++ b/openless-all/app/linux-egui/examples/headless_host.rs
@@ -168,7 +168,10 @@ async fn main() -> Result<(), BackendError> {
backend
.cancel_less_computer(Some(less_computer_session))
.await?;
- assert!(backend.less_computer_capture_cancelled(less_computer_session));
+ // Core 2.0 cancellation is terminal and releases the capture lease. A host
+ // that observes the cancellation after the await must not expect the old
+ // lease's flag to remain queryable.
+ assert_eq!(backend.less_computer_active_session(), None);
backend.abort_less_computer_capture(less_computer_session)?;
assert_eq!(backend.less_computer_active_session(), None);
diff --git a/openless-all/app/linux-egui/packaging/AppRun b/openless-all/app/linux-egui/packaging/AppRun
new file mode 100644
index 000000000..473d1cea0
--- /dev/null
+++ b/openless-all/app/linux-egui/packaging/AppRun
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -euo pipefail
+ROOT=${APPDIR:-"$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"}
+export APPDIR="$ROOT"
+export OPENLESS_IME_FONT="$ROOT/usr/lib/openless/resources/fonts/NotoSansCJK-Regular.ttc"
+exec "$ROOT/usr/bin/openless" "$@"
diff --git a/openless-all/app/linux-egui/packaging/openless-desktop-integration b/openless-all/app/linux-egui/packaging/openless-desktop-integration
new file mode 100644
index 000000000..b7b6f3eda
--- /dev/null
+++ b/openless-all/app/linux-egui/packaging/openless-desktop-integration
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+set -euo pipefail
+ROOT=/usr
+if [ -n "${APPDIR:-}" ]; then ROOT="$APPDIR/usr"; fi
+exec bash "$ROOT/lib/openless/resources/linux-desktop/install.sh" "$@"
diff --git a/openless-all/app/linux-egui/src/atspi.rs b/openless-all/app/linux-egui/src/atspi.rs
new file mode 100644
index 000000000..cfd312be3
--- /dev/null
+++ b/openless-all/app/linux-egui/src/atspi.rs
@@ -0,0 +1,118 @@
+//! AT-SPI fallback uses the accessibility bus and a unique bus owner/object
+//! pair. Only the focused text object is read; passwords are never queried.
+use crate::context::{platform, TargetSnapshot, CONTEXT_PROTOCOL_VERSION};
+use dbus::blocking::{stdintf::org_freedesktop_dbus::Properties, Connection};
+use openless_core::BackendError;
+use std::collections::VecDeque;
+use std::time::{Duration, Instant};
+
+const ACCESSIBLE: &str = "org.a11y.atspi.Accessible";
+const TEXT: &str = "org.a11y.atspi.Text";
+const ROOT: &str = "/org/a11y/atspi/accessible/root";
+type Object = (String, dbus::Path<'static>);
+
+fn connect() -> Result {
+ let session = Connection::new_session().map_err(platform)?;
+ let (address,): (String,) = session
+ .with_proxy("org.a11y.Bus", "/org/a11y/bus", Duration::from_millis(500))
+ .method_call("org.a11y.Bus", "GetAddress", ())
+ .map_err(platform)?;
+ let mut channel = dbus::channel::Channel::open_private(&address).map_err(platform)?;
+ channel.register().map_err(platform)?;
+ Ok(Connection::from(channel))
+}
+
+fn focused(connection: &Connection, object: &Object) -> bool {
+ let states: Result<(Vec,), _> = connection
+ .with_proxy(&object.0, object.1.clone(), Duration::from_millis(100))
+ .method_call(ACCESSIBLE, "GetState", ());
+ states.is_ok_and(|(s,)| {
+ s.first()
+ .is_some_and(|bits| bits & (1 << 12) != 0 && bits & (1 << 6) == 0)
+ })
+}
+
+pub fn snapshot(
+ expected: Option<&str>,
+ include_text: bool,
+) -> Result {
+ let connection = connect()?;
+ let object = if let Some(expected) = expected {
+ let (owner, path) = expected
+ .strip_prefix("atspi:")
+ .and_then(|s| s.split_once('|'))
+ .ok_or_else(|| platform("invalid AT-SPI identity"))?;
+ (
+ owner.to_string(),
+ dbus::Path::new(path.to_string()).map_err(platform)?,
+ )
+ } else {
+ let root =
+ connection.with_proxy("org.a11y.atspi.Registry", ROOT, Duration::from_millis(200));
+ let (apps,): (Vec