From fcb59f35c5ec5e1fd40bf3c4b292cc1da0eb00b5 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Sun, 27 Sep 2026 02:55:27 -0700 Subject: [PATCH 1/2] Add cmux send --paste and hint at it for large multi-line sends `cmux send` types text as keystrokes, so every newline presses Enter and a multi-line prompt sent to Claude Code or Codex can submit line by line. `cmux paste` (#14837) already delivers text through `terminal.paste`, the Cmd+V path, but scripts that call `cmux send` had to switch commands. - `cmux send --paste` sends the text unchanged through `terminal.paste`, sharing one delivery function with `cmux paste` (target resolution, size check, queued-delivery output). `--paste` counts only before the text, so `cmux send echo --paste` and `cmux send -- --paste` still type it. - Without `--paste`, the default is unchanged. After a keystroke send of more than 4096 UTF-8 bytes containing a line break, a one-line hint on stderr recommends `--paste`. Stdout and the exit status are unaffected. - `cmux send --help` is now a localized catalog string and documents `--paste`; the hint is localized in all nine app locales. Co-Authored-By: Claude Opus 5.5 (1M context) --- CLI/CMUXCLI+Paste.swift | 106 +++++++++++++++++++-- CLI/CMUXCLI+TaskHelp.swift | 2 +- CLI/cmux.swift | 57 ++++++------ Resources/Localizable.xcstrings | 118 ++++++++++++++++++++++++ cmuxCLITests/CLIPasteCommandTests.swift | 106 +++++++++++++++++++++ docs/cli-contract.md | 2 +- 6 files changed, 355 insertions(+), 36 deletions(-) diff --git a/CLI/CMUXCLI+Paste.swift b/CLI/CMUXCLI+Paste.swift index 1bb8b4ceaff7..26d41f5e862a 100644 --- a/CLI/CMUXCLI+Paste.swift +++ b/CLI/CMUXCLI+Paste.swift @@ -91,13 +91,40 @@ extension CMUXCLI { guard !text.isEmpty else { throw CLIError(message: Self.pasteMissingTextMessage) } - try Self.ensureTextFitsSocketRequest(text, command: "paste") + try deliverTerminalPaste( + text: text, + command: "paste", + workspace: parsed.workspace, + surface: parsed.surface, + windowRaw: parsed.window ?? windowOverride, + submit: parsed.submit, + client: client, + jsonOutput: jsonOutput, + idFormat: idFormat + ) + } + + /// Sends `text` unchanged through `terminal.paste` and prints the result. + /// Shared by `cmux paste` and `cmux send --paste`, so both resolve their + /// targets and report delivery the same way. `command` names the caller + /// in the size-limit error. + func deliverTerminalPaste( + text: String, + command: String, + workspace: String?, + surface: String?, + windowRaw: String?, + submit: Bool, + client: SocketClient, + jsonOutput: Bool, + idFormat: CLIIDFormat + ) throws { + try Self.ensureTextFitsSocketRequest(text, command: command) - let windowRaw = parsed.window ?? windowOverride - let workspaceArg = parsed.workspace - ?? Self.callerWorkspaceForSurfaceHandle(parsed.surface, windowRaw: windowRaw) - let surfaceArg = parsed.surface - ?? (parsed.workspace == nil && windowRaw == nil + let workspaceArg = workspace + ?? Self.callerWorkspaceForSurfaceHandle(surface, windowRaw: windowRaw) + let surfaceArg = surface + ?? (workspace == nil && windowRaw == nil ? ProcessInfo.processInfo.environment["CMUX_SURFACE_ID"] : nil) @@ -105,7 +132,7 @@ extension CMUXCLI { "text": text, // `return` lets the host pick the agent-aware submit key (for // example ctrl+enter for a multi-line Claude Code prompt). - "submit_key": parsed.submit ? "return" : "none", + "submit_key": submit ? "return" : "none", ] let winId = try normalizeWindowHandle(windowRaw, client: client) if let winId { params["window_id"] = winId } @@ -115,7 +142,7 @@ extension CMUXCLI { if let sfId { params["surface_id"] = sfId } let payload = try client.sendV2(method: "terminal.paste", params: params) - if parsed.submit, (payload["submitted"] as? Bool) != true { + if submit, (payload["submitted"] as? Bool) != true { // The text is already at the prompt, so this is a warning rather // than a failure: a caller that retried would paste it twice. let reason = (payload["submit_error"] as? String) ?? "unknown" @@ -246,6 +273,69 @@ extension CMUXCLI { )) } + // MARK: - cmux send --paste + + /// Removes the leading `--paste` flags from `cmux send`'s text arguments. + /// Only flags before the text count, so `cmux send echo --paste` and + /// `cmux send -- --paste` still type `--paste` as text, as before. + static func splitSendPasteFlag(_ args: [String]) -> (usesPaste: Bool, textArgs: [String]) { + var rest = args[...] + var usesPaste = false + while rest.first == "--paste" { + usesPaste = true + rest = rest.dropFirst() + } + return (usesPaste, Array(rest)) + } + + /// `cmux send` without `--paste` suggests the paste path when the text is + /// more than this many UTF-8 bytes and has a line break. Both conditions + /// are required so ordinary commands (short, or one long line) never see + /// the hint. + static let sendPasteHintMinimumUTF8Bytes = 4096 + + /// Whether keystroke `send` text is large multi-line text: more than + /// ``sendPasteHintMinimumUTF8Bytes`` UTF-8 bytes with at least one line + /// break (a newline, or a `\n`/`\r` escape, both of which become Enter). + static func sendTextWarrantsPasteHint(_ text: String) -> Bool { + guard text.utf8.count > sendPasteHintMinimumUTF8Bytes else { return false } + return text.unicodeScalars.contains { $0 == "\n" || $0 == "\r" } + } + + /// Prints a one-line hint on stderr after a keystroke `send` of large + /// multi-line text. Stdout and the exit status are unaffected. + static func printSendPasteHintIfNeeded(_ text: String) { + guard sendTextWarrantsPasteHint(text) else { return } + let hint = String( + localized: "cli.send.hint.usePaste", + defaultValue: "hint: each newline was typed as Enter; for large multi-line text use cmux send --paste or cmux paste to deliver it as one paste" + ) + FileHandle.standardError.write(Data((hint + "\n").utf8)) + } + + static var sendHelp: String { + String(localized: "cli.help.send", defaultValue: """ + Usage: cmux send [flags] [--] + + Send text to a terminal surface as keystrokes. Escape sequences: \\n and \\r send Enter, \\t sends Tab. + + For large text (for example over 4 KB, or several lines going to an agent), use --paste or cmux paste. Keystrokes press Enter at every newline, which can submit each line on its own. + + With --paste, the text goes through the same paste path as cmux paste and Cmd+V, unchanged: escape sequences such as \\n are not interpreted, and control characters such as Esc and Ctrl-C are replaced with spaces. --paste must come before the text. + + Flags: + --workspace Target workspace (default: $CMUX_WORKSPACE_ID) + --surface Target surface (default: $CMUX_SURFACE_ID) + --window Window context for workspace/surface refs and indexes + --paste Paste the text instead of typing it + + Example: + cmux send "echo hello" + cmux send --surface surface:2 "ls -la\\n" + cmux send --paste --surface surface:2 "$(cat notes.md)" + """) + } + static var pasteHelp: String { String(localized: "cli.help.paste", defaultValue: """ Usage: cmux paste [flags] [--] [text | -] diff --git a/CLI/CMUXCLI+TaskHelp.swift b/CLI/CMUXCLI+TaskHelp.swift index 5876fa22e849..ba43bc721d94 100644 --- a/CLI/CMUXCLI+TaskHelp.swift +++ b/CLI/CMUXCLI+TaskHelp.swift @@ -308,7 +308,7 @@ extension CMUXCLI { automation [args] \(executionExchangeHelp) todo [args] [--workspace ] [--window ] - send [--workspace ] [--surface ] [--window ] + send [--workspace ] [--surface ] [--window ] [--paste] send-key [--workspace ] [--surface ] [--window ] paste [--workspace ] [--surface ] [--window ] [--submit] [text | -] send-panel --panel [--workspace ] [--window ] diff --git a/CLI/cmux.swift b/CLI/cmux.swift index a62303166c38..9b1f070f72ce 100644 --- a/CLI/cmux.swift +++ b/CLI/cmux.swift @@ -7515,19 +7515,37 @@ struct CMUXCLI { let (windowOpt, rem2) = parseOption(rem1, name: "--window") let windowRaw = windowOpt ?? windowId let workspaceArg = wsArg ?? Self.callerWorkspaceForSurfaceHandle(sfArg, windowRaw: windowRaw) - let surfaceArg = sfArg ?? (wsArg == nil && windowRaw == nil ? ProcessInfo.processInfo.environment["CMUX_SURFACE_ID"] : nil) - let rawText = rem2.dropFirst(rem2.first == "--" ? 1 : 0).joined(separator: " ") + let (usesPaste, textArgs) = Self.splitSendPasteFlag(rem2) + let rawText = textArgs.dropFirst(textArgs.first == "--" ? 1 : 0).joined(separator: " ") guard !rawText.isEmpty else { throw CLIError(message: "send requires text") } - let text = unescapeSendText(rawText) - var params: [String: Any] = ["text": text] - let winId = try normalizeWindowHandle(windowRaw, client: client) - if let winId { params["window_id"] = winId } - let wsId = try normalizeWorkspaceHandle(workspaceArg, client: client, windowHandle: winId) - if let wsId { params["workspace_id"] = wsId } - let sfId = try normalizeSurfaceHandle(surfaceArg, client: client, workspaceHandle: wsId, windowHandle: winId) - if let sfId { params["surface_id"] = sfId } - let payload = try client.sendV2(method: "surface.send_text", params: params) - printV2Payload(payload, jsonOutput: jsonOutput, idFormat: idFormat, fallbackText: v2SendSummary(payload, idFormat: idFormat)) + if usesPaste { + // Same path as `cmux paste`: the text goes out unchanged, so + // `\n`-style escapes are not rewritten. + try deliverTerminalPaste( + text: rawText, + command: "send", + workspace: wsArg, + surface: sfArg, + windowRaw: windowRaw, + submit: false, + client: client, + jsonOutput: jsonOutput, + idFormat: idFormat + ) + } else { + let surfaceArg = sfArg ?? (wsArg == nil && windowRaw == nil ? ProcessInfo.processInfo.environment["CMUX_SURFACE_ID"] : nil) + let text = unescapeSendText(rawText) + var params: [String: Any] = ["text": text] + let winId = try normalizeWindowHandle(windowRaw, client: client) + if let winId { params["window_id"] = winId } + let wsId = try normalizeWorkspaceHandle(workspaceArg, client: client, windowHandle: winId) + if let wsId { params["workspace_id"] = wsId } + let sfId = try normalizeSurfaceHandle(surfaceArg, client: client, workspaceHandle: wsId, windowHandle: winId) + if let sfId { params["surface_id"] = sfId } + let payload = try client.sendV2(method: "surface.send_text", params: params) + printV2Payload(payload, jsonOutput: jsonOutput, idFormat: idFormat, fallbackText: v2SendSummary(payload, idFormat: idFormat)) + Self.printSendPasteHintIfNeeded(text) + } case "paste": try runPasteCommand( @@ -19990,20 +20008,7 @@ struct CMUXCLI { case "paste": return Self.pasteHelp case "send": - return """ - Usage: cmux send [flags] [--] - - Send text to a terminal surface. Escape sequences: \\n and \\r send Enter, \\t sends Tab. - - Flags: - --workspace Target workspace (default: $CMUX_WORKSPACE_ID) - --surface Target surface (default: $CMUX_SURFACE_ID) - --window Window context for workspace/surface refs and indexes - - Example: - cmux send "echo hello" - cmux send --surface surface:2 "ls -la\\n" - """ + return Self.sendHelp case "send-key": return """ Usage: cmux send-key [flags] [--] diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 4e2f2d296a22..c76e7c7395e8 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -561905,6 +561905,124 @@ } } } + }, + "cli.help.send": { + "extractionState": "manual", + "localizations": { + "ar": { + "stringUnit": { + "state": "translated", + "value": "الاستخدام: cmux send [flags] [--] \n\nيرسل نصًا إلى سطح طرفية كضغطات مفاتيح. تسلسلات الهروب: \\n و\\r ترسلان Enter، و\\t ترسل Tab.\n\nللنصوص الكبيرة (مثلًا أكثر من 4 كيلوبايت، أو عدة أسطر موجهة إلى وكيل)، استخدم --paste أو cmux paste. تضغط ضغطات المفاتيح Enter عند كل سطر جديد، مما قد يرسل كل سطر بمفرده.\n\nمع --paste، يمر النص دون تغيير عبر مسار اللصق نفسه الذي يستخدمه cmux paste وCmd+V: لا تُفسَّر تسلسلات الهروب مثل \\n، وتُستبدل أحرف التحكم مثل Esc وCtrl-C بمسافات. يجب أن يأتي --paste قبل النص.\n\nالخيارات:\n --workspace مساحة العمل المستهدفة (الافتراضي: $CMUX_WORKSPACE_ID)\n --surface السطح المستهدف (الافتراضي: $CMUX_SURFACE_ID)\n --window سياق النافذة لمراجع وفهارس مساحة العمل/السطح\n --paste يلصق النص بدلًا من كتابته\n\nمثال:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Verwendung: cmux send [flags] [--] \n\nSendet Text als Tastatureingaben an eine Terminal-Oberfläche. Escape-Sequenzen: \\n und \\r senden Enter, \\t sendet Tab.\n\nFür große Texte (zum Beispiel über 4 KB oder mehrere Zeilen an einen Agenten) --paste oder cmux paste verwenden. Tastatureingaben drücken bei jedem Zeilenumbruch Enter, wodurch jede Zeile einzeln abgesendet werden kann.\n\nMit --paste geht der Text unverändert über denselben Einfügepfad wie cmux paste und Cmd+V: Escape-Sequenzen wie \\n werden nicht interpretiert, und Steuerzeichen wie Esc und Strg-C werden durch Leerzeichen ersetzt. --paste muss vor dem Text stehen.\n\nFlags:\n --workspace Ziel-Workspace (Standard: $CMUX_WORKSPACE_ID)\n --surface Ziel-Oberfläche (Standard: $CMUX_SURFACE_ID)\n --window Fensterkontext für Workspace-/Oberflächen-Refs und -Indizes\n --paste Fügt den Text ein, statt ihn zu tippen\n\nBeispiel:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "en": { + "stringUnit": { + "state": "translated", + "value": "Usage: cmux send [flags] [--] \n\nSend text to a terminal surface as keystrokes. Escape sequences: \\n and \\r send Enter, \\t sends Tab.\n\nFor large text (for example over 4 KB, or several lines going to an agent), use --paste or cmux paste. Keystrokes press Enter at every newline, which can submit each line on its own.\n\nWith --paste, the text goes through the same paste path as cmux paste and Cmd+V, unchanged: escape sequences such as \\n are not interpreted, and control characters such as Esc and Ctrl-C are replaced with spaces. --paste must come before the text.\n\nFlags:\n --workspace Target workspace (default: $CMUX_WORKSPACE_ID)\n --surface Target surface (default: $CMUX_SURFACE_ID)\n --window Window context for workspace/surface refs and indexes\n --paste Paste the text instead of typing it\n\nExample:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Uso: cmux send [flags] [--] \n\nEnvía texto a una superficie de terminal como pulsaciones de teclas. Secuencias de escape: \\n y \\r envían Intro, \\t envía Tab.\n\nPara textos grandes (por ejemplo, más de 4 KB o varias líneas dirigidas a un agente), usa --paste o cmux paste. Las pulsaciones presionan Intro en cada salto de línea, lo que puede enviar cada línea por separado.\n\nCon --paste, el texto pasa sin cambios por la misma ruta de pegado que cmux paste y Cmd+V: las secuencias de escape como \\n no se interpretan y los caracteres de control como Esc y Ctrl-C se reemplazan por espacios. --paste debe ir antes del texto.\n\nOpciones:\n --workspace Espacio de trabajo de destino (predeterminado: $CMUX_WORKSPACE_ID)\n --surface Superficie de destino (predeterminada: $CMUX_SURFACE_ID)\n --window Contexto de ventana para referencias e índices de espacio de trabajo/superficie\n --paste Pega el texto en lugar de escribirlo\n\nEjemplo:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utilisation : cmux send [flags] [--] \n\nEnvoie du texte à une surface de terminal sous forme de frappes. Séquences d’échappement : \\n et \\r envoient Entrée, \\t envoie Tab.\n\nPour un texte volumineux (par exemple plus de 4 Ko, ou plusieurs lignes destinées à un agent), utilisez --paste ou cmux paste. Les frappes appuient sur Entrée à chaque saut de ligne, ce qui peut envoyer chaque ligne séparément.\n\nAvec --paste, le texte passe tel quel par le même chemin de collage que cmux paste et Cmd+V : les séquences d’échappement comme \\n ne sont pas interprétées, et les caractères de contrôle comme Échap et Ctrl-C sont remplacés par des espaces. --paste doit précéder le texte.\n\nOptions :\n --workspace Espace de travail cible (par défaut : $CMUX_WORKSPACE_ID)\n --surface Surface cible (par défaut : $CMUX_SURFACE_ID)\n --window Contexte de fenêtre pour les références et index d’espace de travail/surface\n --paste Colle le texte au lieu de le taper\n\nExemple :\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "使用方法: cmux send [flags] [--] \n\nテキストをキー入力としてターミナルサーフェスに送信します。エスケープシーケンス: \\n と \\r は Enter、\\t は Tab を送信します。\n\n大きなテキスト(たとえば 4 KB を超えるもの、またはエージェントに送る複数行)には --paste または cmux paste を使ってください。キー入力では改行ごとに Enter が押されるため、各行が個別に送信されることがあります。\n\n--paste を使うと、テキストはそのまま cmux paste や Cmd+V と同じ貼り付け経路で送られます。\\n などのエスケープシーケンスは解釈されず、Esc や Ctrl-C などの制御文字はスペースに置き換えられます。--paste はテキストより前に指定してください。\n\nフラグ:\n --workspace 対象ワークスペース(既定: $CMUX_WORKSPACE_ID)\n --surface 対象サーフェス(既定: $CMUX_SURFACE_ID)\n --window ワークスペース/サーフェスの参照とインデックスに使うウィンドウコンテキスト\n --paste テキストを入力する代わりに貼り付けます\n\n例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사용법: cmux send [flags] [--] \n\n텍스트를 키 입력으로 터미널 서피스에 보냅니다. 이스케이프 시퀀스: \\n과 \\r은 Enter, \\t는 Tab을 보냅니다.\n\n큰 텍스트(예: 4 KB 초과 또는 에이전트로 보내는 여러 줄)에는 --paste 또는 cmux paste를 사용하세요. 키 입력은 줄바꿈마다 Enter를 누르므로 각 줄이 따로 제출될 수 있습니다.\n\n--paste를 쓰면 텍스트가 변경 없이 cmux paste 및 Cmd+V와 같은 붙여넣기 경로로 전달됩니다. \\n 같은 이스케이프 시퀀스는 해석되지 않으며, Esc와 Ctrl-C 같은 제어 문자는 공백으로 바뀝니다. --paste는 텍스트보다 앞에 와야 합니다.\n\n플래그:\n --workspace 대상 워크스페이스 (기본값: $CMUX_WORKSPACE_ID)\n --surface 대상 서피스 (기본값: $CMUX_SURFACE_ID)\n --window 워크스페이스/서피스 참조와 인덱스에 사용할 창 컨텍스트\n --paste 텍스트를 입력하는 대신 붙여넣습니다\n\n예:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "用法:cmux send [flags] [--] \n\n以按键方式将文本发送到终端表面。转义序列:\\n 和 \\r 发送 Enter,\\t 发送 Tab。\n\n对于大量文本(例如超过 4 KB,或要发给代理的多行文本),请使用 --paste 或 cmux paste。按键方式会在每个换行处按下 Enter,可能让每一行单独提交。\n\n使用 --paste 时,文本会原样通过与 cmux paste 和 Cmd+V 相同的粘贴路径发送:不会解释 \\n 等转义序列,Esc 和 Ctrl-C 等控制字符会被替换为空格。--paste 必须放在文本之前。\n\n标志:\n --workspace 目标工作区(默认:$CMUX_WORKSPACE_ID)\n --surface 目标表面(默认:$CMUX_SURFACE_ID)\n --window 工作区/表面引用与索引的窗口上下文\n --paste 粘贴文本,而不是逐键输入\n\n示例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "用法:cmux send [flags] [--] \n\n以按鍵方式將文字傳送到終端機表面。跳脫序列:\\n 和 \\r 送出 Enter,\\t 送出 Tab。\n\n若是大量文字(例如超過 4 KB,或要送給代理的多行文字),請使用 --paste 或 cmux paste。按鍵方式會在每個換行處按下 Enter,可能讓每一行各自送出。\n\n使用 --paste 時,文字會原封不動地透過與 cmux paste 和 Cmd+V 相同的貼上路徑送出:不會解譯 \\n 等跳脫序列,Esc 和 Ctrl-C 等控制字元會被替換為空格。--paste 必須放在文字之前。\n\n旗標:\n --workspace 目標工作區(預設:$CMUX_WORKSPACE_ID)\n --surface 目標表面(預設:$CMUX_SURFACE_ID)\n --window 工作區/表面參照與索引所用的視窗上下文\n --paste 貼上文字,而不是逐鍵輸入\n\n範例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + } + } + }, + "cli.send.hint.usePaste": { + "extractionState": "manual", + "localizations": { + "ar": { + "stringUnit": { + "state": "translated", + "value": "تلميح: كُتب كل سطر جديد كضغطة Enter؛ للنصوص الكبيرة متعددة الأسطر استخدم cmux send --paste أو cmux paste لإرسالها كلصقة واحدة" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Hinweis: Jeder Zeilenumbruch wurde als Enter getippt; für große mehrzeilige Texte cmux send --paste oder cmux paste verwenden, um sie als ein einziges Einfügen zu senden" + } + }, + "en": { + "stringUnit": { + "state": "translated", + "value": "hint: each newline was typed as Enter; for large multi-line text use cmux send --paste or cmux paste to deliver it as one paste" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "sugerencia: cada salto de línea se escribió como Intro; para textos grandes de varias líneas usa cmux send --paste o cmux paste para enviarlos como un solo pegado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "astuce : chaque saut de ligne a été tapé comme Entrée ; pour un texte volumineux sur plusieurs lignes, utilisez cmux send --paste ou cmux paste pour l’envoyer en un seul collage" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ヒント: 各改行は Enter として入力されました。大きな複数行テキストは cmux send --paste または cmux paste を使うと 1 回の貼り付けとして送れます" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "힌트: 각 줄바꿈이 Enter로 입력되었습니다. 큰 여러 줄 텍스트는 cmux send --paste 또는 cmux paste를 사용해 한 번의 붙여넣기로 보내세요" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "提示:每个换行都作为 Enter 输入;对于大量多行文本,请使用 cmux send --paste 或 cmux paste 以一次粘贴发送" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "提示:每個換行都以 Enter 輸入;若是大量多行文字,請使用 cmux send --paste 或 cmux paste 以單次貼上送出" + } + } + } } }, "version": "1.0" diff --git a/cmuxCLITests/CLIPasteCommandTests.swift b/cmuxCLITests/CLIPasteCommandTests.swift index 3560c3277a03..3e13a1474db7 100644 --- a/cmuxCLITests/CLIPasteCommandTests.swift +++ b/cmuxCLITests/CLIPasteCommandTests.swift @@ -131,6 +131,112 @@ struct CLIPasteCommandTests { #expect(run.requests.last?["method"] as? String == "surface.send_text") } + // MARK: - cmux send --paste + + @Test func sendPasteUsesTerminalPasteWithTheTextUnchanged() throws { + let text = "first line\nsecond line with a literal \\n escape" + for arguments in [ + ["send", "--paste", "--surface", Self.targetSurfaceRef, text], + ["send", "--surface", Self.targetSurfaceRef, "--paste", "--", text], + ] { + let run = try runCLI(arguments: arguments) + + #expect(run.result.status == 0, Comment(rawValue: run.result.stderr + run.result.stdout)) + let request = try #require(run.requests.last) + #expect(request["method"] as? String == "terminal.paste") + #expect(run.requests.compactMap { $0["method"] as? String }.contains("surface.send_text") == false) + let params = try #require(request["params"] as? [String: Any]) + #expect(params["text"] as? String == text) + #expect(params["submit_key"] as? String == "none") + #expect(params["surface_id"] as? String == Self.targetSurfaceRef) + } + } + + @Test func sendWithoutPasteKeepsTheKeystrokePath() throws { + let run = try runCLI(arguments: ["send", "--surface", Self.targetSurfaceRef, "echo hi\\n"]) + + #expect(run.result.status == 0, Comment(rawValue: run.result.stderr + run.result.stdout)) + let request = try #require(run.requests.last) + #expect(request["method"] as? String == "surface.send_text") + #expect(run.requests.compactMap { $0["method"] as? String }.contains("terminal.paste") == false) + let params = try #require(request["params"] as? [String: Any]) + #expect(params["text"] as? String == "echo hi\r") + #expect(params["surface_id"] as? String == Self.targetSurfaceRef) + #expect(params["submit_key"] == nil) + #expect(run.result.stderr.isEmpty, Comment(rawValue: run.result.stderr)) + } + + @Test func sendTypesPasteAsTextWhenItIsNotALeadingFlag() throws { + for (arguments, expected) in [ + (["send", "--surface", Self.targetSurfaceRef, "echo", "--paste"], "echo --paste"), + (["send", "--surface", Self.targetSurfaceRef, "--", "--paste"], "--paste"), + ] { + let run = try runCLI(arguments: arguments) + + #expect(run.result.status == 0, Comment(rawValue: run.result.stderr + run.result.stdout)) + let request = try #require(run.requests.last) + #expect(request["method"] as? String == "surface.send_text") + let params = try #require(request["params"] as? [String: Any]) + #expect(params["text"] as? String == expected) + } + } + + @Test func sendPasteWithoutTextFailsWithoutWriting() throws { + let run = try runCLI(arguments: ["send", "--paste", "--surface", Self.targetSurfaceRef]) + + #expect(run.result.status != 0) + #expect(run.requests.compactMap { $0["method"] as? String }.contains("terminal.paste") == false) + #expect(run.requests.compactMap { $0["method"] as? String }.contains("surface.send_text") == false) + } + + @Test func sendHintsAtPasteOnlyForLargeMultiLineKeystrokeText() throws { + let large = String(repeating: "x", count: 4096) + "\nsecond line" + let hinted = try runCLI(arguments: ["send", "--surface", Self.targetSurfaceRef, "--", large]) + #expect(hinted.result.status == 0, Comment(rawValue: hinted.result.stderr + hinted.result.stdout)) + #expect(hinted.requests.last?["method"] as? String == "surface.send_text") + #expect(hinted.result.stderr.contains("cmux send --paste"), Comment(rawValue: hinted.result.stderr)) + #expect(hinted.result.stdout.contains("cmux send --paste") == false) + + // The hint goes to stderr only: stdout matches a send without it. + let small = try runCLI(arguments: ["send", "--surface", Self.targetSurfaceRef, "--", "echo hi\n"]) + #expect(small.result.status == 0, Comment(rawValue: small.result.stderr + small.result.stdout)) + #expect(small.result.stderr.isEmpty, Comment(rawValue: small.result.stderr)) + #expect(hinted.result.stdout == small.result.stdout) + + let longSingleLine = try runCLI(arguments: [ + "send", "--surface", Self.targetSurfaceRef, "--", String(repeating: "y", count: 8192), + ]) + #expect(longSingleLine.result.status == 0) + #expect(longSingleLine.result.stderr.isEmpty, Comment(rawValue: longSingleLine.result.stderr)) + + let pasted = try runCLI(arguments: ["send", "--paste", "--surface", Self.targetSurfaceRef, "--", large]) + #expect(pasted.result.status == 0, Comment(rawValue: pasted.result.stderr + pasted.result.stdout)) + #expect(pasted.requests.last?["method"] as? String == "terminal.paste") + #expect(pasted.result.stderr.isEmpty, Comment(rawValue: pasted.result.stderr)) + } + + /// The hint needs more than 4096 UTF-8 bytes (after `\n`-style escapes + /// are rewritten) and a line break. The CLI target is not linked into + /// this bundle, so the boundary is checked through the binary. + @Test func sendPasteHintThresholdNeedsMoreThanTheLimitAndALineBreak() throws { + let limit = 4096 + for (text, expectsHint) in [ + (String(repeating: "a", count: limit - 1) + "\n", false), + (String(repeating: "a", count: limit) + "\n", true), + (String(repeating: "a", count: limit) + "\\r", true), + (String(repeating: "a", count: limit + 1), false), + ] { + let run = try runCLI(arguments: ["send", "--surface", Self.targetSurfaceRef, "--", text]) + + #expect(run.result.status == 0, Comment(rawValue: run.result.stderr + run.result.stdout)) + #expect(run.requests.last?["method"] as? String == "surface.send_text") + #expect( + run.result.stderr.contains("cmux send --paste") == expectsHint, + Comment(rawValue: "\(text.utf8.count) bytes: \(run.result.stderr)") + ) + } + } + // MARK: - Harness private struct Run { diff --git a/docs/cli-contract.md b/docs/cli-contract.md index 6b0445b323b4..a8a4e37dbe99 100644 --- a/docs/cli-contract.md +++ b/docs/cli-contract.md @@ -156,7 +156,7 @@ Environment: | `current-workspace` | Print current workspace information. | | `read-selection` | Read the active selection from a terminal, file preview, Markdown, or browser surface. Plain output includes available source context; `--json` returns the complete socket response. | | `read-screen` | Read terminal text from a surface. `--selection` is a text-only compatibility alias for `read-selection`. | -| `send` | Send text to a terminal surface. | +| `send` | Send text to a terminal surface as keystrokes (`surface.send_text`). `--paste`, before the text, sends it unchanged through the Cmd+V paste path (`terminal.paste`) instead, like `cmux paste`. Without `--paste`, large multi-line text prints a hint on stderr recommending it. | | `send-key` | Send one key to a terminal surface. | | `paste` | Paste text from an argument or stdin into a terminal surface through the Cmd+V paste path (`terminal.paste`). The CLI sends the text unchanged; Ghostty brackets it when the program enabled bracketed paste (otherwise newlines become Enter) and replaces unsafe control bytes with spaces. `--submit` presses the agent-aware submit key afterwards. Local socket only: `terminal.paste` is not on the `cmux ssh` relay allowlist. | | `send-panel` | Send text to a panel/surface. | From abf237324f280de6c5c87537a1a6e256d8c95378 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Sun, 27 Sep 2026 07:01:06 -0700 Subject: [PATCH 2/2] Preserve main catalog ordering after paste flag catch-up --- Resources/Localizable.xcstrings | 8872 +++++++++++++++---------------- 1 file changed, 4436 insertions(+), 4436 deletions(-) diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 490034045bb1..730079e87ce7 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -1,61 +1,120 @@ { "sourceLanguage": "en", "strings": { - "cli.session.usage": { + "cli.help.send": { "extractionState": "manual", "localizations": { - "en": { + "ar": { "stringUnit": { "state": "translated", - "value": "Usage: cmux session move --to [options]\n\nMove a stopped Claude Code session to another machine and resume it there.\nExit the agent first: the move refuses while the session runs on either side.\n\nThe move carries:\n - the cwd's git checkout: HEAD (on the same branch when safe) plus modified,\n deleted and untracked non-ignored files; a worktree is added when the\n repository exists on the destination but the path does not\n - the transcript, its session directory, file history, and the project\n memory directory (merged both ways, newest wins, nothing deleted)\n\nIt then opens a workspace on the destination (`cmux ssh` for a host, a local\nworkspace for `local`) that resumes the session with its recorded launcher.\nWhen the destination home is not at the same absolute path, paths under the\nhome are mapped and the project is re-slugged.\n\nOptions:\n --to SSH destination (user@host or ssh_config alias), or local\n --from Where the session is now (default: where the last move put it, else local)\n --name Workspace title (default: the first 8 characters of the id)\n --no-code Do not carry the git checkout\n --port <n> SSH port\n --identity <path> SSH identity file\n --ssh-option <opt> Extra SSH -o option (repeatable)\n --no-focus Open the workspace without switching to it\n\nExamples:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "الاستخدام: cmux send [flags] [--] <text>\n\nيرسل نصًا إلى سطح طرفية كضغطات مفاتيح. تسلسلات الهروب: \\n و\\r ترسلان Enter، و\\t ترسل Tab.\n\nللنصوص الكبيرة (مثلًا أكثر من 4 كيلوبايت، أو عدة أسطر موجهة إلى وكيل)، استخدم --paste أو cmux paste. تضغط ضغطات المفاتيح Enter عند كل سطر جديد، مما قد يرسل كل سطر بمفرده.\n\nمع --paste، يمر النص دون تغيير عبر مسار اللصق نفسه الذي يستخدمه cmux paste وCmd+V: لا تُفسَّر تسلسلات الهروب مثل \\n، وتُستبدل أحرف التحكم مثل Esc وCtrl-C بمسافات. يجب أن يأتي --paste قبل النص.\n\nالخيارات:\n --workspace <id|ref|index> مساحة العمل المستهدفة (الافتراضي: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> السطح المستهدف (الافتراضي: $CMUX_SURFACE_ID)\n --window <id|ref|index> سياق النافذة لمراجع وفهارس مساحة العمل/السطح\n --paste يلصق النص بدلًا من كتابته\n\nمثال:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" } }, "de": { "stringUnit": { "state": "translated", - "value": "Verwendung: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nVerschiebt eine beendete Claude Code-Sitzung auf eine andere Maschine und setzt sie dort fort.\nBeende zuerst den Agenten: Die Verschiebung wird abgelehnt, solange die Sitzung auf einer Seite läuft.\n\nDie Verschiebung überträgt:\n - den git-Checkout des cwd: HEAD (auf demselben Branch, wenn das sicher ist) sowie geänderte,\n gelöschte und nicht ignorierte, nicht verfolgte Dateien; ein Worktree wird hinzugefügt, wenn\n das Repository am Ziel existiert, der Pfad aber nicht\n - das Transkript, sein Sitzungsverzeichnis, den Dateiverlauf und das Projektgedächtnis\n (in beide Richtungen zusammengeführt, das Neueste gewinnt, nichts wird gelöscht)\n\nDanach öffnet sie am Ziel einen Workspace (`cmux ssh` für einen Host, einen lokalen Workspace\nfür `local`), der die Sitzung mit ihrem aufgezeichneten Launcher fortsetzt. Liegt das Home-\nVerzeichnis am Ziel nicht unter demselben absoluten Pfad, werden Pfade darunter umgeschrieben\nund das Projekt erhält einen neuen Slug.\n\nOptionen:\n --to <destination> SSH-Ziel (user@host oder ssh_config-Alias) oder local\n --from <destination> Wo die Sitzung jetzt ist (Standard: wohin die letzte Verschiebung sie gebracht hat, sonst local)\n --name <title> Workspace-Titel (Standard: die ersten 8 Zeichen der ID)\n --no-code Den git-Checkout nicht übertragen\n --port <n> SSH-Port\n --identity <path> SSH-Identitätsdatei\n --ssh-option <opt> Zusätzliche SSH-Option -o (wiederholbar)\n --no-focus Workspace öffnen, ohne dorthin zu wechseln\n\nBeispiele:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "Verwendung: cmux send [flags] [--] <text>\n\nSendet Text als Tastatureingaben an eine Terminal-Oberfläche. Escape-Sequenzen: \\n und \\r senden Enter, \\t sendet Tab.\n\nFür große Texte (zum Beispiel über 4 KB oder mehrere Zeilen an einen Agenten) --paste oder cmux paste verwenden. Tastatureingaben drücken bei jedem Zeilenumbruch Enter, wodurch jede Zeile einzeln abgesendet werden kann.\n\nMit --paste geht der Text unverändert über denselben Einfügepfad wie cmux paste und Cmd+V: Escape-Sequenzen wie \\n werden nicht interpretiert, und Steuerzeichen wie Esc und Strg-C werden durch Leerzeichen ersetzt. --paste muss vor dem Text stehen.\n\nFlags:\n --workspace <id|ref|index> Ziel-Workspace (Standard: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Ziel-Oberfläche (Standard: $CMUX_SURFACE_ID)\n --window <id|ref|index> Fensterkontext für Workspace-/Oberflächen-Refs und -Indizes\n --paste Fügt den Text ein, statt ihn zu tippen\n\nBeispiel:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "en": { + "stringUnit": { + "state": "translated", + "value": "Usage: cmux send [flags] [--] <text>\n\nSend text to a terminal surface as keystrokes. Escape sequences: \\n and \\r send Enter, \\t sends Tab.\n\nFor large text (for example over 4 KB, or several lines going to an agent), use --paste or cmux paste. Keystrokes press Enter at every newline, which can submit each line on its own.\n\nWith --paste, the text goes through the same paste path as cmux paste and Cmd+V, unchanged: escape sequences such as \\n are not interpreted, and control characters such as Esc and Ctrl-C are replaced with spaces. --paste must come before the text.\n\nFlags:\n --workspace <id|ref|index> Target workspace (default: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Target surface (default: $CMUX_SURFACE_ID)\n --window <id|ref|index> Window context for workspace/surface refs and indexes\n --paste Paste the text instead of typing it\n\nExample:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Uso: cmux send [flags] [--] <text>\n\nEnvía texto a una superficie de terminal como pulsaciones de teclas. Secuencias de escape: \\n y \\r envían Intro, \\t envía Tab.\n\nPara textos grandes (por ejemplo, más de 4 KB o varias líneas dirigidas a un agente), usa --paste o cmux paste. Las pulsaciones presionan Intro en cada salto de línea, lo que puede enviar cada línea por separado.\n\nCon --paste, el texto pasa sin cambios por la misma ruta de pegado que cmux paste y Cmd+V: las secuencias de escape como \\n no se interpretan y los caracteres de control como Esc y Ctrl-C se reemplazan por espacios. --paste debe ir antes del texto.\n\nOpciones:\n --workspace <id|ref|index> Espacio de trabajo de destino (predeterminado: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Superficie de destino (predeterminada: $CMUX_SURFACE_ID)\n --window <id|ref|index> Contexto de ventana para referencias e índices de espacio de trabajo/superficie\n --paste Pega el texto en lugar de escribirlo\n\nEjemplo:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Utilisation: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nDéplace une session Claude Code arrêtée vers une autre machine et la reprend là-bas.\nQuittez d'abord l'agent : le déplacement est refusé tant que la session s'exécute d'un côté ou de l'autre.\n\nLe déplacement transfère :\n - le checkout git du cwd : HEAD (sur la même branche quand c'est sûr) ainsi que les fichiers\n modifiés, supprimés et non suivis non ignorés ; un worktree est ajouté quand le dépôt existe\n sur la destination mais pas le chemin\n - la transcription, son répertoire de session, l'historique des fichiers et la mémoire du\n projet (fusionnée dans les deux sens, le plus récent l'emporte, rien n'est supprimé)\n\nIl ouvre ensuite un espace de travail sur la destination (`cmux ssh` pour un hôte, un espace\nlocal pour `local`) qui reprend la session avec son lanceur enregistré. Quand le dossier\npersonnel de destination n'a pas le même chemin absolu, les chemins qu'il contient sont\nconvertis et le projet reçoit un nouveau slug.\n\nOptions :\n --to <destination> Destination SSH (user@host ou alias ssh_config), ou local\n --from <destination> Où se trouve la session (par défaut : là où l'a mise le dernier déplacement, sinon local)\n --name <title> Titre de l'espace de travail (par défaut : les 8 premiers caractères de l'id)\n --no-code Ne pas transférer le checkout git\n --port <n> Port SSH\n --identity <path> Fichier d'identité SSH\n --ssh-option <opt> Option SSH -o supplémentaire (répétable)\n --no-focus Ouvrir l'espace de travail sans y basculer\n\nExemples :\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "Utilisation : cmux send [flags] [--] <text>\n\nEnvoie du texte à une surface de terminal sous forme de frappes. Séquences d’échappement : \\n et \\r envoient Entrée, \\t envoie Tab.\n\nPour un texte volumineux (par exemple plus de 4 Ko, ou plusieurs lignes destinées à un agent), utilisez --paste ou cmux paste. Les frappes appuient sur Entrée à chaque saut de ligne, ce qui peut envoyer chaque ligne séparément.\n\nAvec --paste, le texte passe tel quel par le même chemin de collage que cmux paste et Cmd+V : les séquences d’échappement comme \\n ne sont pas interprétées, et les caractères de contrôle comme Échap et Ctrl-C sont remplacés par des espaces. --paste doit précéder le texte.\n\nOptions :\n --workspace <id|ref|index> Espace de travail cible (par défaut : $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Surface cible (par défaut : $CMUX_SURFACE_ID)\n --window <id|ref|index> Contexte de fenêtre pour les références et index d’espace de travail/surface\n --paste Colle le texte au lieu de le taper\n\nExemple :\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "使用方法: cmux send [flags] [--] <text>\n\nテキストをキー入力としてターミナルサーフェスに送信します。エスケープシーケンス: \\n と \\r は Enter、\\t は Tab を送信します。\n\n大きなテキスト(たとえば 4 KB を超えるもの、またはエージェントに送る複数行)には --paste または cmux paste を使ってください。キー入力では改行ごとに Enter が押されるため、各行が個別に送信されることがあります。\n\n--paste を使うと、テキストはそのまま cmux paste や Cmd+V と同じ貼り付け経路で送られます。\\n などのエスケープシーケンスは解釈されず、Esc や Ctrl-C などの制御文字はスペースに置き換えられます。--paste はテキストより前に指定してください。\n\nフラグ:\n --workspace <id|ref|index> 対象ワークスペース(既定: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 対象サーフェス(既定: $CMUX_SURFACE_ID)\n --window <id|ref|index> ワークスペース/サーフェスの参照とインデックスに使うウィンドウコンテキスト\n --paste テキストを入力する代わりに貼り付けます\n\n例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사용법: cmux send [flags] [--] <text>\n\n텍스트를 키 입력으로 터미널 서피스에 보냅니다. 이스케이프 시퀀스: \\n과 \\r은 Enter, \\t는 Tab을 보냅니다.\n\n큰 텍스트(예: 4 KB 초과 또는 에이전트로 보내는 여러 줄)에는 --paste 또는 cmux paste를 사용하세요. 키 입력은 줄바꿈마다 Enter를 누르므로 각 줄이 따로 제출될 수 있습니다.\n\n--paste를 쓰면 텍스트가 변경 없이 cmux paste 및 Cmd+V와 같은 붙여넣기 경로로 전달됩니다. \\n 같은 이스케이프 시퀀스는 해석되지 않으며, Esc와 Ctrl-C 같은 제어 문자는 공백으로 바뀝니다. --paste는 텍스트보다 앞에 와야 합니다.\n\n플래그:\n --workspace <id|ref|index> 대상 워크스페이스 (기본값: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 대상 서피스 (기본값: $CMUX_SURFACE_ID)\n --window <id|ref|index> 워크스페이스/서피스 참조와 인덱스에 사용할 창 컨텍스트\n --paste 텍스트를 입력하는 대신 붙여넣습니다\n\n예:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" } }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "用法:cmux send [flags] [--] <text>\n\n以按键方式将文本发送到终端表面。转义序列:\\n 和 \\r 发送 Enter,\\t 发送 Tab。\n\n对于大量文本(例如超过 4 KB,或要发给代理的多行文本),请使用 --paste 或 cmux paste。按键方式会在每个换行处按下 Enter,可能让每一行单独提交。\n\n使用 --paste 时,文本会原样通过与 cmux paste 和 Cmd+V 相同的粘贴路径发送:不会解释 \\n 等转义序列,Esc 和 Ctrl-C 等控制字符会被替换为空格。--paste 必须放在文本之前。\n\n标志:\n --workspace <id|ref|index> 目标工作区(默认:$CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 目标表面(默认:$CMUX_SURFACE_ID)\n --window <id|ref|index> 工作区/表面引用与索引的窗口上下文\n --paste 粘贴文本,而不是逐键输入\n\n示例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "用法:cmux send [flags] [--] <text>\n\n以按鍵方式將文字傳送到終端機表面。跳脫序列:\\n 和 \\r 送出 Enter,\\t 送出 Tab。\n\n若是大量文字(例如超過 4 KB,或要送給代理的多行文字),請使用 --paste 或 cmux paste。按鍵方式會在每個換行處按下 Enter,可能讓每一行各自送出。\n\n使用 --paste 時,文字會原封不動地透過與 cmux paste 和 Cmd+V 相同的貼上路徑送出:不會解譯 \\n 等跳脫序列,Esc 和 Ctrl-C 等控制字元會被替換為空格。--paste 必須放在文字之前。\n\n旗標:\n --workspace <id|ref|index> 目標工作區(預設:$CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 目標表面(預設:$CMUX_SURFACE_ID)\n --window <id|ref|index> 工作區/表面參照與索引所用的視窗上下文\n --paste 貼上文字,而不是逐鍵輸入\n\n範例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + } + } + } + }, + "cli.send.hint.usePaste": { + "extractionState": "manual", + "localizations": { "ar": { "stringUnit": { "state": "translated", - "value": "الاستخدام: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nينقل جلسة Claude Code متوقفة إلى جهاز آخر ويستأنفها هناك.\nأغلق الوكيل أولًا: يُرفض النقل ما دامت الجلسة تعمل على أي من الجانبين.\n\nينقل الأمر:\n - checkout الخاص بـ git في cwd: HEAD (على الفرع نفسه عندما يكون ذلك آمنًا) والملفات المعدّلة\n والمحذوفة وغير المتتبعة وغير المتجاهلة؛ ويُضاف worktree عندما يوجد المستودع في الوجهة\n ولا يوجد المسار\n - نص الجلسة ودليل الجلسة وسجل الملفات ودليل ذاكرة المشروع\n (مدمج في الاتجاهين، الأحدث يفوز، ولا يُحذف شيء)\n\nثم يفتح مساحة عمل في الوجهة (`cmux ssh` لمضيف، أو مساحة عمل محلية لـ `local`)\nتستأنف الجلسة بالمشغّل المسجّل لها. عندما لا يكون المجلد الرئيسي في الوجهة\nعلى المسار المطلق نفسه، تُحوَّل المسارات داخله\nويُعاد إنشاء slug للمشروع.\n\nالخيارات:\n --to <destination> وجهة SSH (user@host أو اسم مستعار من ssh_config)، أو local\n --from <destination> مكان الجلسة الآن (الافتراضي: حيث وضعها آخر نقل، وإلا local)\n --name <title> عنوان مساحة العمل (الافتراضي: أول 8 أحرف من المعرّف)\n --no-code لا تنقل checkout الخاص بـ git\n --port <n> منفذ SSH\n --identity <path> ملف هوية SSH\n --ssh-option <opt> خيار SSH إضافي -o (قابل للتكرار)\n --no-focus افتح مساحة العمل دون التبديل إليها\n\nأمثلة:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "تلميح: كُتب كل سطر جديد كضغطة Enter؛ للنصوص الكبيرة متعددة الأسطر استخدم cmux send --paste أو cmux paste لإرسالها كلصقة واحدة" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Hinweis: Jeder Zeilenumbruch wurde als Enter getippt; für große mehrzeilige Texte cmux send --paste oder cmux paste verwenden, um sie als ein einziges Einfügen zu senden" + } + }, + "en": { + "stringUnit": { + "state": "translated", + "value": "hint: each newline was typed as Enter; for large multi-line text use cmux send --paste or cmux paste to deliver it as one paste" } }, "es": { "stringUnit": { "state": "translated", - "value": "Uso: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nMueve una sesión detenida de Claude Code a otra máquina y la reanuda allí.\nSal primero del agente: el movimiento se rechaza mientras la sesión se ejecute en cualquiera de los lados.\n\nEl movimiento lleva:\n - el checkout de git del cwd: HEAD (en la misma rama cuando es seguro) más los archivos\n modificados, eliminados y sin seguimiento no ignorados; se añade un worktree cuando el\n repositorio existe en el destino pero la ruta no\n - la transcripción, su directorio de sesión, el historial de archivos y la memoria del\n proyecto (combinada en ambos sentidos, gana la más reciente, no se borra nada)\n\nDespués abre un espacio de trabajo en el destino (`cmux ssh` para un host, uno local para\n`local`) que reanuda la sesión con su lanzador registrado. Cuando el home del destino no está\nen la misma ruta absoluta, las rutas bajo él se convierten\ny el proyecto recibe un nuevo slug.\n\nOpciones:\n --to <destination> Destino SSH (user@host o alias de ssh_config), o local\n --from <destination> Dónde está la sesión ahora (por defecto: donde la dejó el último movimiento, si no local)\n --name <title> Título del espacio de trabajo (por defecto: los primeros 8 caracteres del id)\n --no-code No llevar el checkout de git\n --port <n> Puerto SSH\n --identity <path> Archivo de identidad SSH\n --ssh-option <opt> Opción SSH -o adicional (repetible)\n --no-focus Abrir el espacio de trabajo sin cambiar a él\n\nEjemplos:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "sugerencia: cada salto de línea se escribió como Intro; para textos grandes de varias líneas usa cmux send --paste o cmux paste para enviarlos como un solo pegado" } }, - "zh-Hant": { + "fr": { "stringUnit": { "state": "translated", - "value": "用法: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n將已停止的 Claude Code 工作階段移到另一台機器並在那裡恢復。\n請先結束代理:只要工作階段仍在任一端執行,移動就會被拒絕。\n\n移動會帶上:\n - cwd 的 git checkout:HEAD(安全時使用同一分支)加上已修改、已刪除\n 和未追蹤且未忽略的檔案;若目的地有儲存庫\n 但沒有該路徑,會新增 worktree\n - 對話紀錄、其工作階段目錄、檔案歷史與專案記憶目錄\n (雙向合併,較新者優先,不刪除任何內容)\n\n接著在目的地開啟工作區(主機用 `cmux ssh`,`local` 則開本機工作區),\n以記錄的啟動器恢復工作階段。\n若目的地的主目錄不在相同的絕對路徑,其下的路徑會被對應,\n專案也會重新產生 slug。\n\n選項:\n --to <destination> SSH 目的地(user@host 或 ssh_config 別名),或 local\n --from <destination> 工作階段目前所在位置(預設:上次移動所放的位置,否則為 local)\n --name <title> 工作區標題(預設:ID 的前 8 個字元)\n --no-code 不帶上 git checkout\n --port <n> SSH 連接埠\n --identity <path> SSH 身分檔案\n --ssh-option <opt> 額外的 SSH -o 選項(可重複)\n --no-focus 開啟工作區但不切換過去\n\n範例:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "astuce : chaque saut de ligne a été tapé comme Entrée ; pour un texte volumineux sur plusieurs lignes, utilisez cmux send --paste ou cmux paste pour l’envoyer en un seul collage" } }, - "zh-Hans": { + "ja": { "stringUnit": { "state": "translated", - "value": "用法: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n将已停止的 Claude Code 会话移到另一台机器并在那里恢复。\n请先退出代理:只要会话仍在任一端运行,移动就会被拒绝。\n\n移动会带上:\n - cwd 的 git 检出:HEAD(安全时使用同一分支)以及已修改、已删除\n 和未跟踪且未忽略的文件;若目标上有仓库\n 但没有该路径,会添加 worktree\n - 会话记录、其会话目录、文件历史和项目记忆目录\n (双向合并,较新者优先,不删除任何内容)\n\n随后在目标上打开工作区(主机用 `cmux ssh`,`local` 则打开本地工作区),\n用记录的启动器恢复会话。\n若目标的主目录不在相同的绝对路径,其下的路径会被映射,\n项目也会重新生成 slug。\n\n选项:\n --to <destination> SSH 目标(user@host 或 ssh_config 别名),或 local\n --from <destination> 会话当前所在位置(默认:上次移动放置的位置,否则为 local)\n --name <title> 工作区标题(默认:ID 的前 8 个字符)\n --no-code 不带上 git 检出\n --port <n> SSH 端口\n --identity <path> SSH 身份文件\n --ssh-option <opt> 额外的 SSH -o 选项(可重复)\n --no-focus 打开工作区但不切换过去\n\n示例:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "ヒント: 各改行は Enter として入力されました。大きな複数行テキストは cmux send --paste または cmux paste を使うと 1 回の貼り付けとして送れます" } }, "ko": { "stringUnit": { "state": "translated", - "value": "사용법: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n중지된 Claude Code 세션을 다른 머신으로 옮기고 그곳에서 재개합니다.\n먼저 에이전트를 종료하세요. 어느 쪽에서든 세션이 실행 중이면 이동이 거부됩니다.\n\n이동하는 항목:\n - cwd의 git 체크아웃: HEAD(안전하면 같은 브랜치)와 수정, 삭제,\n 무시되지 않은 추적 안 된 파일. 대상에 저장소는 있지만\n 경로가 없으면 worktree를 추가합니다\n - 트랜스크립트, 세션 디렉터리, 파일 기록, 프로젝트 메모리 디렉터리\n (양방향 병합, 최신 우선, 삭제 없음)\n\n그런 다음 대상에서 작업 공간(호스트는 `cmux ssh`, `local`은 로컬 작업 공간)을 열고\n기록된 런처로 세션을 재개합니다.\n대상의 홈이 같은 절대 경로에 있지 않으면 홈 아래 경로를 변환하고\n프로젝트 slug를 다시 만듭니다.\n\n옵션:\n --to <destination> SSH 대상(user@host 또는 ssh_config 별칭) 또는 local\n --from <destination> 세션의 현재 위치(기본값: 마지막 이동으로 옮긴 곳, 없으면 local)\n --name <title> 작업 공간 제목(기본값: ID의 처음 8자)\n --no-code git 체크아웃을 옮기지 않음\n --port <n> SSH 포트\n --identity <path> SSH ID 파일\n --ssh-option <opt> 추가 SSH -o 옵션(반복 가능)\n --no-focus 작업 공간으로 전환하지 않고 열기\n\n예시:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "힌트: 각 줄바꿈이 Enter로 입력되었습니다. 큰 여러 줄 텍스트는 cmux send --paste 또는 cmux paste를 사용해 한 번의 붙여넣기로 보내세요" } }, - "ja": { + "zh-Hans": { "stringUnit": { "state": "translated", - "value": "使用方法: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n停止した Claude Code セッションを別のマシンへ移動し、そこで再開します。\n先にエージェントを終了してください。どちらかでセッションが実行中の間は移動を拒否します。\n\n移動する内容:\n - cwd の git チェックアウト: HEAD (安全なら同じブランチ) と、変更・削除されたファイル、\n 無視されていない未追跡ファイル。移動先にリポジトリはあるが\n パスがない場合は worktree を追加します\n - トランスクリプト、セッションディレクトリ、ファイル履歴、プロジェクトのメモリディレクトリ\n (双方向にマージ、新しいほうを優先、削除はしません)\n\nその後、移動先でワークスペース (ホストなら `cmux ssh`、`local` ならローカルのワークスペース) を\n開き、記録されたランチャーでセッションを再開します。\n移動先のホームが同じ絶対パスにない場合は、ホーム配下のパスを変換し、\nプロジェクトの slug を作り直します。\n\nオプション:\n --to <destination> SSH 接続先 (user@host または ssh_config のエイリアス)、または local\n --from <destination> セッションの現在の場所 (既定: 前回の移動先、なければ local)\n --name <title> ワークスペースのタイトル (既定: ID の先頭 8 文字)\n --no-code git チェックアウトを移動しない\n --port <n> SSH ポート\n --identity <path> SSH の ID ファイル\n --ssh-option <opt> 追加の SSH -o オプション (繰り返し可)\n --no-focus ワークスペースに切り替えずに開く\n\n例:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" + "value": "提示:每个换行都作为 Enter 输入;对于大量多行文本,请使用 cmux send --paste 或 cmux paste 以一次粘贴发送" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "提示:每個換行都以 Enter 輸入;若是大量多行文字,請使用 cmux send --paste 或 cmux paste 以單次貼上送出" } } } @@ -11836,6 +11895,65 @@ } } }, + "settings.computerUse.enabled.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Lets supported agents see and control apps on this Mac. An agent's first Computer Use request starts setup automatically." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Unterstützte Agenten können Apps auf diesem Mac sehen und steuern. Die erste Computer-Use-Anfrage eines Agenten startet die Einrichtung automatisch." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les agents pris en charge peuvent voir et contrôler les apps de ce Mac. La première requête Computer Use d’un agent lance automatiquement la configuration." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يمكن للوكلاء المدعومين رؤية التطبيقات على جهاز Mac هذا والتحكم فيها. ويبدأ الإعداد تلقائيًا عند أول طلب Computer Use من أحد الوكلاء." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los agentes compatibles pueden ver y controlar apps en este Mac. La primera solicitud de Computer Use de un agente inicia la configuración automáticamente." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "允許支援的代理程式查看及操作此 Mac 上的 App。代理程式第一次發出 Computer Use 要求時會自動開始設定。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "允许受支持的代理查看并控制这台 Mac 上的 App。代理第一次发出 Computer Use 请求时会自动开始设置。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "지원되는 에이전트가 이 Mac의 앱을 보고 제어할 수 있게 합니다. 에이전트가 처음 Computer Use를 요청하면 설정이 자동으로 시작됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "対応するエージェントが、この Mac のアプリの画面を見て操作できるようにします。エージェントが最初に Computer Use を要求すると、セットアップが自動的に始まります。" + } + } + } + }, "settings.computerUse.permission.accessibility": { "extractionState": "manual", "localizations": { @@ -227578,65 +227696,6 @@ } } }, - "globalSearch.kind.terminal": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Terminal" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ターミナル" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "터미널" - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "طرفية" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "終端" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "终端" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Terminal" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Terminal" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Terminal" - } - } - } - }, "globalSearch.kind.title": { "extractionState": "manual", "localizations": { @@ -291314,6 +291373,65 @@ } } }, + "settings.app.closeWorkspaceOnLastSurfaceShortcut.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Closing the last surface in a workspace keeps the workspace open." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Der Arbeitsbereich bleibt geöffnet, auch wenn seine letzte Oberfläche geschlossen wird." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L’espace de travail reste ouvert après la fermeture de sa dernière surface d’affichage." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تبقى مساحة العمل مفتوحة عند إغلاق آخر سطح فيها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El espacio de trabajo permanece abierto aunque se cierre su última superficie." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "即使關閉最後一個介面,工作區仍會保持開啟。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "即使关闭最后一个表面,工作区也会保持打开。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "마지막 서피스를 닫아도 워크스페이스는 닫히지 않습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最後のサーフェスを閉じても、ワークスペースは閉じません。" + } + } + } + }, "settings.app.commandPaletteSearchAllSurfaces": { "extractionState": "manual", "localizations": { @@ -291379,6 +291497,65 @@ } } }, + "settings.app.commandPaletteSearchAllSurfaces.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Includes terminal, browser, and Markdown surfaces from every workspace in command palette results." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Die Befehlspalette findet auch Terminal-, Browser- und Markdown-Oberflächen in allen Arbeitsbereichen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "La palette de commandes affiche aussi les surfaces d’affichage de terminal, de navigateur et Markdown de tous les espaces de travail." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تعرض نتائج لوحة الأوامر أسطح الطرفية والمتصفح وMarkdown من جميع مساحات العمل." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La paleta de comandos también muestra las superficies de terminal, navegador y Markdown de todos los espacios de trabajo." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在命令面板中也能找到所有工作區的終端機、瀏覽器和 Markdown 介面。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在命令面板中也能找到所有工作区的终端、浏览器和 Markdown 表面。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "명령어 팔레트에서 모든 워크스페이스의 터미널, 브라우저, Markdown 서피스도 찾을 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コマンドパレットで、すべてのワークスペースのターミナル、ブラウザ、Markdown のサーフェスも検索できます。" + } + } + } + }, "settings.app.configWindow": { "extractionState": "manual", "localizations": { @@ -293197,6 +293374,65 @@ } } }, + "settings.app.fileDrop.defaultBehavior.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose what dropping files on a terminal or editor does. Holding Shift while dragging does the other." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, was beim Ablegen von Dateien auf einem Terminal oder Editor passiert. Wenn Sie beim Ziehen die Umschalttaste gedrückt halten, gilt die andere Option." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez ce qui se passe lorsque vous déposez des fichiers sur un terminal ou un éditeur. Si vous maintenez la touche Maj enfoncée pendant le glissement, l’autre option s’applique." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر ما يحدث عند إفلات الملفات على طرفية أو محرر. يؤدي الضغط مع الاستمرار على مفتاح Shift أثناء السحب إلى تطبيق الخيار الآخر." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige qué ocurre al soltar archivos en una terminal o un editor. Si mantienes pulsada la tecla Mayúsculas al arrastrar, se usa la otra opción." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇將檔案拖放到終端機或編輯器時要執行的動作。拖移時按住 Shift 鍵可改用另一個動作。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择将文件拖放到终端或编辑器时执行的操作。拖动时按住 Shift 键可改用另一种操作。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "파일을 터미널이나 편집기에 드롭했을 때 수행할 동작을 선택합니다. 드래그 중에 Shift 키를 누르고 있으면 다른 쪽 동작을 수행합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ファイルをターミナルやエディタにドロップしたときの動作を選択します。ドラッグ中に Shift キーを押したままにすると、もう一方の動作になります。" + } + } + } + }, "settings.app.fileDrop.defaultBehavior.preview": { "localizations": { "ar": { @@ -293846,6 +294082,65 @@ } } }, + "settings.app.focusHistoryIncludesPanesAndTabs.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Using Back and Forward also returns to previous panes and tabs." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Mit „Zurück“ und „Vor“ kehren Sie auch zu vorherigen Teilfenstern und Tabs zurück." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Précédent et Suivant ramènent aussi aux volets et aux onglets précédents." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "ينتقل «رجوع» و«تقدم» أيضًا إلى الأجزاء وعلامات التبويب السابقة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Atrás y Adelante también vuelven a los paneles y pestañas anteriores." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "使用「返回」與「前進」時,也會回到先前的窗格與標籤頁。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "“后退”和“前进”也会回到之前的窗格和标签页。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "뒤로 가기와 앞으로 가기로 이전 분할 창과 탭에도 돌아갈 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "「戻る」と「進む」で、以前のペインやタブにも戻れます。" + } + } + } + }, "settings.app.forkConversationDefaultDestination": { "extractionState": "manual", "localizations": { @@ -294155,6 +294450,65 @@ } } }, + "settings.app.globalFontMagnification.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Scales all text in cmux. Command-Plus and Command-Minus still zoom the focused pane." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Ändert die Größe des gesamten Texts in cmux. Mit Befehlstaste-Plus und Befehlstaste-Minus lässt sich das fokussierte Teilfenster weiterhin zoomen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifie la taille de tout le texte de cmux. Commande + Plus et Commande + Moins continuent de régler le zoom du volet actif." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يغيّر حجم جميع النصوص في cmux. ولا يزال الاختصاران Command-علامة الجمع وCommand-علامة الطرح يكبّران الجزء المركّز عليه ويصغّرانه." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cambia el tamaño de todo el texto de cmux. Comando + Más y Comando + Menos siguen ajustando el zoom del panel enfocado." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "調整 cmux 中所有文字的大小。Command + 加號和 Command + 減號仍可用來縮放目前聚焦的窗格。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "调整 cmux 中所有文本的大小。Command + 加号和 Command + 减号仍可用于缩放当前聚焦的窗格。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "cmux의 모든 텍스트 크기를 조절합니다. 포커스된 분할 창은 계속 Command-더하기와 Command-빼기로 확대/축소할 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "cmux 内のすべてのテキストの大きさを変更します。フォーカス中のペインは、これまでどおり Command + プラスと Command + マイナスで拡大縮小できます。" + } + } + } + }, "settings.app.hideAllSidebarDetails": { "extractionState": "manual", "localizations": { @@ -294220,6 +294574,65 @@ } } }, + "settings.app.hideAllSidebarDetails.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows only workspace titles in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt in der Seitenleiste nur die Titel der Arbeitsbereiche an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche uniquement les titres des espaces de travail dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض عناوين مساحات العمل فقط في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra solo los títulos de los espacios de trabajo en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "側邊欄只顯示工作區標題。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "侧边栏只显示工作区标题。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 워크스페이스 제목만 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにワークスペースのタイトルだけを表示します。" + } + } + } + }, "settings.app.hideTabCloseButton": { "extractionState": "manual", "localizations": { @@ -294345,6 +294758,65 @@ } } }, + "settings.app.hideTabCloseButton.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Removes the close button from tabs." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Tabs werden ohne Schließen-Taste angezeigt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les onglets s’affichent sans bouton de fermeture." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تظهر علامات التبويب دون زر إغلاق." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las pestañas se muestran sin el botón de cerrar." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "標籤頁上不顯示關閉按鈕。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "标签页上不显示关闭按钮。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "탭에 닫기 버튼을 표시하지 않습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "タブの閉じるボタンを非表示にします。" + } + } + } + }, "settings.app.iMessageMode": { "extractionState": "manual", "localizations": { @@ -296604,6 +297076,65 @@ } } }, + "settings.app.minimalMode.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Hides the workspace title bar and shows its controls in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Blendet die Titelleiste des Arbeitsbereichs aus und zeigt ihre Steuerelemente in der Seitenleiste an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Masque la barre de titre de l’espace de travail et affiche ses commandes dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يخفي شريط عنوان مساحة العمل ويعرض عناصر التحكم الخاصة به في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Oculta la barra de título del espacio de trabajo y muestra sus controles en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "隱藏工作區標題列,改在側邊欄中顯示其控制項。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "隐藏工作区标题栏,改为在侧边栏中显示其控件。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "워크스페이스 제목 막대를 숨기고, 제목 막대의 컨트롤을 사이드바에 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ワークスペースのタイトルバーを非表示にし、そのコントロールをサイドバーに表示します。" + } + } + } + }, "settings.app.newWorkspacePlacement": { "extractionState": "manual", "localizations": { @@ -296723,6 +297254,65 @@ } } }, + "settings.app.newWorkspacePlacement.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose where new workspaces appear in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, wo neue Arbeitsbereiche in der Seitenleiste erscheinen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez où les nouveaux espaces de travail apparaissent dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر مكان ظهور مساحات العمل الجديدة في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige dónde aparecen los nuevos espacios de trabajo en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇新工作區要顯示在側邊欄的哪個位置。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择新工作区在侧边栏中的显示位置。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "새 작업 공간을 사이드바의 어디에 표시할지 선택합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "新しいワークスペースをサイドバーのどこに表示するかを選択します。" + } + } + } + }, "settings.app.notificationBadgePosition": { "extractionState": "manual", "localizations": { @@ -297446,6 +298036,65 @@ } } }, + "settings.app.openSidebarPRLinks.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Clicking a pull request link in the sidebar opens it in the cmux browser." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Pull-Request-Links in der Seitenleiste werden per Klick im cmux-Browser geöffnet." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Un clic sur un lien de pull request de la barre latérale l’ouvre dans le navigateur cmux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تُفتح روابط طلبات السحب في الشريط الجانبي في متصفح cmux عند النقر عليها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los enlaces de pull request de la barra lateral se abren en el navegador de cmux al hacer clic en ellos." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "側邊欄中的 PR 連結會在 cmux 瀏覽器中開啟。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "侧边栏中的 PR 链接会在 cmux 浏览器中打开。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바의 풀 리퀘스트 링크를 클릭하면 cmux 브라우저에서 열립니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーのプルリクエストのリンクをクリックすると、cmuxブラウザで開きます。" + } + } + } + }, "settings.app.openSidebarPortLinks": { "extractionState": "manual", "localizations": { @@ -297565,6 +298214,65 @@ } } }, + "settings.app.openSidebarPortLinks.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Clicking a port link in the sidebar opens it in the cmux browser." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Port-Links in der Seitenleiste werden per Klick im cmux-Browser geöffnet." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Un clic sur un lien de port de la barre latérale l’ouvre dans le navigateur cmux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تُفتح روابط المنافذ في الشريط الجانبي في متصفح cmux عند النقر عليها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los enlaces de puerto de la barra lateral se abren en el navegador de cmux al hacer clic en ellos." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "側邊欄中的連接埠連結會在 cmux 瀏覽器中開啟。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "侧边栏中的端口链接会在 cmux 浏览器中打开。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바의 포트 링크를 클릭하면 cmux 브라우저에서 열립니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーのポートリンクをクリックすると、cmuxブラウザで開きます。" + } + } + } + }, "settings.app.openSupportedFilesInCmux": { "extractionState": "manual", "localizations": { @@ -297748,6 +298456,65 @@ } } }, + "settings.app.paneFirstClickFocus.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Clicking a pane while cmux is in the background focuses that pane right away." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Ist cmux im Hintergrund, wird ein Teilfenster schon beim ersten Klick fokussiert." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lorsque cmux est en arrière-plan, un clic sur un volet l’active immédiatement." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عندما يكون cmux في الخلفية، يكفي النقر على جزء للتركيز عليه فورًا." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Si cmux está en segundo plano, un clic en un panel lo enfoca de inmediato." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "即使 cmux 在背景執行,按一下窗格也會立即將焦點移到該窗格。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "即使 cmux 在后台,点按窗格也会立即将焦点移到该窗格。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "cmux가 백그라운드에 있어도 분할 창을 클릭하면 바로 그 분할 창에 포커스가 이동합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "cmux がバックグラウンドにあっても、ペインをクリックするとすぐにそのペインにフォーカスが移ります。" + } + } + } + }, "settings.app.pathLastSegmentOnly": { "extractionState": "manual", "localizations": { @@ -297807,6 +298574,65 @@ } } }, + "settings.app.pathLastSegmentOnly.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shortens long paths from the start to keep their end visible." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Kürzt lange Pfade am Anfang, damit ihr Ende sichtbar bleibt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Raccourcit les chemins longs par le début pour que leur fin reste visible." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يختصر المسارات الطويلة من بدايتها لتبقى نهايتها ظاهرة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Acorta las rutas largas por el inicio para que su final siga visible." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "長路徑會省略開頭,保留結尾部分。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "长路径会省略开头,保留结尾部分。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "긴 경로는 앞부분을 생략하여 끝부분이 보이게 합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "長いパスは先頭を省略して、末尾が見えるようにします。" + } + } + } + }, "settings.app.preferredEditor": { "extractionState": "manual", "localizations": { @@ -298103,6 +298929,65 @@ } } }, + "settings.app.renameSelectsName.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Renaming from the command palette selects the current name." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Beim Umbenennen über die Befehlspalette ist der aktuelle Name bereits ausgewählt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lors d’un renommage depuis la palette de commandes, le nom actuel est sélectionné." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عند إعادة التسمية من لوحة الأوامر، يكون الاسم الحالي محددًا." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Al cambiar el nombre desde la paleta de comandos, el nombre actual aparece seleccionado." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "從命令面板重新命名時,會選取目前的名稱。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从命令面板重命名时,会选中当前名称。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "명령어 팔레트에서 이름을 변경할 때 현재 이름이 선택된 상태로 표시됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コマンドパレットで名前を変更するとき、現在の名前が選択された状態になります。" + } + } + } + }, "settings.app.reorderOnNotification": { "extractionState": "manual", "localizations": { @@ -300947,6 +301832,65 @@ } } }, + "settings.app.sidebarBranchLayout.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose whether branches share one line or each get their own line." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, ob sich Branches eine Zeile teilen oder jeweils eine eigene Zeile erhalten." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez si les branches partagent une même ligne ou ont chacune leur propre ligne." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر ما إذا كانت الفروع تتشارك سطرًا واحدًا أو يحصل كل منها على سطر خاص به." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige si las ramas comparten una sola línea o cada una ocupa su propia línea." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇分支要共用一行,還是各自獨立一行。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择分支是共用一行,还是各占一行。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "브랜치를 한 줄에 함께 표시할지, 각각 별도의 줄에 표시할지 선택합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ブランチを 1 行にまとめて表示するか、それぞれ別の行に表示するかを選択します。" + } + } + } + }, "settings.app.sidebarBranchLayout.inline": { "extractionState": "manual", "localizations": { @@ -301244,6 +302188,65 @@ } } }, + "settings.app.stackBranchDirectory.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows the branch and directory on separate lines." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt Branch und Verzeichnis in getrennten Zeilen an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche la branche et le répertoire sur des lignes distinctes." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض الفرع والدليل في سطرين منفصلين." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra la rama y el directorio en líneas separadas." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "分支與目錄分行顯示。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "分支和目录分行显示。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "브랜치와 디렉터리를 각각 다른 줄에 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ブランチとディレクトリを別々の行に表示します。" + } + } + } + }, "settings.app.telemetry": { "extractionState": "manual", "localizations": { @@ -301779,6 +302782,65 @@ } } }, + "settings.app.warnBeforeClosingTab.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Closing a tab asks for confirmation first." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Beim Schließen eines Tabs wird zuerst nach einer Bestätigung gefragt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Une confirmation est demandée avant la fermeture d’un onglet." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يُطلب التأكيد قبل إغلاق علامة التبويب." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Se pide confirmación antes de cerrar una pestaña." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "關閉標籤頁前先要求確認。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "关闭标签页前先要求确认。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "탭을 닫기 전에 확인을 요청합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "タブを閉じる前に確認します。" + } + } + } + }, "settings.app.warnBeforeClosingTabXButton": { "extractionState": "manual", "localizations": { @@ -301963,6 +303025,65 @@ } } }, + "settings.app.warnBeforeClosingTabXButton.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Clicking a tab's close button asks for confirmation first." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Beim Klicken auf die Schließen-Taste eines Tabs wird zuerst nach einer Bestätigung gefragt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Une confirmation est demandée avant la fermeture d’un onglet avec son bouton de fermeture." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يُطلب التأكيد قبل إغلاق علامة التبويب بالنقر على زر الإغلاق الخاص بها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Se pide confirmación antes de cerrar una pestaña con su botón de cerrar." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "按一下標籤頁上的關閉按鈕後,會先要求確認再關閉。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "点按标签页上的关闭按钮后,会先要求确认再关闭。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "탭의 닫기 버튼을 클릭하면 탭을 닫기 전에 확인을 요청합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "タブの閉じるボタンをクリックしたとき、閉じる前に確認します。" + } + } + } + }, "settings.app.warnBeforeQuit": { "extractionState": "manual", "localizations": { @@ -302082,6 +303203,65 @@ } } }, + "settings.app.warnBeforeQuit.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose when quitting with Command-Q asks for confirmation. Dirty Only asks only when a workspace would ask before closing." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, wann beim Beenden mit Befehlstaste-Q nach einer Bestätigung gefragt wird. „Nur bei Bedarf“ fragt nur, wenn ein Arbeitsbereich vor dem Schließen nachfragen würde." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez quand une confirmation est demandée pour quitter avec Commande + Q. « Si nécessaire » ne la demande que si un espace de travail la demanderait avant sa fermeture." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر متى يُطلب التأكيد عند الإنهاء باستخدام Command-Q. يطلب خيار «عند الحاجة فقط» التأكيد فقط عندما تطلبه مساحة عمل قبل إغلاقها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige cuándo se pide confirmación al salir con Comando + Q. «Solo si hace falta» solo la pide cuando un espacio de trabajo la pediría antes de cerrarse." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇按 Command + Q 結束時,在什麼情況下要求確認。「僅在需要時」只會在某個工作區關閉前需要確認時才詢問。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择按 Command + Q 退出时,在什么情况下要求确认。“仅在需要时”只会在某个工作区关闭前需要确认时才询问。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Command-Q로 종료할 때 확인을 요청할 조건을 선택합니다. ‘필요 시에만’은 닫기 전에 확인이 필요한 작업 공간이 있을 때만 확인을 요청합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Command + Q で終了するときに、どのような場合に確認するかを選択します。「必要時のみ」では、閉じる前に確認が必要なワークスペースがある場合だけ確認します。" + } + } + } + }, "settings.app.watchGitStatus": { "extractionState": "manual", "localizations": { @@ -302504,6 +303684,65 @@ } } }, + "settings.app.workspaceInheritWorkingDirectory.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Starts new workspaces in the working directory of the current workspace." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Startet neue Arbeitsbereiche im Arbeitsverzeichnis des aktuellen Arbeitsbereichs." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvre les nouveaux espaces de travail dans le répertoire de travail de l’espace de travail actuel." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يبدأ مساحات العمل الجديدة في دليل العمل الخاص بمساحة العمل الحالية." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Inicia los nuevos espacios de trabajo en el directorio de trabajo del espacio de trabajo actual." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "新工作區會沿用目前工作區的工作目錄。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "新工作区会沿用当前工作区的工作目录。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "새 작업 공간은 현재 작업 공간의 작업 디렉터리에서 시작됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "新しいワークスペースは、現在のワークスペースと同じ作業ディレクトリで開始します。" + } + } + } + }, "settings.app.workspaceLayouts": { "extractionState": "manual", "localizations": { @@ -302806,6 +304045,65 @@ } } }, + "settings.app.wrapWorkspaceTitles.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows long workspace titles in full on multiple lines." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt lange Arbeitsbereichstitel vollständig in mehreren Zeilen an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche en entier les titres longs des espaces de travail sur plusieurs lignes." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض عناوين مساحات العمل الطويلة كاملةً على عدة أسطر." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra completos los títulos largos de los espacios de trabajo en varias líneas." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "較長的工作區標題會換行完整顯示。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "较长的工作区标题会换行完整显示。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "긴 워크스페이스 제목을 줄바꿈하여 모두 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "長いワークスペースタイトルを省略せずに複数行で表示します。" + } + } + } + }, "settings.automation.amp": { "extractionState": "manual", "localizations": { @@ -302990,6 +304288,65 @@ } } }, + "settings.automation.amp.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Amp status and notifications in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt den Status und die Benachrichtigungen von Amp in der Seitenleiste an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche l’état et les notifications d’Amp dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض حالة Amp وإشعاراته في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra el estado y las notificaciones de Amp en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中顯示 Amp 的狀態與通知。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中显示 Amp 的状态和通知。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 Amp 상태와 알림을 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにAmpのステータスと通知を表示します。" + } + } + } + }, "settings.automation.autoNamingAgent": { "extractionState": "manual", "localizations": { @@ -303115,6 +304472,65 @@ } } }, + "settings.automation.autoNamingAgent.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Automatic uses each session's own agent. Other supported agents need their command-line tool on the PATH." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "„Automatisch“ verwendet den Agenten der jeweiligen Sitzung. Andere unterstützte Agenten benötigen ihr Befehlszeilentool im PATH." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "« Automatique » utilise l’agent propre à chaque session. Les autres agents pris en charge nécessitent que leur outil en ligne de commande soit dans le PATH." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يستخدم خيار «تلقائي» الوكيل الخاص بكل جلسة. يحتاج الوكلاء المدعومون الآخرون إلى وجود أداة سطر الأوامر الخاصة بهم في PATH." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "«Automático» usa el agente de cada sesión. Los demás agentes compatibles necesitan su herramienta de línea de comandos en el PATH." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "「自動」會使用各工作階段本身的代理。若要使用其他支援的代理,其命令列工具必須位於 PATH 中。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "“自动”会使用各会话自身的代理。要使用其他受支持的代理,其命令行工具必须位于 PATH 中。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "‘자동’은 세션마다 해당 세션의 에이전트를 사용합니다. 지원되는 다른 에이전트를 사용하려면 해당 명령줄 도구가 PATH에 있어야 합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "「自動」では、各セッションのエージェントを使用します。ほかの対応エージェントを使うには、そのコマンドラインツールが PATH に含まれている必要があります。" + } + } + } + }, "settings.automation.autoNamingAgent.auto": { "extractionState": "manual", "localizations": { @@ -303950,6 +305366,65 @@ } } }, + "settings.automation.claudeCode.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Claude Code status and notifications in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt den Status und die Benachrichtigungen von Claude Code in der Seitenleiste an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche l’état et les notifications de Claude Code dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض حالة Claude Code وإشعاراته في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra el estado y las notificaciones de Claude Code en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中顯示 Claude Code 的狀態與通知。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中显示 Claude Code 的状态和通知。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 Claude Code 상태와 알림을 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにClaude Codeのステータスと通知を表示します。" + } + } + } + }, "settings.automation.codex": { "extractionState": "manual", "localizations": { @@ -304068,6 +305543,65 @@ } } }, + "settings.automation.codex.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Codex status and notifications in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt den Status und die Benachrichtigungen von Codex in der Seitenleiste an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche l’état et les notifications de Codex dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض حالة Codex وإشعاراته في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra el estado y las notificaciones de Codex en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中顯示 Codex 的狀態與通知。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中显示 Codex 的状态和通知。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 Codex 상태와 알림을 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにCodexのステータスと通知を表示します。" + } + } + } + }, "settings.automation.cursor": { "extractionState": "manual", "localizations": { @@ -304186,6 +305720,65 @@ } } }, + "settings.automation.cursor.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Cursor status and notifications in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt den Status und die Benachrichtigungen von Cursor in der Seitenleiste an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche l’état et les notifications de Cursor dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض حالة Cursor وإشعاراته في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra el estado y las notificaciones de Cursor en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中顯示 Cursor 的狀態與通知。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中显示 Cursor 的状态和通知。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 Cursor 상태와 알림을 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにCursorのステータスと通知を表示します。" + } + } + } + }, "settings.automation.gemini": { "extractionState": "manual", "localizations": { @@ -304304,6 +305897,65 @@ } } }, + "settings.automation.gemini.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Gemini CLI status and notifications in the sidebar." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt den Status und die Benachrichtigungen von Gemini CLI in der Seitenleiste an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche l’état et les notifications de Gemini CLI dans la barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض حالة Gemini CLI وإشعاراته في الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra el estado y las notificaciones de Gemini CLI en la barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中顯示 Gemini CLI 的狀態與通知。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中显示 Gemini CLI 的状态和通知。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 Gemini CLI 상태와 알림을 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにGemini CLIのステータスと通知を表示します。" + } + } + } + }, "settings.automation.kiro": { "extractionState": "manual", "localizations": { @@ -304717,6 +306369,65 @@ } } }, + "settings.automation.kiro.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Kiro CLI status and notifications in the sidebar, and its tool events in Feed." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt den Status und die Benachrichtigungen von Kiro CLI in der Seitenleiste und seine Tool-Ereignisse im Feed an." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche l’état et les notifications de Kiro CLI dans la barre latérale, et ses événements d’outils dans le Flux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض حالة Kiro CLI وإشعاراته في الشريط الجانبي، وأحداث أدواته في Feed." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra el estado y las notificaciones de Kiro CLI en la barra lateral, y sus eventos de herramientas en el Feed." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中顯示 Kiro CLI 的狀態與通知,並在 Feed 中顯示其工具事件。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中显示 Kiro CLI 的状态和通知,并在 Feed 中显示其工具事件。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "사이드바에 Kiro CLI 상태와 알림을 표시하고, 피드에 해당 도구 이벤트를 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーにKiro CLIのステータスと通知を、フィードにそのツールイベントを表示します。" + } + } + } + }, "settings.automation.openAccess.dialog.cancel": { "extractionState": "manual", "localizations": { @@ -306203,6 +307914,65 @@ } } }, + "settings.automation.socketMode.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose which local processes can control cmux." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, welche lokalen Prozesse cmux steuern können." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez quels processus locaux peuvent contrôler cmux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر العمليات المحلية التي يمكنها التحكم في cmux." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige qué procesos locales pueden controlar cmux." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇哪些本機程序可以控制 cmux。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择哪些本地进程可以控制 cmux。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "cmux를 제어할 수 있는 로컬 프로세스를 선택합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "cmux を制御できるローカルプロセスを選択します。" + } + } + } + }, "settings.automation.socketMode.note": { "extractionState": "manual", "localizations": { @@ -308106,6 +309876,65 @@ } } }, + "settings.automation.suppressSubagentNotifications.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Lists subagent completions in Feed without sending notifications." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Abgeschlossene Subagenten erscheinen im Feed, ohne dass Benachrichtigungen gesendet werden." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les sous-agents terminés apparaissent dans le Flux, sans notification." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يظهر اكتمال مهام الوكلاء الفرعيين في Feed دون إرسال إشعارات." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los subagentes finalizados aparecen en el Feed sin enviar notificaciones." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "子代理完成時只會列在 Feed 中,不會傳送通知。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "子代理完成时只会列在 Feed 中,不会发送通知。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "하위 에이전트가 완료되면 알림을 보내지 않고 피드에만 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サブエージェントが完了しても通知は送らず、フィードにのみ表示します。" + } + } + } + }, "settings.automation.workspaceAutoNaming": { "extractionState": "manual", "localizations": { @@ -308481,6 +310310,65 @@ } } }, + "settings.automation.workspaceAutoNaming.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Generates workspace and tab titles from agent conversations." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Benennt Arbeitsbereiche und Tabs anhand von Agentengesprächen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nomme les espaces de travail et les onglets d’après les conversations des agents." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يسمّي مساحات العمل وعلامات التبويب بناءً على محادثات الوكلاء." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pone nombre a los espacios de trabajo y las pestañas según las conversaciones de los agentes." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "根據代理對話產生工作區和標籤頁標題。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "根据代理对话生成工作区和标签页标题。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "에이전트 대화를 바탕으로 작업 공간과 탭 제목을 생성합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エージェントの会話からワークスペースとタブのタイトルを生成します。" + } + } + } + }, "settings.betaFeatures.cloudMachines": { "extractionState": "manual", "localizations": { @@ -308540,6 +310428,65 @@ } } }, + "settings.betaFeatures.cloudMachines.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Adds Cloud Machines to the right sidebar, Settings, the command palette, and the new workspace menu. Cloud Machines also require a remote rollout; with this off, the Cloud tunnel and fleet polling stay off." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Fügt Cloud-Maschinen zur rechten Seitenleiste, zu den Einstellungen, zur Befehlspalette und zum Menü für neue Arbeitsbereiche hinzu. Cloud-Maschinen erfordern außerdem ein Remote-Rollout; solange diese Option deaktiviert ist, bleiben Cloud-Tunnel und Flottenabfrage aus." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoute les machines cloud à la barre latérale droite, aux Réglages, à la palette de commandes et au menu de nouvel espace de travail. Les machines cloud nécessitent aussi un déploiement à distance ; si cette option est désactivée, le tunnel Cloud et l’interrogation de la flotte restent arrêtés." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يضيف الأجهزة السحابية إلى الشريط الجانبي الأيمن والإعدادات ولوحة الأوامر وقائمة مساحة العمل الجديدة. وتتطلب الأجهزة السحابية أيضًا طرحًا عن بُعد؛ وعند إيقاف هذا الخيار يظل نفق Cloud واستطلاع الأسطول متوقفين." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade las máquinas en la nube a la barra lateral derecha, a Ajustes, a la paleta de comandos y al menú de nuevo espacio de trabajo. Las máquinas en la nube también requieren un despliegue remoto; con esta opción desactivada, el túnel de Cloud y el sondeo de la flota permanecen desactivados." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在右側邊欄、設定、命令面板和新增工作區選單中加入雲端機器。雲端機器也需要遠端推出才能使用;關閉此選項時,Cloud 通道和機群輪詢都會保持停用。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在右侧边栏、设置、命令面板和新建工作区菜单中添加云主机。云主机还需要远程推出才能使用;关闭此选项时,Cloud 隧道和机群轮询都会保持停用。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "오른쪽 사이드바, 설정, 명령어 팔레트, 새 작업 공간 메뉴에 클라우드 머신을 추가합니다. 클라우드 머신은 원격 출시도 필요하며, 이 옵션이 꺼져 있으면 Cloud 터널과 플릿 폴링도 꺼진 상태로 유지됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "右サイドバー、設定、コマンドパレット、新規ワークスペースメニューにクラウドマシンを追加します。クラウドマシンにはリモートでの提供開始も必要です。この設定がオフの間は、Cloud トンネルとフリートのポーリングも停止したままです。" + } + } + } + }, "settings.betaFeatures.customSidebars": { "extractionState": "manual", "localizations": { @@ -308599,6 +310546,65 @@ } } }, + "settings.betaFeatures.customSidebars.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Adds sidebars from ~/.config/cmux/sidebars to the sidebar picker." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Fügt Seitenleisten aus ~/.config/cmux/sidebars zur Seitenleistenauswahl hinzu." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoute les barres latérales de ~/.config/cmux/sidebars au sélecteur de barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يضيف الأشرطة الجانبية من ~/.config/cmux/sidebars إلى منتقي الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade las barras laterales de ~/.config/cmux/sidebars al selector de barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄選取器中加入 ~/.config/cmux/sidebars 裡的側邊欄。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏选择器中添加 ~/.config/cmux/sidebars 里的侧边栏。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "~/.config/cmux/sidebars의 사이드바를 사이드바 선택기에 추가합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "~/.config/cmux/sidebars のサイドバーをサイドバーピッカーに追加します。" + } + } + } + }, "settings.betaFeatures.dock": { "extractionState": "manual", "localizations": { @@ -308658,6 +310664,65 @@ } } }, + "settings.betaFeatures.dock.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Adds Dock to the right sidebar for custom terminal controls." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Fügt der rechten Seitenleiste das Dock für benutzerdefinierte Terminal-Steuerelemente hinzu." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoute le Dock à la barre latérale droite pour les commandes de terminal personnalisées." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يضيف Dock إلى الشريط الجانبي الأيمن لعناصر التحكم المخصصة في الطرفية." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade el Dock a la barra lateral derecha para controles de terminal personalizados." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在右側邊欄加入 Dock,用來放置自訂的終端機控制項。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在右侧边栏添加 Dock,用来放置自定义的终端控件。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "오른쪽 사이드바에 Dock을 추가해 터미널 컨트롤을 직접 구성할 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "右サイドバーに Dock を追加し、ターミナル用のカスタムコントロールを配置できるようにします。" + } + } + } + }, "settings.betaFeatures.extensions": { "extractionState": "manual", "localizations": { @@ -308717,6 +310782,65 @@ } } }, + "settings.betaFeatures.extensions.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Adds the extensions button and lets cmux install and run sidebar extensions." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Fügt die Taste „Erweiterungen“ hinzu und erlaubt cmux, Seitenleisten-Erweiterungen zu installieren und auszuführen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoute le bouton des extensions et permet à cmux d’installer et d’exécuter des extensions de barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يضيف زر الامتدادات ويتيح لـ cmux تثبيت امتدادات الشريط الجانبي وتشغيلها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade el botón de extensiones y permite que cmux instale y ejecute extensiones de barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "加入擴充功能按鈕,並讓 cmux 可安裝及執行側邊欄擴充功能。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加扩展按钮,并允许 cmux 安装和运行侧边栏扩展。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "확장 기능 버튼을 추가하고 cmux가 사이드바 확장 기능을 설치하고 실행할 수 있게 합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エクステンションボタンを追加し、cmuxでサイドバーエクステンションをインストールして実行できるようにします。" + } + } + } + }, "settings.betaFeatures.feed": { "extractionState": "manual", "localizations": { @@ -308776,6 +310900,65 @@ } } }, + "settings.betaFeatures.feed.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Adds Feed to the right sidebar for answering agent requests." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Fügt der rechten Seitenleiste den Feed zum Beantworten von Agentenanfragen hinzu." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoute le Flux à la barre latérale droite pour répondre aux demandes des agents." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يضيف Feed إلى الشريط الجانبي الأيمن للرد على طلبات الوكلاء." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade el Feed a la barra lateral derecha para responder a las solicitudes de los agentes." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在右側邊欄加入 Feed,用於回覆代理程式的請求。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在右侧边栏添加 Feed,用于回复代理请求。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "오른쪽 사이드바에 피드를 추가해 에이전트 요청에 응답할 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "右サイドバーにフィードを追加し、エージェントからのリクエストに応答できるようにします。" + } + } + } + }, "settings.betaFeatures.remoteTmux": { "extractionState": "manual", "localizations": { @@ -308835,6 +311018,65 @@ } } }, + "settings.betaFeatures.remoteTmux.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows tmux sessions on remote hosts as workspaces in the sidebar. The sessions keep running after cmux quits." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt tmux-Sitzungen auf Remote-Hosts als Arbeitsbereiche in der Seitenleiste an. Die Sitzungen laufen auch nach dem Beenden von cmux weiter." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche les sessions tmux des hôtes distants comme des espaces de travail dans la barre latérale. Les sessions continuent de s’exécuter après la fermeture de cmux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض جلسات tmux على المضيفين البعيدين كمساحات عمل في الشريط الجانبي. وتستمر الجلسات في العمل حتى بعد إنهاء cmux." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra las sesiones de tmux de hosts remotos como espacios de trabajo en la barra lateral. Las sesiones siguen ejecutándose al salir de cmux." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄中將遠端主機上的 tmux 工作階段顯示為工作區。結束 cmux 後,這些工作階段仍會繼續執行。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏中将远程主机上的 tmux 会话显示为工作区。退出 cmux 后,这些会话仍会继续运行。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "원격 호스트의 tmux 세션을 사이드바에 작업 공간으로 표시합니다. cmux를 종료해도 세션은 계속 실행됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモートホストの tmux セッションをサイドバーにワークスペースとして表示します。cmux を終了してもセッションは動作し続けます。" + } + } + } + }, "settings.betaFeatures.warning": { "extractionState": "manual", "localizations": { @@ -308953,6 +311195,65 @@ } } }, + "settings.betaFeatures.workspaceTodoControls.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows Add Checklist Item and status controls on workspaces. A remote rollout can turn them on even while this is off." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt „Checklisten-Eintrag hinzufügen“ und Statussteuerelemente bei Arbeitsbereichen an. Ein Remote-Rollout kann sie auch dann aktivieren, wenn diese Option deaktiviert ist." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche « Ajouter un élément à la liste de contrôle » et les commandes d’état sur les espaces de travail. Un déploiement à distance peut les activer même si cette option est désactivée." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض «إضافة عنصر قائمة تحقق» وعناصر التحكم في الحالة على مساحات العمل. ويمكن لطرح عن بُعد تفعيلها حتى عند إيقاف هذا الخيار." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra «Añadir elemento a la lista de verificación» y los controles de estado en los espacios de trabajo. Un despliegue remoto puede activarlos aunque esta opción esté desactivada." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在工作區上顯示「新增檢查清單項目」和狀態控制項。即使關閉此選項,遠端推出仍可能啟用這些控制項。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在工作区上显示“添加清单项”和状态控件。即使关闭此选项,远程推出仍可能启用这些控件。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "작업 공간에 ‘체크리스트 항목 추가’ 및 상태 컨트롤을 표시합니다. 이 옵션이 꺼져 있어도 원격 출시로 이 컨트롤이 켜질 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ワークスペースに「チェックリスト項目を追加」とステータスコントロールを表示します。この設定がオフでも、リモートでの提供開始によって有効になることがあります。" + } + } + } + }, "settings.betaFeatures.workspaceTodosChecklistStyle": { "extractionState": "manual", "localizations": { @@ -309012,6 +311313,65 @@ } } }, + "settings.betaFeatures.workspaceTodosChecklistStyle.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose whether clicking a workspace checklist opens a popover or expands it under the row." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, ob sich beim Klicken auf die Checkliste eines Arbeitsbereichs ein Popover öffnet oder die Checkliste unter der Zeile aufklappt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez si un clic sur la liste de contrôle d’un espace de travail ouvre une fenêtre contextuelle ou la déplie sous la ligne." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر ما إذا كان النقر على قائمة التحقق الخاصة بمساحة العمل يفتح نافذة منبثقة أو يوسّعها أسفل الصف." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige si al hacer clic en la lista de verificación de un espacio de trabajo se abre un popover o se despliega bajo la fila." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇按一下工作區檢查清單時,要在彈出視窗中開啟,還是在該列下方展開。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择点按工作区清单时,是在浮层中打开,还是在该行下方展开。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "작업 공간 체크리스트를 클릭했을 때 팝오버로 열지, 행 아래에 펼칠지 선택합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ワークスペースのチェックリストをクリックしたときに、ポップオーバーで開くか、行の下に展開するかを選択します。" + } + } + } + }, "settings.betaFeatures.workspaceTodosChecklistStyle.inline": { "extractionState": "manual", "localizations": { @@ -310292,6 +312652,65 @@ } } }, + "settings.browser.enabled.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Opens browser tabs and links from terminals in the cmux browser." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Browser-Tabs und Links aus Terminals werden im cmux-Browser geöffnet." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvre les onglets de navigateur et les liens des terminaux dans le navigateur cmux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يفتح علامات تبويب المتصفح والروابط من الطرفيات في متصفح cmux." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abre pestañas del navegador y enlaces de las terminales en el navegador de cmux." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "瀏覽器標籤頁和從終端機開啟的連結都會在 cmux 瀏覽器中開啟。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览器标签页和从终端打开的链接都会在 cmux 浏览器中打开。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "브라우저 탭과 터미널에서 연 링크를 cmux 브라우저에서 엽니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ブラウザタブとターミナルから開いたリンクをcmuxブラウザで開きます。" + } + } + } + }, "settings.browser.externalPatterns": { "extractionState": "manual", "localizations": { @@ -310589,6 +313008,65 @@ } } }, + "settings.browser.hiddenWebViewDiscard.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Frees memory from browser tabs hidden longer than the delay. They reload when shown again." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Browser-Tabs, die länger als die festgelegte Zeit ausgeblendet sind, geben ihren Speicher frei und werden beim erneuten Anzeigen neu geladen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Libère la mémoire des onglets de navigateur masqués depuis plus longtemps que le délai défini. Ils se rechargent lorsqu’ils réapparaissent." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يحرر ذاكرة علامات تبويب المتصفح المخفية لمدة تتجاوز المهلة المحددة، ويُعاد تحميلها عند عرضها مجددًا." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Libera la memoria de las pestañas del navegador que llevan ocultas más tiempo del indicado. Se vuelven a cargar al mostrarse de nuevo." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "瀏覽器標籤頁隱藏超過延遲時間後,會釋放其記憶體。再次顯示時會重新載入。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览器标签页隐藏超过延迟时间后,会释放其内存。再次显示时会重新加载。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "브라우저 탭이 지연 시간보다 오래 숨겨져 있으면 메모리를 해제합니다. 탭을 다시 표시하면 새로 고칩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "非表示の時間が遅延時間を超えたブラウザタブのメモリを解放します。タブは再び表示したときに再読み込みされます。" + } + } + } + }, "settings.browser.hiddenWebViewDiscardDelay": { "extractionState": "manual", "localizations": { @@ -317826,6 +320304,65 @@ } } }, + "settings.browser.theme.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose light or dark pages for sites that support both. System matches the app appearance." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie helle oder dunkle Seiten für Websites, die beides unterstützen. „System“ folgt dem Erscheinungsbild der App." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez des pages claires ou sombres pour les sites qui prennent en charge les deux. « Système » suit l’apparence de l’app." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر الصفحات الفاتحة أو الداكنة للمواقع التي تدعم الوضعين. يتبع خيار «النظام» مظهر التطبيق." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige páginas claras u oscuras para los sitios compatibles con ambos modos. «Sistema» sigue el aspecto de la app." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "網站同時支援淺色與深色時,選擇要使用淺色或深色頁面。「系統」會跟隨 App 的外觀。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "网站同时支持浅色和深色时,选择使用浅色还是深色页面。“系统”会跟随应用外观。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "라이트와 다크를 모두 지원하는 사이트에서 표시할 페이지 모드를 선택합니다. ‘시스템’은 앱의 외관 설정을 따릅니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ライトとダークの両方に対応したサイトで、どちらのページを表示するかを選択します。「システム」はアプリの外観に合わせます。" + } + } + } + }, "settings.cloudMachines.panel.open": { "extractionState": "manual", "localizations": { @@ -320312,6 +322849,65 @@ } } }, + "settings.customSidebars.enabled.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Adds sidebars from ~/.config/cmux/sidebars to the sidebar picker." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Fügt Seitenleisten aus ~/.config/cmux/sidebars zur Seitenleistenauswahl hinzu." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoute les barres latérales de ~/.config/cmux/sidebars au sélecteur de barre latérale." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يضيف الأشرطة الجانبية من ~/.config/cmux/sidebars إلى منتقي الشريط الجانبي." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade las barras laterales de ~/.config/cmux/sidebars al selector de barra lateral." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在側邊欄選取器中加入 ~/.config/cmux/sidebars 裡的側邊欄。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在侧边栏选择器中添加 ~/.config/cmux/sidebars 里的侧边栏。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "~/.config/cmux/sidebars의 사이드바를 사이드바 선택기에 추가합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "~/.config/cmux/sidebars のサイドバーをサイドバーピッカーに追加します。" + } + } + } + }, "settings.customSidebars.note": { "extractionState": "manual", "localizations": { @@ -320430,6 +323026,65 @@ } } }, + "settings.customSidebars.renderer.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Isolated process protects cmux from a faulty sidebar but accepts clicks only. In-app also accepts hover, focus, and typing." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "„Isolierter Prozess“ schützt cmux vor einer fehlerhaften Seitenleiste, unterstützt aber nur Klicks. „In-App“ unterstützt zusätzlich Hover, Fokus und Texteingabe." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "« Processus isolé » protège cmux d’une barre latérale défectueuse, mais n’accepte que les clics. « Dans l’application » accepte aussi le survol, le focus et la saisie." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يحمي خيار «عملية معزولة» cmux من الشريط الجانبي المعيب، لكنه لا يقبل سوى النقرات. أما خيار «داخل التطبيق» فيقبل أيضًا تمرير المؤشر والتركيز والكتابة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "«Proceso aislado» protege cmux de una barra lateral defectuosa, pero solo admite clics. «En la aplicación» también admite pasar el puntero por encima, enfocar y escribir." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "「隔離程序」可保護 cmux 不受有問題的側邊欄影響,但只接受點擊。「應用程式內」還接受游標停留、聚焦和輸入。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "“隔离进程”可保护 cmux 不受有问题的侧边栏影响,但只接受点击。“应用内”还接受悬停、聚焦和输入。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "‘격리된 프로세스’는 결함이 있는 사이드바로부터 cmux를 보호하지만 클릭만 허용합니다. ‘앱 내부’는 포인터 올려놓기, 포커스, 키보드 입력도 허용합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "「分離プロセス」は問題のあるサイドバーから cmux を保護しますが、クリックしか受け付けません。「アプリ内」では、ホバー、フォーカス、入力も受け付けます。" + } + } + } + }, "settings.error.alert.dismiss": { "localizations": { "en": { @@ -320622,6 +323277,65 @@ } } }, + "settings.globalHotkey.enable.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Pressing the shortcut in any app shows or hides all cmux windows." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Das Tastaturkürzel blendet in jeder App alle cmux-Fenster ein oder aus." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le raccourci affiche ou masque toutes les fenêtres cmux, quelle que soit l’app active." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يُظهر الاختصار جميع نوافذ cmux أو يخفيها من أي تطبيق." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El atajo muestra u oculta todas las ventanas de cmux desde cualquier app." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在任何 App 中按下快速鍵,即可顯示或隱藏所有 cmux 視窗。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在任意 App 中按下快捷键,即可显示或隐藏所有 cmux 窗口。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "어느 앱에서든 단축키를 눌러 모든 cmux 윈도우를 표시하거나 숨길 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "どのアプリを使用中でも、ショートカットを押すと cmux のすべてのウィンドウを表示または非表示にできます。" + } + } + } + }, "settings.globalHotkey.note": { "extractionState": "manual", "localizations": { @@ -322405,6 +325119,65 @@ } } }, + "settings.mobile.artifactFolderAccess.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose how much of a folder iPhone and iPad can browse. One Level shows only the items directly inside it." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie, wie tief iPhone und iPad einen Ordner durchsuchen können. „Eine Ebene“ zeigt nur die Objekte direkt darin." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez jusqu’où l’iPhone et l’iPad peuvent parcourir un dossier. « Un niveau » n’affiche que les éléments qui s’y trouvent directement." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر مدى عمق تصفح iPhone وiPad داخل المجلد. يعرض خيار «مستوى واحد» العناصر الموجودة مباشرةً داخله فقط." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige hasta qué nivel pueden explorar una carpeta el iPhone y el iPad. «Un nivel» solo muestra los elementos que contiene directamente." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "選擇 iPhone 和 iPad 可瀏覽資料夾的範圍。「單一層級」只顯示該資料夾第一層的項目。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择 iPhone 和 iPad 可浏览文件夹的范围。“一层”只显示该文件夹第一层的项目。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "iPhone 및 iPad에서 폴더를 어디까지 탐색할 수 있는지 선택합니다. ‘한 단계’는 폴더 바로 아래에 있는 항목만 표시합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "iPhone と iPad からフォルダをどこまで参照できるかを選択します。「1 階層」では、そのフォルダの直下にある項目のみが表示されます。" + } + } + } + }, "settings.mobile.artifactFolderAccess.oneLevel": { "extractionState": "manual", "localizations": { @@ -322877,6 +325650,65 @@ } } }, + "settings.mobile.iOSPairingHost.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Lets iPhone and iPad pair with and connect to this Mac." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "iPhone und iPad können sich mit diesem Mac koppeln und verbinden." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L’iPhone et l’iPad peuvent se jumeler avec ce Mac et s’y connecter." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يمكن لـ iPhone وiPad الاقتران بجهاز Mac هذا والاتصال به." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El iPhone y el iPad pueden emparejarse con este Mac y conectarse a él." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "允許 iPhone 和 iPad 與此 Mac 配對及連線。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "允许 iPhone 和 iPad 与这台 Mac 配对并连接。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "iPhone과 iPad가 이 Mac과 페어링하고 연결할 수 있게 합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "iPhone と iPad がこの Mac とペアリングして接続できるようにします。" + } + } + } + }, "settings.mobile.managedByOrganization": { "extractionState": "manual", "localizations": { @@ -323172,6 +326004,65 @@ } } }, + "settings.mobile.phonePush.forwarding.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Sends agent notifications from this Mac to cmux on iPhone and iPad." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Leitet Agentenbenachrichtigungen von diesem Mac an cmux auf iPhone und iPad weiter." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Transfère les notifications des agents de ce Mac vers cmux sur iPhone et iPad." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يوجّه إشعارات الوكلاء من جهاز Mac هذا إلى cmux على iPhone وiPad." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reenvía las notificaciones de agentes de este Mac a cmux en iPhone y iPad." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "將此 Mac 上的代理程式通知傳送至 iPhone 和 iPad 上的 cmux。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "将这台 Mac 上的代理通知发送到 iPhone 和 iPad 上的 cmux。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "이 Mac의 에이전트 알림을 iPhone 및 iPad의 cmux로 보냅니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "この Mac からエージェントの通知を iPhone と iPad の cmux に送信します。" + } + } + } + }, "settings.mobile.phonePush.hideContent": { "extractionState": "manual", "localizations": { @@ -340293,65 +343184,6 @@ } } }, - "settings.notifications.sound.preview": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Preview Sound" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Ton anhören" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Écouter le son" - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "معاينة الصوت" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Escuchar sonido" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "試聽音效" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "试听声音" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "소리 미리 듣기" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サウンドをプレビュー" - } - } - } - }, "settings.notifications.sound.subtitle": { "extractionState": "manual", "localizations": { @@ -358945,6 +361777,65 @@ } } }, + "settings.shortcuts.showModifierHoldHints.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Holding Command or Control shows shortcut hints." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Hinweise zu Tastaturkürzeln erscheinen, solange die Befehlstaste oder die Control-Taste gedrückt ist." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les indices de raccourcis apparaissent tant que la touche Commande ou Contrôle est maintenue enfoncée." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تظهر تلميحات الاختصارات عند الضغط مع الاستمرار على Command أو Control." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las sugerencias de atajos aparecen mientras se mantiene presionada la tecla Comando o Control." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "按住 Command 或 Control 鍵時,會顯示快速鍵提示。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按住 Command 或 Control 键时,会显示快捷键提示。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Command 또는 Control 키를 누르고 있으면 단축키 힌트가 표시됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Command キーまたは Control キーを押したままにすると、ショートカットヒントが表示されます。" + } + } + } + }, "settings.sidebar.rightMaxWidth": { "extractionState": "manual", "localizations": { @@ -359070,6 +361961,65 @@ } } }, + "settings.sidebar.rightMaxWidth.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Lets the Dock in the right sidebar grow up to this width while leaving room for terminals." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Das Dock in der rechten Seitenleiste kann bis zu dieser Breite wachsen, lässt aber Platz für Terminals." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le Dock de la barre latérale droite peut s’élargir jusqu’à cette largeur tout en laissant de la place aux terminaux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يمكن أن يتسع Dock في الشريط الجانبي الأيمن حتى هذا العرض مع ترك مساحة للطرفيات." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El Dock de la barra lateral derecha puede ampliarse hasta este ancho, pero deja espacio para las terminales." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "右側邊欄中的 Dock 最寬可擴展至此寬度,並為終端機保留空間。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "右侧边栏中的 Dock 最宽可扩展到此宽度,同时为终端保留空间。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "오른쪽 사이드바의 Dock은 터미널 공간을 남겨 둔 채 이 너비까지 넓어질 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "右サイドバーの Dock は、ターミナルの領域を残したまま、この幅まで広げられます。" + } + } + } + }, "settings.sidebar.rightMaxWidth.toggle": { "extractionState": "manual", "localizations": { @@ -361891,6 +364841,65 @@ } } }, + "settings.terminal.adaptiveDefaultTheme.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Matches terminal colors to the light or dark appearance when no Ghostty theme or colors are set." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Passt die Terminalfarben an das helle oder dunkle Erscheinungsbild an, wenn in Ghostty kein Theme und keine Farben festgelegt sind." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Si aucun thème ni aucune couleur Ghostty n’est défini, les couleurs du terminal suivent l’apparence claire ou sombre." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عندما لا تكون هناك سمة أو ألوان محددة في Ghostty، تتوافق ألوان الطرفية مع المظهر الفاتح أو الداكن." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Si no hay ningún tema ni colores de Ghostty definidos, los colores de la terminal siguen la apariencia clara u oscura." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "未設定 Ghostty 主題或顏色時,終端機顏色會配合淺色或深色外觀。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未设置 Ghostty 主题或颜色时,终端颜色会随浅色或深色外观变化。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Ghostty 테마나 색상이 설정되어 있지 않으면 터미널 색상을 라이트 또는 다크 모드에 맞춥니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Ghostty のテーマや色が設定されていない場合、ターミナルの色をライトまたはダークの外観に合わせます。" + } + } + } + }, "settings.terminal.agentAutoResume": { "extractionState": "manual", "localizations": { @@ -361950,6 +364959,65 @@ } } }, + "settings.terminal.agentAutoResume.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Reopening cmux resumes agent sessions automatically." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Beim erneuten Öffnen von cmux werden Agenten-Sitzungen automatisch fortgesetzt." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les sessions d’agent reprennent automatiquement à la réouverture de cmux." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تُستأنف جلسات الوكلاء تلقائيًا عند إعادة فتح cmux." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las sesiones de agentes se reanudan automáticamente al volver a abrir cmux." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "重新開啟 cmux 時,自動繼續先前的代理工作階段。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重新打开 cmux 时,自动恢复之前的代理会话。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "cmux를 다시 열면 에이전트 세션이 자동으로 재개됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "cmux を開き直すと、エージェントのセッションが自動的に再開されます。" + } + } + } + }, "settings.terminal.agentHibernation": { "extractionState": "manual", "localizations": { @@ -362245,6 +365313,65 @@ } } }, + "settings.terminal.agentHibernation.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Hibernates idle background agent terminals above the live terminal limit. Even when this is off, cmux may hibernate them under critical memory pressure." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Versetzt inaktive Agenten-Terminals im Hintergrund in den Ruhezustand, sobald das Limit für aktive Terminals überschritten ist. Auch wenn diese Option deaktiviert ist, kann cmux sie bei kritischer Speicherauslastung in den Ruhezustand versetzen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Met en hibernation les terminaux d’agent inactifs en arrière-plan au-delà de la limite de terminaux actifs. Même si cette option est désactivée, cmux peut les mettre en hibernation en cas de pression mémoire critique." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يُدخل طرفيات الوكلاء الخاملة في الخلفية في السبات عند تجاوز حد الطرفيات النشطة. وحتى عند إيقاف هذا الخيار، قد يُدخلها cmux في السبات عند ضغط الذاكرة الحرج." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pone en hibernación las terminales de agentes inactivas en segundo plano que superan el límite de terminales activas. Aunque esta opción esté desactivada, cmux puede ponerlas en hibernación si la presión de memoria es crítica." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "作用中終端機超過上限時,閒置的背景代理終端機會進入休眠。即使關閉此選項,cmux 仍可能在記憶體壓力達到嚴重程度時讓它們休眠。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "活动终端超过上限时,空闲的后台代理终端会进入休眠。即使关闭此选项,cmux 仍可能在内存压力达到严重程度时让它们休眠。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "활성 터미널 수가 한도를 넘으면 백그라운드에서 유휴 상태인 에이전트 터미널을 최대 절전 모드로 전환합니다. 이 옵션을 꺼도 메모리 압박이 심각하면 cmux가 해당 터미널을 최대 절전 모드로 전환할 수 있습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "実行中のターミナル数が上限を超えると、アイドル状態のバックグラウンドエージェントのターミナルを休止させます。この設定がオフでも、メモリ逼迫が深刻な場合は cmux がこれらを休止させることがあります。" + } + } + } + }, "settings.terminal.copyOnSelect": { "extractionState": "manual", "localizations": { @@ -362370,6 +365497,65 @@ } } }, + "settings.terminal.copyOnSelect.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Selecting text in a terminal copies it to the clipboard." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Im Terminal ausgewählter Text wird in die Zwischenablage kopiert." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le texte sélectionné dans un terminal est copié dans le presse-papiers." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يُنسخ النص المحدد في الطرفية إلى الحافظة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El texto seleccionado en una terminal se copia al portapapeles." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在終端機中選取文字時,會將文字複製到剪貼簿。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在终端中选择文本时,会将文本复制到剪贴板。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "터미널에서 텍스트를 선택하면 클립보드에 복사됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナルでテキストを選択すると、クリップボードにコピーされます。" + } + } + } + }, "settings.terminal.reflowHardWrapOnCopy": { "extractionState": "manual", "localizations": { @@ -362429,6 +365615,65 @@ } } }, + "settings.terminal.reflowHardWrapOnCopy.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Copying text also joins line breaks a program printed at the full terminal width and drops a short continuation indent. Soft-wrapped lines always copy as one line." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Beim Kopieren werden auch Zeilenumbrüche zusammengefügt, die ein Programm bei voller Terminalbreite ausgegeben hat, und ein kurzer Fortsetzungseinzug wird entfernt. Weich umbrochene Zeilen werden immer als eine Zeile kopiert." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lors de la copie, les sauts de ligne qu’un programme a insérés à pleine largeur du terminal sont aussi supprimés, ainsi qu’un court retrait de continuation. Les lignes à retour automatique sont toujours copiées sur une seule ligne." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عند النسخ، تُدمج أيضًا فواصل الأسطر التي طبعها برنامج عند العرض الكامل للطرفية، وتُحذف مسافة البادئة القصيرة للسطر التالي. أما الأسطر الملتفّة تلقائيًا فتُنسخ دائمًا كسطر واحد." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Al copiar, también se unen los saltos de línea que un programa imprimió al ancho completo de la terminal y se quita una sangría de continuación corta. Las líneas con ajuste automático siempre se copian como una sola línea." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "複製文字時,也會合併程式在終端機滿寬處輸出的換行,並移除較短的續行縮排。自動換行的行一律會複製為一行。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "复制文本时,也会合并程序在终端满宽处输出的换行,并移除较短的续行缩进。自动换行的行始终会复制为一行。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "텍스트를 복사할 때 프로그램이 터미널 전체 너비에서 넣은 줄바꿈도 합치고 짧은 연속 들여쓰기를 제거합니다. 자동 줄바꿈된 줄은 항상 한 줄로 복사됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "テキストをコピーするとき、プログラムがターミナルの幅いっぱいで出力した改行もつなげ、短い継続インデントを取り除きます。ソフトラップされた行は常に 1 行としてコピーされます。" + } + } + } + }, "settings.terminal.memoryGuardrail": { "extractionState": "manual", "localizations": { @@ -362488,6 +365733,65 @@ } } }, + "settings.terminal.memoryGuardrail.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Warns when the processes in one pane use too much memory." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Warnt, wenn die Prozesse in einem Teilfenster zu viel Speicher verbrauchen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Avertit lorsque les processus d’un volet utilisent trop de mémoire." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "ينبّه عندما تستهلك العمليات في جزء واحد ذاكرة أكثر من اللازم." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Avisa cuando los procesos de un panel usan demasiada memoria." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "單一窗格中的處理程序使用過多記憶體時發出警告。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "某个窗格中的进程占用过多内存时发出警告。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "한 분할 창의 프로세스가 메모리를 너무 많이 사용하면 경고합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "1 つのペインのプロセスがメモリを使いすぎると警告します。" + } + } + } + }, "settings.terminal.memoryGuardrail.threshold": { "extractionState": "manual", "localizations": { @@ -362901,6 +366205,65 @@ } } }, + "settings.terminal.rendererRealization.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Frees graphics memory from terminals that are out of view. Their processes keep running." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Gibt den Grafikspeicher nicht sichtbarer Terminals frei. Ihre Prozesse laufen weiter." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Libère la mémoire graphique des terminaux hors de vue. Leurs processus continuent de s’exécuter." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يحرر ذاكرة الرسومات للطرفيات غير الظاهرة، مع استمرار تشغيل عملياتها." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Libera la memoria gráfica de las terminales fuera de la vista. Sus procesos siguen ejecutándose." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "釋放不在畫面上的終端機所使用的圖形記憶體,其處理程序仍會繼續執行。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "释放不在屏幕上的终端所占用的图形内存,其进程仍会继续运行。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "화면에 보이지 않는 터미널의 그래픽 메모리를 해제합니다. 해당 프로세스는 계속 실행됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "表示されていないターミナルのグラフィックスメモリを解放します。プロセスは動作し続けます。" + } + } + } + }, "settings.terminal.resumeCommands": { "extractionState": "manual", "localizations": { @@ -364140,6 +367503,65 @@ } } }, + "settings.terminal.scrollBar.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows a scroll bar in terminals, except in full-screen apps." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeigt in Terminals eine Bildlaufleiste an, außer in Vollbild-Apps." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affiche une barre de défilement dans les terminaux, sauf dans les apps en plein écran." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يعرض شريط تمرير في الطرفيات، إلا في التطبيقات بملء الشاشة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Muestra una barra de desplazamiento en las terminales, excepto en las apps a pantalla completa." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "在終端機中顯示捲軸(全螢幕 App 除外)。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在终端中显示滚动条(全屏 App 除外)。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "터미널에 스크롤 바를 표시합니다(전체 화면 앱 제외)." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナルにスクロールバーを表示します(フルスクリーンアプリを除く)。" + } + } + } + }, "settings.terminal.scrollSpeed": { "extractionState": "manual", "localizations": { @@ -364688,6 +368110,65 @@ } } }, + "settings.terminal.sessionContentWidth.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Wraps terminal and agent chat content at this width. Narrow panes still use their full width." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Terminal- und Agenten-Chat-Inhalte werden bei dieser Breite umbrochen. Schmalere Teilfenster nutzen weiterhin ihre volle Breite." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le contenu du terminal et du chat de l’agent revient à la ligne à cette largeur. Les volets plus étroits conservent toute leur largeur." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يلتف محتوى الطرفية ودردشة الوكيل عند هذا العرض. أما الأجزاء الأضيق فتستخدم عرضها الكامل." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El contenido de la terminal y del chat de agentes se ajusta a este ancho. Los paneles más estrechos siguen usando todo su ancho." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "終端機和代理對話的內容會在此寬度換行。較窄的窗格仍使用完整寬度。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "终端和代理对话的内容会在此宽度处换行。较窄的窗格仍使用全部宽度。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "터미널과 에이전트 채팅 내용을 이 너비에서 줄바꿈합니다. 이보다 좁은 분할 창에서는 전체 너비를 사용합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナルとエージェントチャットの内容をこの幅で折り返します。これより狭いペインでは、ペインの幅いっぱいに表示します。" + } + } + } + }, "settings.terminal.sessionContentWidth.toggle": { "extractionState": "manual", "localizations": { @@ -365326,6 +368807,65 @@ } } }, + "settings.terminal.textEditingGestures.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Pressing Command or Option with an arrow key or Delete moves or deletes by line or word. Full-screen terminal apps receive the rewritten keys too, so turn this off for apps that need the original keys." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Mit der Befehls- oder Wahltaste und einer Pfeiltaste oder der Löschtaste bewegen Sie die Einfügemarke bzw. löschen Text zeilen- oder wortweise. Auch Terminal-Apps im Vollbildmodus erhalten die umgeschriebenen Tasten. Deaktivieren Sie diese Option für Apps, die die ursprünglichen Tasten benötigen." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Commande ou Option associée à une touche fléchée ou à Supprimer déplace le point d’insertion ou supprime du texte par ligne ou par mot. Les apps de terminal en plein écran reçoivent aussi les touches réécrites : désactivez cette option pour les apps qui ont besoin des touches d’origine." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "يؤدي الضغط على Command أو Option مع مفتاح سهم أو مفتاح الحذف إلى التنقل أو الحذف سطرًا سطرًا أو كلمةً كلمة. وتتلقى تطبيقات الطرفية بملء الشاشة أيضًا المفاتيح المعاد كتابتها، لذا أوقف هذا الخيار للتطبيقات التي تحتاج إلى المفاتيح الأصلية." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comando u Opción junto con una tecla de flecha o Eliminar mueve el punto de inserción o borra por líneas o palabras. Las apps de terminal a pantalla completa también reciben las teclas reescritas, así que desactiva esta opción para las apps que necesitan las teclas originales." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "按住 Command 或 Option 鍵再按方向鍵或 Delete 鍵,可按行或字詞移動或刪除。全螢幕終端機 App 也會收到改寫後的按鍵,因此若 App 需要原始按鍵,請關閉此選項。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按住 Command 或 Option 键再按箭头键或 Delete 键,可按行或按词移动或删除。全屏终端 App 也会收到改写后的按键,因此如果 App 需要原始按键,请关闭此选项。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "Command 또는 Option 키를 누른 채 화살표 키나 Delete 키를 누르면 줄 또는 단어 단위로 이동하거나 삭제합니다. 전체 화면 터미널 앱에도 변환된 키가 전달되므로, 원래 키가 필요한 앱에서는 이 옵션을 끄세요." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Command キーまたは Option キーを押しながら矢印キーや Delete キーを押すと、行単位または単語単位で移動・削除します。フルスクリーンのターミナルアプリにも書き換えたキーが送られるため、元のキーが必要なアプリではこの設定をオフにしてください。" + } + } + } + }, "settings.textBox.betaWarning": { "extractionState": "manual", "localizations": { @@ -365694,6 +369234,65 @@ } } }, + "settings.textBox.focusOnNewTerminals.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Opening a terminal tab, split, or workspace puts keyboard focus in the TextBox." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wenn ein Terminal-Tab, eine Teilung oder ein Arbeitsbereich geöffnet wird, liegt der Tastaturfokus in der TextBox." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "À l’ouverture d’un onglet, d’une division ou d’un espace de travail de terminal, le focus du clavier est placé dans la TextBox." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عند فتح علامة تبويب طرفية أو تقسيم أو مساحة عمل، ينتقل تركيز لوحة المفاتيح إلى TextBox." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Al abrir una pestaña de terminal, una división o un espacio de trabajo, el enfoque del teclado se sitúa en el TextBox." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "開啟終端機標籤頁、分割或工作區時,將鍵盤焦點移到 TextBox。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开终端标签页、分屏或工作区时,将键盘焦点移到 TextBox。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "터미널 탭, 분할 또는 작업 공간을 열면 키보드 포커스가 TextBox로 이동합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナルタブ、分割、またはワークスペースを開くと、キーボードフォーカスが TextBox に移動します。" + } + } + } + }, "settings.textBox.maxLines": { "extractionState": "manual", "localizations": { @@ -366069,6 +369668,65 @@ } } }, + "settings.textBox.showOnNewTerminals.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Opening a terminal tab, split, or workspace shows the TextBox." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Beim Öffnen eines Terminal-Tabs, einer Teilung oder eines Arbeitsbereichs erscheint die TextBox." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "À l’ouverture d’un onglet, d’une division ou d’un espace de travail de terminal, la TextBox s’affiche." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عند فتح علامة تبويب طرفية أو تقسيم أو مساحة عمل، يظهر TextBox." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Al abrir una pestaña de terminal, una división o un espacio de trabajo, se muestra el TextBox." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "開啟終端機標籤頁、分割或工作區時顯示 TextBox。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开终端标签页、分屏或工作区时显示 TextBox。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "터미널 탭, 분할 또는 작업 공간을 열면 TextBox가 표시됩니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナルタブ、分割、またはワークスペースを開くと、TextBox が表示されます。" + } + } + } + }, "settings.textBox.submitAction.claude": { "extractionState": "manual", "localizations": { @@ -545246,6 +548904,65 @@ } } }, + "settings.betaFeatures.predictedEcho.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows typed characters right away on slow remote connections. They stay underlined until the remote host confirms them. Password prompts and full-screen apps are excluded." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Getippte Zeichen erscheinen bei langsamen Remoteverbindungen sofort. Sie bleiben unterstrichen, bis der Remote-Host sie bestätigt. Ausgenommen sind Passwortabfragen und Vollbild-Apps." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les caractères saisis s’affichent immédiatement sur les connexions distantes lentes. Ils restent soulignés jusqu’à ce que l’hôte distant les confirme. Cela ne s’applique ni aux invites de mot de passe ni aux apps en plein écran." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "تظهر الأحرف المكتوبة فورًا في الاتصالات البعيدة البطيئة، وتبقى مسطّرة حتى يؤكدها المضيف البعيد. ولا ينطبق ذلك على مطالبات كلمة المرور والتطبيقات بملء الشاشة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los caracteres escritos aparecen al instante en conexiones remotas lentas y permanecen subrayados hasta que el host remoto los confirma. No se aplica a solicitudes de contraseña ni a apps a pantalla completa." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "遠端連線較慢時,輸入的字元會立即顯示並加上底線,直到遠端主機確認為止。密碼提示和全螢幕 App 不適用此功能。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "远程连接较慢时,输入的字符会立即显示并带有下划线,直到远程主机确认为止。密码提示和全屏 App 不适用此功能。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "원격 연결이 느릴 때 입력한 문자를 바로 표시하고, 원격 호스트가 확인할 때까지 밑줄로 표시합니다. 비밀번호 프롬프트와 전체 화면 앱에는 적용되지 않습니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモート接続が遅いとき、入力した文字をすぐに表示し、リモートホストが確認するまで下線を付けます。パスワードの入力やフルスクリーンアプリには適用されません。" + } + } + } + }, "fileExplorer.error.cloudPreviewTooLarge": { "extractionState": "manual", "localizations": { @@ -546702,297 +550419,61 @@ } } }, - "terminal.passwordInput.indicator": { + "settings.app.equalizeSplitsOnCreate.subtitle": { "extractionState": "manual", "localizations": { - "ar": { - "stringUnit": { - "state": "translated", - "value": "إدخال كلمة المرور" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Passworteingabe" - } - }, "en": { "stringUnit": { "state": "translated", - "value": "Password input" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Entrada de contraseña" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Saisie du mot de passe" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "パスワード入力" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "비밀번호 입력" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "密码输入" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "密碼輸入" - } - } - } - }, - "settings.terminal.showPasswordInputIndicator": { - "extractionState": "manual", - "localizations": { - "ar": { - "stringUnit": { - "state": "translated", - "value": "مؤشر إدخال كلمة المرور" + "value": "Splitting a pane makes the panes in that direction equal in size." } }, "de": { "stringUnit": { "state": "translated", - "value": "Anzeige für Passworteingabe" - } - }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Password Input Indicator" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Indicador de entrada de contraseña" + "value": "Wird ein Teilfenster geteilt, werden alle Teilfenster in dieser Richtung gleich groß." } }, "fr": { "stringUnit": { "state": "translated", - "value": "Indicateur de saisie du mot de passe" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "パスワード入力インジケーター" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "비밀번호 입력 표시" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "密码输入指示器" + "value": "Lorsqu’un volet est divisé, les volets dans cette direction prennent la même taille." } }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "密碼輸入指示器" - } - } - } - }, - "settings.terminal.showPasswordInputDots": { - "extractionState": "manual", - "localizations": { "ar": { "stringUnit": { "state": "translated", - "value": "إظهار نقاط للأحرف المكتوبة" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Punkte für eingegebene Zeichen anzeigen" - } - }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Typed Password Dots" + "value": "عند تقسيم جزء، تصبح الأجزاء في ذلك الاتجاه متساوية الحجم." } }, "es": { "stringUnit": { "state": "translated", - "value": "Mostrar puntos por los caracteres escritos" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Afficher des points pour les caractères saisis" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "入力したパスワードのドットを表示" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "입력한 비밀번호 점 표시" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "显示已输入的密码圆点" + "value": "Al dividir un panel, los paneles en esa dirección se ajustan al mismo tamaño." } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "顯示已輸入的密碼圓點" - } - } - } - }, - "settings.search.alias.setting.terminal.password-input-indicator": { - "extractionState": "manual", - "localizations": { - "ar": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt كلمة المرور إدخال مؤشر قفل" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt passwort eingabe anzeige schloss" - } - }, - "en": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt contraseña entrada indicador candado eco" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt mot de passe saisie indicateur cadenas écho" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt パスワード 入力 インジケーター 鍵 エコー" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt 비밀번호 입력 표시 자물쇠 에코" + "value": "分割窗格時,同一方向的窗格會調整為相同大小。" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt 密码 输入 指示器 锁 回显" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt 密碼 輸入 指示器 鎖頭 回顯" - } - } - } - }, - "settings.search.alias.setting.terminal.password-input-dots": { - "extractionState": "manual", - "localizations": { - "ar": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt كلمة المرور نقاط أحرف" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt passwort punkte zeichen anzahl" - } - }, - "en": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt contraseña puntos caracteres" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt mot de passe points caractères" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt パスワード ドット 文字" + "value": "拆分窗格时,同一方向的窗格会调整为相同大小。" } }, "ko": { "stringUnit": { "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt 비밀번호 점 문자" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt 密码 圆点 字符" + "value": "창을 분할하면 같은 방향의 분할 창이 모두 같은 크기가 됩니다." } }, - "zh-Hant": { + "ja": { "stringUnit": { "state": "translated", - "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt 密碼 圓點 字元" + "value": "ペインを分割すると、その方向のペインが同じサイズになります。" } } } @@ -547469,6374 +550950,2893 @@ } } }, - "cli.session.error.unknownSubcommand": { + "globalSearch.kind.terminal": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Unknown session subcommand: %@. Usage: cmux session move <session-id> --to <ssh-destination|local>" + "value": "Terminal" } }, - "ar": { + "ja": { "stringUnit": { "state": "translated", - "value": "أمر session فرعي غير معروف: %@. الاستخدام: cmux session move <session-id> --to <ssh-destination|local>" + "value": "ターミナル" } }, - "de": { + "ko": { "stringUnit": { "state": "translated", - "value": "Unbekannter session-Unterbefehl: %@. Verwendung: cmux session move <session-id> --to <ssh-destination|local>" + "value": "터미널" } }, - "es": { + "ar": { "stringUnit": { "state": "translated", - "value": "Subcomando de session desconocido: %@. Uso: cmux session move <session-id> --to <ssh-destination|local>" + "value": "طرفية" } }, - "fr": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "Sous-commande session inconnue : %@. Utilisation : cmux session move <session-id> --to <ssh-destination|local>" + "value": "終端" } }, - "ja": { + "zh-Hans": { "stringUnit": { "state": "translated", - "value": "不明な session サブコマンド: %@。使用方法: cmux session move <session-id> --to <ssh-destination|local>" + "value": "终端" } }, - "ko": { + "de": { "stringUnit": { "state": "translated", - "value": "알 수 없는 session 하위 명령: %@. 사용법: cmux session move <session-id> --to <ssh-destination|local>" + "value": "Terminal" } }, - "zh-Hans": { + "fr": { "stringUnit": { "state": "translated", - "value": "未知的 session 子命令:%@。用法:cmux session move <session-id> --to <ssh-destination|local>" + "value": "Terminal" } }, - "zh-Hant": { + "es": { "stringUnit": { "state": "translated", - "value": "未知的 session 子命令:%@。用法:cmux session move <session-id> --to <ssh-destination|local>" + "value": "Terminal" } } } }, - "cli.session.move.error.branchDiverged": { + "terminal.passwordInput.indicator": { "extractionState": "manual", "localizations": { - "en": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: branch %@ on the destination has commits the session's HEAD does not contain" + "value": "إدخال كلمة المرور" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: الفرع %@ في الوجهة يحتوي على commits غير موجودة في HEAD الخاص بالجلسة" + "value": "Passworteingabe" } }, - "de": { + "en": { "stringUnit": { "state": "translated", - "value": "session move: Der Branch %@ am Ziel enthält Commits, die im HEAD der Sitzung fehlen" + "value": "Password input" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: la rama %@ en el destino tiene commits que el HEAD de la sesión no contiene" + "value": "Entrada de contraseña" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : la branche %@ sur la destination contient des commits absents du HEAD de la session" + "value": "Saisie du mot de passe" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動先のブランチ %@ にセッションの HEAD に含まれないコミットがあります" + "value": "パスワード入力" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 대상의 %@ 브랜치에 세션 HEAD에 없는 커밋이 있습니다" + "value": "비밀번호 입력" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:目标上的分支 %@ 包含会话 HEAD 中没有的提交" + "value": "密码输入" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:目的地的分支 %@ 含有此工作階段 HEAD 沒有的 commit" + "value": "密碼輸入" } } } }, - "cli.session.move.error.checkoutDirty": { + "settings.terminal.showPasswordInputIndicator": { "extractionState": "manual", "localizations": { - "en": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: %@ on the destination has changes that did not come from this session; commit or stash them there first" + "value": "مؤشر إدخال كلمة المرور" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: يحتوي %@ في الوجهة على تغييرات لم تأتِ من هذه الجلسة؛ نفّذ commit لها أو stash هناك أولًا" + "value": "Anzeige für Passworteingabe" } }, - "de": { + "en": { "stringUnit": { "state": "translated", - "value": "session move: %@ am Ziel hat Änderungen, die nicht aus dieser Sitzung stammen; committe oder stashe sie dort zuerst" + "value": "Password Input Indicator" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: %@ en el destino tiene cambios que no provienen de esta sesión; haz commit o stash allí primero" + "value": "Indicador de entrada de contraseña" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : %@ sur la destination contient des modifications qui ne viennent pas de cette session ; validez-les ou mettez-les de côté (stash) d'abord" + "value": "Indicateur de saisie du mot de passe" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動先の %@ にこのセッション由来ではない変更があります。先にそこでコミットまたは stash してください" + "value": "パスワード入力インジケーター" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 대상의 %@에 이 세션에서 오지 않은 변경 사항이 있습니다. 먼저 그곳에서 커밋하거나 stash하세요" + "value": "비밀번호 입력 표시" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:目标上的 %@ 有并非来自此会话的更改;请先在那里提交或 stash" + "value": "密码输入指示器" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:目的地的 %@ 有不是來自此工作階段的變更;請先在那裡 commit 或 stash" + "value": "密碼輸入指示器" } } } }, - "cli.session.move.error.copyFailed": { + "settings.terminal.showPasswordInputIndicator.subtitle": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: copying %@ failed: %@" + "value": "Shows a lock badge in the terminal corner while a program such as sudo or ssh reads a password with echo off." } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: فشل نسخ %1$@: %2$@" + "value": "Zeigt in der Terminalecke ein Schloss-Symbol an, während ein Programm wie sudo oder ssh ein Passwort ohne Echo einliest." } }, - "de": { + "fr": { "stringUnit": { "state": "translated", - "value": "session move: Kopieren von %1$@ fehlgeschlagen: %2$@" + "value": "Affiche un badge de cadenas dans le coin du terminal pendant qu'un programme comme sudo ou ssh lit un mot de passe sans écho." } }, - "es": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: no se pudo copiar %1$@: %2$@" + "value": "يعرض شارة قفل في زاوية الطرفية أثناء قراءة برنامج مثل sudo أو ssh لكلمة مرور مع إيقاف الصدى." } }, - "fr": { + "es": { "stringUnit": { "state": "translated", - "value": "session move : échec de la copie de %1$@ : %2$@" + "value": "Muestra una insignia de candado en la esquina del terminal mientras un programa como sudo o ssh lee una contraseña sin eco." } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move: %1$@ のコピーに失敗しました: %2$@" + "value": "當 sudo 或 ssh 等程式在關閉回顯的情況下讀取密碼時,在終端機角落顯示鎖頭標記。" } }, - "ko": { + "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move: %1$@ 복사 실패: %2$@" + "value": "当 sudo 或 ssh 等程序在关闭回显的情况下读取密码时,在终端角落显示锁形标记。" } }, - "zh-Hans": { + "ko": { "stringUnit": { "state": "translated", - "value": "session move:复制 %1$@ 失败:%2$@" + "value": "sudo나 ssh 같은 프로그램이 에코를 끈 상태로 비밀번호를 읽는 동안 터미널 모서리에 자물쇠 배지를 표시합니다." } }, - "zh-Hant": { + "ja": { "stringUnit": { "state": "translated", - "value": "session move:複製 %1$@ 失敗:%2$@" + "value": "sudo や ssh などのプログラムがエコーをオフにしてパスワードを読み取っている間、ターミナルの隅に鍵のバッジを表示します。" } } } }, - "cli.session.move.error.cwdMissing": { + "settings.terminal.showPasswordInputDots": { "extractionState": "manual", "localizations": { - "en": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: %@ does not exist on the destination" + "value": "إظهار نقاط للأحرف المكتوبة" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: %@ غير موجود في الوجهة" + "value": "Punkte für eingegebene Zeichen anzeigen" } }, - "de": { + "en": { "stringUnit": { "state": "translated", - "value": "session move: %@ existiert am Ziel nicht" + "value": "Show Typed Password Dots" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: %@ no existe en el destino" + "value": "Mostrar puntos por los caracteres escritos" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : %@ n'existe pas sur la destination" + "value": "Afficher des points pour les caractères saisis" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動先に %@ が存在しません" + "value": "入力したパスワードのドットを表示" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 대상에 %@이(가) 없습니다" + "value": "입력한 비밀번호 점 표시" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:目标上不存在 %@" + "value": "显示已输入的密码圆点" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:目的地上不存在 %@" + "value": "顯示已輸入的密碼圓點" } } } }, - "cli.session.move.error.flagRequiresValue": { + "settings.terminal.showPasswordInputDots.subtitle": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: %@ requires a value" + "value": "Shows one dot in the badge per typed character. cmux keeps only a count, never the characters." } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: يتطلب %@ قيمة" + "value": "Zeigt im Symbol einen Punkt pro eingegebenem Zeichen. cmux speichert nur die Anzahl, niemals die Zeichen." } }, - "de": { + "fr": { "stringUnit": { "state": "translated", - "value": "session move: %@ benötigt einen Wert" + "value": "Affiche dans le badge un point par caractère saisi. cmux ne conserve qu'un compteur, jamais les caractères." } }, - "es": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: %@ requiere un valor" + "value": "يعرض في الشارة نقطة واحدة لكل حرف مكتوب. يحتفظ cmux بالعدد فقط، ولا يحتفظ بالأحرف أبدًا." } }, - "fr": { + "es": { "stringUnit": { "state": "translated", - "value": "session move : %@ nécessite une valeur" + "value": "Muestra en la insignia un punto por cada carácter escrito. cmux solo guarda un recuento, nunca los caracteres." } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move: %@ には値が必要です" + "value": "在標記中為每個已輸入的字元顯示一個圓點。cmux 只保留數量,絕不保留字元本身。" } }, - "ko": { + "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move: %@에는 값이 필요합니다" + "value": "在标记中为每个已输入的字符显示一个圆点。cmux 只保留数量,绝不保留字符本身。" } }, - "zh-Hans": { + "ko": { "stringUnit": { "state": "translated", - "value": "session move:%@ 需要一个值" + "value": "배지에 입력한 문자마다 점을 하나씩 표시합니다. cmux는 개수만 유지하며 문자는 절대 보관하지 않습니다." } }, - "zh-Hant": { + "ja": { "stringUnit": { "state": "translated", - "value": "session move:%@ 需要一個值" + "value": "入力した文字ごとにバッジにドットを 1 つ表示します。cmux が保持するのは数だけで、文字そのものは保持しません。" } } } }, - "cli.session.move.error.gitFailed": { + "settings.search.alias.setting.terminal.password-input-indicator": { "extractionState": "manual", "localizations": { - "en": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: git %@ failed: %@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt كلمة المرور إدخال مؤشر قفل" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: فشل git %1$@: %2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt passwort eingabe anzeige schloss" } }, - "de": { + "en": { "stringUnit": { "state": "translated", - "value": "session move: git %1$@ fehlgeschlagen: %2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: falló git %1$@: %2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt contraseña entrada indicador candado eco" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : échec de git %1$@ : %2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt mot de passe saisie indicateur cadenas écho" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: git %1$@ に失敗しました: %2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt パスワード 入力 インジケーター 鍵 エコー" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: git %1$@ 실패: %2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt 비밀번호 입력 표시 자물쇠 에코" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:git %1$@ 失败:%2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt 密码 输入 指示器 锁 回显" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:git %1$@ 失敗:%2$@" + "value": "terminal.showPasswordInputIndicator password input indicator secure input echo off lock badge sudo ssh passwd gpg prompt 密碼 輸入 指示器 鎖頭 回顯" } } } }, - "cli.session.move.error.invalidSessionID": { + "settings.search.alias.setting.terminal.password-input-dots": { "extractionState": "manual", "localizations": { - "en": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: '%@' is not a session id" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt كلمة المرور نقاط أحرف" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: '%@' ليس معرّف جلسة" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt passwort punkte zeichen anzahl" } }, - "de": { + "en": { "stringUnit": { "state": "translated", - "value": "session move: „%@“ ist keine Sitzungs-ID" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: '%@' no es un id de sesión" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt contraseña puntos caracteres" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : '%@' n'est pas un identifiant de session" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt mot de passe points caractères" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: '%@' はセッション ID ではありません" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt パスワード ドット 文字" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: '%@'은(는) 세션 ID가 아닙니다" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt 비밀번호 점 문자" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:'%@' 不是会话 ID" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt 密码 圆点 字符" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:'%@' 不是工作階段 ID" + "value": "terminal.showPasswordInputDots password dots typed characters count bullets feedback sudo ssh prompt 密碼 圓點 字元" } } } }, - "cli.session.move.error.liveOnDestination": { + "cli.session.usage": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: the session is already running on %@" + "value": "Usage: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nMove a stopped Claude Code session to another machine and resume it there.\nExit the agent first: the move refuses while the session runs on either side.\n\nThe move carries:\n - the cwd's git checkout: HEAD (on the same branch when safe) plus modified,\n deleted and untracked non-ignored files; a worktree is added when the\n repository exists on the destination but the path does not\n - the transcript, its session directory, file history, and the project\n memory directory (merged both ways, newest wins, nothing deleted)\n\nIt then opens a workspace on the destination (`cmux ssh` for a host, a local\nworkspace for `local`) that resumes the session with its recorded launcher.\nWhen the destination home is not at the same absolute path, paths under the\nhome are mapped and the project is re-slugged.\n\nOptions:\n --to <destination> SSH destination (user@host or ssh_config alias), or local\n --from <destination> Where the session is now (default: where the last move put it, else local)\n --name <title> Workspace title (default: the first 8 characters of the id)\n --no-code Do not carry the git checkout\n --port <n> SSH port\n --identity <path> SSH identity file\n --ssh-option <opt> Extra SSH -o option (repeatable)\n --no-focus Open the workspace without switching to it\n\nExamples:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: الجلسة قيد التشغيل بالفعل على %@" + "value": "Verwendung: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nVerschiebt eine beendete Claude Code-Sitzung auf eine andere Maschine und setzt sie dort fort.\nBeende zuerst den Agenten: Die Verschiebung wird abgelehnt, solange die Sitzung auf einer Seite läuft.\n\nDie Verschiebung überträgt:\n - den git-Checkout des cwd: HEAD (auf demselben Branch, wenn das sicher ist) sowie geänderte,\n gelöschte und nicht ignorierte, nicht verfolgte Dateien; ein Worktree wird hinzugefügt, wenn\n das Repository am Ziel existiert, der Pfad aber nicht\n - das Transkript, sein Sitzungsverzeichnis, den Dateiverlauf und das Projektgedächtnis\n (in beide Richtungen zusammengeführt, das Neueste gewinnt, nichts wird gelöscht)\n\nDanach öffnet sie am Ziel einen Workspace (`cmux ssh` für einen Host, einen lokalen Workspace\nfür `local`), der die Sitzung mit ihrem aufgezeichneten Launcher fortsetzt. Liegt das Home-\nVerzeichnis am Ziel nicht unter demselben absoluten Pfad, werden Pfade darunter umgeschrieben\nund das Projekt erhält einen neuen Slug.\n\nOptionen:\n --to <destination> SSH-Ziel (user@host oder ssh_config-Alias) oder local\n --from <destination> Wo die Sitzung jetzt ist (Standard: wohin die letzte Verschiebung sie gebracht hat, sonst local)\n --name <title> Workspace-Titel (Standard: die ersten 8 Zeichen der ID)\n --no-code Den git-Checkout nicht übertragen\n --port <n> SSH-Port\n --identity <path> SSH-Identitätsdatei\n --ssh-option <opt> Zusätzliche SSH-Option -o (wiederholbar)\n --no-focus Workspace öffnen, ohne dorthin zu wechseln\n\nBeispiele:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "de": { + "fr": { "stringUnit": { "state": "translated", - "value": "session move: Die Sitzung läuft bereits auf %@" + "value": "Utilisation: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nDéplace une session Claude Code arrêtée vers une autre machine et la reprend là-bas.\nQuittez d'abord l'agent : le déplacement est refusé tant que la session s'exécute d'un côté ou de l'autre.\n\nLe déplacement transfère :\n - le checkout git du cwd : HEAD (sur la même branche quand c'est sûr) ainsi que les fichiers\n modifiés, supprimés et non suivis non ignorés ; un worktree est ajouté quand le dépôt existe\n sur la destination mais pas le chemin\n - la transcription, son répertoire de session, l'historique des fichiers et la mémoire du\n projet (fusionnée dans les deux sens, le plus récent l'emporte, rien n'est supprimé)\n\nIl ouvre ensuite un espace de travail sur la destination (`cmux ssh` pour un hôte, un espace\nlocal pour `local`) qui reprend la session avec son lanceur enregistré. Quand le dossier\npersonnel de destination n'a pas le même chemin absolu, les chemins qu'il contient sont\nconvertis et le projet reçoit un nouveau slug.\n\nOptions :\n --to <destination> Destination SSH (user@host ou alias ssh_config), ou local\n --from <destination> Où se trouve la session (par défaut : là où l'a mise le dernier déplacement, sinon local)\n --name <title> Titre de l'espace de travail (par défaut : les 8 premiers caractères de l'id)\n --no-code Ne pas transférer le checkout git\n --port <n> Port SSH\n --identity <path> Fichier d'identité SSH\n --ssh-option <opt> Option SSH -o supplémentaire (répétable)\n --no-focus Ouvrir l'espace de travail sans y basculer\n\nExemples :\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "es": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: la sesión ya se está ejecutando en %@" + "value": "الاستخدام: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nينقل جلسة Claude Code متوقفة إلى جهاز آخر ويستأنفها هناك.\nأغلق الوكيل أولًا: يُرفض النقل ما دامت الجلسة تعمل على أي من الجانبين.\n\nينقل الأمر:\n - checkout الخاص بـ git في cwd: HEAD (على الفرع نفسه عندما يكون ذلك آمنًا) والملفات المعدّلة\n والمحذوفة وغير المتتبعة وغير المتجاهلة؛ ويُضاف worktree عندما يوجد المستودع في الوجهة\n ولا يوجد المسار\n - نص الجلسة ودليل الجلسة وسجل الملفات ودليل ذاكرة المشروع\n (مدمج في الاتجاهين، الأحدث يفوز، ولا يُحذف شيء)\n\nثم يفتح مساحة عمل في الوجهة (`cmux ssh` لمضيف، أو مساحة عمل محلية لـ `local`)\nتستأنف الجلسة بالمشغّل المسجّل لها. عندما لا يكون المجلد الرئيسي في الوجهة\nعلى المسار المطلق نفسه، تُحوَّل المسارات داخله\nويُعاد إنشاء slug للمشروع.\n\nالخيارات:\n --to <destination> وجهة SSH (user@host أو اسم مستعار من ssh_config)، أو local\n --from <destination> مكان الجلسة الآن (الافتراضي: حيث وضعها آخر نقل، وإلا local)\n --name <title> عنوان مساحة العمل (الافتراضي: أول 8 أحرف من المعرّف)\n --no-code لا تنقل checkout الخاص بـ git\n --port <n> منفذ SSH\n --identity <path> ملف هوية SSH\n --ssh-option <opt> خيار SSH إضافي -o (قابل للتكرار)\n --no-focus افتح مساحة العمل دون التبديل إليها\n\nأمثلة:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "fr": { + "es": { "stringUnit": { "state": "translated", - "value": "session move : la session s'exécute déjà sur %@" + "value": "Uso: cmux session move <session-id> --to <ssh-destination|local> [options]\n\nMueve una sesión detenida de Claude Code a otra máquina y la reanuda allí.\nSal primero del agente: el movimiento se rechaza mientras la sesión se ejecute en cualquiera de los lados.\n\nEl movimiento lleva:\n - el checkout de git del cwd: HEAD (en la misma rama cuando es seguro) más los archivos\n modificados, eliminados y sin seguimiento no ignorados; se añade un worktree cuando el\n repositorio existe en el destino pero la ruta no\n - la transcripción, su directorio de sesión, el historial de archivos y la memoria del\n proyecto (combinada en ambos sentidos, gana la más reciente, no se borra nada)\n\nDespués abre un espacio de trabajo en el destino (`cmux ssh` para un host, uno local para\n`local`) que reanuda la sesión con su lanzador registrado. Cuando el home del destino no está\nen la misma ruta absoluta, las rutas bajo él se convierten\ny el proyecto recibe un nuevo slug.\n\nOpciones:\n --to <destination> Destino SSH (user@host o alias de ssh_config), o local\n --from <destination> Dónde está la sesión ahora (por defecto: donde la dejó el último movimiento, si no local)\n --name <title> Título del espacio de trabajo (por defecto: los primeros 8 caracteres del id)\n --no-code No llevar el checkout de git\n --port <n> Puerto SSH\n --identity <path> Archivo de identidad SSH\n --ssh-option <opt> Opción SSH -o adicional (repetible)\n --no-focus Abrir el espacio de trabajo sin cambiar a él\n\nEjemplos:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move: セッションはすでに %@ で実行中です" + "value": "用法: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n將已停止的 Claude Code 工作階段移到另一台機器並在那裡恢復。\n請先結束代理:只要工作階段仍在任一端執行,移動就會被拒絕。\n\n移動會帶上:\n - cwd 的 git checkout:HEAD(安全時使用同一分支)加上已修改、已刪除\n 和未追蹤且未忽略的檔案;若目的地有儲存庫\n 但沒有該路徑,會新增 worktree\n - 對話紀錄、其工作階段目錄、檔案歷史與專案記憶目錄\n (雙向合併,較新者優先,不刪除任何內容)\n\n接著在目的地開啟工作區(主機用 `cmux ssh`,`local` 則開本機工作區),\n以記錄的啟動器恢復工作階段。\n若目的地的主目錄不在相同的絕對路徑,其下的路徑會被對應,\n專案也會重新產生 slug。\n\n選項:\n --to <destination> SSH 目的地(user@host 或 ssh_config 別名),或 local\n --from <destination> 工作階段目前所在位置(預設:上次移動所放的位置,否則為 local)\n --name <title> 工作區標題(預設:ID 的前 8 個字元)\n --no-code 不帶上 git checkout\n --port <n> SSH 連接埠\n --identity <path> SSH 身分檔案\n --ssh-option <opt> 額外的 SSH -o 選項(可重複)\n --no-focus 開啟工作區但不切換過去\n\n範例:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "ko": { + "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move: 세션이 이미 %@에서 실행 중입니다" + "value": "用法: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n将已停止的 Claude Code 会话移到另一台机器并在那里恢复。\n请先退出代理:只要会话仍在任一端运行,移动就会被拒绝。\n\n移动会带上:\n - cwd 的 git 检出:HEAD(安全时使用同一分支)以及已修改、已删除\n 和未跟踪且未忽略的文件;若目标上有仓库\n 但没有该路径,会添加 worktree\n - 会话记录、其会话目录、文件历史和项目记忆目录\n (双向合并,较新者优先,不删除任何内容)\n\n随后在目标上打开工作区(主机用 `cmux ssh`,`local` 则打开本地工作区),\n用记录的启动器恢复会话。\n若目标的主目录不在相同的绝对路径,其下的路径会被映射,\n项目也会重新生成 slug。\n\n选项:\n --to <destination> SSH 目标(user@host 或 ssh_config 别名),或 local\n --from <destination> 会话当前所在位置(默认:上次移动放置的位置,否则为 local)\n --name <title> 工作区标题(默认:ID 的前 8 个字符)\n --no-code 不带上 git 检出\n --port <n> SSH 端口\n --identity <path> SSH 身份文件\n --ssh-option <opt> 额外的 SSH -o 选项(可重复)\n --no-focus 打开工作区但不切换过去\n\n示例:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "zh-Hans": { + "ko": { "stringUnit": { "state": "translated", - "value": "session move:会话已在 %@ 上运行" + "value": "사용법: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n중지된 Claude Code 세션을 다른 머신으로 옮기고 그곳에서 재개합니다.\n먼저 에이전트를 종료하세요. 어느 쪽에서든 세션이 실행 중이면 이동이 거부됩니다.\n\n이동하는 항목:\n - cwd의 git 체크아웃: HEAD(안전하면 같은 브랜치)와 수정, 삭제,\n 무시되지 않은 추적 안 된 파일. 대상에 저장소는 있지만\n 경로가 없으면 worktree를 추가합니다\n - 트랜스크립트, 세션 디렉터리, 파일 기록, 프로젝트 메모리 디렉터리\n (양방향 병합, 최신 우선, 삭제 없음)\n\n그런 다음 대상에서 작업 공간(호스트는 `cmux ssh`, `local`은 로컬 작업 공간)을 열고\n기록된 런처로 세션을 재개합니다.\n대상의 홈이 같은 절대 경로에 있지 않으면 홈 아래 경로를 변환하고\n프로젝트 slug를 다시 만듭니다.\n\n옵션:\n --to <destination> SSH 대상(user@host 또는 ssh_config 별칭) 또는 local\n --from <destination> 세션의 현재 위치(기본값: 마지막 이동으로 옮긴 곳, 없으면 local)\n --name <title> 작업 공간 제목(기본값: ID의 처음 8자)\n --no-code git 체크아웃을 옮기지 않음\n --port <n> SSH 포트\n --identity <path> SSH ID 파일\n --ssh-option <opt> 추가 SSH -o 옵션(반복 가능)\n --no-focus 작업 공간으로 전환하지 않고 열기\n\n예시:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } }, - "zh-Hant": { + "ja": { "stringUnit": { "state": "translated", - "value": "session move:此工作階段已在 %@ 上執行" + "value": "使用方法: cmux session move <session-id> --to <ssh-destination|local> [options]\n\n停止した Claude Code セッションを別のマシンへ移動し、そこで再開します。\n先にエージェントを終了してください。どちらかでセッションが実行中の間は移動を拒否します。\n\n移動する内容:\n - cwd の git チェックアウト: HEAD (安全なら同じブランチ) と、変更・削除されたファイル、\n 無視されていない未追跡ファイル。移動先にリポジトリはあるが\n パスがない場合は worktree を追加します\n - トランスクリプト、セッションディレクトリ、ファイル履歴、プロジェクトのメモリディレクトリ\n (双方向にマージ、新しいほうを優先、削除はしません)\n\nその後、移動先でワークスペース (ホストなら `cmux ssh`、`local` ならローカルのワークスペース) を\n開き、記録されたランチャーでセッションを再開します。\n移動先のホームが同じ絶対パスにない場合は、ホーム配下のパスを変換し、\nプロジェクトの slug を作り直します。\n\nオプション:\n --to <destination> SSH 接続先 (user@host または ssh_config のエイリアス)、または local\n --from <destination> セッションの現在の場所 (既定: 前回の移動先、なければ local)\n --name <title> ワークスペースのタイトル (既定: ID の先頭 8 文字)\n --no-code git チェックアウトを移動しない\n --port <n> SSH ポート\n --identity <path> SSH の ID ファイル\n --ssh-option <opt> 追加の SSH -o オプション (繰り返し可)\n --no-focus ワークスペースに切り替えずに開く\n\n例:\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to dev@my-host\n cmux session move 0b7a1e7c-3f0a-4c6e-9d59-8a0d8f7c2b11 --to local" } } } }, - "cli.session.move.error.liveOnSource": { + "settings.notifications.sound.preview": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: the session is still running on %@; exit the agent at the end of its turn, then move it" + "value": "Preview Sound" } }, - "ar": { + "de": { "stringUnit": { "state": "translated", - "value": "session move: الجلسة لا تزال قيد التشغيل على %@؛ أغلق الوكيل عند نهاية دوره ثم انقلها" + "value": "Ton anhören" } }, - "de": { + "fr": { "stringUnit": { "state": "translated", - "value": "session move: Die Sitzung läuft noch auf %@; beende den Agenten am Ende seines Zuges und verschiebe sie dann" + "value": "Écouter le son" } }, - "es": { + "ar": { "stringUnit": { "state": "translated", - "value": "session move: la sesión sigue ejecutándose en %@; sal del agente al final de su turno y luego muévela" + "value": "معاينة الصوت" } }, - "fr": { + "es": { "stringUnit": { "state": "translated", - "value": "session move : la session s'exécute encore sur %@ ; quittez l'agent à la fin de son tour, puis déplacez-la" + "value": "Escuchar sonido" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move: セッションはまだ %@ で実行中です。ターンの終わりにエージェントを終了してから移動してください" + "value": "試聽音效" } }, - "ko": { + "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move: 세션이 아직 %@에서 실행 중입니다. 에이전트가 턴을 마치면 종료한 뒤 이동하세요" + "value": "试听声音" } }, - "zh-Hans": { + "ko": { "stringUnit": { "state": "translated", - "value": "session move:会话仍在 %@ 上运行;请在代理本轮结束后退出,再移动" + "value": "소리 미리 듣기" } }, - "zh-Hant": { + "ja": { "stringUnit": { "state": "translated", - "value": "session move:此工作階段仍在 %@ 上執行;請在代理完成本輪後結束它,再移動" + "value": "サウンドをプレビュー" } } } }, - "cli.session.move.error.repositoryMissing": { + "cli.session.error.unknownSubcommand": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: no checkout at %@ and no repository at %@ on the destination; clone it there first" + "value": "Unknown session subcommand: %@. Usage: cmux session move <session-id> --to <ssh-destination|local>" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: لا يوجد checkout في %1$@ ولا مستودع في %2$@ على الوجهة؛ انسخه (clone) هناك أولًا" + "value": "أمر session فرعي غير معروف: %@. الاستخدام: cmux session move <session-id> --to <ssh-destination|local>" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Am Ziel gibt es keinen Checkout unter %1$@ und kein Repository unter %2$@; klone es dort zuerst" + "value": "Unbekannter session-Unterbefehl: %@. Verwendung: cmux session move <session-id> --to <ssh-destination|local>" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: no hay checkout en %1$@ ni repositorio en %2$@ en el destino; clónalo allí primero" + "value": "Subcomando de session desconocido: %@. Uso: cmux session move <session-id> --to <ssh-destination|local>" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : aucun checkout à %1$@ et aucun dépôt à %2$@ sur la destination ; clonez-le d'abord" + "value": "Sous-commande session inconnue : %@. Utilisation : cmux session move <session-id> --to <ssh-destination|local>" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動先の %1$@ にチェックアウトがなく、%2$@ にリポジトリもありません。先にそこでクローンしてください" + "value": "不明な session サブコマンド: %@。使用方法: cmux session move <session-id> --to <ssh-destination|local>" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 대상의 %1$@에 체크아웃이 없고 %2$@에 저장소도 없습니다. 먼저 그곳에 클론하세요" + "value": "알 수 없는 session 하위 명령: %@. 사용법: cmux session move <session-id> --to <ssh-destination|local>" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:目标上 %1$@ 没有检出,%2$@ 也没有仓库;请先在那里克隆" + "value": "未知的 session 子命令:%@。用法:cmux session move <session-id> --to <ssh-destination|local>" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:目的地的 %1$@ 沒有 checkout,%2$@ 也沒有儲存庫;請先在那裡 clone" + "value": "未知的 session 子命令:%@。用法:cmux session move <session-id> --to <ssh-destination|local>" } } } }, - "cli.session.move.error.sameEndpoint": { + "cli.session.move.error.branchDiverged": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: the session is already there" + "value": "session move: branch %@ on the destination has commits the session's HEAD does not contain" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: الجلسة موجودة هناك بالفعل" + "value": "session move: الفرع %@ في الوجهة يحتوي على commits غير موجودة في HEAD الخاص بالجلسة" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Die Sitzung ist bereits dort" + "value": "session move: Der Branch %@ am Ziel enthält Commits, die im HEAD der Sitzung fehlen" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: la sesión ya está allí" + "value": "session move: la rama %@ en el destino tiene commits que el HEAD de la sesión no contiene" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : la session y est déjà" + "value": "session move : la branche %@ sur la destination contient des commits absents du HEAD de la session" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: セッションはすでにそこにあります" + "value": "session move: 移動先のブランチ %@ にセッションの HEAD に含まれないコミットがあります" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 세션이 이미 그곳에 있습니다" + "value": "session move: 대상의 %@ 브랜치에 세션 HEAD에 없는 커밋이 있습니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:会话已经在那里" + "value": "session move:目标上的分支 %@ 包含会话 HEAD 中没有的提交" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:此工作階段已經在那裡" + "value": "session move:目的地的分支 %@ 含有此工作階段 HEAD 沒有的 commit" } } } }, - "cli.session.move.error.transcriptNewer": { + "cli.session.move.error.checkoutDirty": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: the destination transcript is newer; the session continued there, so move it the other way" + "value": "session move: %@ on the destination has changes that did not come from this session; commit or stash them there first" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: نص الجلسة في الوجهة أحدث؛ استمرت الجلسة هناك، لذا انقلها في الاتجاه الآخر" + "value": "session move: يحتوي %@ في الوجهة على تغييرات لم تأتِ من هذه الجلسة؛ نفّذ commit لها أو stash هناك أولًا" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Das Transkript am Ziel ist neuer; die Sitzung wurde dort fortgesetzt, verschiebe sie also in die andere Richtung" + "value": "session move: %@ am Ziel hat Änderungen, die nicht aus dieser Sitzung stammen; committe oder stashe sie dort zuerst" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: la transcripción del destino es más reciente; la sesión continuó allí, así que muévela en sentido contrario" + "value": "session move: %@ en el destino tiene cambios que no provienen de esta sesión; haz commit o stash allí primero" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : la transcription de destination est plus récente ; la session s'y est poursuivie, déplacez-la dans l'autre sens" + "value": "session move : %@ sur la destination contient des modifications qui ne viennent pas de cette session ; validez-les ou mettez-les de côté (stash) d'abord" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動先のトランスクリプトのほうが新しいです。セッションはそこで続行されたので、逆方向に移動してください" + "value": "session move: 移動先の %@ にこのセッション由来ではない変更があります。先にそこでコミットまたは stash してください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 대상의 트랜스크립트가 더 최신입니다. 세션이 그곳에서 계속되었으니 반대 방향으로 이동하세요" + "value": "session move: 대상의 %@에 이 세션에서 오지 않은 변경 사항이 있습니다. 먼저 그곳에서 커밋하거나 stash하세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:目标上的记录更新;会话已在那里继续,请反向移动" + "value": "session move:目标上的 %@ 有并非来自此会话的更改;请先在那里提交或 stash" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:目的地的對話紀錄較新;工作階段已在那裡繼續,請反向移動" + "value": "session move:目的地的 %@ 有不是來自此工作階段的變更;請先在那裡 commit 或 stash" } } } }, - "cli.session.move.error.transcriptNotFound": { + "cli.session.move.error.copyFailed": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: no Claude transcript for this session on %@" + "value": "session move: copying %@ failed: %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: لا يوجد نص Claude لهذه الجلسة على %@" + "value": "session move: فشل نسخ %1$@: %2$@" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Kein Claude-Transkript für diese Sitzung auf %@" + "value": "session move: Kopieren von %1$@ fehlgeschlagen: %2$@" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: no hay transcripción de Claude para esta sesión en %@" + "value": "session move: no se pudo copiar %1$@: %2$@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : aucune transcription Claude pour cette session sur %@" + "value": "session move : échec de la copie de %1$@ : %2$@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: %@ にこのセッションの Claude トランスクリプトがありません" + "value": "session move: %1$@ のコピーに失敗しました: %2$@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: %@에 이 세션의 Claude 트랜스크립트가 없습니다" + "value": "session move: %1$@ 복사 실패: %2$@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:%@ 上没有此会话的 Claude 记录" + "value": "session move:复制 %1$@ 失败:%2$@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:%@ 上沒有此工作階段的 Claude 對話紀錄" + "value": "session move:複製 %1$@ 失敗:%2$@" } } } }, - "cli.session.move.error.transcriptsDiverged": { + "cli.session.move.error.cwdMissing": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: the transcripts diverged (the destination copy is not a prefix of the source); resolve by hand" + "value": "session move: %@ does not exist on the destination" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: تباعدت النصوص (نسخة الوجهة ليست بادئة للمصدر)؛ عالج ذلك يدويًا" + "value": "session move: %@ غير موجود في الوجهة" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Die Transkripte sind auseinandergelaufen (die Kopie am Ziel ist kein Präfix der Quelle); bitte manuell auflösen" + "value": "session move: %@ existiert am Ziel nicht" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: las transcripciones divergieron (la copia del destino no es un prefijo del origen); resuélvelo a mano" + "value": "session move: %@ no existe en el destino" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : les transcriptions ont divergé (la copie de destination n'est pas un préfixe de la source) ; résolvez manuellement" + "value": "session move : %@ n'existe pas sur la destination" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: トランスクリプトが分岐しました (移動先のコピーが元の先頭部分ではありません)。手動で解決してください" + "value": "session move: 移動先に %@ が存在しません" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 트랜스크립트가 갈라졌습니다(대상 사본이 원본의 접두사가 아님). 직접 해결하세요" + "value": "session move: 대상에 %@이(가) 없습니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:记录已分叉(目标副本不是源的前缀);请手动处理" + "value": "session move:目标上不存在 %@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:對話紀錄已分歧(目的地的副本不是來源的前綴);請手動處理" + "value": "session move:目的地上不存在 %@" } } } }, - "cli.session.move.error.unknownFlag": { + "cli.session.move.error.flagRequiresValue": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: unknown flag '%@'" + "value": "session move: %@ requires a value" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: علم غير معروف '%@'" + "value": "session move: يتطلب %@ قيمة" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: unbekanntes Flag „%@“" + "value": "session move: %@ benötigt einen Wert" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: opción desconocida '%@'" + "value": "session move: %@ requiere un valor" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : option inconnue '%@'" + "value": "session move : %@ nécessite une valeur" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 不明なフラグ '%@'" + "value": "session move: %@ には値が必要です" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 알 수 없는 플래그 '%@'" + "value": "session move: %@에는 값이 필요합니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:未知标志 '%@'" + "value": "session move:%@ 需要一个值" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:未知的旗標 '%@'" + "value": "session move:%@ 需要一個值" } } } }, - "cli.session.move.error.unknownSource": { + "cli.session.move.error.gitFailed": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: no record of where this session was moved; pass --from <ssh-destination>" + "value": "session move: git %@ failed: %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: لا يوجد سجل بالمكان الذي نُقلت إليه هذه الجلسة؛ مرّر --from <ssh-destination>" + "value": "session move: فشل git %1$@: %2$@" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Kein Eintrag, wohin diese Sitzung verschoben wurde; gib --from <ssh-destination> an" + "value": "session move: git %1$@ fehlgeschlagen: %2$@" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: no hay registro de adónde se movió esta sesión; pasa --from <ssh-destination>" + "value": "session move: falló git %1$@: %2$@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : aucune trace de l'endroit où cette session a été déplacée ; passez --from <ssh-destination>" + "value": "session move : échec de git %1$@ : %2$@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: このセッションの移動先の記録がありません。--from <ssh-destination> を指定してください" + "value": "session move: git %1$@ に失敗しました: %2$@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 이 세션을 어디로 옮겼는지 기록이 없습니다. --from <ssh-destination>을 지정하세요" + "value": "session move: git %1$@ 실패: %2$@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:没有此会话被移动到何处的记录;请传入 --from <ssh-destination>" + "value": "session move:git %1$@ 失败:%2$@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:沒有此工作階段被移到何處的紀錄;請傳入 --from <ssh-destination>" + "value": "session move:git %1$@ 失敗:%2$@" } } } }, - "cli.session.move.error.unreachable": { + "cli.session.move.error.invalidSessionID": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: cannot reach %@: %@" + "value": "session move: '%@' is not a session id" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: تعذّر الوصول إلى %1$@: %2$@" + "value": "session move: '%@' ليس معرّف جلسة" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: %1$@ ist nicht erreichbar: %2$@" + "value": "session move: „%@“ ist keine Sitzungs-ID" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: no se puede acceder a %1$@: %2$@" + "value": "session move: '%@' no es un id de sesión" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : impossible de joindre %1$@ : %2$@" + "value": "session move : '%@' n'est pas un identifiant de session" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: %1$@ に接続できません: %2$@" + "value": "session move: '%@' はセッション ID ではありません" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: %1$@에 연결할 수 없습니다: %2$@" + "value": "session move: '%@'은(는) 세션 ID가 아닙니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:无法连接 %1$@:%2$@" + "value": "session move:'%@' 不是会话 ID" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:無法連線到 %1$@:%2$@" + "value": "session move:'%@' 不是工作階段 ID" } } } }, - "cli.session.move.error.unsupportedPath": { + "cli.session.move.error.liveOnDestination": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: paths with whitespace are not supported: %@" + "value": "session move: the session is already running on %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: المسارات التي تحتوي على مسافات غير مدعومة: %@" + "value": "session move: الجلسة قيد التشغيل بالفعل على %@" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Pfade mit Leerzeichen werden nicht unterstützt: %@" + "value": "session move: Die Sitzung läuft bereits auf %@" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: no se admiten rutas con espacios: %@" + "value": "session move: la sesión ya se está ejecutando en %@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : les chemins contenant des espaces ne sont pas pris en charge : %@" + "value": "session move : la session s'exécute déjà sur %@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 空白を含むパスはサポートされていません: %@" + "value": "session move: セッションはすでに %@ で実行中です" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 공백이 포함된 경로는 지원하지 않습니다: %@" + "value": "session move: 세션이 이미 %@에서 실행 중입니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:不支持包含空白的路径:%@" + "value": "session move:会话已在 %@ 上运行" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:不支援含有空白的路徑:%@" + "value": "session move:此工作階段已在 %@ 上執行" } } } }, - "cli.session.move.error.unsupportedRoute": { + "cli.session.move.error.liveOnSource": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: moves go between this Mac and one host; move the session back with --to local first" + "value": "session move: the session is still running on %@; exit the agent at the end of its turn, then move it" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: يتم النقل بين هذا الـ Mac ومضيف واحد؛ أعد الجلسة أولًا باستخدام --to local" + "value": "session move: الجلسة لا تزال قيد التشغيل على %@؛ أغلق الوكيل عند نهاية دوره ثم انقلها" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Verschiebungen laufen zwischen diesem Mac und einem Host; verschiebe die Sitzung zuerst mit --to local zurück" + "value": "session move: Die Sitzung läuft noch auf %@; beende den Agenten am Ende seines Zuges und verschiebe sie dann" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: los movimientos van entre este Mac y un host; primero devuelve la sesión con --to local" + "value": "session move: la sesión sigue ejecutándose en %@; sal del agente al final de su turno y luego muévela" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : les déplacements se font entre ce Mac et un hôte ; ramenez d'abord la session avec --to local" + "value": "session move : la session s'exécute encore sur %@ ; quittez l'agent à la fin de son tour, puis déplacez-la" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動はこの Mac と 1 台のホストの間で行います。先に --to local でセッションを戻してください" + "value": "session move: セッションはまだ %@ で実行中です。ターンの終わりにエージェントを終了してから移動してください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 이동은 이 Mac과 한 호스트 사이에서만 가능합니다. 먼저 --to local로 세션을 되돌리세요" + "value": "session move: 세션이 아직 %@에서 실행 중입니다. 에이전트가 턴을 마치면 종료한 뒤 이동하세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:移动只在这台 Mac 与一台主机之间进行;请先用 --to local 把会话移回" + "value": "session move:会话仍在 %@ 上运行;请在代理本轮结束后退出,再移动" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:移動只在這台 Mac 與一台主機之間進行;請先用 --to local 把工作階段移回來" + "value": "session move:此工作階段仍在 %@ 上執行;請在代理完成本輪後結束它,再移動" } } } }, - "cli.session.move.error.unsupportedSSHTarget": { + "cli.session.move.error.repositoryMissing": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: unsupported SSH destination or option for '%@' (use user@host or an ssh_config alias, without whitespace)" + "value": "session move: no checkout at %@ and no repository at %@ on the destination; clone it there first" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: وجهة أو خيار SSH غير مدعوم لـ '%@' (استخدم user@host أو اسمًا مستعارًا من ssh_config، بدون مسافات)" + "value": "session move: لا يوجد checkout في %1$@ ولا مستودع في %2$@ على الوجهة؛ انسخه (clone) هناك أولًا" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: nicht unterstütztes SSH-Ziel oder -Option für „%@“ (verwende user@host oder einen ssh_config-Alias, ohne Leerzeichen)" + "value": "session move: Am Ziel gibt es keinen Checkout unter %1$@ und kein Repository unter %2$@; klone es dort zuerst" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: destino u opción SSH no admitidos para '%@' (usa user@host o un alias de ssh_config, sin espacios)" + "value": "session move: no hay checkout en %1$@ ni repositorio en %2$@ en el destino; clónalo allí primero" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : destination ou option SSH non prise en charge pour '%@' (utilisez user@host ou un alias ssh_config, sans espaces)" + "value": "session move : aucun checkout à %1$@ et aucun dépôt à %2$@ sur la destination ; clonez-le d'abord" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: '%@' の SSH 接続先またはオプションはサポートされていません (空白なしの user@host か ssh_config のエイリアスを使ってください)" + "value": "session move: 移動先の %1$@ にチェックアウトがなく、%2$@ にリポジトリもありません。先にそこでクローンしてください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: '%@'에 대한 SSH 대상 또는 옵션을 지원하지 않습니다(공백 없이 user@host 또는 ssh_config 별칭 사용)" + "value": "session move: 대상의 %1$@에 체크아웃이 없고 %2$@에 저장소도 없습니다. 먼저 그곳에 클론하세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:'%@' 的 SSH 目标或选项不受支持(请使用 user@host 或 ssh_config 别名,且不含空白)" + "value": "session move:目标上 %1$@ 没有检出,%2$@ 也没有仓库;请先在那里克隆" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:'%@' 的 SSH 目的地或選項不受支援(請使用 user@host 或 ssh_config 別名,且不含空白)" + "value": "session move:目的地的 %1$@ 沒有 checkout,%2$@ 也沒有儲存庫;請先在那裡 clone" } } } }, - "cli.session.move.error.usage": { + "cli.session.move.error.sameEndpoint": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Usage: cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move: the session is already there" } }, "ar": { "stringUnit": { "state": "translated", - "value": "الاستخدام: cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move: الجلسة موجودة هناك بالفعل" } }, "de": { "stringUnit": { "state": "translated", - "value": "Verwendung: cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move: Die Sitzung ist bereits dort" } }, "es": { "stringUnit": { "state": "translated", - "value": "Uso: cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move: la sesión ya está allí" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Utilisation : cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move : la session y est déjà" } }, "ja": { "stringUnit": { "state": "translated", - "value": "使用方法: cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move: セッションはすでにそこにあります" } }, "ko": { "stringUnit": { "state": "translated", - "value": "사용법: cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move: 세션이 이미 그곳에 있습니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "用法:cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move:会话已经在那里" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "用法:cmux session move <session-id> --to <ssh-destination|local>" + "value": "session move:此工作階段已經在那裡" } } } }, - "cli.session.move.error.workingDirectoryUnknown": { + "cli.session.move.error.transcriptNewer": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: the transcript does not record the session's working directory" + "value": "session move: the destination transcript is newer; the session continued there, so move it the other way" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: لا يسجّل النص دليل العمل الخاص بالجلسة" + "value": "session move: نص الجلسة في الوجهة أحدث؛ استمرت الجلسة هناك، لذا انقلها في الاتجاه الآخر" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Das Transkript enthält kein Arbeitsverzeichnis der Sitzung" + "value": "session move: Das Transkript am Ziel ist neuer; die Sitzung wurde dort fortgesetzt, verschiebe sie also in die andere Richtung" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: la transcripción no registra el directorio de trabajo de la sesión" + "value": "session move: la transcripción del destino es más reciente; la sesión continuó allí, así que muévela en sentido contrario" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : la transcription n'indique pas le répertoire de travail de la session" + "value": "session move : la transcription de destination est plus récente ; la session s'y est poursuivie, déplacez-la dans l'autre sens" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: トランスクリプトにセッションの作業ディレクトリが記録されていません" + "value": "session move: 移動先のトランスクリプトのほうが新しいです。セッションはそこで続行されたので、逆方向に移動してください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 트랜스크립트에 세션의 작업 디렉터리가 기록되어 있지 않습니다" + "value": "session move: 대상의 트랜스크립트가 더 최신입니다. 세션이 그곳에서 계속되었으니 반대 방향으로 이동하세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:记录中没有会话的工作目录" + "value": "session move:目标上的记录更新;会话已在那里继续,请反向移动" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:對話紀錄沒有記錄工作階段的工作目錄" + "value": "session move:目的地的對話紀錄較新;工作階段已在那裡繼續,請反向移動" } } } }, - "cli.session.move.error.worktreeAddFailed": { + "cli.session.move.error.transcriptNotFound": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: could not add a worktree at %@: %@" + "value": "session move: no Claude transcript for this session on %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: تعذّرت إضافة worktree في %1$@: %2$@" + "value": "session move: لا يوجد نص Claude لهذه الجلسة على %@" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Worktree unter %1$@ konnte nicht hinzugefügt werden: %2$@" + "value": "session move: Kein Claude-Transkript für diese Sitzung auf %@" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: no se pudo añadir un worktree en %1$@: %2$@" + "value": "session move: no hay transcripción de Claude para esta sesión en %@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : impossible d'ajouter un worktree à %1$@ : %2$@" + "value": "session move : aucune transcription Claude pour cette session sur %@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: %1$@ に worktree を追加できませんでした: %2$@" + "value": "session move: %@ にこのセッションの Claude トランスクリプトがありません" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: %1$@에 worktree를 추가할 수 없습니다: %2$@" + "value": "session move: %@에 이 세션의 Claude 트랜스크립트가 없습니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:无法在 %1$@ 添加 worktree:%2$@" + "value": "session move:%@ 上没有此会话的 Claude 记录" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:無法在 %1$@ 新增 worktree:%2$@" + "value": "session move:%@ 上沒有此工作階段的 Claude 對話紀錄" } } } }, - "cli.session.move.output.code": { + "cli.session.move.error.transcriptsDiverged": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Code: %@ at %@ (%@) with working tree snapshot %@." + "value": "session move: the transcripts diverged (the destination copy is not a prefix of the source); resolve by hand" } }, "ar": { "stringUnit": { "state": "translated", - "value": "الكود: %1$@ عند %2$@ (%3$@) مع لقطة شجرة العمل %4$@." + "value": "session move: تباعدت النصوص (نسخة الوجهة ليست بادئة للمصدر)؛ عالج ذلك يدويًا" } }, "de": { "stringUnit": { "state": "translated", - "value": "Code: %1$@ auf %2$@ (%3$@) mit Snapshot des Arbeitsverzeichnisses %4$@." + "value": "session move: Die Transkripte sind auseinandergelaufen (die Kopie am Ziel ist kein Präfix der Quelle); bitte manuell auflösen" } }, "es": { "stringUnit": { "state": "translated", - "value": "Código: %1$@ en %2$@ (%3$@) con la instantánea del árbol de trabajo %4$@." + "value": "session move: las transcripciones divergieron (la copia del destino no es un prefijo del origen); resuélvelo a mano" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Code : %1$@ à %2$@ (%3$@) avec l'instantané de l'arbre de travail %4$@." + "value": "session move : les transcriptions ont divergé (la copie de destination n'est pas un préfixe de la source) ; résolvez manuellement" } }, "ja": { "stringUnit": { "state": "translated", - "value": "コード: %1$@ は %2$@ (%3$@)、作業ツリーのスナップショット %4$@。" + "value": "session move: トランスクリプトが分岐しました (移動先のコピーが元の先頭部分ではありません)。手動で解決してください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "코드: %1$@, %2$@ (%3$@), 작업 트리 스냅샷 %4$@." + "value": "session move: 트랜스크립트가 갈라졌습니다(대상 사본이 원본의 접두사가 아님). 직접 해결하세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "代码:%1$@ 位于 %2$@(%3$@),含工作树快照 %4$@。" + "value": "session move:记录已分叉(目标副本不是源的前缀);请手动处理" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "程式碼:%1$@ 位於 %2$@(%3$@),含工作樹快照 %4$@。" + "value": "session move:對話紀錄已分歧(目的地的副本不是來源的前綴);請手動處理" } } } }, - "cli.session.move.output.detached": { + "cli.session.move.error.unknownFlag": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "detached" + "value": "session move: unknown flag '%@'" } }, "ar": { "stringUnit": { "state": "translated", - "value": "منفصل" + "value": "session move: علم غير معروف '%@'" } }, "de": { "stringUnit": { "state": "translated", - "value": "losgelöst" + "value": "session move: unbekanntes Flag „%@“" } }, "es": { "stringUnit": { "state": "translated", - "value": "desacoplado" + "value": "session move: opción desconocida '%@'" } }, "fr": { "stringUnit": { "state": "translated", - "value": "détaché" + "value": "session move : option inconnue '%@'" } }, "ja": { "stringUnit": { "state": "translated", - "value": "デタッチ" + "value": "session move: 不明なフラグ '%@'" } }, "ko": { "stringUnit": { "state": "translated", - "value": "분리됨" + "value": "session move: 알 수 없는 플래그 '%@'" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "分离" + "value": "session move:未知标志 '%@'" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "分離" + "value": "session move:未知的旗標 '%@'" } } } }, - "cli.session.move.output.moved": { + "cli.session.move.error.unknownSource": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Moved session %@ to %@ (cwd %@)." + "value": "session move: no record of where this session was moved; pass --from <ssh-destination>" } }, "ar": { "stringUnit": { "state": "translated", - "value": "تم نقل الجلسة %1$@ إلى %2$@ (cwd %3$@)." + "value": "session move: لا يوجد سجل بالمكان الذي نُقلت إليه هذه الجلسة؛ مرّر --from <ssh-destination>" } }, "de": { "stringUnit": { "state": "translated", - "value": "Sitzung %1$@ nach %2$@ verschoben (cwd %3$@)." + "value": "session move: Kein Eintrag, wohin diese Sitzung verschoben wurde; gib --from <ssh-destination> an" } }, "es": { "stringUnit": { "state": "translated", - "value": "Sesión %1$@ movida a %2$@ (cwd %3$@)." + "value": "session move: no hay registro de adónde se movió esta sesión; pasa --from <ssh-destination>" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Session %1$@ déplacée vers %2$@ (cwd %3$@)." + "value": "session move : aucune trace de l'endroit où cette session a été déplacée ; passez --from <ssh-destination>" } }, "ja": { "stringUnit": { "state": "translated", - "value": "セッション %1$@ を %2$@ に移動しました (cwd %3$@)。" + "value": "session move: このセッションの移動先の記録がありません。--from <ssh-destination> を指定してください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "세션 %1$@을(를) %2$@(으)로 이동했습니다 (cwd %3$@)." + "value": "session move: 이 세션을 어디로 옮겼는지 기록이 없습니다. --from <ssh-destination>을 지정하세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "已将会话 %1$@ 移到 %2$@(cwd %3$@)。" + "value": "session move:没有此会话被移动到何处的记录;请传入 --from <ssh-destination>" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "已將工作階段 %1$@ 移到 %2$@(cwd %3$@)。" + "value": "session move:沒有此工作階段被移到何處的紀錄;請傳入 --from <ssh-destination>" } } } }, - "cli.session.move.output.notGit": { + "cli.session.move.error.unreachable": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Code: %@ is not a git checkout; no files were moved." + "value": "session move: cannot reach %@: %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "الكود: %@ ليس checkout لـ git؛ لم يتم نقل أي ملفات." + "value": "session move: تعذّر الوصول إلى %1$@: %2$@" } }, "de": { "stringUnit": { "state": "translated", - "value": "Code: %@ ist kein git-Checkout; es wurden keine Dateien verschoben." + "value": "session move: %1$@ ist nicht erreichbar: %2$@" } }, "es": { "stringUnit": { "state": "translated", - "value": "Código: %@ no es un checkout de git; no se movió ningún archivo." + "value": "session move: no se puede acceder a %1$@: %2$@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Code : %@ n'est pas un checkout git ; aucun fichier n'a été déplacé." + "value": "session move : impossible de joindre %1$@ : %2$@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "コード: %@ は git のチェックアウトではないため、ファイルは移動していません。" + "value": "session move: %1$@ に接続できません: %2$@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "코드: %@은(는) git 체크아웃이 아니므로 파일을 옮기지 않았습니다." + "value": "session move: %1$@에 연결할 수 없습니다: %2$@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "代码:%@ 不是 git 检出;未移动任何文件。" + "value": "session move:无法连接 %1$@:%2$@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "程式碼:%@ 不是 git checkout;未移動任何檔案。" + "value": "session move:無法連線到 %1$@:%2$@" } } } }, - "cli.session.move.output.pathsRewritten": { + "cli.session.move.error.unsupportedPath": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Paths were rewritten: %@ -> %@. Absolute paths inside the transcript still name the old home." + "value": "session move: paths with whitespace are not supported: %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "تمت إعادة كتابة المسارات: %1$@ -> %2$@. لا تزال المسارات المطلقة داخل النص تشير إلى المجلد الرئيسي القديم." + "value": "session move: المسارات التي تحتوي على مسافات غير مدعومة: %@" } }, "de": { "stringUnit": { "state": "translated", - "value": "Pfade wurden umgeschrieben: %1$@ -> %2$@. Absolute Pfade im Transkript nennen weiterhin das alte Home-Verzeichnis." + "value": "session move: Pfade mit Leerzeichen werden nicht unterstützt: %@" } }, "es": { "stringUnit": { "state": "translated", - "value": "Se reescribieron las rutas: %1$@ -> %2$@. Las rutas absolutas dentro de la transcripción aún nombran el home anterior." + "value": "session move: no se admiten rutas con espacios: %@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Chemins réécrits : %1$@ -> %2$@. Les chemins absolus de la transcription désignent encore l'ancien dossier personnel." + "value": "session move : les chemins contenant des espaces ne sont pas pris en charge : %@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "パスを書き換えました: %1$@ -> %2$@。トランスクリプト内の絶対パスは古いホームのままです。" + "value": "session move: 空白を含むパスはサポートされていません: %@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "경로를 다시 썼습니다: %1$@ -> %2$@. 트랜스크립트 안의 절대 경로는 여전히 이전 홈을 가리킵니다." + "value": "session move: 공백이 포함된 경로는 지원하지 않습니다: %@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "已改写路径:%1$@ -> %2$@。记录中的绝对路径仍指向旧的主目录。" + "value": "session move:不支持包含空白的路径:%@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "已改寫路徑:%1$@ -> %2$@。對話紀錄中的絕對路徑仍指向舊的主目錄。" + "value": "session move:不支援含有空白的路徑:%@" } } } }, - "cli.session.move.output.sourceKept": { + "cli.session.move.error.unsupportedRoute": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The copy on %@ stays; do not resume it there too." + "value": "session move: moves go between this Mac and one host; move the session back with --to local first" } }, "ar": { "stringUnit": { "state": "translated", - "value": "تبقى النسخة على %@؛ لا تستأنفها هناك أيضًا." + "value": "session move: يتم النقل بين هذا الـ Mac ومضيف واحد؛ أعد الجلسة أولًا باستخدام --to local" } }, "de": { "stringUnit": { "state": "translated", - "value": "Die Kopie auf %@ bleibt erhalten; setze sie dort nicht ebenfalls fort." + "value": "session move: Verschiebungen laufen zwischen diesem Mac und einem Host; verschiebe die Sitzung zuerst mit --to local zurück" } }, "es": { "stringUnit": { "state": "translated", - "value": "La copia en %@ se conserva; no la reanudes también allí." + "value": "session move: los movimientos van entre este Mac y un host; primero devuelve la sesión con --to local" } }, "fr": { "stringUnit": { "state": "translated", - "value": "La copie sur %@ est conservée ; ne la reprenez pas aussi là-bas." + "value": "session move : les déplacements se font entre ce Mac et un hôte ; ramenez d'abord la session avec --to local" } }, "ja": { "stringUnit": { "state": "translated", - "value": "%@ のコピーは残ります。そちらでも再開しないでください。" + "value": "session move: 移動はこの Mac と 1 台のホストの間で行います。先に --to local でセッションを戻してください" } }, "ko": { "stringUnit": { "state": "translated", - "value": "%@의 사본은 그대로 남습니다. 그곳에서도 재개하지 마세요." + "value": "session move: 이동은 이 Mac과 한 호스트 사이에서만 가능합니다. 먼저 --to local로 세션을 되돌리세요" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "%@ 上的副本会保留;请勿也在那里恢复它。" + "value": "session move:移动只在这台 Mac 与一台主机之间进行;请先用 --to local 把会话移回" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "%@ 上的副本會保留;請勿也在那裡恢復它。" + "value": "session move:移動只在這台 Mac 與一台主機之間進行;請先用 --to local 把工作階段移回來" } } } }, - "cli.session.move.progress.addingWorktree": { + "cli.session.move.error.unsupportedSSHTarget": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "session move: adding worktree %@ on the destination" + "value": "session move: unsupported SSH destination or option for '%@' (use user@host or an ssh_config alias, without whitespace)" } }, "ar": { "stringUnit": { "state": "translated", - "value": "session move: جارٍ إضافة worktree %@ في الوجهة" + "value": "session move: وجهة أو خيار SSH غير مدعوم لـ '%@' (استخدم user@host أو اسمًا مستعارًا من ssh_config، بدون مسافات)" } }, "de": { "stringUnit": { "state": "translated", - "value": "session move: Worktree %@ wird am Ziel hinzugefügt" + "value": "session move: nicht unterstütztes SSH-Ziel oder -Option für „%@“ (verwende user@host oder einen ssh_config-Alias, ohne Leerzeichen)" } }, "es": { "stringUnit": { "state": "translated", - "value": "session move: añadiendo el worktree %@ en el destino" + "value": "session move: destino u opción SSH no admitidos para '%@' (usa user@host o un alias de ssh_config, sin espacios)" } }, "fr": { "stringUnit": { "state": "translated", - "value": "session move : ajout du worktree %@ sur la destination" + "value": "session move : destination ou option SSH non prise en charge pour '%@' (utilisez user@host ou un alias ssh_config, sans espaces)" } }, "ja": { "stringUnit": { "state": "translated", - "value": "session move: 移動先に worktree %@ を追加しています" + "value": "session move: '%@' の SSH 接続先またはオプションはサポートされていません (空白なしの user@host か ssh_config のエイリアスを使ってください)" } }, "ko": { "stringUnit": { "state": "translated", - "value": "session move: 대상에 worktree %@을(를) 추가하는 중" + "value": "session move: '%@'에 대한 SSH 대상 또는 옵션을 지원하지 않습니다(공백 없이 user@host 또는 ssh_config 별칭 사용)" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "session move:正在目标上添加 worktree %@" + "value": "session move:'%@' 的 SSH 目标或选项不受支持(请使用 user@host 或 ssh_config 别名,且不含空白)" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "session move:正在目的地新增 worktree %@" + "value": "session move:'%@' 的 SSH 目的地或選項不受支援(請使用 user@host 或 ssh_config 別名,且不含空白)" } } } }, - "browser.omnibar.accessibilityLabel": { + "cli.session.move.error.usage": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Address and search bar" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Adress- und Suchleiste" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Barre d’adresse et de recherche" + "value": "Usage: cmux session move <session-id> --to <ssh-destination|local>" } }, "ar": { "stringUnit": { "state": "translated", - "value": "شريط العنوان والبحث" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Barra de direcciones y búsqueda" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "網址與搜尋列" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "地址和搜索栏" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "주소 및 검색 막대" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アドレスと検索バー" - } - } - } - }, - "projectPanel.reload": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Reload Project" + "value": "الاستخدام: cmux session move <session-id> --to <ssh-destination|local>" } }, "de": { "stringUnit": { "state": "translated", - "value": "Projekt neu laden" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Recharger le projet" - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "إعادة تحميل المشروع" + "value": "Verwendung: cmux session move <session-id> --to <ssh-destination|local>" } }, "es": { "stringUnit": { "state": "translated", - "value": "Recargar proyecto" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "重新載入專案" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "重新加载项目" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프로젝트 다시 불러오기" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プロジェクトを再読み込み" - } - } - } - }, - "projectPanel.reloadErrors": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Reload returned errors: %@" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Beim Neuladen sind Fehler aufgetreten: %@" + "value": "Uso: cmux session move <session-id> --to <ssh-destination|local>" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Le rechargement a renvoyé des erreurs : %@" - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "أعادت إعادة التحميل أخطاء: %@" + "value": "Utilisation : cmux session move <session-id> --to <ssh-destination|local>" } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "La recarga devolvió errores: %@" + "value": "使用方法: cmux session move <session-id> --to <ssh-destination|local>" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "重新載入時發生錯誤:%@" + "value": "사용법: cmux session move <session-id> --to <ssh-destination|local>" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "重新加载时出现错误:%@" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "다시 불러오기 중 오류 발생: %@" + "value": "用法:cmux session move <session-id> --to <ssh-destination|local>" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "再読み込みでエラーが発生しました: %@" + "value": "用法:cmux session move <session-id> --to <ssh-destination|local>" } } } }, - "projectPanel.dismissReloadErrors": { + "cli.session.move.error.workingDirectoryUnknown": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Dismiss Errors" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fehler ausblenden" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ignorer les erreurs" + "value": "session move: the transcript does not record the session's working directory" } }, "ar": { "stringUnit": { "state": "translated", - "value": "تجاهل الأخطاء" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Descartar errores" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "關閉錯誤" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "关闭错误" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오류 닫기" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エラーを閉じる" - } - } - } - }, - "projectPanel.scheme": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Scheme" + "value": "session move: لا يسجّل النص دليل العمل الخاص بالجلسة" } }, "de": { "stringUnit": { "state": "translated", - "value": "Schema" + "value": "session move: Das Transkript enthält kein Arbeitsverzeichnis der Sitzung" } }, - "fr": { + "es": { "stringUnit": { "state": "translated", - "value": "Schéma" + "value": "session move: la transcripción no registra el directorio de trabajo de la sesión" } }, - "ar": { + "fr": { "stringUnit": { "state": "translated", - "value": "المخطط" + "value": "session move : la transcription n'indique pas le répertoire de travail de la session" } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "Esquema" + "value": "session move: トランスクリプトにセッションの作業ディレクトリが記録されていません" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "方案" + "value": "session move: 트랜스크립트에 세션의 작업 디렉터리가 기록되어 있지 않습니다" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "方案" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스킴" + "value": "session move:记录中没有会话的工作目录" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "スキーム" + "value": "session move:對話紀錄沒有記錄工作階段的工作目錄" } } } }, - "projectPanel.configuration": { + "cli.session.move.error.worktreeAddFailed": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Configuration" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Konfiguration" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Configuration de build" + "value": "session move: could not add a worktree at %@: %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "التكوين" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Configuración" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "組態" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "配置" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구성" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "構成" - } - } - } - }, - "projectPanel.loadingFormat": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Loading %@" + "value": "session move: تعذّرت إضافة worktree في %1$@: %2$@" } }, "de": { "stringUnit": { "state": "translated", - "value": "%@ wird geladen" + "value": "session move: Worktree unter %1$@ konnte nicht hinzugefügt werden: %2$@" } }, - "fr": { + "es": { "stringUnit": { "state": "translated", - "value": "Chargement de %@" + "value": "session move: no se pudo añadir un worktree en %1$@: %2$@" } }, - "ar": { + "fr": { "stringUnit": { "state": "translated", - "value": "جارٍ تحميل %@" + "value": "session move : impossible d'ajouter un worktree à %1$@ : %2$@" } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "Cargando %@" + "value": "session move: %1$@ に worktree を追加できませんでした: %2$@" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "正在載入 %@" + "value": "session move: %1$@에 worktree를 추가할 수 없습니다: %2$@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "正在加载 %@" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 불러오는 중" + "value": "session move:无法在 %1$@ 添加 worktree:%2$@" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "%@ を読み込み中" + "value": "session move:無法在 %1$@ 新增 worktree:%2$@" } } } }, - "projectPanel.failedFormat": { + "cli.session.move.output.code": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Failed: %@" - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fehlgeschlagen: %@" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Échec : %@" - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "فشل: %@" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Error: %@" - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "失敗:%@" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "失败:%@" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "실패: %@" + "value": "Code: %@ at %@ (%@) with working tree snapshot %@." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "失敗: %@" - } - } - } - }, - "cli.help.send": { - "extractionState": "manual", - "localizations": { "ar": { "stringUnit": { "state": "translated", - "value": "الاستخدام: cmux send [flags] [--] <text>\n\nيرسل نصًا إلى سطح طرفية كضغطات مفاتيح. تسلسلات الهروب: \\n و\\r ترسلان Enter، و\\t ترسل Tab.\n\nللنصوص الكبيرة (مثلًا أكثر من 4 كيلوبايت، أو عدة أسطر موجهة إلى وكيل)، استخدم --paste أو cmux paste. تضغط ضغطات المفاتيح Enter عند كل سطر جديد، مما قد يرسل كل سطر بمفرده.\n\nمع --paste، يمر النص دون تغيير عبر مسار اللصق نفسه الذي يستخدمه cmux paste وCmd+V: لا تُفسَّر تسلسلات الهروب مثل \\n، وتُستبدل أحرف التحكم مثل Esc وCtrl-C بمسافات. يجب أن يأتي --paste قبل النص.\n\nالخيارات:\n --workspace <id|ref|index> مساحة العمل المستهدفة (الافتراضي: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> السطح المستهدف (الافتراضي: $CMUX_SURFACE_ID)\n --window <id|ref|index> سياق النافذة لمراجع وفهارس مساحة العمل/السطح\n --paste يلصق النص بدلًا من كتابته\n\nمثال:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "الكود: %1$@ عند %2$@ (%3$@) مع لقطة شجرة العمل %4$@." } }, "de": { "stringUnit": { "state": "translated", - "value": "Verwendung: cmux send [flags] [--] <text>\n\nSendet Text als Tastatureingaben an eine Terminal-Oberfläche. Escape-Sequenzen: \\n und \\r senden Enter, \\t sendet Tab.\n\nFür große Texte (zum Beispiel über 4 KB oder mehrere Zeilen an einen Agenten) --paste oder cmux paste verwenden. Tastatureingaben drücken bei jedem Zeilenumbruch Enter, wodurch jede Zeile einzeln abgesendet werden kann.\n\nMit --paste geht der Text unverändert über denselben Einfügepfad wie cmux paste und Cmd+V: Escape-Sequenzen wie \\n werden nicht interpretiert, und Steuerzeichen wie Esc und Strg-C werden durch Leerzeichen ersetzt. --paste muss vor dem Text stehen.\n\nFlags:\n --workspace <id|ref|index> Ziel-Workspace (Standard: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Ziel-Oberfläche (Standard: $CMUX_SURFACE_ID)\n --window <id|ref|index> Fensterkontext für Workspace-/Oberflächen-Refs und -Indizes\n --paste Fügt den Text ein, statt ihn zu tippen\n\nBeispiel:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" - } - }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Usage: cmux send [flags] [--] <text>\n\nSend text to a terminal surface as keystrokes. Escape sequences: \\n and \\r send Enter, \\t sends Tab.\n\nFor large text (for example over 4 KB, or several lines going to an agent), use --paste or cmux paste. Keystrokes press Enter at every newline, which can submit each line on its own.\n\nWith --paste, the text goes through the same paste path as cmux paste and Cmd+V, unchanged: escape sequences such as \\n are not interpreted, and control characters such as Esc and Ctrl-C are replaced with spaces. --paste must come before the text.\n\nFlags:\n --workspace <id|ref|index> Target workspace (default: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Target surface (default: $CMUX_SURFACE_ID)\n --window <id|ref|index> Window context for workspace/surface refs and indexes\n --paste Paste the text instead of typing it\n\nExample:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "Code: %1$@ auf %2$@ (%3$@) mit Snapshot des Arbeitsverzeichnisses %4$@." } }, "es": { "stringUnit": { "state": "translated", - "value": "Uso: cmux send [flags] [--] <text>\n\nEnvía texto a una superficie de terminal como pulsaciones de teclas. Secuencias de escape: \\n y \\r envían Intro, \\t envía Tab.\n\nPara textos grandes (por ejemplo, más de 4 KB o varias líneas dirigidas a un agente), usa --paste o cmux paste. Las pulsaciones presionan Intro en cada salto de línea, lo que puede enviar cada línea por separado.\n\nCon --paste, el texto pasa sin cambios por la misma ruta de pegado que cmux paste y Cmd+V: las secuencias de escape como \\n no se interpretan y los caracteres de control como Esc y Ctrl-C se reemplazan por espacios. --paste debe ir antes del texto.\n\nOpciones:\n --workspace <id|ref|index> Espacio de trabajo de destino (predeterminado: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Superficie de destino (predeterminada: $CMUX_SURFACE_ID)\n --window <id|ref|index> Contexto de ventana para referencias e índices de espacio de trabajo/superficie\n --paste Pega el texto en lugar de escribirlo\n\nEjemplo:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "Código: %1$@ en %2$@ (%3$@) con la instantánea del árbol de trabajo %4$@." } }, "fr": { "stringUnit": { "state": "translated", - "value": "Utilisation : cmux send [flags] [--] <text>\n\nEnvoie du texte à une surface de terminal sous forme de frappes. Séquences d’échappement : \\n et \\r envoient Entrée, \\t envoie Tab.\n\nPour un texte volumineux (par exemple plus de 4 Ko, ou plusieurs lignes destinées à un agent), utilisez --paste ou cmux paste. Les frappes appuient sur Entrée à chaque saut de ligne, ce qui peut envoyer chaque ligne séparément.\n\nAvec --paste, le texte passe tel quel par le même chemin de collage que cmux paste et Cmd+V : les séquences d’échappement comme \\n ne sont pas interprétées, et les caractères de contrôle comme Échap et Ctrl-C sont remplacés par des espaces. --paste doit précéder le texte.\n\nOptions :\n --workspace <id|ref|index> Espace de travail cible (par défaut : $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> Surface cible (par défaut : $CMUX_SURFACE_ID)\n --window <id|ref|index> Contexte de fenêtre pour les références et index d’espace de travail/surface\n --paste Colle le texte au lieu de le taper\n\nExemple :\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "Code : %1$@ à %2$@ (%3$@) avec l'instantané de l'arbre de travail %4$@." } }, "ja": { "stringUnit": { "state": "translated", - "value": "使用方法: cmux send [flags] [--] <text>\n\nテキストをキー入力としてターミナルサーフェスに送信します。エスケープシーケンス: \\n と \\r は Enter、\\t は Tab を送信します。\n\n大きなテキスト(たとえば 4 KB を超えるもの、またはエージェントに送る複数行)には --paste または cmux paste を使ってください。キー入力では改行ごとに Enter が押されるため、各行が個別に送信されることがあります。\n\n--paste を使うと、テキストはそのまま cmux paste や Cmd+V と同じ貼り付け経路で送られます。\\n などのエスケープシーケンスは解釈されず、Esc や Ctrl-C などの制御文字はスペースに置き換えられます。--paste はテキストより前に指定してください。\n\nフラグ:\n --workspace <id|ref|index> 対象ワークスペース(既定: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 対象サーフェス(既定: $CMUX_SURFACE_ID)\n --window <id|ref|index> ワークスペース/サーフェスの参照とインデックスに使うウィンドウコンテキスト\n --paste テキストを入力する代わりに貼り付けます\n\n例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "コード: %1$@ は %2$@ (%3$@)、作業ツリーのスナップショット %4$@。" } }, "ko": { "stringUnit": { "state": "translated", - "value": "사용법: cmux send [flags] [--] <text>\n\n텍스트를 키 입력으로 터미널 서피스에 보냅니다. 이스케이프 시퀀스: \\n과 \\r은 Enter, \\t는 Tab을 보냅니다.\n\n큰 텍스트(예: 4 KB 초과 또는 에이전트로 보내는 여러 줄)에는 --paste 또는 cmux paste를 사용하세요. 키 입력은 줄바꿈마다 Enter를 누르므로 각 줄이 따로 제출될 수 있습니다.\n\n--paste를 쓰면 텍스트가 변경 없이 cmux paste 및 Cmd+V와 같은 붙여넣기 경로로 전달됩니다. \\n 같은 이스케이프 시퀀스는 해석되지 않으며, Esc와 Ctrl-C 같은 제어 문자는 공백으로 바뀝니다. --paste는 텍스트보다 앞에 와야 합니다.\n\n플래그:\n --workspace <id|ref|index> 대상 워크스페이스 (기본값: $CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 대상 서피스 (기본값: $CMUX_SURFACE_ID)\n --window <id|ref|index> 워크스페이스/서피스 참조와 인덱스에 사용할 창 컨텍스트\n --paste 텍스트를 입력하는 대신 붙여넣습니다\n\n예:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "코드: %1$@, %2$@ (%3$@), 작업 트리 스냅샷 %4$@." } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "用法:cmux send [flags] [--] <text>\n\n以按键方式将文本发送到终端表面。转义序列:\\n 和 \\r 发送 Enter,\\t 发送 Tab。\n\n对于大量文本(例如超过 4 KB,或要发给代理的多行文本),请使用 --paste 或 cmux paste。按键方式会在每个换行处按下 Enter,可能让每一行单独提交。\n\n使用 --paste 时,文本会原样通过与 cmux paste 和 Cmd+V 相同的粘贴路径发送:不会解释 \\n 等转义序列,Esc 和 Ctrl-C 等控制字符会被替换为空格。--paste 必须放在文本之前。\n\n标志:\n --workspace <id|ref|index> 目标工作区(默认:$CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 目标表面(默认:$CMUX_SURFACE_ID)\n --window <id|ref|index> 工作区/表面引用与索引的窗口上下文\n --paste 粘贴文本,而不是逐键输入\n\n示例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "代码:%1$@ 位于 %2$@(%3$@),含工作树快照 %4$@。" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "用法:cmux send [flags] [--] <text>\n\n以按鍵方式將文字傳送到終端機表面。跳脫序列:\\n 和 \\r 送出 Enter,\\t 送出 Tab。\n\n若是大量文字(例如超過 4 KB,或要送給代理的多行文字),請使用 --paste 或 cmux paste。按鍵方式會在每個換行處按下 Enter,可能讓每一行各自送出。\n\n使用 --paste 時,文字會原封不動地透過與 cmux paste 和 Cmd+V 相同的貼上路徑送出:不會解譯 \\n 等跳脫序列,Esc 和 Ctrl-C 等控制字元會被替換為空格。--paste 必須放在文字之前。\n\n旗標:\n --workspace <id|ref|index> 目標工作區(預設:$CMUX_WORKSPACE_ID)\n --surface <id|ref|index> 目標表面(預設:$CMUX_SURFACE_ID)\n --window <id|ref|index> 工作區/表面參照與索引所用的視窗上下文\n --paste 貼上文字,而不是逐鍵輸入\n\n範例:\n cmux send \"echo hello\"\n cmux send --surface surface:2 \"ls -la\\n\"\n cmux send --paste --surface surface:2 \"$(cat notes.md)\"" + "value": "程式碼:%1$@ 位於 %2$@(%3$@),含工作樹快照 %4$@。" } } } }, - "cli.send.hint.usePaste": { + "cli.session.move.output.detached": { "extractionState": "manual", "localizations": { - "ar": { + "en": { "stringUnit": { "state": "translated", - "value": "تلميح: كُتب كل سطر جديد كضغطة Enter؛ للنصوص الكبيرة متعددة الأسطر استخدم cmux send --paste أو cmux paste لإرسالها كلصقة واحدة" + "value": "detached" } }, - "de": { + "ar": { "stringUnit": { "state": "translated", - "value": "Hinweis: Jeder Zeilenumbruch wurde als Enter getippt; für große mehrzeilige Texte cmux send --paste oder cmux paste verwenden, um sie als ein einziges Einfügen zu senden" + "value": "منفصل" } }, - "en": { + "de": { "stringUnit": { "state": "translated", - "value": "hint: each newline was typed as Enter; for large multi-line text use cmux send --paste or cmux paste to deliver it as one paste" + "value": "losgelöst" } }, "es": { "stringUnit": { "state": "translated", - "value": "sugerencia: cada salto de línea se escribió como Intro; para textos grandes de varias líneas usa cmux send --paste o cmux paste para enviarlos como un solo pegado" + "value": "desacoplado" } }, "fr": { "stringUnit": { "state": "translated", - "value": "astuce : chaque saut de ligne a été tapé comme Entrée ; pour un texte volumineux sur plusieurs lignes, utilisez cmux send --paste ou cmux paste pour l’envoyer en un seul collage" + "value": "détaché" } }, "ja": { "stringUnit": { "state": "translated", - "value": "ヒント: 各改行は Enter として入力されました。大きな複数行テキストは cmux send --paste または cmux paste を使うと 1 回の貼り付けとして送れます" + "value": "デタッチ" } }, "ko": { "stringUnit": { "state": "translated", - "value": "힌트: 각 줄바꿈이 Enter로 입력되었습니다. 큰 여러 줄 텍스트는 cmux send --paste 또는 cmux paste를 사용해 한 번의 붙여넣기로 보내세요" + "value": "분리됨" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "提示:每个换行都作为 Enter 输入;对于大量多行文本,请使用 cmux send --paste 或 cmux paste 以一次粘贴发送" + "value": "分离" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "提示:每個換行都以 Enter 輸入;若是大量多行文字,請使用 cmux send --paste 或 cmux paste 以單次貼上送出" + "value": "分離" } } } }, - "settings.computerUse.enabled.subtitle": { + "cli.session.move.output.moved": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Lets supported agents see and control apps on this Mac. An agent's first Computer Use request starts setup automatically." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Unterstützte Agenten können Apps auf diesem Mac sehen und steuern. Die erste Computer-Use-Anfrage eines Agenten startet die Einrichtung automatisch." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les agents pris en charge peuvent voir et contrôler les apps de ce Mac. La première requête Computer Use d’un agent lance automatiquement la configuration." + "value": "Moved session %@ to %@ (cwd %@)." } }, "ar": { "stringUnit": { "state": "translated", - "value": "يمكن للوكلاء المدعومين رؤية التطبيقات على جهاز Mac هذا والتحكم فيها. ويبدأ الإعداد تلقائيًا عند أول طلب Computer Use من أحد الوكلاء." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Los agentes compatibles pueden ver y controlar apps en este Mac. La primera solicitud de Computer Use de un agente inicia la configuración automáticamente." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "允許支援的代理程式查看及操作此 Mac 上的 App。代理程式第一次發出 Computer Use 要求時會自動開始設定。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "允许受支持的代理查看并控制这台 Mac 上的 App。代理第一次发出 Computer Use 请求时会自动开始设置。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "지원되는 에이전트가 이 Mac의 앱을 보고 제어할 수 있게 합니다. 에이전트가 처음 Computer Use를 요청하면 설정이 자동으로 시작됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "対応するエージェントが、この Mac のアプリの画面を見て操作できるようにします。エージェントが最初に Computer Use を要求すると、セットアップが自動的に始まります。" - } - } - } - }, - "settings.app.closeWorkspaceOnLastSurfaceShortcut.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Closing the last surface in a workspace keeps the workspace open." + "value": "تم نقل الجلسة %1$@ إلى %2$@ (cwd %3$@)." } }, "de": { "stringUnit": { "state": "translated", - "value": "Der Arbeitsbereich bleibt geöffnet, auch wenn seine letzte Oberfläche geschlossen wird." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L’espace de travail reste ouvert après la fermeture de sa dernière surface d’affichage." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تبقى مساحة العمل مفتوحة عند إغلاق آخر سطح فيها." + "value": "Sitzung %1$@ nach %2$@ verschoben (cwd %3$@)." } }, "es": { "stringUnit": { "state": "translated", - "value": "El espacio de trabajo permanece abierto aunque se cierre su última superficie." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "即使關閉最後一個介面,工作區仍會保持開啟。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "即使关闭最后一个表面,工作区也会保持打开。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "마지막 서피스를 닫아도 워크스페이스는 닫히지 않습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最後のサーフェスを閉じても、ワークスペースは閉じません。" - } - } - } - }, - "settings.app.commandPaletteSearchAllSurfaces.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Includes terminal, browser, and Markdown surfaces from every workspace in command palette results." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Die Befehlspalette findet auch Terminal-, Browser- und Markdown-Oberflächen in allen Arbeitsbereichen." + "value": "Sesión %1$@ movida a %2$@ (cwd %3$@)." } }, "fr": { "stringUnit": { "state": "translated", - "value": "La palette de commandes affiche aussi les surfaces d’affichage de terminal, de navigateur et Markdown de tous les espaces de travail." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تعرض نتائج لوحة الأوامر أسطح الطرفية والمتصفح وMarkdown من جميع مساحات العمل." + "value": "Session %1$@ déplacée vers %2$@ (cwd %3$@)." } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "La paleta de comandos también muestra las superficies de terminal, navegador y Markdown de todos los espacios de trabajo." + "value": "セッション %1$@ を %2$@ に移動しました (cwd %3$@)。" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "在命令面板中也能找到所有工作區的終端機、瀏覽器和 Markdown 介面。" + "value": "세션 %1$@을(를) %2$@(으)로 이동했습니다 (cwd %3$@)." } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "在命令面板中也能找到所有工作区的终端、浏览器和 Markdown 表面。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "명령어 팔레트에서 모든 워크스페이스의 터미널, 브라우저, Markdown 서피스도 찾을 수 있습니다." + "value": "已将会话 %1$@ 移到 %2$@(cwd %3$@)。" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "コマンドパレットで、すべてのワークスペースのターミナル、ブラウザ、Markdown のサーフェスも検索できます。" + "value": "已將工作階段 %1$@ 移到 %2$@(cwd %3$@)。" } } } }, - "settings.app.fileDrop.defaultBehavior.subtitle": { + "cli.session.move.output.notGit": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Choose what dropping files on a terminal or editor does. Holding Shift while dragging does the other." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wählen Sie, was beim Ablegen von Dateien auf einem Terminal oder Editor passiert. Wenn Sie beim Ziehen die Umschalttaste gedrückt halten, gilt die andere Option." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez ce qui se passe lorsque vous déposez des fichiers sur un terminal ou un éditeur. Si vous maintenez la touche Maj enfoncée pendant le glissement, l’autre option s’applique." + "value": "Code: %@ is not a git checkout; no files were moved." } }, "ar": { "stringUnit": { "state": "translated", - "value": "اختر ما يحدث عند إفلات الملفات على طرفية أو محرر. يؤدي الضغط مع الاستمرار على مفتاح Shift أثناء السحب إلى تطبيق الخيار الآخر." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige qué ocurre al soltar archivos en una terminal o un editor. Si mantienes pulsada la tecla Mayúsculas al arrastrar, se usa la otra opción." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "選擇將檔案拖放到終端機或編輯器時要執行的動作。拖移時按住 Shift 鍵可改用另一個動作。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "选择将文件拖放到终端或编辑器时执行的操作。拖动时按住 Shift 键可改用另一种操作。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "파일을 터미널이나 편집기에 드롭했을 때 수행할 동작을 선택합니다. 드래그 중에 Shift 키를 누르고 있으면 다른 쪽 동작을 수행합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ファイルをターミナルやエディタにドロップしたときの動作を選択します。ドラッグ中に Shift キーを押したままにすると、もう一方の動作になります。" - } - } - } - }, - "settings.app.focusHistoryIncludesPanesAndTabs.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Using Back and Forward also returns to previous panes and tabs." + "value": "الكود: %@ ليس checkout لـ git؛ لم يتم نقل أي ملفات." } }, "de": { "stringUnit": { "state": "translated", - "value": "Mit „Zurück“ und „Vor“ kehren Sie auch zu vorherigen Teilfenstern und Tabs zurück." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Précédent et Suivant ramènent aussi aux volets et aux onglets précédents." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "ينتقل «رجوع» و«تقدم» أيضًا إلى الأجزاء وعلامات التبويب السابقة." + "value": "Code: %@ ist kein git-Checkout; es wurden keine Dateien verschoben." } }, "es": { "stringUnit": { "state": "translated", - "value": "Atrás y Adelante también vuelven a los paneles y pestañas anteriores." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "使用「返回」與「前進」時,也會回到先前的窗格與標籤頁。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "“后退”和“前进”也会回到之前的窗格和标签页。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "뒤로 가기와 앞으로 가기로 이전 분할 창과 탭에도 돌아갈 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "「戻る」と「進む」で、以前のペインやタブにも戻れます。" - } - } - } - }, - "settings.app.globalFontMagnification.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Scales all text in cmux. Command-Plus and Command-Minus still zoom the focused pane." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Ändert die Größe des gesamten Texts in cmux. Mit Befehlstaste-Plus und Befehlstaste-Minus lässt sich das fokussierte Teilfenster weiterhin zoomen." + "value": "Código: %@ no es un checkout de git; no se movió ningún archivo." } }, "fr": { "stringUnit": { "state": "translated", - "value": "Modifie la taille de tout le texte de cmux. Commande + Plus et Commande + Moins continuent de régler le zoom du volet actif." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يغيّر حجم جميع النصوص في cmux. ولا يزال الاختصاران Command-علامة الجمع وCommand-علامة الطرح يكبّران الجزء المركّز عليه ويصغّرانه." + "value": "Code : %@ n'est pas un checkout git ; aucun fichier n'a été déplacé." } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "Cambia el tamaño de todo el texto de cmux. Comando + Más y Comando + Menos siguen ajustando el zoom del panel enfocado." + "value": "コード: %@ は git のチェックアウトではないため、ファイルは移動していません。" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "調整 cmux 中所有文字的大小。Command + 加號和 Command + 減號仍可用來縮放目前聚焦的窗格。" + "value": "코드: %@은(는) git 체크아웃이 아니므로 파일을 옮기지 않았습니다." } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "调整 cmux 中所有文本的大小。Command + 加号和 Command + 减号仍可用于缩放当前聚焦的窗格。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "cmux의 모든 텍스트 크기를 조절합니다. 포커스된 분할 창은 계속 Command-더하기와 Command-빼기로 확대/축소할 수 있습니다." + "value": "代码:%@ 不是 git 检出;未移动任何文件。" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "cmux 内のすべてのテキストの大きさを変更します。フォーカス中のペインは、これまでどおり Command + プラスと Command + マイナスで拡大縮小できます。" + "value": "程式碼:%@ 不是 git checkout;未移動任何檔案。" } } } }, - "settings.app.hideAllSidebarDetails.subtitle": { + "cli.session.move.output.pathsRewritten": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Shows only workspace titles in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt in der Seitenleiste nur die Titel der Arbeitsbereiche an." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche uniquement les titres des espaces de travail dans la barre latérale." + "value": "Paths were rewritten: %@ -> %@. Absolute paths inside the transcript still name the old home." } }, "ar": { "stringUnit": { "state": "translated", - "value": "يعرض عناوين مساحات العمل فقط في الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra solo los títulos de los espacios de trabajo en la barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "側邊欄只顯示工作區標題。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "侧边栏只显示工作区标题。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바에 워크스페이스 제목만 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーにワークスペースのタイトルだけを表示します。" - } - } - } - }, - "settings.app.hideTabCloseButton.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Removes the close button from tabs." + "value": "تمت إعادة كتابة المسارات: %1$@ -> %2$@. لا تزال المسارات المطلقة داخل النص تشير إلى المجلد الرئيسي القديم." } }, "de": { "stringUnit": { "state": "translated", - "value": "Tabs werden ohne Schließen-Taste angezeigt." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les onglets s’affichent sans bouton de fermeture." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تظهر علامات التبويب دون زر إغلاق." + "value": "Pfade wurden umgeschrieben: %1$@ -> %2$@. Absolute Pfade im Transkript nennen weiterhin das alte Home-Verzeichnis." } }, "es": { "stringUnit": { "state": "translated", - "value": "Las pestañas se muestran sin el botón de cerrar." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "標籤頁上不顯示關閉按鈕。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "标签页上不显示关闭按钮。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭에 닫기 버튼을 표시하지 않습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タブの閉じるボタンを非表示にします。" - } - } - } - }, - "settings.app.minimalMode.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Hides the workspace title bar and shows its controls in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Blendet die Titelleiste des Arbeitsbereichs aus und zeigt ihre Steuerelemente in der Seitenleiste an." + "value": "Se reescribieron las rutas: %1$@ -> %2$@. Las rutas absolutas dentro de la transcripción aún nombran el home anterior." } }, "fr": { "stringUnit": { "state": "translated", - "value": "Masque la barre de titre de l’espace de travail et affiche ses commandes dans la barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يخفي شريط عنوان مساحة العمل ويعرض عناصر التحكم الخاصة به في الشريط الجانبي." + "value": "Chemins réécrits : %1$@ -> %2$@. Les chemins absolus de la transcription désignent encore l'ancien dossier personnel." } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "Oculta la barra de título del espacio de trabajo y muestra sus controles en la barra lateral." + "value": "パスを書き換えました: %1$@ -> %2$@。トランスクリプト内の絶対パスは古いホームのままです。" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "隱藏工作區標題列,改在側邊欄中顯示其控制項。" + "value": "경로를 다시 썼습니다: %1$@ -> %2$@. 트랜스크립트 안의 절대 경로는 여전히 이전 홈을 가리킵니다." } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "隐藏工作区标题栏,改为在侧边栏中显示其控件。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "워크스페이스 제목 막대를 숨기고, 제목 막대의 컨트롤을 사이드바에 표시합니다." + "value": "已改写路径:%1$@ -> %2$@。记录中的绝对路径仍指向旧的主目录。" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "ワークスペースのタイトルバーを非表示にし、そのコントロールをサイドバーに表示します。" + "value": "已改寫路徑:%1$@ -> %2$@。對話紀錄中的絕對路徑仍指向舊的主目錄。" } } } }, - "settings.app.newWorkspacePlacement.subtitle": { + "cli.session.move.output.sourceKept": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Choose where new workspaces appear in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wählen Sie, wo neue Arbeitsbereiche in der Seitenleiste erscheinen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez où les nouveaux espaces de travail apparaissent dans la barre latérale." + "value": "The copy on %@ stays; do not resume it there too." } }, "ar": { "stringUnit": { "state": "translated", - "value": "اختر مكان ظهور مساحات العمل الجديدة في الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige dónde aparecen los nuevos espacios de trabajo en la barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "選擇新工作區要顯示在側邊欄的哪個位置。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "选择新工作区在侧边栏中的显示位置。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "새 작업 공간을 사이드바의 어디에 표시할지 선택합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "新しいワークスペースをサイドバーのどこに表示するかを選択します。" - } - } - } - }, - "settings.app.openSidebarPRLinks.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Clicking a pull request link in the sidebar opens it in the cmux browser." + "value": "تبقى النسخة على %@؛ لا تستأنفها هناك أيضًا." } }, "de": { "stringUnit": { "state": "translated", - "value": "Pull-Request-Links in der Seitenleiste werden per Klick im cmux-Browser geöffnet." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Un clic sur un lien de pull request de la barre latérale l’ouvre dans le navigateur cmux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تُفتح روابط طلبات السحب في الشريط الجانبي في متصفح cmux عند النقر عليها." + "value": "Die Kopie auf %@ bleibt erhalten; setze sie dort nicht ebenfalls fort." } }, "es": { "stringUnit": { "state": "translated", - "value": "Los enlaces de pull request de la barra lateral se abren en el navegador de cmux al hacer clic en ellos." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "側邊欄中的 PR 連結會在 cmux 瀏覽器中開啟。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "侧边栏中的 PR 链接会在 cmux 浏览器中打开。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바의 풀 리퀘스트 링크를 클릭하면 cmux 브라우저에서 열립니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーのプルリクエストのリンクをクリックすると、cmuxブラウザで開きます。" - } - } - } - }, - "settings.app.openSidebarPortLinks.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Clicking a port link in the sidebar opens it in the cmux browser." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Port-Links in der Seitenleiste werden per Klick im cmux-Browser geöffnet." + "value": "La copia en %@ se conserva; no la reanudes también allí." } }, "fr": { "stringUnit": { "state": "translated", - "value": "Un clic sur un lien de port de la barre latérale l’ouvre dans le navigateur cmux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تُفتح روابط المنافذ في الشريط الجانبي في متصفح cmux عند النقر عليها." + "value": "La copie sur %@ est conservée ; ne la reprenez pas aussi là-bas." } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "Los enlaces de puerto de la barra lateral se abren en el navegador de cmux al hacer clic en ellos." + "value": "%@ のコピーは残ります。そちらでも再開しないでください。" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "側邊欄中的連接埠連結會在 cmux 瀏覽器中開啟。" + "value": "%@의 사본은 그대로 남습니다. 그곳에서도 재개하지 마세요." } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "侧边栏中的端口链接会在 cmux 浏览器中打开。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바의 포트 링크를 클릭하면 cmux 브라우저에서 열립니다." + "value": "%@ 上的副本会保留;请勿也在那里恢复它。" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "サイドバーのポートリンクをクリックすると、cmuxブラウザで開きます。" + "value": "%@ 上的副本會保留;請勿也在那裡恢復它。" } } } }, - "settings.app.paneFirstClickFocus.subtitle": { + "cli.session.move.progress.addingWorktree": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Clicking a pane while cmux is in the background focuses that pane right away." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Ist cmux im Hintergrund, wird ein Teilfenster schon beim ersten Klick fokussiert." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Lorsque cmux est en arrière-plan, un clic sur un volet l’active immédiatement." + "value": "session move: adding worktree %@ on the destination" } }, "ar": { "stringUnit": { "state": "translated", - "value": "عندما يكون cmux في الخلفية، يكفي النقر على جزء للتركيز عليه فورًا." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Si cmux está en segundo plano, un clic en un panel lo enfoca de inmediato." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "即使 cmux 在背景執行,按一下窗格也會立即將焦點移到該窗格。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "即使 cmux 在后台,点按窗格也会立即将焦点移到该窗格。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "cmux가 백그라운드에 있어도 분할 창을 클릭하면 바로 그 분할 창에 포커스가 이동합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "cmux がバックグラウンドにあっても、ペインをクリックするとすぐにそのペインにフォーカスが移ります。" - } - } - } - }, - "settings.app.pathLastSegmentOnly.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shortens long paths from the start to keep their end visible." + "value": "session move: جارٍ إضافة worktree %@ في الوجهة" } }, "de": { "stringUnit": { "state": "translated", - "value": "Kürzt lange Pfade am Anfang, damit ihr Ende sichtbar bleibt." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Raccourcit les chemins longs par le début pour que leur fin reste visible." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يختصر المسارات الطويلة من بدايتها لتبقى نهايتها ظاهرة." + "value": "session move: Worktree %@ wird am Ziel hinzugefügt" } }, "es": { "stringUnit": { "state": "translated", - "value": "Acorta las rutas largas por el inicio para que su final siga visible." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "長路徑會省略開頭,保留結尾部分。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "长路径会省略开头,保留结尾部分。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "긴 경로는 앞부분을 생략하여 끝부분이 보이게 합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "長いパスは先頭を省略して、末尾が見えるようにします。" - } - } - } - }, - "settings.app.renameSelectsName.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Renaming from the command palette selects the current name." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Beim Umbenennen über die Befehlspalette ist der aktuelle Name bereits ausgewählt." + "value": "session move: añadiendo el worktree %@ en el destino" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Lors d’un renommage depuis la palette de commandes, le nom actuel est sélectionné." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "عند إعادة التسمية من لوحة الأوامر، يكون الاسم الحالي محددًا." + "value": "session move : ajout du worktree %@ sur la destination" } }, - "es": { + "ja": { "stringUnit": { "state": "translated", - "value": "Al cambiar el nombre desde la paleta de comandos, el nombre actual aparece seleccionado." + "value": "session move: 移動先に worktree %@ を追加しています" } }, - "zh-Hant": { + "ko": { "stringUnit": { "state": "translated", - "value": "從命令面板重新命名時,會選取目前的名稱。" + "value": "session move: 대상에 worktree %@을(를) 추가하는 중" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "从命令面板重命名时,会选中当前名称。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "명령어 팔레트에서 이름을 변경할 때 현재 이름이 선택된 상태로 표시됩니다." + "value": "session move:正在目标上添加 worktree %@" } }, - "ja": { + "zh-Hant": { "stringUnit": { "state": "translated", - "value": "コマンドパレットで名前を変更するとき、現在の名前が選択された状態になります。" + "value": "session move:正在目的地新增 worktree %@" } } } }, - "settings.app.sidebarBranchLayout.subtitle": { + "browser.omnibar.accessibilityLabel": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Choose whether branches share one line or each get their own line." + "value": "Address and search bar" } }, "de": { "stringUnit": { "state": "translated", - "value": "Wählen Sie, ob sich Branches eine Zeile teilen oder jeweils eine eigene Zeile erhalten." + "value": "Adress- und Suchleiste" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Choisissez si les branches partagent une même ligne ou ont chacune leur propre ligne." + "value": "Barre d’adresse et de recherche" } }, "ar": { "stringUnit": { "state": "translated", - "value": "اختر ما إذا كانت الفروع تتشارك سطرًا واحدًا أو يحصل كل منها على سطر خاص به." + "value": "شريط العنوان والبحث" } }, "es": { "stringUnit": { "state": "translated", - "value": "Elige si las ramas comparten una sola línea o cada una ocupa su propia línea." + "value": "Barra de direcciones y búsqueda" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "選擇分支要共用一行,還是各自獨立一行。" + "value": "網址與搜尋列" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "选择分支是共用一行,还是各占一行。" + "value": "地址和搜索栏" } }, "ko": { "stringUnit": { "state": "translated", - "value": "브랜치를 한 줄에 함께 표시할지, 각각 별도의 줄에 표시할지 선택합니다." + "value": "주소 및 검색 막대" } }, "ja": { "stringUnit": { "state": "translated", - "value": "ブランチを 1 行にまとめて表示するか、それぞれ別の行に表示するかを選択します。" + "value": "アドレスと検索バー" } } } }, - "settings.app.stackBranchDirectory.subtitle": { + "projectPanel.reload": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Shows the branch and directory on separate lines." + "value": "Reload Project" } }, "de": { "stringUnit": { "state": "translated", - "value": "Zeigt Branch und Verzeichnis in getrennten Zeilen an." + "value": "Projekt neu laden" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Affiche la branche et le répertoire sur des lignes distinctes." + "value": "Recharger le projet" } }, "ar": { "stringUnit": { "state": "translated", - "value": "يعرض الفرع والدليل في سطرين منفصلين." + "value": "إعادة تحميل المشروع" } }, "es": { "stringUnit": { "state": "translated", - "value": "Muestra la rama y el directorio en líneas separadas." + "value": "Recargar proyecto" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "分支與目錄分行顯示。" + "value": "重新載入專案" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "分支和目录分行显示。" + "value": "重新加载项目" } }, "ko": { "stringUnit": { "state": "translated", - "value": "브랜치와 디렉터리를 각각 다른 줄에 표시합니다." + "value": "프로젝트 다시 불러오기" } }, "ja": { "stringUnit": { "state": "translated", - "value": "ブランチとディレクトリを別々の行に表示します。" + "value": "プロジェクトを再読み込み" } } } }, - "settings.app.warnBeforeClosingTab.subtitle": { + "projectPanel.reloadErrors": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Closing a tab asks for confirmation first." + "value": "Reload returned errors: %@" } }, "de": { "stringUnit": { "state": "translated", - "value": "Beim Schließen eines Tabs wird zuerst nach einer Bestätigung gefragt." + "value": "Beim Neuladen sind Fehler aufgetreten: %@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Une confirmation est demandée avant la fermeture d’un onglet." + "value": "Le rechargement a renvoyé des erreurs : %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "يُطلب التأكيد قبل إغلاق علامة التبويب." + "value": "أعادت إعادة التحميل أخطاء: %@" } }, "es": { "stringUnit": { "state": "translated", - "value": "Se pide confirmación antes de cerrar una pestaña." + "value": "La recarga devolvió errores: %@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "關閉標籤頁前先要求確認。" + "value": "重新載入時發生錯誤:%@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "关闭标签页前先要求确认。" + "value": "重新加载时出现错误:%@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "탭을 닫기 전에 확인을 요청합니다." + "value": "다시 불러오기 중 오류 발생: %@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "タブを閉じる前に確認します。" + "value": "再読み込みでエラーが発生しました: %@" } } } }, - "settings.app.warnBeforeClosingTabXButton.subtitle": { + "projectPanel.dismissReloadErrors": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Clicking a tab's close button asks for confirmation first." + "value": "Dismiss Errors" } }, "de": { "stringUnit": { "state": "translated", - "value": "Beim Klicken auf die Schließen-Taste eines Tabs wird zuerst nach einer Bestätigung gefragt." + "value": "Fehler ausblenden" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Une confirmation est demandée avant la fermeture d’un onglet avec son bouton de fermeture." + "value": "Ignorer les erreurs" } }, "ar": { "stringUnit": { "state": "translated", - "value": "يُطلب التأكيد قبل إغلاق علامة التبويب بالنقر على زر الإغلاق الخاص بها." + "value": "تجاهل الأخطاء" } }, "es": { "stringUnit": { "state": "translated", - "value": "Se pide confirmación antes de cerrar una pestaña con su botón de cerrar." + "value": "Descartar errores" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "按一下標籤頁上的關閉按鈕後,會先要求確認再關閉。" + "value": "關閉錯誤" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "点按标签页上的关闭按钮后,会先要求确认再关闭。" + "value": "关闭错误" } }, "ko": { "stringUnit": { "state": "translated", - "value": "탭의 닫기 버튼을 클릭하면 탭을 닫기 전에 확인을 요청합니다." + "value": "오류 닫기" } }, "ja": { "stringUnit": { "state": "translated", - "value": "タブの閉じるボタンをクリックしたとき、閉じる前に確認します。" + "value": "エラーを閉じる" } } } }, - "settings.app.warnBeforeQuit.subtitle": { + "projectPanel.scheme": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Choose when quitting with Command-Q asks for confirmation. Dirty Only asks only when a workspace would ask before closing." + "value": "Scheme" } }, "de": { "stringUnit": { "state": "translated", - "value": "Wählen Sie, wann beim Beenden mit Befehlstaste-Q nach einer Bestätigung gefragt wird. „Nur bei Bedarf“ fragt nur, wenn ein Arbeitsbereich vor dem Schließen nachfragen würde." + "value": "Schema" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Choisissez quand une confirmation est demandée pour quitter avec Commande + Q. « Si nécessaire » ne la demande que si un espace de travail la demanderait avant sa fermeture." + "value": "Schéma" } }, "ar": { "stringUnit": { "state": "translated", - "value": "اختر متى يُطلب التأكيد عند الإنهاء باستخدام Command-Q. يطلب خيار «عند الحاجة فقط» التأكيد فقط عندما تطلبه مساحة عمل قبل إغلاقها." + "value": "المخطط" } }, "es": { "stringUnit": { "state": "translated", - "value": "Elige cuándo se pide confirmación al salir con Comando + Q. «Solo si hace falta» solo la pide cuando un espacio de trabajo la pediría antes de cerrarse." + "value": "Esquema" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "選擇按 Command + Q 結束時,在什麼情況下要求確認。「僅在需要時」只會在某個工作區關閉前需要確認時才詢問。" + "value": "方案" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "选择按 Command + Q 退出时,在什么情况下要求确认。“仅在需要时”只会在某个工作区关闭前需要确认时才询问。" + "value": "方案" } }, "ko": { "stringUnit": { "state": "translated", - "value": "Command-Q로 종료할 때 확인을 요청할 조건을 선택합니다. ‘필요 시에만’은 닫기 전에 확인이 필요한 작업 공간이 있을 때만 확인을 요청합니다." + "value": "스킴" } }, "ja": { "stringUnit": { "state": "translated", - "value": "Command + Q で終了するときに、どのような場合に確認するかを選択します。「必要時のみ」では、閉じる前に確認が必要なワークスペースがある場合だけ確認します。" + "value": "スキーム" } } } }, - "settings.app.workspaceInheritWorkingDirectory.subtitle": { + "projectPanel.configuration": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Starts new workspaces in the working directory of the current workspace." + "value": "Configuration" } }, "de": { "stringUnit": { "state": "translated", - "value": "Startet neue Arbeitsbereiche im Arbeitsverzeichnis des aktuellen Arbeitsbereichs." + "value": "Konfiguration" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Ouvre les nouveaux espaces de travail dans le répertoire de travail de l’espace de travail actuel." + "value": "Configuration de build" } }, "ar": { "stringUnit": { "state": "translated", - "value": "يبدأ مساحات العمل الجديدة في دليل العمل الخاص بمساحة العمل الحالية." + "value": "التكوين" } }, "es": { "stringUnit": { "state": "translated", - "value": "Inicia los nuevos espacios de trabajo en el directorio de trabajo del espacio de trabajo actual." + "value": "Configuración" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "新工作區會沿用目前工作區的工作目錄。" + "value": "組態" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "新工作区会沿用当前工作区的工作目录。" + "value": "配置" } }, "ko": { "stringUnit": { "state": "translated", - "value": "새 작업 공간은 현재 작업 공간의 작업 디렉터리에서 시작됩니다." + "value": "구성" } }, "ja": { "stringUnit": { "state": "translated", - "value": "新しいワークスペースは、現在のワークスペースと同じ作業ディレクトリで開始します。" + "value": "構成" } } } }, - "settings.app.wrapWorkspaceTitles.subtitle": { + "projectPanel.loadingFormat": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Shows long workspace titles in full on multiple lines." + "value": "Loading %@" } }, "de": { "stringUnit": { "state": "translated", - "value": "Zeigt lange Arbeitsbereichstitel vollständig in mehreren Zeilen an." + "value": "%@ wird geladen" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Affiche en entier les titres longs des espaces de travail sur plusieurs lignes." + "value": "Chargement de %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "يعرض عناوين مساحات العمل الطويلة كاملةً على عدة أسطر." + "value": "جارٍ تحميل %@" } }, "es": { "stringUnit": { "state": "translated", - "value": "Muestra completos los títulos largos de los espacios de trabajo en varias líneas." + "value": "Cargando %@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "較長的工作區標題會換行完整顯示。" + "value": "正在載入 %@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "较长的工作区标题会换行完整显示。" + "value": "正在加载 %@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "긴 워크스페이스 제목을 줄바꿈하여 모두 표시합니다." + "value": "%@ 불러오는 중" } }, "ja": { "stringUnit": { "state": "translated", - "value": "長いワークスペースタイトルを省略せずに複数行で表示します。" + "value": "%@ を読み込み中" } } } }, - "settings.automation.amp.subtitle": { + "projectPanel.failedFormat": { "extractionState": "manual", "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Shows Amp status and notifications in the sidebar." + "value": "Failed: %@" } }, "de": { "stringUnit": { "state": "translated", - "value": "Zeigt den Status und die Benachrichtigungen von Amp in der Seitenleiste an." + "value": "Fehlgeschlagen: %@" } }, "fr": { "stringUnit": { "state": "translated", - "value": "Affiche l’état et les notifications d’Amp dans la barre latérale." + "value": "Échec : %@" } }, "ar": { "stringUnit": { "state": "translated", - "value": "يعرض حالة Amp وإشعاراته في الشريط الجانبي." + "value": "فشل: %@" } }, "es": { "stringUnit": { "state": "translated", - "value": "Muestra el estado y las notificaciones de Amp en la barra lateral." + "value": "Error: %@" } }, "zh-Hant": { "stringUnit": { "state": "translated", - "value": "在側邊欄中顯示 Amp 的狀態與通知。" + "value": "失敗:%@" } }, "zh-Hans": { "stringUnit": { "state": "translated", - "value": "在侧边栏中显示 Amp 的状态和通知。" + "value": "失败:%@" } }, "ko": { "stringUnit": { "state": "translated", - "value": "사이드바에 Amp 상태와 알림을 표시합니다." + "value": "실패: %@" } }, "ja": { "stringUnit": { "state": "translated", - "value": "サイドバーにAmpのステータスと通知を表示します。" - } - } - } - }, - "settings.automation.autoNamingAgent.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Automatic uses each session's own agent. Other supported agents need their command-line tool on the PATH." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "„Automatisch“ verwendet den Agenten der jeweiligen Sitzung. Andere unterstützte Agenten benötigen ihr Befehlszeilentool im PATH." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "« Automatique » utilise l’agent propre à chaque session. Les autres agents pris en charge nécessitent que leur outil en ligne de commande soit dans le PATH." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يستخدم خيار «تلقائي» الوكيل الخاص بكل جلسة. يحتاج الوكلاء المدعومون الآخرون إلى وجود أداة سطر الأوامر الخاصة بهم في PATH." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "«Automático» usa el agente de cada sesión. Los demás agentes compatibles necesitan su herramienta de línea de comandos en el PATH." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "「自動」會使用各工作階段本身的代理。若要使用其他支援的代理,其命令列工具必須位於 PATH 中。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "“自动”会使用各会话自身的代理。要使用其他受支持的代理,其命令行工具必须位于 PATH 中。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "‘자동’은 세션마다 해당 세션의 에이전트를 사용합니다. 지원되는 다른 에이전트를 사용하려면 해당 명령줄 도구가 PATH에 있어야 합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "「自動」では、各セッションのエージェントを使用します。ほかの対応エージェントを使うには、そのコマンドラインツールが PATH に含まれている必要があります。" - } - } - } - }, - "settings.automation.claudeCode.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows Claude Code status and notifications in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt den Status und die Benachrichtigungen von Claude Code in der Seitenleiste an." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche l’état et les notifications de Claude Code dans la barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض حالة Claude Code وإشعاراته في الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra el estado y las notificaciones de Claude Code en la barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄中顯示 Claude Code 的狀態與通知。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏中显示 Claude Code 的状态和通知。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바에 Claude Code 상태와 알림을 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーにClaude Codeのステータスと通知を表示します。" - } - } - } - }, - "settings.automation.codex.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows Codex status and notifications in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt den Status und die Benachrichtigungen von Codex in der Seitenleiste an." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche l’état et les notifications de Codex dans la barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض حالة Codex وإشعاراته في الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra el estado y las notificaciones de Codex en la barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄中顯示 Codex 的狀態與通知。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏中显示 Codex 的状态和通知。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바에 Codex 상태와 알림을 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーにCodexのステータスと通知を表示します。" - } - } - } - }, - "settings.automation.cursor.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows Cursor status and notifications in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt den Status und die Benachrichtigungen von Cursor in der Seitenleiste an." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche l’état et les notifications de Cursor dans la barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض حالة Cursor وإشعاراته في الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra el estado y las notificaciones de Cursor en la barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄中顯示 Cursor 的狀態與通知。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏中显示 Cursor 的状态和通知。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바에 Cursor 상태와 알림을 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーにCursorのステータスと通知を表示します。" - } - } - } - }, - "settings.automation.gemini.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows Gemini CLI status and notifications in the sidebar." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt den Status und die Benachrichtigungen von Gemini CLI in der Seitenleiste an." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche l’état et les notifications de Gemini CLI dans la barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض حالة Gemini CLI وإشعاراته في الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra el estado y las notificaciones de Gemini CLI en la barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄中顯示 Gemini CLI 的狀態與通知。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏中显示 Gemini CLI 的状态和通知。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바에 Gemini CLI 상태와 알림을 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーにGemini CLIのステータスと通知を表示します。" - } - } - } - }, - "settings.automation.kiro.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows Kiro CLI status and notifications in the sidebar, and its tool events in Feed." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt den Status und die Benachrichtigungen von Kiro CLI in der Seitenleiste und seine Tool-Ereignisse im Feed an." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche l’état et les notifications de Kiro CLI dans la barre latérale, et ses événements d’outils dans le Flux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض حالة Kiro CLI وإشعاراته في الشريط الجانبي، وأحداث أدواته في Feed." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra el estado y las notificaciones de Kiro CLI en la barra lateral, y sus eventos de herramientas en el Feed." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄中顯示 Kiro CLI 的狀態與通知,並在 Feed 中顯示其工具事件。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏中显示 Kiro CLI 的状态和通知,并在 Feed 中显示其工具事件。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사이드바에 Kiro CLI 상태와 알림을 표시하고, 피드에 해당 도구 이벤트를 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サイドバーにKiro CLIのステータスと通知を、フィードにそのツールイベントを表示します。" - } - } - } - }, - "settings.automation.socketMode.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Choose which local processes can control cmux." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wählen Sie, welche lokalen Prozesse cmux steuern können." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez quels processus locaux peuvent contrôler cmux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "اختر العمليات المحلية التي يمكنها التحكم في cmux." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige qué procesos locales pueden controlar cmux." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "選擇哪些本機程序可以控制 cmux。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "选择哪些本地进程可以控制 cmux。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "cmux를 제어할 수 있는 로컬 프로세스를 선택합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "cmux を制御できるローカルプロセスを選択します。" - } - } - } - }, - "settings.automation.suppressSubagentNotifications.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Lists subagent completions in Feed without sending notifications." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Abgeschlossene Subagenten erscheinen im Feed, ohne dass Benachrichtigungen gesendet werden." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les sous-agents terminés apparaissent dans le Flux, sans notification." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يظهر اكتمال مهام الوكلاء الفرعيين في Feed دون إرسال إشعارات." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Los subagentes finalizados aparecen en el Feed sin enviar notificaciones." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "子代理完成時只會列在 Feed 中,不會傳送通知。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "子代理完成时只会列在 Feed 中,不会发送通知。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "하위 에이전트가 완료되면 알림을 보내지 않고 피드에만 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブエージェントが完了しても通知は送らず、フィードにのみ表示します。" - } - } - } - }, - "settings.automation.workspaceAutoNaming.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Generates workspace and tab titles from agent conversations." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Benennt Arbeitsbereiche und Tabs anhand von Agentengesprächen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Nomme les espaces de travail et les onglets d’après les conversations des agents." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يسمّي مساحات العمل وعلامات التبويب بناءً على محادثات الوكلاء." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Pone nombre a los espacios de trabajo y las pestañas según las conversaciones de los agentes." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "根據代理對話產生工作區和標籤頁標題。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "根据代理对话生成工作区和标签页标题。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "에이전트 대화를 바탕으로 작업 공간과 탭 제목을 생성합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エージェントの会話からワークスペースとタブのタイトルを生成します。" - } - } - } - }, - "settings.betaFeatures.cloudMachines.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Adds Cloud Machines to the right sidebar, Settings, the command palette, and the new workspace menu. Cloud Machines also require a remote rollout; with this off, the Cloud tunnel and fleet polling stay off." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fügt Cloud-Maschinen zur rechten Seitenleiste, zu den Einstellungen, zur Befehlspalette und zum Menü für neue Arbeitsbereiche hinzu. Cloud-Maschinen erfordern außerdem ein Remote-Rollout; solange diese Option deaktiviert ist, bleiben Cloud-Tunnel und Flottenabfrage aus." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute les machines cloud à la barre latérale droite, aux Réglages, à la palette de commandes et au menu de nouvel espace de travail. Les machines cloud nécessitent aussi un déploiement à distance ; si cette option est désactivée, le tunnel Cloud et l’interrogation de la flotte restent arrêtés." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يضيف الأجهزة السحابية إلى الشريط الجانبي الأيمن والإعدادات ولوحة الأوامر وقائمة مساحة العمل الجديدة. وتتطلب الأجهزة السحابية أيضًا طرحًا عن بُعد؛ وعند إيقاف هذا الخيار يظل نفق Cloud واستطلاع الأسطول متوقفين." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade las máquinas en la nube a la barra lateral derecha, a Ajustes, a la paleta de comandos y al menú de nuevo espacio de trabajo. Las máquinas en la nube también requieren un despliegue remoto; con esta opción desactivada, el túnel de Cloud y el sondeo de la flota permanecen desactivados." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在右側邊欄、設定、命令面板和新增工作區選單中加入雲端機器。雲端機器也需要遠端推出才能使用;關閉此選項時,Cloud 通道和機群輪詢都會保持停用。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在右侧边栏、设置、命令面板和新建工作区菜单中添加云主机。云主机还需要远程推出才能使用;关闭此选项时,Cloud 隧道和机群轮询都会保持停用。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽 사이드바, 설정, 명령어 팔레트, 새 작업 공간 메뉴에 클라우드 머신을 추가합니다. 클라우드 머신은 원격 출시도 필요하며, 이 옵션이 꺼져 있으면 Cloud 터널과 플릿 폴링도 꺼진 상태로 유지됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右サイドバー、設定、コマンドパレット、新規ワークスペースメニューにクラウドマシンを追加します。クラウドマシンにはリモートでの提供開始も必要です。この設定がオフの間は、Cloud トンネルとフリートのポーリングも停止したままです。" - } - } - } - }, - "settings.betaFeatures.customSidebars.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Adds sidebars from ~/.config/cmux/sidebars to the sidebar picker." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fügt Seitenleisten aus ~/.config/cmux/sidebars zur Seitenleistenauswahl hinzu." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute les barres latérales de ~/.config/cmux/sidebars au sélecteur de barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يضيف الأشرطة الجانبية من ~/.config/cmux/sidebars إلى منتقي الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade las barras laterales de ~/.config/cmux/sidebars al selector de barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄選取器中加入 ~/.config/cmux/sidebars 裡的側邊欄。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏选择器中添加 ~/.config/cmux/sidebars 里的侧边栏。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "~/.config/cmux/sidebars의 사이드바를 사이드바 선택기에 추가합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "~/.config/cmux/sidebars のサイドバーをサイドバーピッカーに追加します。" - } - } - } - }, - "settings.betaFeatures.dock.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Adds Dock to the right sidebar for custom terminal controls." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fügt der rechten Seitenleiste das Dock für benutzerdefinierte Terminal-Steuerelemente hinzu." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute le Dock à la barre latérale droite pour les commandes de terminal personnalisées." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يضيف Dock إلى الشريط الجانبي الأيمن لعناصر التحكم المخصصة في الطرفية." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade el Dock a la barra lateral derecha para controles de terminal personalizados." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在右側邊欄加入 Dock,用來放置自訂的終端機控制項。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在右侧边栏添加 Dock,用来放置自定义的终端控件。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽 사이드바에 Dock을 추가해 터미널 컨트롤을 직접 구성할 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右サイドバーに Dock を追加し、ターミナル用のカスタムコントロールを配置できるようにします。" - } - } - } - }, - "settings.betaFeatures.extensions.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Adds the extensions button and lets cmux install and run sidebar extensions." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fügt die Taste „Erweiterungen“ hinzu und erlaubt cmux, Seitenleisten-Erweiterungen zu installieren und auszuführen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute le bouton des extensions et permet à cmux d’installer et d’exécuter des extensions de barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يضيف زر الامتدادات ويتيح لـ cmux تثبيت امتدادات الشريط الجانبي وتشغيلها." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade el botón de extensiones y permite que cmux instale y ejecute extensiones de barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "加入擴充功能按鈕,並讓 cmux 可安裝及執行側邊欄擴充功能。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "添加扩展按钮,并允许 cmux 安装和运行侧边栏扩展。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "확장 기능 버튼을 추가하고 cmux가 사이드바 확장 기능을 설치하고 실행할 수 있게 합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エクステンションボタンを追加し、cmuxでサイドバーエクステンションをインストールして実行できるようにします。" - } - } - } - }, - "settings.betaFeatures.feed.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Adds Feed to the right sidebar for answering agent requests." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fügt der rechten Seitenleiste den Feed zum Beantworten von Agentenanfragen hinzu." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute le Flux à la barre latérale droite pour répondre aux demandes des agents." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يضيف Feed إلى الشريط الجانبي الأيمن للرد على طلبات الوكلاء." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade el Feed a la barra lateral derecha para responder a las solicitudes de los agentes." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在右側邊欄加入 Feed,用於回覆代理程式的請求。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在右侧边栏添加 Feed,用于回复代理请求。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽 사이드바에 피드를 추가해 에이전트 요청에 응답할 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右サイドバーにフィードを追加し、エージェントからのリクエストに応答できるようにします。" - } - } - } - }, - "settings.betaFeatures.remoteTmux.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows tmux sessions on remote hosts as workspaces in the sidebar. The sessions keep running after cmux quits." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt tmux-Sitzungen auf Remote-Hosts als Arbeitsbereiche in der Seitenleiste an. Die Sitzungen laufen auch nach dem Beenden von cmux weiter." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche les sessions tmux des hôtes distants comme des espaces de travail dans la barre latérale. Les sessions continuent de s’exécuter après la fermeture de cmux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض جلسات tmux على المضيفين البعيدين كمساحات عمل في الشريط الجانبي. وتستمر الجلسات في العمل حتى بعد إنهاء cmux." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra las sesiones de tmux de hosts remotos como espacios de trabajo en la barra lateral. Las sesiones siguen ejecutándose al salir de cmux." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄中將遠端主機上的 tmux 工作階段顯示為工作區。結束 cmux 後,這些工作階段仍會繼續執行。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏中将远程主机上的 tmux 会话显示为工作区。退出 cmux 后,这些会话仍会继续运行。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "원격 호스트의 tmux 세션을 사이드바에 작업 공간으로 표시합니다. cmux를 종료해도 세션은 계속 실행됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リモートホストの tmux セッションをサイドバーにワークスペースとして表示します。cmux を終了してもセッションは動作し続けます。" - } - } - } - }, - "settings.betaFeatures.workspaceTodoControls.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows Add Checklist Item and status controls on workspaces. A remote rollout can turn them on even while this is off." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt „Checklisten-Eintrag hinzufügen“ und Statussteuerelemente bei Arbeitsbereichen an. Ein Remote-Rollout kann sie auch dann aktivieren, wenn diese Option deaktiviert ist." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche « Ajouter un élément à la liste de contrôle » et les commandes d’état sur les espaces de travail. Un déploiement à distance peut les activer même si cette option est désactivée." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض «إضافة عنصر قائمة تحقق» وعناصر التحكم في الحالة على مساحات العمل. ويمكن لطرح عن بُعد تفعيلها حتى عند إيقاف هذا الخيار." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra «Añadir elemento a la lista de verificación» y los controles de estado en los espacios de trabajo. Un despliegue remoto puede activarlos aunque esta opción esté desactivada." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在工作區上顯示「新增檢查清單項目」和狀態控制項。即使關閉此選項,遠端推出仍可能啟用這些控制項。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在工作区上显示“添加清单项”和状态控件。即使关闭此选项,远程推出仍可能启用这些控件。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "작업 공간에 ‘체크리스트 항목 추가’ 및 상태 컨트롤을 표시합니다. 이 옵션이 꺼져 있어도 원격 출시로 이 컨트롤이 켜질 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ワークスペースに「チェックリスト項目を追加」とステータスコントロールを表示します。この設定がオフでも、リモートでの提供開始によって有効になることがあります。" - } - } - } - }, - "settings.betaFeatures.workspaceTodosChecklistStyle.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Choose whether clicking a workspace checklist opens a popover or expands it under the row." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wählen Sie, ob sich beim Klicken auf die Checkliste eines Arbeitsbereichs ein Popover öffnet oder die Checkliste unter der Zeile aufklappt." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez si un clic sur la liste de contrôle d’un espace de travail ouvre une fenêtre contextuelle ou la déplie sous la ligne." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "اختر ما إذا كان النقر على قائمة التحقق الخاصة بمساحة العمل يفتح نافذة منبثقة أو يوسّعها أسفل الصف." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige si al hacer clic en la lista de verificación de un espacio de trabajo se abre un popover o se despliega bajo la fila." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "選擇按一下工作區檢查清單時,要在彈出視窗中開啟,還是在該列下方展開。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "选择点按工作区清单时,是在浮层中打开,还是在该行下方展开。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "작업 공간 체크리스트를 클릭했을 때 팝오버로 열지, 행 아래에 펼칠지 선택합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ワークスペースのチェックリストをクリックしたときに、ポップオーバーで開くか、行の下に展開するかを選択します。" - } - } - } - }, - "settings.browser.enabled.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Opens browser tabs and links from terminals in the cmux browser." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Browser-Tabs und Links aus Terminals werden im cmux-Browser geöffnet." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre les onglets de navigateur et les liens des terminaux dans le navigateur cmux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يفتح علامات تبويب المتصفح والروابط من الطرفيات في متصفح cmux." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre pestañas del navegador y enlaces de las terminales en el navegador de cmux." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "瀏覽器標籤頁和從終端機開啟的連結都會在 cmux 瀏覽器中開啟。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "浏览器标签页和从终端打开的链接都会在 cmux 浏览器中打开。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "브라우저 탭과 터미널에서 연 링크를 cmux 브라우저에서 엽니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ブラウザタブとターミナルから開いたリンクをcmuxブラウザで開きます。" - } - } - } - }, - "settings.browser.hiddenWebViewDiscard.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Frees memory from browser tabs hidden longer than the delay. They reload when shown again." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Browser-Tabs, die länger als die festgelegte Zeit ausgeblendet sind, geben ihren Speicher frei und werden beim erneuten Anzeigen neu geladen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Libère la mémoire des onglets de navigateur masqués depuis plus longtemps que le délai défini. Ils se rechargent lorsqu’ils réapparaissent." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يحرر ذاكرة علامات تبويب المتصفح المخفية لمدة تتجاوز المهلة المحددة، ويُعاد تحميلها عند عرضها مجددًا." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Libera la memoria de las pestañas del navegador que llevan ocultas más tiempo del indicado. Se vuelven a cargar al mostrarse de nuevo." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "瀏覽器標籤頁隱藏超過延遲時間後,會釋放其記憶體。再次顯示時會重新載入。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "浏览器标签页隐藏超过延迟时间后,会释放其内存。再次显示时会重新加载。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "브라우저 탭이 지연 시간보다 오래 숨겨져 있으면 메모리를 해제합니다. 탭을 다시 표시하면 새로 고칩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "非表示の時間が遅延時間を超えたブラウザタブのメモリを解放します。タブは再び表示したときに再読み込みされます。" - } - } - } - }, - "settings.browser.theme.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Choose light or dark pages for sites that support both. System matches the app appearance." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wählen Sie helle oder dunkle Seiten für Websites, die beides unterstützen. „System“ folgt dem Erscheinungsbild der App." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez des pages claires ou sombres pour les sites qui prennent en charge les deux. « Système » suit l’apparence de l’app." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "اختر الصفحات الفاتحة أو الداكنة للمواقع التي تدعم الوضعين. يتبع خيار «النظام» مظهر التطبيق." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige páginas claras u oscuras para los sitios compatibles con ambos modos. «Sistema» sigue el aspecto de la app." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "網站同時支援淺色與深色時,選擇要使用淺色或深色頁面。「系統」會跟隨 App 的外觀。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "网站同时支持浅色和深色时,选择使用浅色还是深色页面。“系统”会跟随应用外观。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "라이트와 다크를 모두 지원하는 사이트에서 표시할 페이지 모드를 선택합니다. ‘시스템’은 앱의 외관 설정을 따릅니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ライトとダークの両方に対応したサイトで、どちらのページを表示するかを選択します。「システム」はアプリの外観に合わせます。" - } - } - } - }, - "settings.customSidebars.enabled.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Adds sidebars from ~/.config/cmux/sidebars to the sidebar picker." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Fügt Seitenleisten aus ~/.config/cmux/sidebars zur Seitenleistenauswahl hinzu." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute les barres latérales de ~/.config/cmux/sidebars au sélecteur de barre latérale." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يضيف الأشرطة الجانبية من ~/.config/cmux/sidebars إلى منتقي الشريط الجانبي." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade las barras laterales de ~/.config/cmux/sidebars al selector de barra lateral." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在側邊欄選取器中加入 ~/.config/cmux/sidebars 裡的側邊欄。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在侧边栏选择器中添加 ~/.config/cmux/sidebars 里的侧边栏。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "~/.config/cmux/sidebars의 사이드바를 사이드바 선택기에 추가합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "~/.config/cmux/sidebars のサイドバーをサイドバーピッカーに追加します。" - } - } - } - }, - "settings.customSidebars.renderer.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Isolated process protects cmux from a faulty sidebar but accepts clicks only. In-app also accepts hover, focus, and typing." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "„Isolierter Prozess“ schützt cmux vor einer fehlerhaften Seitenleiste, unterstützt aber nur Klicks. „In-App“ unterstützt zusätzlich Hover, Fokus und Texteingabe." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "« Processus isolé » protège cmux d’une barre latérale défectueuse, mais n’accepte que les clics. « Dans l’application » accepte aussi le survol, le focus et la saisie." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يحمي خيار «عملية معزولة» cmux من الشريط الجانبي المعيب، لكنه لا يقبل سوى النقرات. أما خيار «داخل التطبيق» فيقبل أيضًا تمرير المؤشر والتركيز والكتابة." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "«Proceso aislado» protege cmux de una barra lateral defectuosa, pero solo admite clics. «En la aplicación» también admite pasar el puntero por encima, enfocar y escribir." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "「隔離程序」可保護 cmux 不受有問題的側邊欄影響,但只接受點擊。「應用程式內」還接受游標停留、聚焦和輸入。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "“隔离进程”可保护 cmux 不受有问题的侧边栏影响,但只接受点击。“应用内”还接受悬停、聚焦和输入。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "‘격리된 프로세스’는 결함이 있는 사이드바로부터 cmux를 보호하지만 클릭만 허용합니다. ‘앱 내부’는 포인터 올려놓기, 포커스, 키보드 입력도 허용합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "「分離プロセス」は問題のあるサイドバーから cmux を保護しますが、クリックしか受け付けません。「アプリ内」では、ホバー、フォーカス、入力も受け付けます。" - } - } - } - }, - "settings.globalHotkey.enable.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Pressing the shortcut in any app shows or hides all cmux windows." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Das Tastaturkürzel blendet in jeder App alle cmux-Fenster ein oder aus." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Le raccourci affiche ou masque toutes les fenêtres cmux, quelle que soit l’app active." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يُظهر الاختصار جميع نوافذ cmux أو يخفيها من أي تطبيق." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "El atajo muestra u oculta todas las ventanas de cmux desde cualquier app." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在任何 App 中按下快速鍵,即可顯示或隱藏所有 cmux 視窗。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在任意 App 中按下快捷键,即可显示或隐藏所有 cmux 窗口。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어느 앱에서든 단축키를 눌러 모든 cmux 윈도우를 표시하거나 숨길 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "どのアプリを使用中でも、ショートカットを押すと cmux のすべてのウィンドウを表示または非表示にできます。" - } - } - } - }, - "settings.mobile.artifactFolderAccess.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Choose how much of a folder iPhone and iPad can browse. One Level shows only the items directly inside it." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wählen Sie, wie tief iPhone und iPad einen Ordner durchsuchen können. „Eine Ebene“ zeigt nur die Objekte direkt darin." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez jusqu’où l’iPhone et l’iPad peuvent parcourir un dossier. « Un niveau » n’affiche que les éléments qui s’y trouvent directement." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "اختر مدى عمق تصفح iPhone وiPad داخل المجلد. يعرض خيار «مستوى واحد» العناصر الموجودة مباشرةً داخله فقط." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige hasta qué nivel pueden explorar una carpeta el iPhone y el iPad. «Un nivel» solo muestra los elementos que contiene directamente." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "選擇 iPhone 和 iPad 可瀏覽資料夾的範圍。「單一層級」只顯示該資料夾第一層的項目。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "选择 iPhone 和 iPad 可浏览文件夹的范围。“一层”只显示该文件夹第一层的项目。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "iPhone 및 iPad에서 폴더를 어디까지 탐색할 수 있는지 선택합니다. ‘한 단계’는 폴더 바로 아래에 있는 항목만 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "iPhone と iPad からフォルダをどこまで参照できるかを選択します。「1 階層」では、そのフォルダの直下にある項目のみが表示されます。" - } - } - } - }, - "settings.mobile.iOSPairingHost.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Lets iPhone and iPad pair with and connect to this Mac." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "iPhone und iPad können sich mit diesem Mac koppeln und verbinden." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L’iPhone et l’iPad peuvent se jumeler avec ce Mac et s’y connecter." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يمكن لـ iPhone وiPad الاقتران بجهاز Mac هذا والاتصال به." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "El iPhone y el iPad pueden emparejarse con este Mac y conectarse a él." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "允許 iPhone 和 iPad 與此 Mac 配對及連線。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "允许 iPhone 和 iPad 与这台 Mac 配对并连接。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "iPhone과 iPad가 이 Mac과 페어링하고 연결할 수 있게 합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "iPhone と iPad がこの Mac とペアリングして接続できるようにします。" - } - } - } - }, - "settings.mobile.phonePush.forwarding.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Sends agent notifications from this Mac to cmux on iPhone and iPad." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Leitet Agentenbenachrichtigungen von diesem Mac an cmux auf iPhone und iPad weiter." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Transfère les notifications des agents de ce Mac vers cmux sur iPhone et iPad." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يوجّه إشعارات الوكلاء من جهاز Mac هذا إلى cmux على iPhone وiPad." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Reenvía las notificaciones de agentes de este Mac a cmux en iPhone y iPad." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "將此 Mac 上的代理程式通知傳送至 iPhone 和 iPad 上的 cmux。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "将这台 Mac 上的代理通知发送到 iPhone 和 iPad 上的 cmux。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 Mac의 에이전트 알림을 iPhone 및 iPad의 cmux로 보냅니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "この Mac からエージェントの通知を iPhone と iPad の cmux に送信します。" - } - } - } - }, - "settings.shortcuts.showModifierHoldHints.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Holding Command or Control shows shortcut hints." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Hinweise zu Tastaturkürzeln erscheinen, solange die Befehlstaste oder die Control-Taste gedrückt ist." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les indices de raccourcis apparaissent tant que la touche Commande ou Contrôle est maintenue enfoncée." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تظهر تلميحات الاختصارات عند الضغط مع الاستمرار على Command أو Control." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Las sugerencias de atajos aparecen mientras se mantiene presionada la tecla Comando o Control." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "按住 Command 或 Control 鍵時,會顯示快速鍵提示。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "按住 Command 或 Control 键时,会显示快捷键提示。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Command 또는 Control 키를 누르고 있으면 단축키 힌트가 표시됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Command キーまたは Control キーを押したままにすると、ショートカットヒントが表示されます。" - } - } - } - }, - "settings.sidebar.rightMaxWidth.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Lets the Dock in the right sidebar grow up to this width while leaving room for terminals." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Das Dock in der rechten Seitenleiste kann bis zu dieser Breite wachsen, lässt aber Platz für Terminals." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Le Dock de la barre latérale droite peut s’élargir jusqu’à cette largeur tout en laissant de la place aux terminaux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يمكن أن يتسع Dock في الشريط الجانبي الأيمن حتى هذا العرض مع ترك مساحة للطرفيات." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "El Dock de la barra lateral derecha puede ampliarse hasta este ancho, pero deja espacio para las terminales." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "右側邊欄中的 Dock 最寬可擴展至此寬度,並為終端機保留空間。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "右侧边栏中的 Dock 最宽可扩展到此宽度,同时为终端保留空间。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽 사이드바의 Dock은 터미널 공간을 남겨 둔 채 이 너비까지 넓어질 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右サイドバーの Dock は、ターミナルの領域を残したまま、この幅まで広げられます。" - } - } - } - }, - "settings.terminal.adaptiveDefaultTheme.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Matches terminal colors to the light or dark appearance when no Ghostty theme or colors are set." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Passt die Terminalfarben an das helle oder dunkle Erscheinungsbild an, wenn in Ghostty kein Theme und keine Farben festgelegt sind." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Si aucun thème ni aucune couleur Ghostty n’est défini, les couleurs du terminal suivent l’apparence claire ou sombre." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "عندما لا تكون هناك سمة أو ألوان محددة في Ghostty، تتوافق ألوان الطرفية مع المظهر الفاتح أو الداكن." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Si no hay ningún tema ni colores de Ghostty definidos, los colores de la terminal siguen la apariencia clara u oscura." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "未設定 Ghostty 主題或顏色時,終端機顏色會配合淺色或深色外觀。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "未设置 Ghostty 主题或颜色时,终端颜色会随浅色或深色外观变化。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Ghostty 테마나 색상이 설정되어 있지 않으면 터미널 색상을 라이트 또는 다크 모드에 맞춥니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Ghostty のテーマや色が設定されていない場合、ターミナルの色をライトまたはダークの外観に合わせます。" - } - } - } - }, - "settings.terminal.agentAutoResume.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Reopening cmux resumes agent sessions automatically." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Beim erneuten Öffnen von cmux werden Agenten-Sitzungen automatisch fortgesetzt." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les sessions d’agent reprennent automatiquement à la réouverture de cmux." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تُستأنف جلسات الوكلاء تلقائيًا عند إعادة فتح cmux." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Las sesiones de agentes se reanudan automáticamente al volver a abrir cmux." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "重新開啟 cmux 時,自動繼續先前的代理工作階段。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "重新打开 cmux 时,自动恢复之前的代理会话。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "cmux를 다시 열면 에이전트 세션이 자동으로 재개됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "cmux を開き直すと、エージェントのセッションが自動的に再開されます。" - } - } - } - }, - "settings.terminal.agentHibernation.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Hibernates idle background agent terminals above the live terminal limit. Even when this is off, cmux may hibernate them under critical memory pressure." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Versetzt inaktive Agenten-Terminals im Hintergrund in den Ruhezustand, sobald das Limit für aktive Terminals überschritten ist. Auch wenn diese Option deaktiviert ist, kann cmux sie bei kritischer Speicherauslastung in den Ruhezustand versetzen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Met en hibernation les terminaux d’agent inactifs en arrière-plan au-delà de la limite de terminaux actifs. Même si cette option est désactivée, cmux peut les mettre en hibernation en cas de pression mémoire critique." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يُدخل طرفيات الوكلاء الخاملة في الخلفية في السبات عند تجاوز حد الطرفيات النشطة. وحتى عند إيقاف هذا الخيار، قد يُدخلها cmux في السبات عند ضغط الذاكرة الحرج." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Pone en hibernación las terminales de agentes inactivas en segundo plano que superan el límite de terminales activas. Aunque esta opción esté desactivada, cmux puede ponerlas en hibernación si la presión de memoria es crítica." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "作用中終端機超過上限時,閒置的背景代理終端機會進入休眠。即使關閉此選項,cmux 仍可能在記憶體壓力達到嚴重程度時讓它們休眠。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "活动终端超过上限时,空闲的后台代理终端会进入休眠。即使关闭此选项,cmux 仍可能在内存压力达到严重程度时让它们休眠。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "활성 터미널 수가 한도를 넘으면 백그라운드에서 유휴 상태인 에이전트 터미널을 최대 절전 모드로 전환합니다. 이 옵션을 꺼도 메모리 압박이 심각하면 cmux가 해당 터미널을 최대 절전 모드로 전환할 수 있습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "実行中のターミナル数が上限を超えると、アイドル状態のバックグラウンドエージェントのターミナルを休止させます。この設定がオフでも、メモリ逼迫が深刻な場合は cmux がこれらを休止させることがあります。" - } - } - } - }, - "settings.terminal.copyOnSelect.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Selecting text in a terminal copies it to the clipboard." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Im Terminal ausgewählter Text wird in die Zwischenablage kopiert." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Le texte sélectionné dans un terminal est copié dans le presse-papiers." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يُنسخ النص المحدد في الطرفية إلى الحافظة." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "El texto seleccionado en una terminal se copia al portapapeles." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在終端機中選取文字時,會將文字複製到剪貼簿。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在终端中选择文本时,会将文本复制到剪贴板。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "터미널에서 텍스트를 선택하면 클립보드에 복사됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ターミナルでテキストを選択すると、クリップボードにコピーされます。" - } - } - } - }, - "settings.terminal.reflowHardWrapOnCopy.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Copying text also joins line breaks a program printed at the full terminal width and drops a short continuation indent. Soft-wrapped lines always copy as one line." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Beim Kopieren werden auch Zeilenumbrüche zusammengefügt, die ein Programm bei voller Terminalbreite ausgegeben hat, und ein kurzer Fortsetzungseinzug wird entfernt. Weich umbrochene Zeilen werden immer als eine Zeile kopiert." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Lors de la copie, les sauts de ligne qu’un programme a insérés à pleine largeur du terminal sont aussi supprimés, ainsi qu’un court retrait de continuation. Les lignes à retour automatique sont toujours copiées sur une seule ligne." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "عند النسخ، تُدمج أيضًا فواصل الأسطر التي طبعها برنامج عند العرض الكامل للطرفية، وتُحذف مسافة البادئة القصيرة للسطر التالي. أما الأسطر الملتفّة تلقائيًا فتُنسخ دائمًا كسطر واحد." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Al copiar, también se unen los saltos de línea que un programa imprimió al ancho completo de la terminal y se quita una sangría de continuación corta. Las líneas con ajuste automático siempre se copian como una sola línea." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "複製文字時,也會合併程式在終端機滿寬處輸出的換行,並移除較短的續行縮排。自動換行的行一律會複製為一行。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "复制文本时,也会合并程序在终端满宽处输出的换行,并移除较短的续行缩进。自动换行的行始终会复制为一行。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "텍스트를 복사할 때 프로그램이 터미널 전체 너비에서 넣은 줄바꿈도 합치고 짧은 연속 들여쓰기를 제거합니다. 자동 줄바꿈된 줄은 항상 한 줄로 복사됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テキストをコピーするとき、プログラムがターミナルの幅いっぱいで出力した改行もつなげ、短い継続インデントを取り除きます。ソフトラップされた行は常に 1 行としてコピーされます。" - } - } - } - }, - "settings.terminal.memoryGuardrail.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Warns when the processes in one pane use too much memory." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Warnt, wenn die Prozesse in einem Teilfenster zu viel Speicher verbrauchen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Avertit lorsque les processus d’un volet utilisent trop de mémoire." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "ينبّه عندما تستهلك العمليات في جزء واحد ذاكرة أكثر من اللازم." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Avisa cuando los procesos de un panel usan demasiada memoria." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "單一窗格中的處理程序使用過多記憶體時發出警告。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "某个窗格中的进程占用过多内存时发出警告。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "한 분할 창의 프로세스가 메모리를 너무 많이 사용하면 경고합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "1 つのペインのプロセスがメモリを使いすぎると警告します。" - } - } - } - }, - "settings.terminal.rendererRealization.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Frees graphics memory from terminals that are out of view. Their processes keep running." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Gibt den Grafikspeicher nicht sichtbarer Terminals frei. Ihre Prozesse laufen weiter." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Libère la mémoire graphique des terminaux hors de vue. Leurs processus continuent de s’exécuter." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يحرر ذاكرة الرسومات للطرفيات غير الظاهرة، مع استمرار تشغيل عملياتها." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Libera la memoria gráfica de las terminales fuera de la vista. Sus procesos siguen ejecutándose." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "釋放不在畫面上的終端機所使用的圖形記憶體,其處理程序仍會繼續執行。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "释放不在屏幕上的终端所占用的图形内存,其进程仍会继续运行。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "화면에 보이지 않는 터미널의 그래픽 메모리를 해제합니다. 해당 프로세스는 계속 실행됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "表示されていないターミナルのグラフィックスメモリを解放します。プロセスは動作し続けます。" - } - } - } - }, - "settings.terminal.scrollBar.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows a scroll bar in terminals, except in full-screen apps." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt in Terminals eine Bildlaufleiste an, außer in Vollbild-Apps." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche une barre de défilement dans les terminaux, sauf dans les apps en plein écran." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض شريط تمرير في الطرفيات، إلا في التطبيقات بملء الشاشة." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra una barra de desplazamiento en las terminales, excepto en las apps a pantalla completa." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在終端機中顯示捲軸(全螢幕 App 除外)。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在终端中显示滚动条(全屏 App 除外)。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "터미널에 스크롤 바를 표시합니다(전체 화면 앱 제외)." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ターミナルにスクロールバーを表示します(フルスクリーンアプリを除く)。" - } - } - } - }, - "settings.terminal.sessionContentWidth.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Wraps terminal and agent chat content at this width. Narrow panes still use their full width." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Terminal- und Agenten-Chat-Inhalte werden bei dieser Breite umbrochen. Schmalere Teilfenster nutzen weiterhin ihre volle Breite." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Le contenu du terminal et du chat de l’agent revient à la ligne à cette largeur. Les volets plus étroits conservent toute leur largeur." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يلتف محتوى الطرفية ودردشة الوكيل عند هذا العرض. أما الأجزاء الأضيق فتستخدم عرضها الكامل." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "El contenido de la terminal y del chat de agentes se ajusta a este ancho. Los paneles más estrechos siguen usando todo su ancho." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "終端機和代理對話的內容會在此寬度換行。較窄的窗格仍使用完整寬度。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "终端和代理对话的内容会在此宽度处换行。较窄的窗格仍使用全部宽度。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "터미널과 에이전트 채팅 내용을 이 너비에서 줄바꿈합니다. 이보다 좁은 분할 창에서는 전체 너비를 사용합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ターミナルとエージェントチャットの内容をこの幅で折り返します。これより狭いペインでは、ペインの幅いっぱいに表示します。" - } - } - } - }, - "settings.terminal.textEditingGestures.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Pressing Command or Option with an arrow key or Delete moves or deletes by line or word. Full-screen terminal apps receive the rewritten keys too, so turn this off for apps that need the original keys." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Mit der Befehls- oder Wahltaste und einer Pfeiltaste oder der Löschtaste bewegen Sie die Einfügemarke bzw. löschen Text zeilen- oder wortweise. Auch Terminal-Apps im Vollbildmodus erhalten die umgeschriebenen Tasten. Deaktivieren Sie diese Option für Apps, die die ursprünglichen Tasten benötigen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Commande ou Option associée à une touche fléchée ou à Supprimer déplace le point d’insertion ou supprime du texte par ligne ou par mot. Les apps de terminal en plein écran reçoivent aussi les touches réécrites : désactivez cette option pour les apps qui ont besoin des touches d’origine." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يؤدي الضغط على Command أو Option مع مفتاح سهم أو مفتاح الحذف إلى التنقل أو الحذف سطرًا سطرًا أو كلمةً كلمة. وتتلقى تطبيقات الطرفية بملء الشاشة أيضًا المفاتيح المعاد كتابتها، لذا أوقف هذا الخيار للتطبيقات التي تحتاج إلى المفاتيح الأصلية." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Comando u Opción junto con una tecla de flecha o Eliminar mueve el punto de inserción o borra por líneas o palabras. Las apps de terminal a pantalla completa también reciben las teclas reescritas, así que desactiva esta opción para las apps que necesitan las teclas originales." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "按住 Command 或 Option 鍵再按方向鍵或 Delete 鍵,可按行或字詞移動或刪除。全螢幕終端機 App 也會收到改寫後的按鍵,因此若 App 需要原始按鍵,請關閉此選項。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "按住 Command 或 Option 键再按箭头键或 Delete 键,可按行或按词移动或删除。全屏终端 App 也会收到改写后的按键,因此如果 App 需要原始按键,请关闭此选项。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Command 또는 Option 키를 누른 채 화살표 키나 Delete 키를 누르면 줄 또는 단어 단위로 이동하거나 삭제합니다. 전체 화면 터미널 앱에도 변환된 키가 전달되므로, 원래 키가 필요한 앱에서는 이 옵션을 끄세요." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Command キーまたは Option キーを押しながら矢印キーや Delete キーを押すと、行単位または単語単位で移動・削除します。フルスクリーンのターミナルアプリにも書き換えたキーが送られるため、元のキーが必要なアプリではこの設定をオフにしてください。" - } - } - } - }, - "settings.textBox.focusOnNewTerminals.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Opening a terminal tab, split, or workspace puts keyboard focus in the TextBox." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wenn ein Terminal-Tab, eine Teilung oder ein Arbeitsbereich geöffnet wird, liegt der Tastaturfokus in der TextBox." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "À l’ouverture d’un onglet, d’une division ou d’un espace de travail de terminal, le focus du clavier est placé dans la TextBox." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "عند فتح علامة تبويب طرفية أو تقسيم أو مساحة عمل، ينتقل تركيز لوحة المفاتيح إلى TextBox." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Al abrir una pestaña de terminal, una división o un espacio de trabajo, el enfoque del teclado se sitúa en el TextBox." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "開啟終端機標籤頁、分割或工作區時,將鍵盤焦點移到 TextBox。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "打开终端标签页、分屏或工作区时,将键盘焦点移到 TextBox。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "터미널 탭, 분할 또는 작업 공간을 열면 키보드 포커스가 TextBox로 이동합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ターミナルタブ、分割、またはワークスペースを開くと、キーボードフォーカスが TextBox に移動します。" - } - } - } - }, - "settings.textBox.showOnNewTerminals.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Opening a terminal tab, split, or workspace shows the TextBox." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Beim Öffnen eines Terminal-Tabs, einer Teilung oder eines Arbeitsbereichs erscheint die TextBox." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "À l’ouverture d’un onglet, d’une division ou d’un espace de travail de terminal, la TextBox s’affiche." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "عند فتح علامة تبويب طرفية أو تقسيم أو مساحة عمل، يظهر TextBox." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Al abrir una pestaña de terminal, una división o un espacio de trabajo, se muestra el TextBox." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "開啟終端機標籤頁、分割或工作區時顯示 TextBox。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "打开终端标签页、分屏或工作区时显示 TextBox。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "터미널 탭, 분할 또는 작업 공간을 열면 TextBox가 표시됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ターミナルタブ、分割、またはワークスペースを開くと、TextBox が表示されます。" - } - } - } - }, - "settings.betaFeatures.predictedEcho.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows typed characters right away on slow remote connections. They stay underlined until the remote host confirms them. Password prompts and full-screen apps are excluded." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Getippte Zeichen erscheinen bei langsamen Remoteverbindungen sofort. Sie bleiben unterstrichen, bis der Remote-Host sie bestätigt. Ausgenommen sind Passwortabfragen und Vollbild-Apps." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les caractères saisis s’affichent immédiatement sur les connexions distantes lentes. Ils restent soulignés jusqu’à ce que l’hôte distant les confirme. Cela ne s’applique ni aux invites de mot de passe ni aux apps en plein écran." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "تظهر الأحرف المكتوبة فورًا في الاتصالات البعيدة البطيئة، وتبقى مسطّرة حتى يؤكدها المضيف البعيد. ولا ينطبق ذلك على مطالبات كلمة المرور والتطبيقات بملء الشاشة." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Los caracteres escritos aparecen al instante en conexiones remotas lentas y permanecen subrayados hasta que el host remoto los confirma. No se aplica a solicitudes de contraseña ni a apps a pantalla completa." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "遠端連線較慢時,輸入的字元會立即顯示並加上底線,直到遠端主機確認為止。密碼提示和全螢幕 App 不適用此功能。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "远程连接较慢时,输入的字符会立即显示并带有下划线,直到远程主机确认为止。密码提示和全屏 App 不适用此功能。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "원격 연결이 느릴 때 입력한 문자를 바로 표시하고, 원격 호스트가 확인할 때까지 밑줄로 표시합니다. 비밀번호 프롬프트와 전체 화면 앱에는 적용되지 않습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リモート接続が遅いとき、入力した文字をすぐに表示し、リモートホストが確認するまで下線を付けます。パスワードの入力やフルスクリーンアプリには適用されません。" - } - } - } - }, - "settings.app.equalizeSplitsOnCreate.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Splitting a pane makes the panes in that direction equal in size." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Wird ein Teilfenster geteilt, werden alle Teilfenster in dieser Richtung gleich groß." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Lorsqu’un volet est divisé, les volets dans cette direction prennent la même taille." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "عند تقسيم جزء، تصبح الأجزاء في ذلك الاتجاه متساوية الحجم." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Al dividir un panel, los paneles en esa dirección se ajustan al mismo tamaño." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "分割窗格時,同一方向的窗格會調整為相同大小。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "拆分窗格时,同一方向的窗格会调整为相同大小。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "창을 분할하면 같은 방향의 분할 창이 모두 같은 크기가 됩니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ペインを分割すると、その方向のペインが同じサイズになります。" - } - } - } - }, - "settings.terminal.showPasswordInputIndicator.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows a lock badge in the terminal corner while a program such as sudo or ssh reads a password with echo off." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt in der Terminalecke ein Schloss-Symbol an, während ein Programm wie sudo oder ssh ein Passwort ohne Echo einliest." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche un badge de cadenas dans le coin du terminal pendant qu'un programme comme sudo ou ssh lit un mot de passe sans écho." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض شارة قفل في زاوية الطرفية أثناء قراءة برنامج مثل sudo أو ssh لكلمة مرور مع إيقاف الصدى." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra una insignia de candado en la esquina del terminal mientras un programa como sudo o ssh lee una contraseña sin eco." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "當 sudo 或 ssh 等程式在關閉回顯的情況下讀取密碼時,在終端機角落顯示鎖頭標記。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "当 sudo 或 ssh 等程序在关闭回显的情况下读取密码时,在终端角落显示锁形标记。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "sudo나 ssh 같은 프로그램이 에코를 끈 상태로 비밀번호를 읽는 동안 터미널 모서리에 자물쇠 배지를 표시합니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "sudo や ssh などのプログラムがエコーをオフにしてパスワードを読み取っている間、ターミナルの隅に鍵のバッジを表示します。" - } - } - } - }, - "settings.terminal.showPasswordInputDots.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Shows one dot in the badge per typed character. cmux keeps only a count, never the characters." - } - }, - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt im Symbol einen Punkt pro eingegebenem Zeichen. cmux speichert nur die Anzahl, niemals die Zeichen." - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche dans le badge un point par caractère saisi. cmux ne conserve qu'un compteur, jamais les caractères." - } - }, - "ar": { - "stringUnit": { - "state": "translated", - "value": "يعرض في الشارة نقطة واحدة لكل حرف مكتوب. يحتفظ cmux بالعدد فقط، ولا يحتفظ بالأحرف أبدًا." - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Muestra en la insignia un punto por cada carácter escrito. cmux solo guarda un recuento, nunca los caracteres." - } - }, - "zh-Hant": { - "stringUnit": { - "state": "translated", - "value": "在標記中為每個已輸入的字元顯示一個圓點。cmux 只保留數量,絕不保留字元本身。" - } - }, - "zh-Hans": { - "stringUnit": { - "state": "translated", - "value": "在标记中为每个已输入的字符显示一个圆点。cmux 只保留数量,绝不保留字符本身。" - } - }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "배지에 입력한 문자마다 점을 하나씩 표시합니다. cmux는 개수만 유지하며 문자는 절대 보관하지 않습니다." - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "入力した文字ごとにバッジにドットを 1 つ表示します。cmux が保持するのは数だけで、文字そのものは保持しません。" + "value": "失敗: %@" } } }