{
    "agentStatus": {
        "moreAgents": "他 {count} 件のエージェント",
        "overflowTrigger": "他のエージェント"
    },
    "toc": {
        "title": "目次",
        "show": "目次を表示",
        "hide": "目次を非表示",
        "empty": "見出しなし"
    },
    "composer": {
        "placeholder": "メッセージを入力…",
        "commandsHint": "コマンド",
        "newlineHint": "改行",
        "removeAttachment": "添付を削除",
        "showSlashCommands": "スラッシュコマンドを表示",
        "attachImage": "画像を添付",
        "sendMessage": "メッセージを送信",
        "resizeHandle": "入力欄の高さを変更します。上下の矢印キーで調整し、ダブルクリックで自動の高さに戻します。"
    },
    "interrupt": {
        "stopProcessing": "処理を中断"
    },
    "history": {
        "title": "メッセージ履歴",
        "regionLabel": "メッセージ履歴",
        "loading": "メッセージを読み込み中",
        "empty": "メッセージはまだありません",
        "show": "表示件数",
        "displayLimit": "履歴の表示件数",
        "showArchived": "アーカイブを表示",
        "showUserOnly": "ユーザーのメッセージのみ表示",
        "showAllMessages": "すべてのメッセージを表示",
        "openSearch": "検索を開く",
        "closeSearch": "検索を閉じる",
        "copied": "クリップボードにコピーしました",
        "copyFailed": "コピーに失敗しました",
        "search": {
            "regionLabel": "履歴内テキスト検索",
            "placeholder": "検索...",
            "keywordLabel": "検索キーワード",
            "prev": "前の結果 (prev)",
            "next": "次の結果 (next)",
            "close": "検索を閉じる (close)",
            "countAtMax": "{current}/{max}以上"
        }
    },
    "conversation": {
        "waitingForResponse": "レスポンス待ち...",
        "you": "あなた",
        "assistant": "アシスタント",
        "sending": "送信中…",
        "failedToSend": "送信に失敗しました",
        "retrySending": "メッセージを再送信",
        "discard": "破棄",
        "discardMessage": "メッセージを破棄",
        "insertToMessage": "メッセージ欄に挿入",
        "copy": "コピー",
        "copyMessage": "メッセージをコピー",
        "collapse": "折りたたむ",
        "expand": "展開",
        "collapseMessage": "メッセージを折りたたむ",
        "expandMessage": "メッセージを展開",
        "systemMessage": "システムメッセージ",
        "systemMessageLabel": "システムメッセージ",
        "openFile": "ファイルを開く: {path}",
        "conversationLabel": "会話: {preview}",
        "filePathMissing": "このパスは worktree にありません"
    },
    "slashCommands": {
        "title": "コマンド",
        "searchPlaceholder": "コマンドを検索...",
        "enterCustomCommand": "カスタムコマンドを入力...",
        "selectHint": "選択",
        "closeHint": "閉じる",
        "empty": "利用可能なコマンドがありません",
        "catalogStale": {
            "hint": "お使いのCLIがこの一覧より新しい可能性があります。表示されないコマンドは ~/.commandmate/slash-commands/ で追加できます。"
        },
        "sourceBadge": {
            "userCatalog": "カスタム"
        },
        "descriptions": {
            "clear": "会話履歴をクリア",
            "compact": "コンテキストを圧縮してトークン使用量を削減",
            "resume": "前回の会話を再開",
            "rewind": "会話を以前の状態に巻き戻す",
            "config": "設定を開く",
            "model": "AI モデルを切り替え",
            "permissions": "ツールの権限を表示・更新",
            "status": "セッションの状態を確認",
            "context": "コンテキストウィンドウの使用量を表示",
            "review": "コードの変更をレビュー",
            "help": "利用可能なすべてのコマンドを表示",
            "doctor": "インストール状態を診断",
            "export": "会話履歴をエクスポート",
            "focus": "フォーカスモードを切り替え",
            "effort": "モデルの思考量を調整（high/medium/low）",
            "fast": "高速応答モードに切り替え",
            "loop": "セッションを開いたままプロンプトを繰り返し実行",
            "add-dir": "セッション中にファイルアクセス用の作業ディレクトリを追加",
            "terminal-setup": "Shift+Enter などのターミナルキーバインドを設定",
            "statusline": "ステータスラインの表示を設定",
            "usage": "セッションのコスト・プラン使用量・アクティビティ統計を表示",
            "tasks": "バックグラウンドタスクを表示・管理",
            "memory": {
                "claude": "CLAUDE.md メモリファイルを編集し auto-memory を管理",
                "copilot": "メモリの状態表示と、セッション間メモリの有効・無効切り替え",
                "command-code": "Command Code のメモリを管理"
            },
            "new": "新しい会話を開始",
            "logout": {
                "codex": "Codex からサインアウト",
                "claude": "Anthropic アカウントからサインアウト",
                "copilot": "現在の OAuth ログインセッションからログアウト",
                "command-code": "Command Code またはプロバイダーからログアウト"
            },
            "quit": "Codex CLI を終了",
            "diff": "Git の差分を表示（未追跡ファイルを含む）",
            "mention": "次のやり取りにファイル/フォルダを添付",
            "mcp": "MCP サーバーと利用可能なツールを管理",
            "init": {
                "codex": "カレントディレクトリに AGENTS.md テンプレートを生成",
                "claude": "リポジトリ向けの CLAUDE.md ガイドを生成",
                "copilot": "このリポジトリ向けの Copilot 指示ファイルを初期化",
                "opencode": "AGENTS.md のガイド付きセットアップを実行",
                "command-code": "このプロジェクト向けの AGENTS.md を生成"
            },
            "feedback": {
                "codex": "Codex チームにフィードバックを送信",
                "claude": "Claude Code についてのフィードバックを送信",
                "copilot": "CLI についてのフィードバックを送信",
                "command-code": "GitHub にバグ報告・フィードバックを送信"
            },
            "plan": "プランモードを切り替え",
            "goal": "現在のセッションの目標を設定",
            "agent": {
                "copilot": "エージェントを一覧から選択"
            },
            "subagents": "サブエージェントを管理",
            "fork": "現在のセッションをフォーク",
            "memories": "Codex のメモリを管理",
            "skills": {
                "codex": "Codex のスキルを管理",
                "claude": "Claude Code のスキルを管理",
                "copilot": "機能を拡張するスキルを管理",
                "opencode": "利用可能なスキルを一覧・実行",
                "command-code": "エージェントスキルを一覧・表示"
            },
            "hooks": "フック設定を確認・管理",
            "sessions": "会話履歴を閲覧",
            "connect": "プロバイダーを接続",
            "exit": {
                "opencode": "OpenCode TUI を終了",
                "claude": "CLI を終了",
                "codex": "CLI を終了",
                "copilot": "CLI を終了",
                "command-code": "Command Code を終了"
            },
            "models": "AI モデルを切り替え",
            "agents": {
                "opencode": "利用可能なエージェントを一覧・管理",
                "claude": "サブエージェントの作成・管理を Claude に依頼するか .claude/agents/ を直接編集するよう促す案内を表示",
                "codex": "稼働中のすべてのエージェントセッションを一覧・切り替え",
                "command-code": "エージェント構成を管理"
            },
            "themes": "TUI のテーマを変更",
            "editor": "長文メッセージ用のエディタを開く",
            "advisor": "アドバイザーツールの有効・無効を切り替え（要所で第 2 のモデルに助言を求める）",
            "autocompact": "自動コンパクトの閾値を設定（コンテキストがどれだけ埋まったら自動圧縮するか）",
            "autofix-pr": "現在のブランチの PR を監視し、CI 失敗やレビュー指摘に応じて修正を push する web セッションを起動",
            "background": "現在のセッションをバックグラウンドエージェントに切り離してターミナルを解放",
            "batch": "コードベース全体の大規模変更を並列で実行",
            "branch": "この時点で会話を分岐し、現在の流れを失わずに別方針を試す",
            "btw": "一時的なフォークで、会話に残さず短い質問をする",
            "bug": "バグを報告、または会話を共有",
            "cd": {
                "claude": "このセッションの作業ディレクトリを変更",
                "codex": "現在の作業ディレクトリを変更"
            },
            "chrome": "Claude in Chrome の設定",
            "claude-api": "プロジェクトの言語向けの Claude API リファレンスと Managed Agents リファレンスを読み込み",
            "code-review": "現在の差分をバグと整理観点でレビュー",
            "color": "現在のセッションのプロンプトバーの色を設定",
            "copy": "直近の応答をクリップボードにコピー",
            "dataviz": "チャート・グラフ・ダッシュボードの設計ガイダンス",
            "debug": {
                "claude": "デバッグログを有効化し、セッションのデバッグログを読んで問題を切り分け",
                "opencode": "デバッグ情報を表示"
            },
            "deep-research": "質問に対して web 検索を展開し、出典を突き合わせて引用付きレポートを作成",
            "design-login": "claude.ai アカウントで /design-sync のデザインシステムアクセスを認可",
            "design-sync": "リポジトリの React デザインシステムを Claude Design にアップロードし、実際のコンポーネントを使わせる",
            "desktop": "現在のセッションを Claude Code デスクトップアプリで継続",
            "fewer-permission-prompts": "履歴から読み取り専用の Bash / MCP 呼び出しを洗い出し、許可リストを .claude/settings.json に追加して権限プロンプトを削減",
            "heapdump": "ヒープスナップショットとメモリ内訳を書き出し（メモリ使用量の診断用）",
            "ide": "IDE 連携を管理（状態表示と、現在の選択範囲・開いているファイル等の取り込み）",
            "insights": "セッションを分析し、対象領域・対話パターン・摩擦点のレポートを生成",
            "install-github-app": "リポジトリに Claude GitHub App を導入（GitHub Actions の設定も任意で実施）",
            "install-slack-app": "Claude Slack アプリを導入",
            "keybindings": "キーボードショートカットの設定ファイルを開く",
            "login": {
                "claude": "Anthropic アカウントにサインイン",
                "copilot": "Copilot にログイン",
                "command-code": "Command Code またはプロバイダーにログイン"
            },
            "mobile": "Claude モバイルアプリのダウンロード用 QR コードを表示",
            "passes": "Claude Code の 1 週間無料パスを友人に共有",
            "plugin": {
                "claude": "Claude Code のプラグインを管理",
                "copilot": "プラグインとプラグインマーケットプレイスを管理"
            },
            "powerup": "対話型レッスンとデモで Claude Code の機能を学ぶ",
            "privacy-settings": "プライバシー設定を確認・更新",
            "radio": "Claude FM の lo-fi ラジオをブラウザで開く",
            "recap": {
                "claude": "現在のセッションの 1 行要約を生成",
                "codex": "現在の会話をいますぐ要約"
            },
            "release-notes": "変更履歴をバージョン選択つきで表示",
            "reload-plugins": "再起動せずに有効なプラグインを再読み込み",
            "reload-skills": "スキル・コマンドのディレクトリを再走査し、再起動せずに反映",
            "remote-control": "このセッションを claude.ai のリモートコントロール対象にする",
            "remote-env": "クラウドエージェントの既定環境を選択",
            "rename": "現在のセッション（スレッド）の名前を変更",
            "run": "プロジェクトのアプリを起動・操作し、テストだけでなく実際の動作で変更を確認",
            "run-skill-generator": "/run と /verify がアプリをクリーンな環境で起動・操作できるよう、プロジェクト専用スキルを生成",
            "sandbox": "サンドボックスモードを切り替え",
            "scroll-speed": "マウスホイールのスクロール速度を対話的に調整",
            "security-review": "現在のブランチの変更をセキュリティ脆弱性の観点で分析",
            "setup-bedrock": "Amazon Bedrock の認証・リージョン・モデル指定をウィザードで設定",
            "setup-vertex": "Google Cloud の認証・プロジェクト・リージョン・モデル指定をウィザードで設定",
            "simplify": "変更されたコードを整理観点でレビューし、修正を適用",
            "stickers": "Claude Code のステッカーを注文",
            "stop": "バックグラウンドのセッション・ターミナルを停止",
            "subtask": "会話全体を引き継ぐバックグラウンドのサブエージェントを起動（作業を続けながら並行実行）",
            "team-onboarding": "利用履歴からチーム向けオンボーディングガイドを生成",
            "teleport": "web の Claude Code セッションをこのターミナルに引き込み（ブランチと会話を取得）",
            "theme": "配色・シンタックスハイライトのテーマを選択",
            "tui": "端末 UI のレンダラーを設定し、会話を保ったまま再起動",
            "ultrareview": "クラウドサンドボックスでマルチエージェントの詳細コードレビューを実行",
            "upgrade": "上位プランへの切り替えページをブラウザで開く",
            "usage-credits": "使用クレジットを設定、または上限到達時に管理者へ申請",
            "verify": "ビルド・実行・観察によって、テストや型検査に頼らず変更の動作を確認",
            "voice": "音声入力を切り替え、または特定モードで有効化",
            "web-setup": "ローカルの gh CLI 認証を使って GitHub アカウントを Claude Code on the web に接続",
            "workflows": "実行中・完了済みワークフローの進捗ビューを開く（監視・一時停止・再開・保存）",
            "keymap": "TUI のショートカットを再割り当て",
            "vim": "コンポーザーの Vim モードを切り替え",
            "setup-default-sandbox": "昇格エージェント用のサンドボックスを設定",
            "sandbox-add-read-dir": "サンドボックスに読み取り可能なディレクトリを追加: /sandbox-add-read-dir [絶対パス]",
            "experimental": "実験的機能を切り替え",
            "approve": "直近の自動レビュー拒否に対する再試行を 1 回承認",
            "import": {
                "codex": "Claude Code から設定・プロジェクト・最近のチャットを取り込み",
                "claude": "OpenAI Codex / Google Gemini CLI の設定（指示ファイル・MCP サーバー・コマンド・サブエージェント・スキル）を Claude Code に取り込み",
                "command-code": "他のコーディングエージェント（Claude Code / Codex / Cursor / pi / OpenCode / Gemini）から設定を取り込み"
            },
            "archive": "このセッションをアーカイブして終了",
            "delete": "このセッションを完全に削除して終了",
            "app": {
                "codex": "このセッションをデスクトップアプリで継続",
                "copilot": "GitHub Copilot デスクトップアプリを開く"
            },
            "side": "一時的なフォークで別の会話を開始",
            "raw": "コピーしやすい raw スクロールバックモードを切り替え",
            "debug-config": "設定の階層と要件の出所をデバッグ用に表示",
            "title": "ターミナルのタイトルに表示する項目を設定",
            "pets": "ターミナルのペットを選択・非表示",
            "apps": "アプリを管理",
            "plugins": "プラグインを閲覧",
            "rollout": "rollout ファイルのパスを表示",
            "ps": "バックグラウンドのターミナル一覧を表示",
            "personality": "Codex の応答スタイルを選択",
            "test-approval": "承認リクエストのテスト",
            "list-agents": "Claude がメッセージを送れるサブエージェントと他の Claude Code セッションを宛先名つきで一覧表示",
            "allow-all": "ツール・パス・URL の権限をすべて許可",
            "ask": "会話履歴に残さない単発の質問",
            "autopilot": "オートパイロットモードを切り替え",
            "changelog": "CLI バージョンの変更履歴を表示",
            "chronicle": "セッション履歴のツールとインサイトを表示",
            "cwd": "作業ディレクトリを変更、または現在地を表示",
            "delegate": "このセッションを GitHub に送りプルリクエストを作成",
            "diagnose": "現在のセッションログを解析",
            "env": "読み込み済みの環境情報を表示",
            "fleet": "サブエージェント並列実行のフリートモードを有効化",
            "footer": "ステータスライン項目を設定",
            "instructions": "カスタム指示ファイルの表示と有効・無効切り替え",
            "keep-alive": "システムスリープを防ぐ keep-alive モードを管理",
            "limits": "セッションの上限を表示・編集",
            "list-dirs": "許可済みディレクトリをすべて表示",
            "lsp": "言語サーバーの設定を管理",
            "pr": "現在のブランチのプルリクエストを操作",
            "refine": "粗いプロンプトをレビュー用に書き直し",
            "remote": "GitHub の Web・モバイルからのリモート操作を切り替え",
            "research": "ディープリサーチ調査を実行",
            "reset-allowed-tools": "許可済みツールの一覧をリセット",
            "restart": "現在のセッションを保ったまま CLI を再起動",
            "rubber-duck": "現在の作業への独立した批評を取得",
            "search": "会話タイムラインを検索",
            "session": "セッションを表示・管理",
            "settings": "設定 UI を開く、または個別の値を表示・設定",
            "share": "セッションを Markdown ファイルや GitHub gist として共有",
            "undo": "直前のターンを巻き戻してファイル変更を取り消し",
            "update": "CLI を最新バージョンに更新",
            "user": "GitHub ユーザー一覧を管理",
            "version": "バージョン情報を表示",
            "mcps": "MCP サーバーの有効・無効を切り替え",
            "move": "別のプロジェクトディレクトリへ移動",
            "variants": "モデルのバリアントを切り替え",
            "pwd": "現在の作業ディレクトリを表示",
            "artifacts": "自分が所有または共有されている Artifact を一覧し、セッションへの添付・ブラウザで開く・リンクのコピーを行う",
            "auto-mode-setup": "プロジェクトと最近のセッションから autoMode.environment の下書きを作成し、内容を確認してユーザー設定に保存する",
            "rate-limit-options": "claude.ai の使用量上限でリクエストがブロックされたときに作業を続ける方法を表示（上限リセット時の自動継続・使用クレジットの追加・プランのアップグレード）",
            "workflow-authoring": "動的ワークフロースクリプトを書くためのリファレンスを読み込み（スクリプト API・レジューム挙動・品質パターン・実例）",
            "clone": "現在のブランチを新しいセッションに複製して切り替え",
            "compact-mode": "セッション圧縮に使うコンパクトモードを選択",
            "design": {
                "command-code": "UI の監査・構築・合成・出荷を支援するデザインパートナー",
                "claude": "UI モックアップ・画面フロー・ランディングページ・ポスターを 1 枚のキャンバス上のアートボードとして下書きし、Claude Design のアーティファクトとして公開"
            },
            "extra": "オンデマンドクレジットを購入する請求ページを開く",
            "hotkeys": "すべてのキーボードショートカットを表示",
            "learn": "学習ハブをブラウザで開く",
            "learn-taste": "他のコーディングエージェントのセッションからコーディングの好みを学習",
            "mode": "権限モードを表示・切り替え",
            "plan-review": "このセッションの最新プランをレビュー表示で開く",
            "plans": "保存済みプランの閲覧・レビュー・注釈",
            "pr-comments": "現在のブランチの PR コメントをすべて取得",
            "reload": "CLI を再起動してこのセッションを再開し、保留中の更新を適用",
            "session-file": "現在のセッション ID とセッションファイルのパスを表示",
            "taste": "taste 学習と利用状況を管理",
            "todos": "セッションの TODO リストを管理",
            "trace": "サポート調査用に現在のトレース ID をコピー",
            "tree": "セッションツリーを辿って任意の地点へジャンプ",
            "unshare": "会話の共有を停止",
            "worktree": {
                "codex": "新しい worktree で会話を開始・再開する",
                "command-code": "git worktree の作成・一覧・切り替え"
            },
            "skill-doctor": "各スキルのコンテキスト消費量と使用頻度を表示し、オフにするスキルを特定"
        }
    },
    "session": {
        "confirmKill": "「{name}」のセッションを終了しますか？\n\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。",
        "failedToKill": "セッションの終了に失敗しました",
        "confirmEnd": "{tool} セッションを終了しますか？",
        "endWarning": "セッションを終了すると、チャット履歴がクリアされます。"
    },
    "status": {
        "waitingForResponse": "レスポンス待ち",
        "responseCompleted": "レスポンス完了"
    },
    "errors": {
        "failedToUpdateFavorite": "お気に入りの更新に失敗しました",
        "failedToUpdateStatus": "ステータスの更新に失敗しました"
    },
    "feedback": {
        "title": "フィードバック・サポート",
        "bugReport": "バグを報告",
        "featureRequest": "機能を提案",
        "question": "質問する",
        "viewIssues": "Issue一覧を見る"
    },
    "fileTree": {
        "moveTo": "移動先を選択...",
        "moveDialogTitle": "移動先を選択",
        "moveConfirm": "ここに移動",
        "moveSuccess": "移動しました",
        "timeAgo": "{time}前",
        "rootDirectory": "ルート",
        "metadata": {
            "size": "サイズ",
            "created": "作成",
            "modified": "更新",
            "settingsLabel": "メタデータ表示設定",
            "settingsTitle": "インライン表示",
            "showSize": "ファイルサイズ",
            "showCreated": "作成日時",
            "showModified": "更新日時"
        },
        "loading": "ファイルを読み込み中",
        "empty": "ファイルが見つかりません",
        "newFile": "新規ファイル",
        "newDirectory": "新規ディレクトリ",
        "noResultsMatching": "「{query}」に一致するファイルはありません",
        "noResultsContaining": "「{query}」を含むファイルはありません",
        "label": "ファイルツリー",
        "refreshing": "ファイルを更新中",
        "refreshLabel": "ファイルツリーを更新",
        "resetViewLabel": "ファイルツリーの表示をリセット",
        "loadError": "ファイルの読み込みに失敗しました",
        "loadDirectoryError": "ディレクトリの読み込みに失敗しました: {status}",
        "itemCount": "{count} 項目"
    },
    "update": {
        "available": "新しいバージョンが利用可能です",
        "latestVersion": "最新: v{version}",
        "updateCommand": "更新コマンド:",
        "viewRelease": "リリースを表示",
        "dataPreserved": "アップデートによりデータベースのデータは保持されます。",
        "version": "バージョン",
        "installTypeGlobal": "npm（グローバル）",
        "installTypeLocal": "ローカル（git pull）",
        "updateNow": "今すぐアップデート",
        "npxRestartNotice": "このサーバは npx で起動しています。アップデートは最新版を取得してサーバを再起動します。ポートなど一部の起動設定は変わることがあります。自動で再接続しない場合は「commandmate status」で稼働先を確認してください。",
        "confirmTitle": "CommandMate をアップデートしますか？",
        "confirmDescription": "CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。",
        "confirmButton": "アップデート",
        "starting": "アップデートを開始しています...",
        "updating": "アップデート中です。サーバは自動的に再起動します。",
        "updatingHint": "数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。",
        "noRestartTitle": "更新をインストールしました",
        "noRestartDescription": "このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。",
        "timeoutTitle": "アップデートに失敗した可能性があります",
        "timeoutDescription": "想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:",
        "errorTitle": "アップデートを開始できませんでした",
        "errorNotGlobal": "CommandMate はグローバルインストールではないため、自己更新できません。",
        "errorInProgress": "アップデートは既に実行中です。",
        "errorGeneric": "アップデートを開始できませんでした。手動でコマンドを実行してください:",
        "logHint": "アップデートログ: {path}",
        "buttonLabel": "Update v{version}",
        "buttonAriaLabel": "CommandMate を v{version} にアップデート",
        "buttonReleaseAriaLabel": "v{version} のリリースページを開く",
        "buttonUpdating": "更新中…",
        "statusDialogTitle": "アップデートの状態"
    },
    "terminal": {
        "historyLabel": "履歴",
        "filesLabel": "開いているファイル",
        "showHistory": "履歴を表示",
        "hideHistory": "履歴を非表示",
        "showFiles": "開いているファイルを表示",
        "hideFiles": "開いているファイルを非表示",
        "equalizeWidths": "均等幅",
        "equalizeWidthsHint": "ターミナル幅を均等にし、履歴幅を初期値に戻す",
        "addSplit": "分割を追加",
        "removeSplit": "分割を削除",
        "selectInstance": "{split} のエージェントインスタンスを選択",
        "moreActions": "その他の操作",
        "searchTerminal": "ターミナル内を検索",
        "searchOutput": "{split} のターミナル出力を検索",
        "endSession": "セッションを終了",
        "endSessionFor": "{name}のセッションを終了",
        "filesEmptyHint": "ファイルを開くと有効になります",
        "historyAllSplitsHint": "すべての split に適用",
        "maximizeSplit": "{split} を最大化",
        "maximizeFocusedSplit": "フォーカス中の split を最大化",
        "restoreSplits": "分割表示に戻す",
        "maximizeShortcutHint": "⌘ / Ctrl + Shift + Enter",
        "maximizedStatus": "{split} を最大化中",
        "loading": "読込中...",
        "sessionEnded": "セッションは終了しています。送信すると新しいセッションが起動します。"
    },
    "surfaceMode": {
        "groupLabel": "{split} の出力面",
        "groupLabelMobile": "出力面",
        "terminal": "ターミナル",
        "chat": "チャット",
        "showTerminal": "ターミナル出力を表示",
        "showChat": "会話を表示",
        "chatSurfaceLabel": "会話"
    },
    "chatSurface": {
        "liveRegionLabel": "セッションの状態",
        "generating": "応答中…",
        "thinking": "考え中…",
        "bannerLabel": "ここで操作できます",
        "reasonPager": "ページャ表示中です。下の画面を見ながら、ここでスクロールと終了ができます。",
        "reasonSelectionList": "選択リストが開いています。下の画面を見ながら、ここで項目の移動と決定ができます。",
        "reasonDismissablePanel": "閉じるだけの画面です。下の画面を見ながら、ここで Esc を押せます。",
        "reasonUnclassified": "チャットでは種類を判別できない画面です。下にそのまま表示しているので、ここでキーを送って操作できます。",
        "reasonPromptUnreadable": "応答待ちですが選択肢を読み取れませんでした。下の画面を見て、番号か y／n で答えられます。",
        "openTerminal": "ターミナルで確認",
        "jumpToLatest": "新着へ",
        "jumpToLatestGenerating": "新着へ（応答中）",
        "progressLabel": "生成中の返答",
        "progressPartial": "途中から表示しています",
        "settling": "まだ履歴に確定していません",
        "settlingLabel": "確定待ちの返答",
        "dialogCardLabel": "ターミナルの画面",
        "unreadableHint": "画面に出ている番号（1〜9）か y／n で答えてください。Enter は選択中の項目をそのまま確定します。"
    },
    "chatTranscript": {
        "regionLabel": "チャット履歴",
        "loading": "メッセージを読み込み中",
        "empty": "まだメッセージはありません",
        "emptyHint": "送信するとセッションが起動します",
        "openSearch": "この会話を検索",
        "turnBoundary": "ここから次のターン",
        "copyFull": {
            "label": "全文",
            "action": "思考とツール呼び出しを含む全文をコピー",
            "title": "全文をコピー（思考とツール呼び出しを含む）"
        },
        "thinking": {
            "summary": "思考 {count} 件",
            "expand": "思考を開く",
            "collapse": "思考を閉じる"
        },
        "jumpToTop": "会話の先頭へ",
        "toolLog": {
            "summary": "\u30c4\u30fc\u30eb\u547c\u3073\u51fa\u3057 {count} \u4ef6",
            "expand": "\u30c4\u30fc\u30eb\u547c\u3073\u51fa\u3057\u3092\u958b\u304f",
            "collapse": "\u30c4\u30fc\u30eb\u547c\u3073\u51fa\u3057\u3092\u9589\u3058\u308b"
        },
        "toolActivity": {
            "show": "\u30c4\u30fc\u30eb\u6d3b\u52d5\u3092\u958b\u304f",
            "hide": "\u30c4\u30fc\u30eb\u6d3b\u52d5\u3092\u9589\u3058\u308b"
        },
        "toolApproval": {
            "summary": "ツール承認 {count} 件",
            "expand": "ツール承認を開く",
            "collapse": "ツール承認を閉じる",
            "autoApproved": "自動承認",
            "answeredByHuman": "この画面で応答",
            "answeredInTerminal": "ターミナルで応答",
            "awaitingAnswer": "応答待ち",
            "unclassified": "判別できないダイアログ",
            "resolved": "応答済み",
            "unlabeled": "承認ダイアログ",
            "unlabeledQuestion": "質問",
            "autoAnswered": "自動回答",
            "submitConfirmation": "質問の送信確認",
            "confirmation": "送信確認: {outcome}",
            "summaryQuestions": "質問 {count} 件",
            "summaryConfirmations": "送信確認 {count} 件",
            "summaryConfirmationsOnly": "質問の送信確認 {count} 件",
            "summarySeparator": "・",
            "expandQuestions": "質問を開く",
            "collapseQuestions": "質問を閉じる",
            "expandMixed": "質問と承認を開く",
            "collapseMixed": "質問と承認を閉じる"
        },
        "previousSession": {
            "summary": "前回のセッション（{count} 件）",
            "expand": "前回のセッションを開く",
            "collapse": "前回のセッションを閉じる",
            "hint": "前回の会話は履歴で参照できます。"
        }
    },
    "directInput": {
        "toggle": "直接入力",
        "toggleAria": "キー入力をそのままターミナルへ送る",
        "notice": "直接入力中です。ここで打ったキーは、そのままエージェントのターミナルへ送られます。",
        "placeholder": "ここに入力…",
        "close": "直接入力を終了",
        "error": "送信できませんでした。セッションの状態を確認してください。"
    },
    "directInputKeyboard": {
        "menuItem": "直接入力",
        "unavailableTab": "ターミナルタブで使えます",
        "unavailableChat": "ターミナル表示で使えます（チャット表示では使えません）",
        "unavailableSession": "セッションが動いていないため使えません",
        "groupLabel": "直接入力キーボード",
        "confirmRowLabel": "送るキーの確認",
        "specialKeysLabel": "特殊キー",
        "charKeysLabel": "文字キー",
        "stagedLabel": "送る予定のキー",
        "stagedCount": "送る予定 {count} 件",
        "chipRepeat": "{key} ×{count}",
        "send": "送信 ({count})",
        "sendAria": "{count} 件をターミナルへ送信",
        "undo": "取消",
        "undoAria": "最後の 1 件を取り消す",
        "clearAll": "すべて消去",
        "close": "閉じる",
        "closeAria": "直接入力を閉じる",
        "showChars": "文字キーを表示",
        "hideChars": "文字キーを隠す",
        "full": "{max} 件までです。送信するか取り消してください",
        "sendFailed": "送れたかどうか分かりません。途中まで届いている場合があります。ターミナルの表示を確認してから、足りない分だけ送ってください",
        "acknowledge": "OK",
        "keys": {
            "esc": "Esc キー",
            "enter": "Enter キー",
            "bs": "Backspace キー（上へスワイプで Delete）",
            "home": "Home キー",
            "up": "上矢印",
            "end": "End キー",
            "pgup": "Page Up キー",
            "tab": "Tab キー",
            "ctrl": "Ctrl（タップで次の 1 キー、長押しで固定）",
            "shift": "Shift（タップで次の 1 キー、長押しで固定）",
            "left": "左矢印",
            "down": "下矢印",
            "right": "右矢印",
            "pgdn": "Page Down キー",
            "space": "スペース",
            "toSymbols": "数字・記号に切り替え",
            "toAlpha": "英字に切り替え"
        }
    },
    "unsentComposer": {
        "regionLabel": "未送信の入力",
        "label": "未送信の入力:",
        "run": "実行",
        "clear": "クリア"
    },
    "todo": {
        "addPlaceholder": "ToDoを追加…",
        "add": "追加",
        "empty": "ToDoはまだありません。",
        "loading": "読み込み中…",
        "statusTodo": "未着手",
        "statusDoing": "仕掛",
        "statusDone": "完了",
        "cycleStatus": "ステータス: {status}（クリックで変更）",
        "moveUp": "上へ移動",
        "moveDown": "下へ移動",
        "delete": "ToDoを削除",
        "edit": "ToDoを編集",
        "editTitle": "ToDoを編集",
        "contentLabel": "件名",
        "contentPlaceholder": "ToDoの件名",
        "detailLabel": "詳細",
        "detailPlaceholder": "詳細を入力（任意）…",
        "hasDetail": "詳細あり",
        "copyDetail": "詳細をコピー",
        "save": "保存",
        "cancel": "キャンセル",
        "loadError": "ToDoの読み込みに失敗しました",
        "addError": "ToDoの追加に失敗しました",
        "updateError": "ToDoの更新に失敗しました",
        "deleteError": "ToDoの削除に失敗しました",
        "reorderError": "ToDoの並び替えに失敗しました"
    },
    "htmlPreview": {
        "interactiveModeConfirm": "Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。",
        "title": "HTML プレビュー: {path}",
        "modeSource": "ソース",
        "modePreview": "プレビュー",
        "modeSplit": "分割",
        "sandboxSafe": "セーフ",
        "sandboxInteractive": "インタラクティブ"
    },
    "editor": {
        "saveFailedCloseConfirm": "保存に失敗しました。このまま閉じますか？",
        "unsavedCloseConfirm": "未保存の変更があります。閉じてもよろしいですか？",
        "loading": "読み込み中...",
        "placeholder": "入力を開始...",
        "placeholderMarkdown": "Markdown の入力を開始...",
        "saveSuccess": "ファイルを保存しました",
        "saveError": "ファイルの保存に失敗しました",
        "loadError": "ファイルの読み込みに失敗しました",
        "sessionExpired": "セッションの有効期限が切れました。再ログインしてください。",
        "autoSaveFailed": "自動保存に失敗しました。手動保存に切り替えます。",
        "unsaved": "未保存",
        "auto": "自動",
        "splitView": "分割表示",
        "editorOnly": "エディタのみ",
        "previewOnly": "プレビューのみ",
        "enterFullscreen": "全画面にする (Ctrl+Shift+F)",
        "exitFullscreen": "全画面を終了 (ESC)",
        "indent": "インデント (Tab)",
        "outdent": "アウトデント (Shift+Tab)",
        "tabMovesFocusOn": "Tab はフォーカス移動 (Ctrl+M でインデントに切替)",
        "tabMovesFocusOff": "Tab はインデント (Ctrl+M でフォーカス移動に切替)"
    },
    "actions": {
        "copyPath": "パスをコピー",
        "copyContent": "内容をコピー",
        "copyFilePath": "ファイルパスをコピー",
        "copyFileContent": "ファイルの内容をコピー",
        "search": "検索",
        "searchInFile": "ファイル内を検索",
        "edit": "編集",
        "editFile": "ファイルを編集",
        "download": "ダウンロード",
        "downloadFile": "ファイルをダウンロード",
        "close": "閉じる",
        "save": "保存",
        "saving": "保存中...",
        "saved": "保存済み",
        "prev": "前へ",
        "next": "次へ",
        "fullscreen": "全画面",
        "exitFullscreen": "全画面を終了",
        "minimize": "最小化",
        "maximize": "最大化",
        "retry": "再試行",
        "refresh": "更新",
        "resetView": "表示をリセット"
    },
    "fileSearch": {
        "placeholder": "検索...",
        "prevMatch": "前の結果",
        "nextMatch": "次の結果",
        "close": "検索を閉じる"
    },
    "fileViewer": {
        "loading": "ファイルを読み込み中...",
        "loadError": "ファイルの読み込みに失敗しました",
        "tabSource": "ソース",
        "tabPreview": "プレビュー",
        "sandboxSafe": "セーフ",
        "sandboxInteractive": "インタラクティブ",
        "slideTitle": "{name} - スライド {number}",
        "noSlides": "{fileName} にスライドが見つかりません",
        "slides": "スライド",
        "editor": "エディタ",
        "modeSwitch": "表示モードの切替",
        "modeViewer": "ビュワー",
        "modeEditor": "編集",
        "moreActions": "その他の操作"
    },
    "fileTabs": {
        "unsavedChanges": "未保存の変更",
        "closeTab": "{name} を閉じる",
        "tabActions": "タブの操作",
        "closeAll": "すべて閉じる",
        "closeOthers": "他を閉じる",
        "closeToRight": "右側を閉じる",
        "confirmCloseTitle": "未保存の変更があります",
        "confirmCloseBody": "閉じようとしているタブのうち {count} 件に未保存の変更があります。閉じると編集内容は失われます。",
        "confirmKeepUnsaved": "未保存を残して閉じる",
        "confirmDiscard": "すべて閉じる",
        "confirmCancel": "キャンセル"
    },
    "markdownPreview": {
        "loadingImage": "[画像を読み込み中...]",
        "editor": "エディタ",
        "preview": "プレビュー",
        "exitFullscreenHint": "ESC キーで全画面を終了",
        "exitFullscreenHintSwipe": "(または下にスワイプ)",
        "largeFileWarning": "大きなファイル: パフォーマンスに影響する場合があります。"
    },
    "mermaid": {
        "rendering": "図を描画中...",
        "loading": "図を読み込み中...",
        "errorTitle": "図のエラー",
        "emptyCode": "図のコードが空です",
        "renderError": "図の描画に失敗しました"
    },
    "imageViewer": {
        "loadError": "画像の読み込みに失敗しました"
    },
    "videoViewer": {
        "loadError": "動画の読み込みに失敗しました",
        "loading": "動画を読み込み中...",
        "unsupported": "お使いのブラウザは video タグに対応していません。"
    },
    "logViewer": {
        "title": "ログファイル",
        "all": "すべて ({count})",
        "toolCount": "{tool} ({count})",
        "empty": "ログファイルが見つかりません",
        "emptyFiltered": "{tool} のログファイルが見つかりません",
        "copyTitle": "サニタイズしたログをクリップボードにコピー",
        "export": "エクスポート",
        "exporting": "エクスポート中...",
        "copied": "ログをクリップボードにコピーしました (サニタイズ済み)",
        "exportError": "ログのエクスポートに失敗しました: {error}",
        "searchPlaceholder": "ログファイル内を検索...",
        "prevMatch": "前の一致 (Shift+Enter)",
        "nextMatch": "次の一致 (Enter)",
        "noMatches": "「{query}」に一致するものはありません"
    },
    "pdfPreview": {
        "title": "PDF プレビュー: {path}",
        "loadError": "PDFプレビューを読み込めませんでした。",
        "openInNewTab": "PDFを新しいタブで開く",
        "download": "ダウンロード",
        "downloadPdf": "PDF をダウンロード"
    },
    "diffViewer": {
        "badge": "DIFF",
        "close": "差分表示を閉じる"
    },
    "search": {
        "searching": "検索中...",
        "placeholder": "ファイルを検索...",
        "label": "ファイルを検索",
        "clear": "検索をクリア",
        "mode": "モード:",
        "modeName": "名前",
        "modeContent": "内容"
    },
    "tabs": {
        "ariaLabel": "モバイルナビゲーション",
        "terminal": "ターミナル",
        "history": "履歴",
        "files": "ファイル",
        "memo": "ツール",
        "info": "情報",
        "newOutput": "新しい出力があります",
        "promptWaiting": "プロンプト待機中",
        "updateAvailable": "更新があります"
    },
    "git": {
        "uncommittedChanges": "未コミットの変更",
        "askAi": "AI に質問",
        "askAiTooltip": "現在の状況を AI チャットに下書きします（自動送信はされません）",
        "advancedOperations": "高度な操作",
        "remote": "リモート",
        "paneSections": "Git ペインのセクション",
        "tabs": {
            "status": "ステータス",
            "changes": "変更",
            "history": "履歴",
            "advanced": "高度な操作"
        },
        "checkout": {
            "action": "チェックアウト",
            "ariaLabel": "ブランチをチェックアウト",
            "noBranches": "ブランチがありません",
            "checkoutBranch": "{name} をチェックアウト",
            "checkedOutElsewhere": "別のワークツリーでチェックアウト中: {path}",
            "defaultBadge": "デフォルト",
            "confirmTitlePrefix": "",
            "confirmTitleSuffix": " をチェックアウトしますか？",
            "forceLabel": "変更を破棄して強制チェックアウト — 未コミットの変更は失われます",
            "historyLossWarning": "別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります",
            "runningSessionWarning": "このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"
        },
        "branches": {
            "title": "ブランチ",
            "newButton": "+ 新規",
            "refresh": "ブランチを更新",
            "filterLocal": "ローカル",
            "filterRemote": "リモート",
            "filterAll": "すべて",
            "loading": "ブランチを読み込み中...",
            "empty": "ブランチがありません",
            "defaultBadge": "デフォルト",
            "deleteBranch": "{name} を削除",
            "delete": "削除",
            "createTitle": "ブランチを作成",
            "namePlaceholder": "ブランチ名（例: feature/123-foo）",
            "nameLabel": "新しいブランチ名",
            "baseLabel": "ベースブランチ",
            "currentHead": "（現在の HEAD）",
            "create": "作成",
            "deleteTitlePrefix": "",
            "deleteTitleSuffix": " を削除しますか？",
            "forceDeleteLabel": "強制削除（-D）— マージされていないコミットは失われます"
        },
        "changes": {
            "title": "変更",
            "refresh": "変更を更新",
            "loading": "変更を読み込み中...",
            "listHeader": "{title}（{count}）",
            "empty": "なし",
            "togglePreview": "{path} の差分プレビューを切り替え",
            "showDiff": "{path} の差分を表示",
            "diff": "差分",
            "fileAction": "{path} を{action}",
            "loadingPreview": "差分プレビューを読み込み中...",
            "previewFailed": "プレビューの読み込みに失敗しました",
            "noDiff": "差分がありません",
            "truncated": "… 省略されました — 完全な差分を開く",
            "staged": "ステージ済み",
            "unstaged": "未ステージ",
            "untracked": "未追跡",
            "stage": "ステージ",
            "unstage": "アンステージ",
            "commitMessage": "コミットメッセージ",
            "amend": "直前のコミットを修正",
            "commit": "コミット",
            "committing": "コミット中...",
            "commitAndPush": "コミット + プッシュ",
            "commitAndPushTooltip": "コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"
        },
        "history": {
            "title": "コミット履歴",
            "refresh": "コミット履歴を更新",
            "loading": "コミット履歴を読み込み中...",
            "empty": "コミットがありません",
            "viewDiffFor": "{hash} の差分を表示",
            "viewDiff": "差分を表示",
            "hideDiff": "差分を隠す",
            "loadingChangedFiles": "変更ファイルを読み込み中...",
            "noChangedFiles": "変更ファイルがありません",
            "showCommitDiff": "{path} のコミット差分を表示",
            "changedFiles": "変更ファイル",
            "diffLabel": "差分: {file}",
            "loadingDiff": "差分を読み込み中...",
            "noDiff": "差分がありません",
            "diffInFilePanel": "ファイルパネルに差分を表示中: {file}"
        },
        "currentStatus": {
            "title": "現在の状況",
            "refresh": "リモートを確認して更新（git fetch）",
            "refreshing": "リモートを確認中...",
            "loading": "Git ステータスを読み込み中...",
            "uncommitted": "未コミット",
            "aheadTooltip": "最後に fetch した時点のアップストリームより先行しているコミット数（リモートの最新状態とは異なる場合があります）",
            "behindTooltip": "最後に fetch した時点のアップストリームより遅れているコミット数（リモートの最新状態とは異なる場合があります）",
            "lastFetch": "最終 fetch: {relative}",
            "lastFetchNever": "最終 fetch: まだ実行していません",
            "lastFetchTooltip": "ahead/behind はこの時点のリモート情報との比較です。更新ボタンで再取得できます。",
            "noUpstreamBadge": "未プッシュ",
            "noUpstreamTooltip": "このブランチにはアップストリームが設定されていないため、ahead/behind を計算できません（まだ push していません）",
            "upstreamGoneBadge": "リモート削除済み",
            "upstreamGoneTooltip": "設定されたアップストリームのリモート追跡ブランチが存在しません（リモート側で削除された可能性があります）",
            "detachedBadge": "detached",
            "detachedTooltip": "HEAD がブランチを指していないため、ahead/behind を計算できません",
            "aheadBehindErrorBadge": "比較できません",
            "aheadBehindErrorTooltip": "ahead/behind の取得に失敗しました（タイムアウトなど）。更新ボタンで再試行できます。"
        },
        "danger": {
            "title": "危険な操作",
            "resetOpen": "リセット…",
            "revertOpen": "リバート…",
            "forcePushOpen": "強制プッシュ…",
            "selectCommitHint": "リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。",
            "resetTitle": "リセット",
            "resetTargetHead": "HEAD",
            "resetTargetSelectedPrefix": "選択中のコミット ",
            "resetTargetSelectedHash": "（{hash}）",
            "resetTargetNoneSelected": "（未選択）",
            "modeSoft": "soft",
            "modeMixed": "mixed",
            "modeHard": "hard",
            "resetHardWarning": "ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。",
            "runningSessionWarning": "この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。",
            "confirmPlaceholder": "確認のため \"{branch}\" と入力してください",
            "reset": "リセット",
            "revertTitle": "リバート",
            "revertBodyPrefix": "コミットをリバート ",
            "revertNoCommit": "コミットしない（ステージのまま）",
            "revert": "リバート",
            "forcePushTitle": "強制プッシュ",
            "protectedBranchWarning": "デフォルトブランチへの force push は禁止されています。",
            "forceWithLease": "--force-with-lease を使用（推奨 — リモートが更新されていた場合は拒否されます）",
            "forcePush": "強制プッシュ"
        },
        "network": {
            "quickActions": "クイック操作",
            "fetch": "フェッチ",
            "pull": "プル",
            "push": "プッシュ",
            "noUpstreamTooltip": "アップストリームがありません — プッシュ時に設定されます",
            "pushing": "プッシュ中",
            "pulling": "プル中",
            "fetching": "フェッチ中",
            "progress": "{operation}… {elapsed}秒",
            "abort": "中止",
            "conflicts": "プルで競合が発生しました: {files}。ターミナルで解決してください。",
            "authFailedGuidance": "ターミナルで一度 push/pull して認証情報を設定してください。",
            "failed": "Git のネットワーク操作に失敗しました"
        },
        "stash": {
            "titlePrefix": "スタッシュ ",
            "count": "（{count}）",
            "refresh": "スタッシュ一覧を更新",
            "messagePlaceholder": "スタッシュメッセージ（任意）",
            "includeUntracked": "未追跡ファイルを含める",
            "push": "スタッシュ",
            "loading": "スタッシュを読み込み中...",
            "empty": "スタッシュがありません",
            "apply": "適用",
            "pop": "ポップ",
            "drop": "破棄",
            "dropConfirmSuffix": " を完全に削除します。この操作は取り消せません。"
        },
        "aiPrompts": {
            "branchCreate": "{base} から {name} ブランチを作成して checkout してください。",
            "branchCreateBaseHead": "現在の HEAD",
            "branchDelete": "{name} ブランチを削除してください。",
            "branchDeleteForce": "{name} ブランチを削除してください。（マージされていないコミットがあっても -D で強制削除してください）",
            "stashCleanup": "古い stash entry をリストアップし、不要なものを削除する提案をしてください。",
            "stashCleanupCurrent": "現在の stash:",
            "stashConflict": "stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。",
            "reset": "{target} に対して {mode} reset を行いたいです。安全に実行してください。",
            "resetHard": "{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。",
            "revert": "コミット {commit} を revert してください。",
            "forcePush": "{branchRef} を force-with-lease で push したいです。事前に upstream（{upstream}）との差分を確認し、安全な場合のみ push してください。",
            "forcePushAhead": "{branchRef}（↑{ahead}） を force-with-lease で push したいです。事前に upstream（{upstream}）との差分を確認し、安全な場合のみ push してください。",
            "forcePushCurrentBranch": "現在のブランチ"
        }
    },
    "activityBar": {
        "toggleSidebar": "サイドバーを切り替え",
        "label": "アクティビティバー",
        "files": "ファイルツリー",
        "git": "Git",
        "notes": "メモ",
        "schedules": "スケジュール",
        "agent": "エージェント",
        "timer": "タイマー",
        "todo": "ToDo",
        "skills": "スキル",
        "verification": "検証",
        "env": "環境変数",
        "settings": "設定",
        "settingsMenu": {
            "settings": "設定",
            "skills": "スキル",
            "theme": "テーマ",
            "themeLight": "ライト",
            "themeDark": "ダーク",
            "themeSystem": "システム",
            "language": "言語",
            "github": "GitHub",
            "logout": "ログアウト",
            "version": "CommandMate {version}"
        }
    },
    "branchMismatch": {
        "changedFrom": "ブランチが",
        "to": "から",
        "dismiss": "アラートを閉じる"
    },
    "contextMenu": {
        "label": "ファイル操作",
        "uploadFile": "ファイルをアップロード",
        "rename": "名前を変更",
        "move": "移動",
        "delete": "削除"
    },
    "navigation": {
        "toolbarLabel": "TUI ナビゲーション",
        "caption": "ナビ",
        "quitPager": "ページャーを終了"
    },
    "promptAnswerKeys": {
        "toolbarLabel": "ダイアログへの回答キー",
        "caption": "回答"
    },
    "promptResponse": {
        "refused": "ダイアログの状態が変わったため送信できませんでした。画面を確認してください。"
    },
    "dismissPanelKeys": {
        "toolbarLabel": "この画面を閉じる",
        "close": "閉じる (Esc)",
        "closeAria": "この画面を閉じる (Esc)"
    },
    "planApproveKeys": {
        "toolbarLabel": "このプランを承認",
        "approve": "プランを承認 (Ctrl+A)",
        "approveAria": "このプランを承認して実行する (Ctrl+A)",
        "note": "承認するとプランが実行されます。やめる場合は上の Esc を押してください。"
    },
    "selectionKeys": {
        "numbersToolbarLabel": "選択肢の番号キー",
        "numbersCaption": "選択",
        "commitToolbarLabel": "選択中の項目を適用",
        "sessionOnly": "このセッションのみ",
        "sessionOnlyAria": "選択中の項目をこのセッションのみに適用 (s)",
        "setDefault": "既定に設定",
        "setDefaultAria": "選択中の項目を既定に設定 (Enter)",
        "defaultWarning": "Enter はこの選択を新規セッションの既定として保存します。既定を変えずに切り替えるなら「このセッションのみ」を使ってください。",
        "opencodeToolbarLabel": "opencode のモデルキー",
        "opencodeCaption": "モデル"
    },
    "newFileDialog": {
        "title": "新規ファイル",
        "fileNameLabel": "ファイル名",
        "placeholder": "document",
        "create": "作成"
    },
    "paneResizer": {
        "label": "ペインのサイズを変更します。{arrows}キーで調整できます。",
        "arrowsHorizontal": "左右の矢印",
        "arrowsVertical": "上下の矢印"
    },
    "desktopLayout": {
        "activityPane": "アクティビティペイン",
        "terminalPane": "ターミナルペイン"
    },
    "worktreeStatus": {
        "notSet": "未設定",
        "ready": "準備完了",
        "inProgress": "作業中",
        "inReview": "レビュー中",
        "done": "完了"
    },
    "card": {
        "main": "メイン",
        "description": "説明",
        "link": "リンク",
        "openLink": "リンクを新しいタブで開く",
        "updated": "更新 {time}"
    },
    "detail": {
        "worktree": "ワークツリー",
        "repository": "リポジトリ",
        "copyRepositoryPath": "リポジトリのパスをコピー",
        "copyWorktreePath": "ワークツリーのパスをコピー",
        "copyPath": "パスをコピー",
        "copied": "コピーしました！",
        "path": "パス",
        "status": "ステータス",
        "worktreeStatusLabel": "ワークツリーのステータス",
        "description": "説明",
        "addNotesPlaceholder": "このブランチについてのメモを追加...",
        "noDescription": "説明はまだ追加されていません",
        "link": "リンク",
        "lastUpdated": "最終更新",
        "logs": "ログ",
        "hide": "隠す",
        "show": "表示",
        "viewInfo": "ワークツリーの情報を表示",
        "info": "情報",
        "infoModalTitle": "ワークツリー情報",
        "loading": "ワークツリーを読み込み中...",
        "loadingInfo": "ワークツリー情報を読み込み中...",
        "errorLoading": "ワークツリーの読み込みに失敗しました",
        "uploadFile": "ファイルをアップロード",
        "unknownRepository": "不明",
        "loadingEditor": "エディタを読み込み中...",
        "agentInstanceSelection": "エージェントインスタンスの選択",
        "statusPill": "{label}: {status}",
        "subTabMessage": "メッセージ",
        "subTabGit": "Git",
        "statusPillWithModel": "{label}: {status} — モデル {model}",
        "statusPillWithUsage": "{base} — {usage}",
        "statusPillWithSource": "{base} — {source}"
    },
    "detailStatus": {
        "idle": "アイドル - セッションなし",
        "ready": "準備完了 - 入力待ち",
        "running": "実行中 - 処理しています",
        "waiting": "待機中 - ユーザー入力が必要です"
    },
    "agentSource": {
        "line": "イベント源: {kind}（{state}）",
        "lineBare": "イベント源: {kind}",
        "kindSse": "SSE",
        "kindHooks": "hooks",
        "kindScraper": "画面スクレイプ",
        "livenessLive": "接続中",
        "livenessStale": "停止",
        "reasonPortIdentityChanged": "ポートが別プロセスに変わりました",
        "reasonHeartbeatStale": "ハートビートが30秒以上ありません",
        "reasonNotSubscribed": "イベント購読なし",
        "reasonOther": "理由: {reason}",
        "degradedTitle": "構造化イベントが届いていません",
        "healthyTitle": "構造化イベントを受信中"
    },
    "relay": {
        "badgeOwed": "{alias} へ返信予定",
        "badgeOwedMany": "返信予定 {count} 件",
        "badgeAwaiting": "{alias} の返信待ち",
        "badgeAwaitingMany": "返信待ち {count} 件",
        "badgePrompt": "確認待ちを通知済み",
        "owedTitle": "このセッションは委任された返信を抱えています。ターン完了時に自動で届きます。",
        "awaitingTitle": "このセッションは委任した返信を待っています。届くとコンポーザーに relay メッセージとして入ります。",
        "promptTitle": "相手セッションが確認待ちで止まり、依頼元へ通知済みです。",
        "stripAwaiting": "{alias} へ委任、返信待ち",
        "stripAwaitingMany": "返信待ち {count} 件",
        "stripPrompt": "{alias} が確認待ち",
        "stripOwed": "{alias} へ返信予定: ターン完了時に届きます",
        "historyBadge": "relay",
        "historyBadgeTitle": "別のエージェントセッションから届いたメッセージです（Issue #2377 relay）。",
        "historyCount": "表示範囲に relay メッセージが {count} 件"
    },
    "agentModel": {
        "label": "モデル",
        "modelLabel": "モデル: {model}",
        "changed": "モデルが {from} から {to} に変わりました",
        "sessionRow": "モデル: {model}。タップでモデル選択を開きます。",
        "changedRecently": "変更あり",
        "changedRecentlyDetail": "モデルが {from} から {to} に変わりました。タップで閉じます。"
    },
    "agentMode": {
        "label": "モード",
        "cycleAria": "エージェントの権限モードを切り替える (shift+tab)",
        "cycleFromAria": "エージェントの権限モードを切り替える。現在は {mode}。(shift+tab)",
        "note": {
            "codexModelCoupled": "Codex はモードと連動してモデルと推論の強さも変わります。"
        },
        "noteShort": {
            "codexModelCoupled": "モデルも変わる"
        },
        "mode": {
            "default": "default",
            "manual": "manual",
            "accept-edits": "accept edits",
            "plan": "plan",
            "auto": "auto",
            "autopilot": "autopilot",
            "bypass": "permission bypass",
            "dont-ask": "don't-ask"
        }
    },
    "sessionNote": {
        "menuItem": "セッションメモ",
        "placeholder": "このセッションで何をしているか",
        "hint": "Enter で保存、Esc で取消。空にすると削除します。",
        "editLabel": "{split} のセッションメモを編集",
        "label": "メモ: {note}（{time} 更新）",
        "empty": "メモなし"
    },
    "nextAction": {
        "start": "開始",
        "sendMessage": "メッセージを送信",
        "approveReject": "承認 / 拒否",
        "replyToPrompt": "プロンプトに応答",
        "checkStalled": "停滞を確認",
        "running": "実行中..."
    },
    "awaitingInstruction": {
        "badge": "指示待ち",
        "label": "エージェントはターンを終え、次の指示を待っています"
    },
    "verification": {
        "title": "検証",
        "refresh": "再読み込み",
        "loading": "検証情報を読み込み中…",
        "loadError": "検証情報を取得できませんでした: {message}",
        "onboarding": {
            "what": "検証は、このリポジトリが `{path}` に宣言したゲートを、この worktree でそのまま実行します。",
            "how": "合否は各ゲートの exit code で決まります。`commandmate verify` / `wait --verify` と同じゲートなので、ここが緑ならコマンドラインでも緑です。",
            "loading": "宣言ゲートを読み込み中…",
            "configError": "検証設定を読み込めませんでした: {message}",
            "invalid": "`{path}` は存在しますが読み込めませんでした: {message}",
            "noConfig": {
                "body": "このリポジトリはまだ検証ゲートを宣言していません（`{path}` がありません）。実行できるゲートが 1 件もない状態です。",
                "hint": "`.github/workflows/*.yml` と `package.json` の scripts を読んで草案を書き出します。既存ファイルは決して上書きしません。CLI では `commandmate verify init` が同じ処理です。",
                "action": "CI から起案する",
                "pending": "起案中…",
                "docs": "verify.yaml の書き方（設計ドキュメント）",
                "created": "`{path}` に {count} 件のゲートを起案しました。判定に使う前に内容を確認してください。",
                "conflict": "`{path}` は既に存在します。上書きはしないので、読み直した内容を表示します。",
                "empty": "CI 定義にも npm scripts にもゲートにできるコマンドが見つかりませんでした。`{path}` を手で書いてください。",
                "error": "検証設定を起案できませんでした: {message}"
            },
            "configured": {
                "body": "`{path}` に {count} 件のゲートが宣言されています。このブランチではまだ 1 度も実行されていません。",
                "gatesHeading": "宣言ゲート",
                "builtin": "組み込みゲートも併せて走ります: {gates}",
                "builtinHint": "組み込みゲートは `.commandmate/verify.yaml` に書かなくても毎回走ります。それぞれの意味はゲート一覧の各行に表示されます。",
                "action": "検証を実行"
            },
            "running": {
                "progress": "実行中: {total} ゲート中 {done} 件が完了しました。",
                "elapsed": "経過 {elapsed}",
                "action": "今すぐ再読み込み",
                "hint": "ゲートは 1 本ずつ順に走ります。完了したゲートから下の一覧に現れます。"
            },
            "result": {
                "body": "このブランチの直近ラン #{runId} の判定は RESULT {verdict} です。",
                "action": "最新ランのゲートを表示"
            }
        },
        "contract": {
            "heading": "実行契約",
            "empty": "このブランチには契約がありません。\n`commandmate send --contract <ファイル>` か Skill `cmate-task-contract` で作成してください。",
            "scopeAllow": "scope.allow",
            "scopeDeny": "scope.deny",
            "gates": "verify.gates",
            "gatesAll": "宣言済みゲート全件",
            "autoYes": "autoYes.mode",
            "autoYesUnset": "未指定（既存の挙動を維持）",
            "file": "契約ファイル",
            "updated": "更新"
        },
        "runs": {
            "heading": "検証ラン",
            "empty": "検証ランはまだありません。\n「再検証」を押すか、`commandmate verify {worktreeId}` を実行してください。",
            "rerun": "再検証",
            "rerunPending": "開始中…",
            "rerunConflict": "検証ランが既に実行中です（run {runId}）。",
            "rerunConflictUnknown": "検証ランが既に実行中です。",
            "rerunError": "検証を開始できませんでした: {message}",
            "select": "run {runId} のゲートを表示（RESULT {verdict} — {gloss}）",
            "runLabel": "run {runId}",
            "trigger": "trigger={trigger}",
            "cliLegend": "CLI 相当の exit code: {items}",
            "cliLegendItem": "{label} = exit {code}",
            "exitCode": "CLI 相当 exit={code}",
            "cancel": "検証を中止",
            "cancelPending": "中止しています…",
            "cancelHint": "中止すると、実行中のゲートのプロセスグループに終了シグナルを送り、残りのゲートは開始しません。ランは「中止」として閉じられます。",
            "cancelGone": "このランは既に終了していました。一覧を読み直したので、最新の判定を確認してください。",
            "cancelError": "検証を中止できませんでした: {message}",
            "loadMore": "さらに {count} 件を読み込む",
            "history": {
                "open": "他のブランチを含む横断履歴を表示",
                "close": "横断履歴を閉じる",
                "hint": "このサーバが管理する全 worktree の直近の検証ランです。同じゲートが複数のブランチで落ちているなら、それは作業ではなくゲート側の問題である可能性が高いという読み方をします。",
                "loading": "横断履歴を読み込み中…",
                "empty": "対象期間に他のブランチの検証ランはありません。",
                "error": "横断履歴を取得できませんでした: {message}",
                "failingGates": "不合格ゲート: {gates}"
            },
            "partial": "部分実行: 計画されている {total} ゲートのうち {ran} 件だけが実行されました。未実行: {gates}。この判定は実行されたゲートについてのものです。",
            "cancelSettling": "中止を要求しました。ゲートに終了シグナルを送り、プロセスが終わるのを待っています（応答しない場合は 5 秒後に強制終了します）。"
        },
        "gates": {
            "heading": "ゲート — run {runId}",
            "empty": "このランにはゲートの記録がありません。",
            "loading": "ゲートを読み込み中…",
            "notFound": "その検証ランは見つかりませんでした。",
            "loadError": "検証ランを取得できませんでした: {message}",
            "exitCode": "exit={code}",
            "duration": "duration={duration}",
            "contractSource": "[contract]",
            "showLog": "ログ末尾を表示",
            "hideLog": "ログ末尾を隠す",
            "logOmitted": "… (+{count} 行省略。全文は `commandmate verify show {runId}`)",
            "noLog": "ログ出力は記録されていません。",
            "verdictHeading": "このランの判定",
            "contractSourceHint": "`[contract]` は、このブランチに送られた実行契約が指定したゲートであることを表します（`.commandmate/verify.yaml` の宣言ではありません）。",
            "builtinBadge": "組み込み",
            "builtin": {
                "workEvidence": "作業証跡ゲート（組み込み）。`options.baseRef` より先のコミット、または未コミットの変更があるかを見ます。どちらも無ければランは「未着手」になり、以降のゲートは実行されません。",
                "scope": "スコープゲート（組み込み）。変更されたファイルを実行契約の `scope.allow` / `scope.deny` と突き合わせます。契約が無いランには判定するスコープが無いため未実行になります。",
                "envClean": "環境クリーンゲート（組み込み）。タスク開始時のスナップショットと比べて、待ち受けサーバ・`mcbd-*` tmux セッション・`$HOME`・`~/.commandmate` に残留が無いかを見ます。",
                "config": "設定ゲート（組み込み）。`.commandmate/verify.yaml` を読み込めなかったことをランに記録するための擬似ゲートです。実際のゲートは 1 件も実行されていません。"
            },
            "skipHeading": "実行されなかったゲート",
            "skipReasonFor": "{gateId}: {reason}",
            "skipReason": {
                "primaryCheckout": "この worktree がサーバープロセスの作業ディレクトリそのものなので、`options.skipInPrimaryCheckout` により実行されませんでした。稼働中の画面を壊さないための保護であって、不具合ではありません。別の worktree で実行すれば走ります。",
                "workEvidence": "`work-evidence` ゲートが合格しなかったため、判定する対象が無く実行されませんでした。",
                "mutex": "同じ `mutex` を宣言した別の検証が終わらず、待ち時間の上限に達したため実行されませんでした。作業への判定ではなく資源の競合です。",
                "detachedContract": "このブランチには実行契約がありますが、このランが契約に紐づいていないためスコープを判定できませんでした。`wait --verify` で起動すると自動的に紐づきます。",
                "noContract": "このランには実行契約が紐づいていないため、判定するスコープが宣言されていません。",
                "notRequired": "実行契約が `success.requireScopeClean: false` を宣言しているため判定していません。",
                "unknown": "このゲートは実行されていません。理由はログ末尾を参照してください。",
                "cancelled": "検証が中止されたため、このゲートは判定に至っていません。作業への判定ではなく、実行を止めた結果です。"
            },
            "showFullLog": "ログ全文を開く",
            "fullLogTitle": "ログ全文 — {gateId}（run {runId}）",
            "fullLogSize": "{lines} 行",
            "fullLogStored": "サーバが保存しているのは各ゲートの末尾だけです（`options.maxLogTailBytes` で上限が決まります）。ここに出ているのがその全量で、これより前の出力はどこにも残っていません。",
            "copyLog": "ログをコピー",
            "copied": "コピーしました",
            "copyFailed": "コピーできませんでした"
        },
        "runStatus": {
            "running": "実行中",
            "passed": "合格",
            "failed": "不合格",
            "not_started": "未着手",
            "error": "判定不能",
            "cancelled": "中止"
        },
        "runStatusGloss": {
            "running": "ゲートを実行中です。判定はまだ出ていません。",
            "passed": "選択されたゲートがすべて合格しました。",
            "failed": "1 つ以上のゲートが不合格・時間切れ・異常終了しました。",
            "not_started": "作業証跡ゼロ: コミットも未コミット変更もありません。判定する対象が無いため、以降のゲートは実行されていません。",
            "error": "判定に至りませんでした。実行されなかったゲートがあるか、検証設定を読み込めませんでした。不合格とは別物です。",
            "cancelled": "検証が判定に達する前に中止されました。"
        },
        "gateStatus": {
            "running": "実行中",
            "passed": "合格",
            "failed": "不合格",
            "timeout": "時間切れ",
            "skipped": "未実行",
            "error": "異常終了"
        },
        "gateStatusGloss": {
            "running": "このゲートはまだ実行中です。",
            "passed": "コマンドが exit 0 で終了しました。",
            "failed": "コマンドが 0 以外の exit code で終了しました。",
            "timeout": "timeoutSec 以内に終わらず打ち切られました。",
            "skipped": "このゲートは実行されていません。合格ではありません。",
            "error": "ゲートを起動できず、判定に至りませんでした。"
        },
        "chip": {
            "taskReason": "タスク「{title}」: {status}",
            "resultBadge": "RESULT {verdict}",
            "runReason": "直近の検証: RESULT {verdict}（run {runId}）",
            "noRun": "検証ランはまだありません",
            "failingGates": "不合格ゲート: {gates}",
            "gatesPassed": "全 {count} ゲート合格",
            "openHint": "検証ペインを開く",
            "dash": "—",
            "unverified": "未検証",
            "noTask": "このブランチには実行契約が送られていません",
            "reasonHeading": "この判定の理由",
            "showReason": "理由を表示",
            "hideReason": "理由を隠す"
        },
        "selection": {
            "heading": "実行するゲート",
            "open": "ゲートを選ぶ",
            "close": "選択を閉じる",
            "all": "全 {count} 件を実行します（既定）",
            "partial": "{total} 件中 {selected} 件を選択中: {gates}",
            "gateLabel": "ゲート {gateId} を選ぶ",
            "runAll": "全ゲートで検証",
            "runSelected": "選んだ {count} 件で検証",
            "hint": "選んだゲートだけを実行します。`lint` の 1 行修正を確かめるために `build` や `unit` を待つ必要はありません。判定は実行したゲートについてのものだけで、選択を狭めたランはゲート表に「部分実行」と出ます。実行契約が `success.requireWorkEvidence` / `requireScopeClean` を宣言している場合、`work-evidence` と `scope` は選択に関わらず必ず実行されます（契約が宣言した判定基準は、ゲートの絞り込みでは外せません）。",
            "failedOnly": "不合格だったゲートだけ（{count} 件）",
            "failedOnlyEmpty": "表示中のランに、再実行できる不合格ゲートはありません（未実行のゲートは、もう一度実行しても同じ理由で未実行になります）。",
            "selectAll": "全ゲートに戻す"
        }
    },
    "task": {
        "status": {
            "pending": "pending（未送信）",
            "running": "running（作業中）",
            "waiting_input": "waiting_input（プロンプト待ち）",
            "verifying": "verifying（検証中）",
            "succeeded": "succeeded（合格）",
            "failed": "failed（不合格）",
            "not_started": "not_started（作業証跡ゼロ）",
            "cancelled": "cancelled（中止）"
        }
    },
    "envManager": {
        "title": "環境変数マネージャ",
        "description": "このワークツリーの環境変数ファイルを表示・編集します。値は既定で伏せられます。",
        "filePickerLabel": "環境変数ファイル",
        "viewModeLabel": "表示形式",
        "viewKeyValue": "キー / 値",
        "viewRaw": "テキスト",
        "notCreated": "未作成",
        "templateBadge": "テンプレート",
        "notCreatedHint": "{file} はまだ存在しません。キーを追加して保存すると作成されます。",
        "keyLabel": "変数名",
        "valueLabel": "{key} の値",
        "showValue": "{key} の値を表示",
        "hideValue": "{key} の値を隠す",
        "removeRow": "{key} を削除",
        "addRow": "変数を追加",
        "revealAll": "値を表示",
        "hideAll": "値を隠す",
        "reload": "ディスクから再読み込み",
        "save": "保存",
        "saved": "保存しました。",
        "loading": "環境変数ファイルを読み込み中...",
        "loadError": "環境変数ファイルを読み込めませんでした。",
        "empty": "変数はまだ定義されていません。",
        "validationFailed": "このファイルはまだ保存できません。",
        "suggestionsTitle": "テンプレートのキー",
        "suggestionsHint": ".env.example / .env.sample にあってこのファイルに無いキーです。タップで追加します。",
        "rawLabel": "環境変数ファイル（テキスト）",
        "rawMaskedLabel": "環境変数ファイル（値を伏せた表示）",
        "rawMaskedHint": "値は {mask} で伏せられています。「値を表示」で表示・編集できます。",
        "issues": {
            "invalidSyntax": "{line} 行目: KEY=VALUE の形式ではありません。",
            "invalidKey": "{line} 行目: 変数名が不正です。英字かアンダースコアで始まり、英数字とアンダースコアのみが使えます。",
            "unterminatedQuote": "{line} 行目: {key} の引用符が閉じられていません。",
            "duplicateKey": "{line} 行目: {key} が重複しています。最後の定義が有効になります。",
            "controlCharacter": "{line} 行目: 環境変数ファイルに使用できない制御文字が含まれています。",
            "tooLarge": "このファイルは大きすぎるため、ここでは編集できません。",
            "tooManyEntries": "このファイルは変数が多すぎるため、ここでは編集できません。"
        }
    },
    "agentSession": {
        "context": "{tokens}（{percent}%）",
        "chipLabel": "セッション使用量 — {usage}",
        "titleLabel": "セッション: {title}",
        "agentLabel": "エージェント: {agent}",
        "costLabel": "現在までのコスト: {cost}",
        "spentLabel": "このセッションの消費: {tokens} トークン",
        "contextLabel": "コンテキスト使用量: {limit} トークン中 {tokens} トークン（{percent}%）",
        "contextUnknownLabel": "コンテキスト使用量: {tokens} トークン（上限不明）"
    },
    "opencodeDiff": {
        "title": "このターンの変更ファイル",
        "subtitle": "{count} ファイル",
        "revertedTitle": "取り消し中の変更",
        "revertedSubtitle": "{count} ファイルが取り消されています",
        "openDiff": "{file} の差分を表示",
        "unnamedFile": "(ファイル名なし)",
        "status": {
            "added": "追加",
            "deleted": "削除",
            "modified": "変更"
        },
        "revert": "このターンを取り消す",
        "unrevert": "やり直す",
        "revertConfirmTitle": "このターンを取り消しますか？",
        "revertConfirmBody": "opencode が {count} ファイルへの変更を巻き戻します。追加されたファイルは削除され、コミット済みの変更も作業ツリー上では巻き戻ります。この操作は「やり直す」で復元できます。",
        "revertConfirmLabel": "取り消す",
        "unrevertConfirmTitle": "取り消した変更をやり直しますか？",
        "unrevertConfirmBody": "opencode が取り消し中の {count} ファイルへの変更をすべて作業ツリーに戻します。",
        "unrevertConfirmLabel": "やり直す",
        "busy": "エージェントが実行中のため実行できません。ターンの完了後に再試行してください。",
        "noop": "opencode は変更しませんでした（対象のターンが見つかりません）。",
        "failed": "opencode が操作を拒否しました。"
    },
    "opencodeQuickKeys": {
        "toolbarLabel": "opencode クイックキー",
        "caption": "opencode",
        "needsSession": "このペインの最初のターン以降に使えます（{notation}）",
        "showKeys": "opencode クイックキーを表示",
        "hideKeys": "opencode クイックキーを隠す",
        "keys": {
            "agentNext": "次のエージェント",
            "agentPrev": "前のエージェント",
            "commands": "コマンド",
            "variant": "バリアント",
            "agents": "エージェント",
            "sessions": "セッション",
            "newSession": "新規セッション",
            "models": "モデル",
            "themes": "テーマ",
            "timeline": "タイムライン",
            "undo": "取り消し",
            "redo": "やり直し",
            "compact": "圧縮",
            "pageUp": "1ページ上",
            "pageDown": "1ページ下",
            "first": "先頭メッセージ",
            "last": "最新メッセージ"
        }
    },
    "opencodeSidebar": {
        "regionLabel": "opencode サイドバーの警告",
        "label": "opencode のサイドバーが開いています",
        "body": "トランスクリプトと同じ行を占有するため、ターンの終了を検出できません。opencode のペインで次のキーを押して閉じてください:"
    },
    "opencodeSession": {
        "new": "新規セッション",
        "list": "セッション一覧",
        "fork": "セッションを fork",
        "share": "共有リンクを発行",
        "unshare": "共有を取り消す",
        "shareCopy": "リンクをコピー",
        "shareConfirmTitle": "この会話を外部に公開しますか？",
        "shareConfirmBody": "opencode がこのセッションを opencode のホスティングに公開し、リンクを知っている人なら誰でも読める状態になります。公開されるのは会話そのもの（あなたのプロンプト・エージェントの応答・実行したツールの入出力）と、セッションの作業ディレクトリの絶対パスです。内容は伏せ字になりません。公開後は「共有を取り消す」でページを取り下げられますが、それまでに読まれた内容は取り消せません。",
        "shareConfirmLabel": "公開する",
        "sharePublicNotice": "このリンクは第三者が読めます。",
        "errorNoPort": "このペインに opencode サーバが接続されていません。ペインを起動し直してから再度お試しください。",
        "errorNoSessionFork": "まだ fork できるセッションがありません。1 ターン実行してから再度お試しください。",
        "errorNoSessionShare": "まだ共有できるセッションがありません。1 ターン実行してから再度お試しください。",
        "errorRequestFailed": "リクエストを送信できませんでした。CommandMate サーバに接続できません。",
        "errorUnknown": "操作に失敗しました。原因はサーバから返されていません。",
        "errorCopyFailed": "リンクをコピーできませんでした。表示されているリンクを選択して手動でコピーしてください。"
    },
    "cliCommands": {
        "open": "CLI コマンド",
        "title": "{alias} を操作する CLI コマンド",
        "loading": "このセッションの宛先を問い合わせています…",
        "loadError": "このセッションの宛先を取得できなかったため、コマンドは表示していません。推測で組み立てたコマンドは別のエージェントに届く可能性があります。CommandMate サーバに接続できるか確認してから再試行してください。",
        "retry": "再試行",
        "messagePlaceholder": "メッセージ",
        "target": "サーバが解決した宛先: --instance {instance}（{tool} / {stage}）",
        "resolvedBy": {
            "explicit": "明示指定",
            "roster": "roster の登録",
            "primary": "そのツールの primary インスタンス",
            "worktree-default": "この worktree の既定エージェント",
            "fallback": "最終フォールバック（この worktree は既定エージェントを持っていません）",
            "client-fallback": "旧サーバ向けに CLI 側で解決"
        },
        "conflict": "roster では {instance} は {roster} ですが、{requested} が要求されました。以下のコマンドは roster の答えである {roster} を使っています。",
        "commandLabel": {
            "send": "メッセージを送る",
            "wait": "ターンの終了を待つ",
            "capture": "ターミナルを読む",
            "respond": "プロンプトに答える"
        },
        "commandDescription": {
            "send": "プレースホルダを実際の本文に置き換えてください。本文をプレースホルダのままにしているのは意図的です。改行・引用符・日本語を含む本文をシェルに合わせて正しくクォートすることはこの画面からはできず、失敗しても静かに途中で切れるだけだからです。",
            "wait": "エージェントがターンを終えるまでブロックします。",
            "capture": "エージェントのペインの現在の表示を出力します。--json を付けると機械可読な形式になります。",
            "respond": "開いているプロンプトに回答を送ります。1 は選びたい選択肢の番号に置き換えてください。"
        },
        "copy": "コピー",
        "copied": "コピーしました",
        "copyFailed": "コマンドをコピーできませんでした。表示されているコマンドを選択して手動でコピーしてください。",
        "portHint": "このサーバはポート {port} で待ち受けているため、コマンドに CM_PORT= を前置しています。これらのコマンドに --port オプションはなく、既定以外のサーバへ 1 回の実行を向ける方法は環境変数です。",
        "notesTitle": "貼り付ける前に",
        "noteInstanceFlag": "送り先を指定するのは --instance です。--agent は roster に無いインスタンスをアドホックに起動するためのもので、wait には --agent 自体がありません。",
        "noteWaitOnPrompt": "wait には --on-prompt human を付けてあります。付けないと既定の agent モードになり、プロンプトを検出した時点で exit 10 で即座に終了します。",
        "noteRespondNumber": "respond は回答を意味解決しません。選択肢は番号で送ってください。「yes」は入力されたあと無視され、続く Enter がその時点の既定選択を選んでしまいます。"
    }
}
