Files
claude-code-haha/desktop/src/i18n/locales/jp.ts
T
2026-10-04 00:39:20 +08:00

4134 lines
339 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationKey } from './en'
export const jp: Record<TranslationKey, string> = {
"teamPlan.state.interrupted": "チームが中断されました · 開始済みの作業は再実行されません",
"teamPlan.savePreset": "プリセットの変更を保存し、解決されたモデルを確認してから承認してください。",
"teamPlan.unspecified": "未指定",
"teamPlan.stop": "チームとメインタスクを停止",
"teamPlan.stopping": "チームとメインタスクを停止中…",
"teamPlan.configureMember": "{name} を設定",
"teamPlan.roster": "チームメンバー",
"teamPlan.assignment": "担当作業",
"teamPlan.memberBrief": "役割の説明",
"teamPlan.noTasks": "担当タスクなし",
"teamPlan.selectedCount": "{count} 人を選択",
"teamPlan.allTasks": "タスクの割り当て",
"teamPlan.saved": "保存済み",
"teamPlan.unsaved": "未保存の変更あり",
"teamPlan.reviewHint": "役割を確認して、チームを開始。",
"teamPlan.title": "チーム実行前の確認",
"teamPlan.memberCount": "メンバー {count} 人",
"teamPlan.open": "設定を確認",
"teamPlan.close": "閉じる",
"teamPlan.save": "下書きを保存",
"teamPlan.return": "修正を依頼",
"teamPlan.cancel": "チームをキャンセル",
"teamPlan.approve": "承認して開始",
"teamPlan.retry": "再確認",
"teamPlan.description": "起動前にメンバーのプリセット、タスク、モデルを確認します。変更はこのチームだけに適用されます。 タスクの複雑さと設定の提案はリード Agent が判断します。",
"teamPlan.leader": "リーダー(読み取り専用)",
"teamPlan.official": "Claude 公式",
"teamPlan.provider": "プロバイダー",
"teamPlan.conflict": "別のウィンドウまたはリーダーが計画を更新しました。編集内容は保持されています。最新の内容を確認してください。",
"teamPlan.reload": "最新の計画を使用",
"teamPlan.reapply": "編集を最新の計画に適用",
"teamPlan.agentsError": "エージェントのプリセットを読み込めません。モデルとタスクの編集は保持されています。",
"teamPlan.selectAll": "全メンバーを選択",
"teamPlan.batch": "選択メンバーのモデルを設定",
"teamPlan.followLeader": "選択にリーダーのモデルを適用",
"teamPlan.restore": "推奨モデルに戻す",
"teamPlan.costHint": "単純な作業には低価格のモデル、複雑な作業には高性能なモデルを選べます。料金はプロバイダーによって異なり、ここでは見積もりません。",
"teamPlan.difficulty": "タスクの複雑さ",
"teamPlan.high": "高",
"teamPlan.medium": "中",
"teamPlan.low": "低",
"teamPlan.agent": "エージェントのプリセット",
"teamPlan.model": "プロバイダーとモデル",
"teamPlan.prompt": "メンバーへの指示",
"teamPlan.tasks": "タスクの割り当て",
"teamPlan.dependencies": "依存タスク",
"teamPlan.unassigned": "未割り当て",
"teamPlan.assignRequired": "承認する前に、このタスクをメンバーに割り当ててください。",
"teamPlan.invalidMemberNames": "{names} は起動できません。名前には文字、数字、アンダースコア、ハイフンのみ使用でき、team-lead は予約されています。リーダーエージェントに修正を依頼してください。",
"teamPlan.owner": "担当メンバー",
"teamPlan.feedback": "修正依頼の内容(必須)",
"teamPlan.state.draft": "リーダーが計画を修正中",
"teamPlan.state.review_pending": "確認待ち · メンバーは未起動",
"teamPlan.state.launching": "チームを起動中",
"teamPlan.state.running": "チーム起動済み",
"teamPlan.state.launch_failed": "起動失敗 · 詳細を確認してください",
"teamPlan.state.cancelled": "チームはキャンセル済み",
'sideChat.closeTitle': 'サイドチャットを閉じますか?',
'sideChat.closeBody': 'この一時的な会話は削除され、実行中の応答も停止します。',
'sideChat.emptyDescription': 'この一時的な会話はタブを閉じるかアプリを終了すると消去されます。',
'chat.selectedText': '選択したテキスト',
'sideChat.title': 'サイドチャット',
'chat.askSelectionInSideChat': 'サイドチャットで質問',
'chat.selectionActions': '選択テキストの操作',
"sideQuestion.title": "サイド質問",
"sideQuestion.clear": "質問履歴を消去",
"sideQuestion.close": "サイド質問を閉じる",
"sideQuestion.hint": "メインタスクを中断せず、この会話について質問します。回答はアプリ終了まで保持されます。",
"sideQuestion.empty": "この会話について質問してみましょう。",
"sideQuestion.thinking": "考え中…",
"sideQuestion.cancelled": "キャンセル済み",
"sideQuestion.failed": "この質問に回答できませんでした。",
"sideQuestion.copy": "回答をコピー",
"sideQuestion.copied": "コピー済み",
"sideQuestion.input": "質問",
"sideQuestion.placeholder": "質問や追加の質問を入力…",
"sideQuestion.cancel": "質問をキャンセル",
"sideQuestion.send": "質問する",
"sideQuestion.commandDescription": "タスクを中断せずに質問する",
"settings.chatAppearance.title": "チャットの外観",
"settings.chatAppearance.description": "UIの拡大率とは別にチャットの文字を調整します。変更はすぐに反映され、この端末に保存されます。",
"settings.chatAppearance.reset": "チャットの外観をリセット",
"settings.chatAppearance.font": "チャットのフォント",
"settings.chatAppearance.fontSystem": "システム標準",
"settings.chatAppearance.fontSans": "ゴシック体",
"settings.chatAppearance.fontSerif": "明朝体",
"settings.chatAppearance.fontMono": "等幅",
"settings.chatAppearance.fontSize": "チャットの文字サイズ",
"settings.chatAppearance.width": "会話の幅",
"settings.chatAppearance.widthStandard": "標準",
"settings.chatAppearance.widthWide": "広い",
"settings.chatAppearance.widthFull": "利用可能な幅に合わせる",
"settings.chatAppearance.hint": "システムにあるフォントを使用します。コードは等幅のままです。幅はメッセージと入力欄に適用され、小さいウィンドウでは自動調整されます。",
"settings.chatAppearance.preview": "フォントのプレビュー",
"settings.chatAppearance.previewMarkdown": "### 読みやすい会話\n\n文字を調整して快適に読みましょう。中文・日本語・한국어 · Hello 123。\n\n- リストにも選択したフォントとサイズが適用されます。\n- インラインコードは等幅のままです:`const answer = 42`。\n\n| 内容 | 例 |\n| --- | --- |\n| 本文 | 自分のペースで読む |",
"chat.sessionNoProject": "プロジェクトなし",
"chat.referenceSessions": "セッション",
"chat.sessionReferencesLoadFailed": "セッションを読み込めませんでした。",
"chat.openReferencedSession": "セッション {id} を開く",
"chat.collaborationMessageFrom": "{id} が別のセッションから送信",
"chat.collaborationQueued": "待機中",
"chat.collaborationRunning": "実行中",
"chat.collaborationIdle": "アイドル",
"chat.collaborationBlocked": "対応が必要",
"chat.collaborationCompleted": "完了",
"chat.collaborationFailed": "失敗",
"chat.collaborationStopped": "停止済み",
"chat.history.loading": "メッセージを読み込み中…",
"chat.history.loadFailed": "メッセージを読み込めませんでした。",
"chat.history.retry": "再試行",
"chat.history.loadMore": "以前のメッセージを読み込む",
"trace.windowNotice": "会話とトレースは制限付きページで読み込まれます。",
"trace.windowLimited": "表示上限を超えた記録があります。元のファイルは変更されません。",
"trace.windowFirst": "先頭 / ライブ",
"trace.windowPrevious": "前のページ",
"trace.windowNext": "次のページ",
"trace.windowScanNext": "次の区間を読み込む",
"extensions.myPlugins": "マイプラグイン",
"extensions.mySkills": "マイスキル",
"extensions.browse": "一覧に戻る",
"extensions.managedSkillHint": "付属スキルはプラグインと一緒に管理します。ローカルとプロジェクトのスキルは元のディレクトリで管理してください。",
"extensions.searchPlugins": "プラグインを検索",
"extensions.searchSkills": "注目のスキルを検索",
"extensions.pluginsSubtitle": "よく使うサービスに接続するか、制作・開発ツールをアシスタントに追加します。",
"extensions.filter": "拡張機能を絞り込む",
"extensions.categories": "拡張機能のカテゴリ",
"extensions.empty": "一致する拡張機能がありません",
"chat.references": "参照",
"chat.referencePlugins": "プラグイン",
"chat.referenceSkills": "スキル",
"chat.referenceFiles": "ファイル",
"chat.referencesLoadFailed": "スキルとプラグインを読み込めませんでした",
"chat.referencesEmpty": "一致する参照がありません",
"chat.referenceDescription": "説明",
"chat.referenceSource": "提供元",
"chat.referenceDetails": "参照の詳細",
"sidebar.extensions": "スキル・コネクター",
"extensions.sections": "マーケットの分類",
"extensions.plugins": "プラグイン",
"extensions.skills": "スキル",
"extensions.featuredSkills": "注目のスキル",
"connectors.airtable.description": "テーブル、レコード、チーム資料を検索します。",
"connectors.airtable.example": "Airtable を使い、次の作業を手伝ってください:テーブル、レコード、チーム資料を検索します。",
"connectors.airtable.name": "Airtable",
"connectors.airtable.requirements": "対象ワークスペースやベースをブラウザーで認可します。企業管理者がクライアントの利用を制限する場合があります。",
"connectors.algorithmic-art.name": "アルゴリズムアート",
"connectors.algorithmic-art.description": "p5.js で調整可能な生成アートやインタラクティブな表現を作成します。",
"connectors.algorithmic-art.example": "色と密度を調整できる流れ場アートのページを作成して。",
"connectors.algorithmic-art.requirements": "テンプレートと参考コードを含みます。プレビューにはブラウザーと p5.js が必要です。インストール時にスクリプト実行や生成モデルの呼び出しは行いません。",
"connectors.atlassian.description": "Jira、Confluence、プロジェクト資料を検索します。",
"connectors.atlassian.example": "Atlassian を使い、次の作業を手伝ってください:Jira、Confluence、プロジェクト資料を検索します。",
"connectors.atlassian.name": "Atlassian",
"connectors.atlassian.requirements": "Atlassian Cloud アカウントと製品のアクセス権限をブラウザーで認可します。一部製品や操作は管理者の有効化が必要です。",
"connectors.bazhuayu.description": "収集テンプレート、クラウドタスク、収集済みデータを確認します。",
"connectors.bazhuayu.example": "Octoparse China を使い、次の作業を手伝ってください:収集テンプレート、クラウドタスク、収集済みデータを確認します。",
"connectors.bazhuayu.name": "Octoparse China",
"connectors.bazhuayu.requirements": "中国版アカウントの API Key が必要です。クラウド収集のみ対応し、実行時に残高を消費する場合があります。一部テンプレートは特定プラン限定です。",
"connectors.canvas-design.name": "キャンバスデザイン",
"connectors.canvas-design.description": "付属フォントでポスター、静止画作品、PDF を制作します。",
"connectors.canvas-design.example": "技術イベントのポスターをデザインして PDF に出力して。",
"connectors.canvas-design.requirements": "完全なスキル、フォント、ライセンスを含みます。画像や PDF の生成には Python と描画ライブラリが必要で、自動インストールは行いません。",
"connectors.clickup.description": "プロジェクト、タスク、チーム資料を検索します。",
"connectors.clickup.example": "ClickUp を使い、次の作業を手伝ってください:プロジェクト、タスク、チーム資料を検索します。",
"connectors.clickup.name": "ClickUp",
"connectors.clickup.requirements": "ClickUp アカウントとワークスペース権限をブラウザーで認可します。サービスは公開ベータ版です。",
"connectors.cloudflare.description": "Web サイト、ネットワーク、クラウドリソースを確認・管理します。",
"connectors.cloudflare.example": "Cloudflare を使い、次の作業を手伝ってください:Web サイト、ネットワーク、クラウドリソースを確認・管理します。",
"connectors.cloudflare.name": "Cloudflare",
"connectors.cloudflare.requirements": "必要なリソース権限を持つユーザーまたはアカウント API Token が必要です。デプロイや設定変更には明示的なタスク指示が必要です。",
"connectors.drawio.name": "draw.io 図表",
"connectors.drawio.description": "編集可能な構成図、フローチャート、関係図を作成します。",
"connectors.drawio.example": "このシステム説明を編集可能な draw.io 構成図にして。",
"connectors.drawio.requirements": ".drawio XML は直接作成できます。Mermaid 変換、自動配置、画像出力には draw.io デスクトップ CLI が必要です。スキルのインストールでアプリは追加されません。",
"connectors.firecrawl.description": "Web 検索とページ抽出で調査資料を整理します。",
"connectors.firecrawl.example": "Firecrawl を使い、次の作業を手伝ってください:Web 検索とページ抽出で調査資料を整理します。",
"connectors.firecrawl.name": "Firecrawl",
"connectors.firecrawl.requirements": "Firecrawl API Key が必要です。利用量はアカウント枠に計上され、キーは安全なリクエストヘッダーで送信されます。",
"connectors.frontend-design.name": "フロントエンドデザイン",
"connectors.frontend-design.description": "視覚的な階層が明確な Web・アプリの画面を構築します。",
"connectors.frontend-design.example": "知識管理アプリのホーム画面を設計して実装して。",
"connectors.frontend-design.requirements": "Anthropic のフロントエンドデザインスキルを追加します。プレビューとビルドには対象プロジェクトの依存関係と実行環境が必要です。ホスティングや画像生成サービスは含まれません。",
"connectors.hyperframes.name": "HyperFrames",
"connectors.hyperframes.description": "HTML とアニメーションコードで動画、字幕、製品デモを制作します。",
"connectors.hyperframes.example": "HyperFrames で製品を紹介する 20 秒の動画を作成して。",
"connectors.hyperframes.requirements": "固定バージョンの 5 種類のスキルと資料のみをインストールします。描画には Node.js 22+、HyperFrames CLI、FFmpeg が必要です。ローカル音声には Python 3.10+ が必要な場合があり、オンライン素材サービスには別途設定や料金が必要です。",
"connectors.intercom.description": "顧客との会話、連絡先、ヘルプ記事を検索します。",
"connectors.intercom.example": "Intercom を使い、次の作業を手伝ってください:顧客との会話、連絡先、ヘルプ記事を検索します。",
"connectors.intercom.name": "Intercom",
"connectors.intercom.requirements": "米国ホストのワークスペースのみ対応。連絡先・会話・記事の権限を持つアクセストークンが必要です。",
"connectors.jufa.description": "裁判例を検索し、裁判所の判断を整理します。",
"connectors.jufa.example": "Jufa Cases を使い、次の作業を手伝ってください:裁判例を検索し、裁判所の判断を整理します。",
"connectors.jufa.name": "Jufa Cases",
"connectors.jufa.requirements": "Jufa Agent API Key が必要です。判例調査のみ対象で、他の分野は別途接続が必要です。プランと呼び出し枠が適用されます。",
"connectors.kuaicha.description": "企業の登記、経営状況、リスク情報を検索します。",
"connectors.kuaicha.example": "THS Kuaicha を使い、次の作業を手伝ってください:企業の登記、経営状況、リスク情報を検索します。",
"connectors.kuaicha.name": "THS Kuaicha",
"connectors.kuaicha.requirements": "Kuaicha API Key が必要です。中国本土の IP アドレスのみ対応し、権限と利用枠が適用されます。",
"connectors.listinggood.description": "Amazon 商品説明の適合性と読みやすさを確認します。",
"connectors.listinggood.example": "ListingGood を使い、次の作業を手伝ってください:Amazon 商品説明の適合性と読みやすさを確認します。",
"connectors.listinggood.name": "ListingGood",
"connectors.listinggood.requirements": "ListingGood 中国版 API Key が必要です。海外版のキーとは互換性がなく、有料ツールは利用枠を消費します。",
"connectors.mcp-builder.name": "MCP 開発ツールキット",
"connectors.mcp-builder.description": "TypeScript・Python の資料で MCP サーバーを構築・評価します。",
"connectors.mcp-builder.example": "社内ナレッジベース向けの MCP サーバーを設計して。",
"connectors.mcp-builder.requirements": "設計資料と評価スクリプトを含みます。開発には Node.js または Python と MCP SDK が必要です。モデル評価や外部 API は利用者の認証情報が必要で、料金が発生する場合があります。",
"connectors.miro.description": "共同編集ボードを読み、デザインの議論を整理します。",
"connectors.miro.example": "Miro を使い、次の作業を手伝ってください:共同編集ボードを読み、デザインの議論を整理します。",
"connectors.miro.name": "Miro",
"connectors.miro.requirements": "Miro アカウントとボード権限が必要です。組織管理者による MCP の有効化が必要な場合があります。",
"connectors.neon.description": "データベースのプロジェクト、ブランチ、スキーマを確認します。",
"connectors.neon.example": "Neon を使い、次の作業を手伝ってください:データベースのプロジェクト、ブランチ、スキーマを確認します。",
"connectors.neon.name": "Neon",
"connectors.neon.requirements": "Neon API Key とプロジェクト権限が必要です。提供元は開発・テスト用データベースでの利用を推奨しています。",
"connectors.obsidian.name": "Obsidian ツールキット",
"connectors.obsidian.description": "Markdown ノート、Canvas、Bases ビューを編集します。",
"connectors.obsidian.example": "このプロジェクトノートを Obsidian Canvas の関係図に整理して。",
"connectors.obsidian.requirements": "ローカルファイル編集にクラウドアカウントは不要です。CLI 操作には起動中の Obsidian が必要です。抽出などの追加機能には対応する CLI が必要です。インストールするのはスキルファイルのみです。",
"connectors.postman.description": "API ワークスペース、コレクション、開発資料を検索します。",
"connectors.postman.example": "Postman を使い、次の作業を手伝ってください:API ワークスペース、コレクション、開発資料を検索します。",
"connectors.postman.name": "Postman",
"connectors.postman.requirements": "米国リージョンの Postman アカウントをブラウザーで認可します。最小ツールセットを使用します。EU アカウントは別途 API Key 設定が必要です。",
"connectors.qcc.description": "企業の登記情報と関連資料を照合します。",
"connectors.qcc.example": "Qichacha を使い、次の作業を手伝ってください:企業の登記情報と関連資料を照合します。",
"connectors.qcc.name": "Qichacha",
"connectors.qcc.requirements": "Qichacha Agent API Key が必要です。企業基本情報のみ対象で、他の分野は別途接続が必要です。権限とポイント制限が適用されます。",
"connectors.qingflow.description": "ワークスペースのアプリと業務データを検索します。",
"connectors.qingflow.example": "Qingflow を使い、次の作業を手伝ってください:ワークスペースのアプリと業務データを検索します。",
"connectors.qingflow.name": "Qingflow",
"connectors.qingflow.requirements": "Qingflow アカウントをブラウザーで認可します。ワークスペースとアプリの権限が適用され、機能はプランによって異なります。",
"connectors.qveris.description": "情報調査に使えるデータツールを検索します。",
"connectors.qveris.example": "QVeris を使い、次の作業を手伝ってください:情報調査に使えるデータツールを検索します。",
"connectors.qveris.name": "QVeris",
"connectors.qveris.requirements": "QVeris API Key が必要です。ツール範囲と料金は提供元が決定します。キー変更後は再接続してください。",
"connectors.remotion.name": "Remotion",
"connectors.remotion.description": "React でアニメーション、音声、字幕を含むプログラム動画を制作します。",
"connectors.remotion.example": "Remotion で字幕と音楽付きの 20 秒の製品紹介動画を作成して。",
"connectors.remotion.requirements": "Remotion 公式の 12 種類のスキルと参考資料のみをインストールします。動画の制作とレンダリングにはプロジェクトの依存関係、Node.js とブラウザーが必要です。Remotion 本体には別のライセンス条件が適用されます。",
"connectors.render.description": "デプロイ済みサービス、データベース、ログ、指標を確認します。",
"connectors.render.example": "Render を使い、次の作業を手伝ってください:デプロイ済みサービス、データベース、ログ、指標を確認します。",
"connectors.render.name": "Render",
"connectors.render.requirements": "Render API Key が必要です。最初にワークスペースを指定します。所属先にアクセス可能なキーのため、デプロイは明示的なタスク指示に従います。",
"connectors.sorftime.description": "越境 EC 市場、商品、キーワードを調査します。",
"connectors.sorftime.example": "Sorftime を使い、次の作業を手伝ってください:越境 EC 市場、商品、キーワードを調査します。",
"connectors.sorftime.name": "Sorftime",
"connectors.sorftime.requirements": "Sorftime MCP の有効化と Account-SK が必要です。購入サービスによって対象プラットフォーム、地域、照会回数が決まります。",
"connectors.todoist.description": "タスク、プロジェクト、個人の予定を確認します。",
"connectors.todoist.example": "Todoist を使い、次の作業を手伝ってください:タスク、プロジェクト、個人の予定を確認します。",
"connectors.todoist.name": "Todoist",
"connectors.todoist.requirements": "Todoist アカウントを使用し、タスクとプロジェクトへのアクセスをブラウザーで認可します。",
"connectors.variflight.description": "フライト状況、空港、旅程情報を検索します。",
"connectors.variflight.example": "VariFlight を使い、次の作業を手伝ってください:フライト状況、空港、旅程情報を検索します。",
"connectors.variflight.name": "VariFlight",
"connectors.variflight.requirements": "VariFlight MCP にログインして MCP Key を発行してください。個人旅程には権限が必要で、データと利用枠は提供元の条件に従います。",
"connectors.webapp-testing.name": "Web アプリテスト",
"connectors.webapp-testing.description": "Playwright でローカル画面、操作、スクリーンショットを検証します。",
"connectors.webapp-testing.example": "ローカルアプリのフォーム検証とレイアウトを確認して。",
"connectors.webapp-testing.requirements": "テストスキル、Python 補助スクリプト、例を含みます。実行には Python、Playwright、ブラウザー、対象アプリが必要です。ブラウザーの自動ダウンロードは行いません。",
"connectors.webflow.description": "サイト構造、CMS コンテンツ、デザイン情報を読み取ります。",
"connectors.webflow.example": "Webflow を使い、次の作業を手伝ってください:サイト構造、CMS コンテンツ、デザイン情報を読み取ります。",
"connectors.webflow.name": "Webflow",
"connectors.webflow.requirements": "サイト権限のある Webflow アカウントが必要です。OAuth で MCP Bridge App が追加され、Designer 操作にはブリッジ接続が必要です。",
"connectors.xmind.description": "オンラインのマインドマップを読み、計画を整理します。",
"connectors.xmind.example": "Xmind を使い、次の作業を手伝ってください:オンラインのマインドマップを読み、計画を整理します。",
"connectors.xmind.name": "Xmind",
"connectors.xmind.requirements": "中国本土版 Xmind アカウントをブラウザーで認可します。認可済みチームのマップのみ対象で、編集機能はプランに依存します。",
"connectors.toolsRemoveInfo": "このツールプラグインとスキルファイルを削除します。既存のタスクと出力ファイルは保持されます。",
"connectors.collection": "カタログの種類",
"connectors.services": "サービス接続",
"connectors.tools": "ツールプラグイン",
"connectors.region": "サービス地域",
"connectors.region.all": "すべての地域",
"connectors.region.china": "中国のサービス",
"connectors.region.global": "グローバルサービス",
"connectors.toolKind": "ツールプラグイン",
"connectors.toolsSubtitle": "タスクに専門スキルと作業手順を追加します。",
"connectors.skillsLoaded": "スキル読込済み",
"connectors.skillsPending": "スキル未読込",
"connectors.verifySkills": "スキルを確認",
"connectors.skillsRuntimeInfo": "追加されるのはスキルパッケージです。タスクに必要な Node.js、コマンドラインツールなどの実行環境は別途用意する必要があります。スキルの読み込みは依存環境のインストールを意味しません。",
"connectors.saveAndVerify": "保存して確認",
"connectors.needsService": "サービス接続が必要",
"connectors.jinshuju.name": "金数据",
"connectors.jinshuju.description": "フォームと収集した回答を確認し、集計と整理を支援。",
"connectors.jinshuju.example": "金数据で最近収集したアンケートの回答を要約してください。",
"connectors.jinshuju.requirements": "金数据のアカウントが必要です。ブラウザーでフォームとデータへのアクセスを認証します。",
"connectors.tencent-docs.name": "騰訊文書",
"connectors.tencent-docs.description": "オンライン文書や表計算、共同作業の資料を読み取り、整理。",
"connectors.tencent-docs.example": "騰訊文書でプロジェクト計画に関する資料を探してください。",
"connectors.tencent-docs.requirements": "Tencent Docs MCP アクセストークンが必要です。アカウントが既にアクセスできる文書のみ利用できます。",
"connectors.pkulaw.name": "北大法宝",
"connectors.pkulaw.description": "法令を検索し、条文と原典を参照。",
"connectors.pkulaw.example": "雇用契約の試用期間に関する条文を検索し、出典を示してください。",
"connectors.pkulaw.requirements": "PKULaw MCP アクセストークンと対象資料の権限が必要です。検索した条文が現在有効か確認してください。",
"connectors.datayes.name": "通聯データ",
"connectors.datayes.description": "株価と金融市場のデータを照会して調査を支援。",
"connectors.datayes.example": "指定した銘柄の過去の株価を調べ、データの出典を整理してください。",
"connectors.datayes.requirements": "Datayes MCP Token が必要です。アクセス範囲は権限と利用枠によります。企業アカウントは提供元の確認要件を満たす必要があります。",
"connectors.tencent-search.name": "Tencent Cloud 検索",
"connectors.tencent-search.description": "出典を追跡できるウェブ資料を検索。",
"connectors.tencent-search.example": "中国の低空経済産業の発展に関する資料を検索し、公式の出典を整理してください。",
"connectors.tencent-search.requirements": "Tencent Cloud WSA の有効化と API Key が必要です。アカウントの利用枠と料金規則が適用されます。",
"connectors.connectService": "サービスを接続",
"connectors.officialMcp": "公式 MCP サービス",
"connectors.amap.name": "高徳地図",
"connectors.amap.description": "場所の検索、経路の計画、天気や交通情報の確認。",
"connectors.amap.example": "杭州東駅から西湖までの公共交通ルートを計画してください。",
"connectors.amap.requirements": "Amap の Web サービス API Key が必要です。利用範囲はアカウントの権限と割り当てによります。",
"connectors.baidu-maps.name": "百度地図",
"connectors.baidu-maps.description": "住所の解析、周辺施設の検索、経路の計画。",
"connectors.baidu-maps.example": "上海虹橋駅の近くのホテルと交通手段を調べてください。",
"connectors.baidu-maps.requirements": "Baidu Maps のサーバー用 AK と対象サービスの権限が必要です。",
"connectors.tencent-maps.name": "騰訊地図",
"connectors.tencent-maps.description": "位置、距離、経路を調べて移動を計画。",
"connectors.tencent-maps.example": "広州南駅から広州塔までの公共交通と車の経路を比較してください。",
"connectors.tencent-maps.requirements": "Tencent Location Service Key と WebServiceAPI の権限および割り当てが必要です。",
"connectors.zhipu-search.name": "智譜ウェブ検索",
"connectors.zhipu-search.description": "中国語のウェブページ、ニュース、最新情報を出典付きで検索。",
"connectors.zhipu-search.example": "中国の最近の新エネルギー車政策を検索し、原典を示してください。",
"connectors.zhipu-search.requirements": "GLM Coding Plan の API Key が必要です。チームプランのキーと汎用プラットフォームのキーは互換ではありません。",
"connectors.notion.name": "Notion",
"connectors.notion.description": "ワークスペース内の資料を検索し、ページやプロジェクトの知識を整理。",
"connectors.notion.example": "Notion の最近のプロジェクト週報を探し、進捗を要約してください。",
"connectors.notion.requirements": "Notion アカウントが必要です。ブラウザー認証では、そのアカウントがアクセス可能な内容のみ利用できます。",
"connectors.linear.name": "Linear",
"connectors.linear.description": "課題、プロジェクト、サイクルを調べ、チームの作業を追跡。",
"connectors.linear.example": "Linear で自分に割り当てられた未完了の課題を一覧表示してください。",
"connectors.linear.requirements": "Linear のワークスペースアカウントと対象プロジェクトの権限が必要です。ブラウザーで認証します。",
"connectors.github.name": "GitHub",
"connectors.github.description": "リポジトリのコード、Issue、Pull Request を検索。",
"connectors.github.example": "自分の GitHub リポジトリでレビュー待ちの Pull Request を確認してください。",
"connectors.github.requirements": "必要なリポジトリと操作の権限を持つ GitHub Personal Access Token が必要です。組織のポリシーも適用されます。",
"connectors.context7.name": "Context7",
"connectors.context7.description": "ライブラリの最新ドキュメントと使用例を参照。",
"connectors.context7.example": "React useEffect の公式ドキュメントとクリーンアップ関数の例を探してください。",
"connectors.context7.requirements": "公式の匿名利用枠を使用します。無制限ではなく、枠を超えるとサービスが制限を返します。",
"connectors.sentry.name": "Sentry",
"connectors.sentry.description": "例外、課題、アプリケーションの実行情報を確認。",
"connectors.sentry.example": "Sentry で過去一日に初めて発生したエラーを要約してください。",
"connectors.sentry.requirements": "組織とプロジェクトの権限を持つ Sentry アカウントが必要です。ブラウザーで認証します。",
"connectors.tavily.name": "Tavily",
"connectors.tavily.description": "ウェブ検索とコンテンツ抽出で調査を支援。",
"connectors.tavily.example": "オープンソースのベクトルデータベースを比較し、出典を示してください。",
"connectors.tavily.requirements": "Tavily API Key が必要です。呼び出しにはアカウントの契約と利用枠が適用されます。",
"connectors.exa.name": "Exa",
"connectors.exa.description": "関連するウェブページ、コード、技術情報を検索。",
"connectors.exa.example": "分散システムの可観測性に関する技術記事を探してください。",
"connectors.exa.requirements": "公式の基本匿名利用枠を使用します。利用可能なツールと回数は提供元が定めます。",
"connectors.supabase.name": "Supabase",
"connectors.supabase.description": "プロジェクト、データベース構造、開発資料を確認。",
"connectors.supabase.example": "データを変更せずに Supabase プロジェクトのテーブル構造を確認してください。",
"connectors.supabase.requirements": "対象組織とプロジェクトの権限を持つ Supabase アカウントが必要です。データベースへの書き込みには明示的なタスク指示が必要です。",
"connectors.huggingface.name": "Hugging Face",
"connectors.huggingface.description": "モデル、データセット、機械学習の研究資料を発見。",
"connectors.huggingface.example": "中国語テキスト分類に適した公開モデルとデータセットを探してください。",
"connectors.huggingface.requirements": "Hugging Face のアクセストークンが必要です。検索には read 権限を推奨します。計算タスクは別途課金される場合があります。",
"connectors.canva.name": "Canva",
"connectors.canva.description": "デザイン素材を検索、整理し、デザイン作業で協業。",
"connectors.canva.example": "Canva の最近のブランドデザイン素材を探してください。",
"connectors.canva.requirements": "各ユーザーが自身の Canva アカウントで認証します。一部の機能は契約とチーム権限に依存します。",
"connectors.figma.name": "Figma",
"connectors.figma.description": "デザインの背景、コンポーネント、画面構造を読み取り。",
"connectors.figma.example": "提供した Figma デザインリンクのコンポーネント構造を分析してください。",
"connectors.figma.requirements": "Figma アカウントでの認証が必要です。アクセス権限、シート、プランにより利用可能なツールと回数が決まります。",
"connectors.stripe.name": "Stripe",
"connectors.stripe.description": "顧客、請求書、決済業務の情報を照会。",
"connectors.stripe.example": "支払いや返金を作成せずに Stripe の最近の請求書の概要を確認してください。",
"connectors.stripe.requirements": "Stripe アカウントでの認証が必要です。公式サービスはプレビュー版です。支払いや返金などの書き込みには明示的なタスク指示が必要です。",
"connectors.category.legal": "法律",
"connectors.categories": "サービスのカテゴリ",
"connectors.allCategories": "おすすめ",
"connectors.category.office": "業務連携",
"connectors.category.development": "開発",
"connectors.category.search": "検索",
"connectors.category.maps": "地図",
"connectors.category.data": "データ",
"connectors.category.design": "デザイン",
"connectors.category.productivity": "効率化",
"connectors.category.finance": "金融",
"connectors.kind": "コネクター",
"connectors.loadFailed": "操作を完了できませんでした",
"connectors.emptyAdded": "サービスを追加すると、ここでアカウントと接続状態を管理できます。",
"connectors.emptySearch": "別のキーワードやカテゴリをお試しください。",
"connectors.resetFilters": "すべて表示",
"connectors.configuration": "接続設定",
"connectors.configurationHint": "空欄の場合は保存済みの設定を維持します。新しい設定を入力し、「保存して確認」で接続を確認してください。",
"connectors.fieldRequired": "この項目を入力してください",
"connectors.capabilities": "対応する操作",
"connectors.remoteExample": "{name} を使ってアクセス可能な情報を検索してください。",
"connectors.remoteRequirements": "サービスのアカウントと必要なアクセス権限を用意してください。利用可能な操作はサービス提供元が付与した権限によって異なります。",
"connectors.phase.installing-plugin": "関連スキルをインストール中",
"connectors.phase.checking": "アカウント接続を確認中",
"connectors.phase.enabling-plugin": "関連スキルを有効化中",
"connectors.phase.refreshing-sessions": "タスクの機能を更新中",
"connectors.phase.verifying-runtime": "ローカル実行環境を確認中",
"connectors.phase.persistence": "接続状態を保存中",
"connectors.phase.cancelling": "操作をキャンセル中",
"connectors.feishu.requirements": "Feishu のユーザーアカウントと予定表へのアクセス権限が必要です。利用できる機能はアカウントとアプリに付与された権限によって異なります。",
"connectors.dingtalk.requirements": "DingTalk の OAuth ログインと企業管理者による予定表権限の付与が必要です。ログインだけですべてのサービス権限が付与されるわけではありません。",
"connectors.wecom.requirements": "WeCom のボットまたはユーザー ID の設定と予定表権限が必要です。利用できる操作は選択した ID に付与された権限によって異なります。",
"connectors.update": "更新",
"connectors.updateAvailable": "更新先のバージョン",
"connectors.currentAccount": "現在のサービスアカウント",
"connectors.phase.downloading": "実行ファイルをダウンロード中",
"connectors.phase.extracting": "実行ファイルを展開中",
"connectors.phase.verifying": "実行ファイルを検証中",
"connectors.phase.awaiting-authorization": "アカウント認証待ち",
"connectors.phase.configuring-account": "アカウントを設定中",
"connectors.phase.authorizing": "認証中",
"connectors.phase.failed": "失敗した段階",
"connectors.phase.skillsInfo": "インストール後、このサービスを操作するスキルを利用できます。",
'connectors.status.configured': 'ローカル設定済み',
'connectors.localVerification': 'サービスの権限は最初のタスク実行時に確認されます。',
"sidebar.connectors": "コネクター",
"connectors.subtitle": "業務サービスを接続してスキルの機能を広げます。",
"connectors.filter": "コネクターを絞り込む",
"connectors.all": "すべて",
"connectors.added": "追加済み",
"connectors.search": "コネクターを検索",
"connectors.clear": "検索をクリア",
"connectors.retry": "再試行",
"connectors.loading": "読み込み中…",
"connectors.empty": "該当するコネクターはありません",
"connectors.details": "詳細",
"connectors.start": "使い始める",
"connectors.account": "アカウント",
"connectors.noAccount": "アカウント未確認",
"connectors.platforms": "対応環境",
"connectors.source": "配布元",
"connectors.version": "バージョン",
"connectors.skills": "関連スキルプラグイン",
"connectors.homepage": "プロジェクトのページ",
"connectors.example": "使用例",
"connectors.waiting": "処理中です。認証を完了し、状態の更新をお待ちください。",
"connectors.authorize": "認証ページを開く",
"connectors.confirm": "操作の確認",
"connectors.continue": "続行",
"connectors.shared": "このコネクターはローカル CLI の認証情報を共有します。接続やアカウント変更は同じ CLI を使用する他のアプリにも影響します。確認して続行してください。",
"connectors.isolated": "認証情報はこのアプリ内に独立して保存されます。",
"connectors.removeInfo": "アプリが管理するコネクターを削除し、共有認証情報は保持します。",
"connectors.invalidUrl": "認証 URL が無効です",
"connectors.openFailed": "リンクを開けませんでした。再試行してください。",
"connectors.startFailed": "タスクを作成できませんでした。再試行してください。",
"connectors.unsupported": "この環境は未対応",
"connectors.action.prepare": "追加",
"connectors.action.authenticate": "アカウントを接続",
"connectors.action.check": "接続を確認",
"connectors.action.deactivate": "無効にする",
"connectors.action.remove": "削除",
"connectors.status.not-installed": "未追加",
"connectors.status.preparing": "準備中",
"connectors.status.needs-auth": "接続が必要",
"connectors.status.authorizing": "認証中",
"connectors.status.ready": "利用可能",
"connectors.status.disabled": "無効",
"connectors.status.error": "対応が必要",
"connectors.feishu.name": "Feishu",
"connectors.dingtalk.name": "DingTalk",
"connectors.wecom.name": "WeCom",
"connectors.feishu.description": "Feishu の文書、予定表、業務連携を管理します。",
"connectors.dingtalk.description": "DingTalk の予定とチーム業務サービスを接続します。",
"connectors.wecom.description": "WeCom でチームと連携します。",
"connectors.feishu.example": "Feishu の今日の予定を一覧表示してください。",
"connectors.dingtalk.example": "DingTalk の今日の予定を一覧表示してください。",
"connectors.wecom.example": "WeCom アカウントで利用できる機能を確認してください。",
"h5Settings.credentialRequired": "リクエスト先の URL を変更する場合は、モデルまたは画像モデルの API キーを再入力してください。パソコンに保存されたキーを新しい送信先へ自動送信することはできません。",
"h5Settings.scope": "モデルとエージェントの設定は接続先のパソコンに適用されます。デスクトップ管理とリモートアクセスの制御はデスクトップで行ってください。",
"h5Settings.providerPrivacy": "保存済み API キーは表示されません。編集時は空欄で既存のキーを保持するか、新しいキーを入力してください。公式アカウントのログインと接続テストはデスクトップで行ってください。",
"h5Settings.browserOnly": "外観と表示言語はこのブラウザーにのみ適用されます。",
"h5Settings.agentPreferences": "エージェントの設定",
"h5Settings.agentPreferencesHint": "これらの既定値はデスクトップと共有されます。既存のセッションへの適用には再起動が必要な場合があります。",
"h5Settings.effort": "推論の強度",
"h5Settings.sendBehavior": "キーボードの送信方法",
"h5Settings.enter": "Enter で送信 · Shift+Enter で改行",
"h5Settings.modifierEnter": "Ctrl/Cmd+Enter で送信 · Enter で改行",
"publicAccess.title": "公開アクセス · ngrok",
"publicAccess.intro": "自分の ngrok アカウントを一度設定すれば、スマートフォンから QR コードでこのパソコンに接続できます。",
"publicAccess.account": "ngrok Authtoken を取得",
"publicAccess.token": "ngrok Authtoken",
"publicAccess.tokenSaved": "認証情報は保存済み · 入力すると置換",
"publicAccess.unconfigured": "未設定",
"publicAccess.disabled": "オフ",
"publicAccess.connecting": "接続中…",
"publicAccess.online": "オンライン",
"publicAccess.reconnecting": "再接続中…",
"publicAccess.failed": "接続失敗",
"publicAccess.authError": "認証に失敗しました。ngrok Authtoken を確認してください。",
"publicAccess.quotaError": "ngrok アカウントの上限に達しました。ダッシュボードを確認してください。",
"publicAccess.networkError": "ネットワークに接続できません。パソコンの接続を確認してください。",
"publicAccess.configurationError": "トンネルを設定できません。ngrok アカウントを確認してください。",
"publicAccess.enable": "公開アクセスを有効にする",
"publicAccess.disable": "公開アクセスを停止",
"publicAccess.deleteCredential": "認証情報を削除",
"publicAccess.autoStart": "デスクトップ起動時に公開アクセスを再開",
"publicAccess.freeNotice": "無料プランには転送量とリクエストの制限があります。スマートフォンに ngrok の案内ページが表示されたら、続行してください。",
"publicAccess.genericError": "操作に失敗しました。再試行してください。",
"publicAccess.copy": "アドレスをコピー",
"publicAccess.pairPhone": "スマートフォンを接続",
"publicAccess.qrAlt": "スキャンしてペアリング",
"publicAccess.qrHint": "有効期限は 5 分、使用は一度限りです。デスクトップで承認してください。",
"publicAccess.pending": "ペアリング要求",
"publicAccess.approve": "承認",
"publicAccess.reject": "拒否",
"publicAccess.devices": "ペアリング済み端末",
"publicAccess.revoke": "解除",
"publicAccess.privacyTitle": "セキュリティとプライバシー",
"publicAccess.consent": "同意して公開アクセスを有効にする",
"publicAccess.phoneIntro": "ブラウザーの名前を入力し、デスクトップで承認してください。",
"publicAccess.phonePending": "デスクトップでの承認を待っています…",
"publicAccess.phoneError": "接続またはペアリングに失敗しました。再試行するか、新しい QR コードをスキャンしてください。",
"publicAccess.phoneUnpaired": "デスクトップで新しいペアリング QR コードを表示してスキャンしてください。",
"publicAccess.deviceName": "端末名",
"publicAccess.requestPair": "ペアリングを要求",
"publicAccess.privacy": "有効にすると、ペアリング済みのスマートフォンでインターネット経由の会話閲覧、指示の送信、承認への応答が可能になります。モデルプロバイダー設定と API キーの追加・変更・削除・切り替え、および一部の一般設定の変更も可能です。操作はこのパソコンで実行されます。\n接続には自分の ngrok アカウントを使用します。標準 HTTPS トンネルは ngrok 側で復号されるため、ngrok は技術的に会話、指示、ファイルの内容、モデル設定、新しく送信した API キーにアクセスできます。中継側に内容を隠すエンドツーエンド暗号化ではありません。\nAuthtoken はローカルのアプリデータフォルダーに保存されます。ローカルアカウントや管理者権限を持つ人が読み取れる可能性があります。アカウントとペアリング情報を保護してください。\nパソコンは起動、オンライン、スリープしていない状態が必要です。無料プランの転送量、リクエスト上限、ブラウザーの案内ページがアクセスに影響する場合があります。いつでも公開アクセスの停止や端末の解除ができます。",
'settings.providers.compatibilityJsonHint': 'requestCompatibility はこのプロバイダーにのみ保存され、グローバル設定には書き込まれません。',
'settings.providers.compatibilityBudget': '応答の出力予算',
'settings.providers.compatibilityBudgetHint': '通常の応答で要求する最大出力トークン数。空欄は自動選択です。短いバックグラウンド要求には小さい予算が維持されます。',
'settings.providers.compatibilityAdvanced': '詳細な互換性設定',
'settings.providers.compatibilityReset': '互換性設定をリセット',
'settings.providers.compatibilityLimit': '既知のエンドポイント出力上限',
'settings.providers.compatibilityLimitHint': 'プロバイダーが明示する上限がある場合のみ入力してください。要求する予算はこの値を超えません。',
'settings.providers.compatibilityTokenField': '出力トークンのパラメーター',
'settings.providers.compatibilityAuto': '自動',
'settings.providers.compatibilityUnknown': '不明',
'settings.providers.compatibilitySupported': '対応',
'settings.providers.compatibilityUnsupported': '非対応',
'settings.providers.compatibilityOmit': '上限を送信しない',
'settings.providers.compatibilitySampling': 'サンプリングパラメーター',
'settings.providers.compatibilityReasoning': '推論パラメーター',
'settings.providers.compatibilityParallelTools': '並列ツール呼び出し',
'settings.providers.compatibilityStructuredOutput': '構造化出力',
'settings.providers.compatibilityNumberError': '正の整数を入力するか、空欄で自動選択してください。',
'settings.providers.compatibilityJsonError': 'リクエストの互換性設定は、有効な選択肢を持つオブジェクトである必要があります。',
'sidebar.projectHistoryFailed': '以前のセッションを読み込めませんでした。',
// ─── Common ──────────────────────────────────────
'common.cancel': 'キャンセル',
'common.close': '閉じる',
'common.save': '保存',
'common.delete': '削除',
'common.add': '追加',
'common.run': '実行',
'common.send': '送信',
'common.stop': '停止',
'common.tokens': '{count} トークン',
'common.rename': '名前を変更',
'common.retry': '再試行',
'common.loading': '読み込み中...',
'common.select': '選択',
'common.enable': '有効化',
'common.disable': '無効化',
'common.active': 'アクティブ',
'common.error': 'エラー',
'common.clearSearch': '検索をクリア',
'common.copyFailed': 'コピーに失敗しました。',
'common.copied': 'コピーしました',
'h5Connect.failed': 'H5 サーバーに接続できません。',
'h5Connect.submit': '接続',
'h5Connect.token': 'H5 トークン',
'h5Connect.serverUrl': 'サーバー URL',
'h5Connect.subtitle': 'デスクトップアプリのサーバー URL と H5 アクセストークンを入力してください。',
'h5Connect.title': 'H5 アクセスに接続',
'attachments.selectionNoteTitle': '修正内容',
'attachments.selectionBatch': '{count} 件のページ修正',
'attachments.selectionItem': '選択要素 {number}:{name}',
'chat.capabilities.managePlugins': 'プラグインを管理',
'chat.capabilities.moreTools': 'その他のツール',
'chat.referenceSearchHint': "入力してセッション、スキル、プラグイン、プロジェクトファイルを検索",
'chat.slashFrequent': 'よく使うコマンド',
'chat.slashSearchHint': '名前を入力してコマンド、スキル、プラグインを検索',
'chat.slashSearchResults': '検索結果',
'chat.pendingMessageQueuedLabel': 'キュー済み',
'repoLaunch.worktreeIsolatedDesc': 'このセッション用に分離された worktree を作成し、マージまで {branch} に影響しません。',
'repoLaunch.worktreeCurrentDesc': 'プロジェクトディレクトリで直接作業し、変更はすぐに {branch} に反映されます。',
'permMode.badge.risky': '高リスク',
'permMode.badge.optIn': '要オプトイン',
'chat.generatingDiagram': '図を生成中…',
'chat.copyReply': '返信をコピー',
'chat.copyPrompt': 'プロンプトをコピー',
'chat.teammateMessage': 'メンバーからのメッセージ',
'chat.copyPath': 'パスをコピー',
'chat.toolResultImage.open': '画像 {index}/{count} を開く',
'chat.toolResultImage.alt': '画像 {index}/{count}',
'chat.toolResultImage.omitted': '表示されていない画像: {count} 件',
'common.dismissNotification': '通知を閉じる',
// ─── Sidebar ──────────────────────────────────────
'sidebar.newSession': '新しいセッション',
'sidebar.scheduled': 'スケジュール',
'sidebar.skills': 'スキル',
'sidebar.terminal': 'ターミナル',
'sidebar.settings': '設定',
'sidebar.searchPlaceholder': 'セッションを検索...',
'sidebar.noSessions': 'セッションがありません',
'sidebar.noMatching': '一致するセッションがありません',
'sidebar.sessionListFailed': 'セッション一覧の読み込みに失敗しました',
'sidebar.refreshSessions': 'セッションを更新',
'search.global.trigger': 'チャットを検索',
'search.global.placeholder': 'すべてのチャットを検索…',
'search.global.recentTitle': '最近のセッション',
'search.global.noResults': '一致する内容が見つかりません',
'search.global.matchCount': '{count} 件一致',
'search.global.truncated': '最初の {count} 件のみ表示しています。キーワードを絞り込んでください',
'search.global.roleUser': 'あなた',
'search.global.roleAssistant': 'アシスタント',
'search.global.loading': '検索中…',
'search.global.error': '検索に失敗しました',
'search.global.close': '閉じる',
'search.findInPage.title': 'ページ内検索',
'search.findInPage.placeholder': '検索',
'search.findInPage.previousMatch': '前の一致',
'search.findInPage.nextMatch': '次の一致',
'search.findInPage.close': '検索バーを閉じる',
'sidebar.projects': 'プロジェクト',
'sidebar.projectMenu': 'プロジェクトメニュー',
'sidebar.newProject': '新しいプロジェクト',
'sidebar.archiveAllChats': 'すべてのチャットをアーカイブ',
'sidebar.organizeSidebar': 'サイドバーを整理',
'sidebar.sortCondition': '並び替え条件',
'sidebar.organizeByProject': 'プロジェクト別',
'sidebar.organizeByRecentProject': '最近のプロジェクト',
'sidebar.organizeByTime': '時間順',
'sidebar.sortByCreatedAt': '作成日時',
'sidebar.sortByUpdatedAt': '更新日時',
'sidebar.newBlankProject': '新しい空のプロジェクト',
'sidebar.newBlankSession': '新しい空のセッション',
'sidebar.projectEditor.createTitle': 'プロジェクトを作成',
'sidebar.projectEditor.editTitle': 'プロジェクトを編集',
'sidebar.projectEditor.name': 'プロジェクト名',
'sidebar.projectEditor.nameHint': '最大 {count} 文字',
'sidebar.projectEditor.nameRequired': 'プロジェクト名を入力してください。',
'sidebar.projectEditor.nameTooLong': 'プロジェクト名は最大 80 文字です。',
'sidebar.projectEditor.sourceFolder': 'ソースフォルダ',
'sidebar.projectEditor.sourceFolderRequired': 'ソースフォルダを選択してください。',
'sidebar.projectEditor.realPath': '実際のパス',
'sidebar.projectEditor.realPathHint': 'このプロジェクトのパスは固定されており、ここでは変更できません。',
'sidebar.projectEditor.restoreFolderName': 'フォルダ名に戻す',
'sidebar.projectEditor.removeFromSidebar': 'サイドバーから削除',
'sidebar.projectEditor.removeFromSidebarHint': 'これはサイドバーからプロジェクトを外すだけです。既存のセッションとファイルは変更されません。',
'sidebar.projectEditor.create': 'プロジェクトを作成',
'sidebar.projectEditor.actionFailed': 'プロジェクトの変更を保存できませんでした。',
'sidebar.useExistingFolder': '既存のフォルダを使用',
'sidebar.chooseProjectFolderUnavailable': 'フォルダの選択はデスクトップアプリでのみ利用できます。',
'sidebar.projectActions': '{project} のプロジェクト操作',
'sidebar.pinProject': 'プロジェクトをピン留め',
'sidebar.unpinProject': 'ピン留めを解除',
'sidebar.openInFileManager.darwin': 'Finder で開く',
'sidebar.openInFileManager.win32': 'エクスプローラーで開く',
'sidebar.openInFileManager.linux': 'ファイルマネージャーで開く',
'sidebar.openInFileManager.default': 'ファイルマネージャーで開く',
'sidebar.openInFileManagerFailed': 'ファイルマネージャーでプロジェクトを開けませんでした。',
'sidebar.openInFileManagerUnavailable': '利用できるファイルマネージャーがありません。',
'sidebar.hideProjectFromSidebar': 'サイドバーから非表示',
'sidebar.restoreProjectToSidebar': 'サイドバーに復元',
'sidebar.restoreHiddenProjects': '非表示のプロジェクトを復元 ({count})',
'sidebar.projectHidden': '{project} をサイドバーから非表示にしました。既存のセッションは削除されていません。',
'sidebar.newSessionInProject': '{project} で新しいセッション',
'sidebar.showMoreSessions': '表示を展開',
'sidebar.showFewerSessions': '表示を折りたたむ',
'sidebar.expandProject': '{project} を展開',
'sidebar.collapseProject': '{project} を折りたたむ',
'sidebar.worktree': 'worktree',
'sidebar.sessionRunning': 'セッション実行中',
'sidebar.sessionNeedsAttention': '承認待ち',
'sidebar.taskView': 'タスクビュー',
'sidebar.tasks': 'タスク',
'sidebar.taskGroup.running': '実行中',
'sidebar.taskGroup.today': '今日',
'sidebar.taskGroup.yesterday': '昨日',
'sidebar.taskGroup.last7Days': '過去 7 日間',
'sidebar.taskGroup.last30Days': '過去 30 日間',
'sidebar.taskGroup.earlier': 'それ以前',
'sidebar.missingDir': 'ディレクトリがありません',
'sidebar.confirmDelete': 'このセッションを削除しますか?この操作は取り消せません。',
'sidebar.batchManage': '一括管理',
'sidebar.batchSelectedCount': '{count} 件選択中',
'sidebar.batchSelectAll': 'すべて選択',
'sidebar.batchDeselectAll': 'すべて選択解除',
'sidebar.batchSelectGroup': '{group} を選択',
'sidebar.batchDeleteSelected': '選択項目を削除 ({count})',
'sidebar.batchDeleteConfirm': '{count} 件のセッションを削除しますか?この操作は取り消せません。',
'sidebar.batchDeleteConfirmBody': '以下のセッションが削除されます:',
'sidebar.batchDeleteMore': '...他 {count} 件',
'sidebar.batchExit': '一括モードをキャンセル',
'sidebar.batchDeleteSucceeded': '{count} 件のセッションを削除しました。',
'sidebar.batchDeleteFailed': '{count} 件のセッションを削除できませんでした。',
'sidebar.allProjects': 'すべてのプロジェクト',
'sidebar.other': 'その他',
'sidebar.timeGroup.today': '今日',
'sidebar.timeGroup.yesterday': '昨日',
'sidebar.timeGroup.last7days': '過去 7 日間',
'sidebar.timeGroup.last30days': '過去 30 日間',
'sidebar.timeGroup.older': 'それ以前',
'sidebar.collapse': 'サイドバーを折りたたむ',
'sidebar.expand': 'サイドバーを展開',
'sidebar.resize': 'サイドバーの幅を調整',
// ─── Title Bar ──────────────────────────────────────
'titlebar.code': 'コード',
'titlebar.terminal': 'ターミナル',
'titlebar.history': '履歴',
// ─── Open Project ──────────────────────────────────────
'openProject.openProject': 'プロジェクトを開く',
'openProject.openIn': '{target} で開く',
'openProject.openFailed': 'プロジェクトを開けませんでした',
// ─── Open With ─────────────────────────────────────
'openWith.title': '開く方法',
'openWith.inAppBrowser': 'アプリ内ブラウザ',
'openWith.systemBrowser': 'システムブラウザ',
'openWith.systemDefault': 'デフォルトのアプリ',
'openWith.workspacePreview': 'ワークスペースプレビュー',
'openWith.openInTarget': '{target} で開く',
'openWith.openInDefaultTarget': '{target} で開く(デフォルト)',
'openWith.openFailed': '{name} を開けませんでした。ファイルが移動または削除された可能性があります。',
'openWith.revealIn.darwin': 'Finder で表示',
'openWith.revealIn.win32': 'エクスプローラーで表示',
'openWith.revealIn.linux': 'ファイルマネージャーで表示',
'openWith.revealIn.default': 'ファイルマネージャーで表示',
'openWith.copyPath': 'パスをコピー',
'openWith.copyFileContent': 'ファイル内容をコピー',
'openWith.fileType.document': 'ドキュメント',
'openWith.fileType.web': 'Web',
'openWith.fileType.image': '画像',
'openWith.fileType.code': 'コード',
'openWith.fileType.spreadsheet': 'スプレッドシート',
'openWith.fileType.presentation': 'プレゼンテーション',
'openWith.fileType.archive': 'アーカイブ',
'openWith.fileType.audio': 'オーディオ',
'openWith.fileType.video': 'ビデオ',
'openWith.fileType.file': 'ファイル',
// ─── Assistant Output Targets ──────────────────────
'assistantOutputs.kind.markdown': 'Markdown',
'assistantOutputs.kind.html': 'HTML',
'assistantOutputs.kind.image': '画像',
'assistantOutputs.kind.localhost': 'Localhost',
'assistantOutputs.moreOutputs': '+{count} 件',
'assistantOutputs.open': '開く',
'assistantOutputs.openAria': '{title} を開く',
// ─── Workspace Panel ───────────────────────────────
'workspace.changedFiles': '変更されたファイル',
'workspace.allFiles': 'すべてのファイル',
'workspace.viewTabs': 'ワークスペースビュー',
'workspace.filterPlaceholder': 'ファイルを絞り込み...',
'workspace.clearFilter': 'ファイルフィルターをクリア',
'workspace.searching': 'ワークスペースを検索中...',
'workspace.searchResults': 'ファイル検索結果',
'workspace.searchResultsTruncated': '最初の {count} 件を表示しています。検索を絞り込んでください。',
'workspace.reviewWorkspace': 'ワークスペースをレビュー',
'workspace.itemsCount': '{count} 項目',
'workspace.filteredItemsCount': '{total} 項目中 {visible} 項目',
'workspace.refresh': 'ワークスペースを更新',
'workspace.resizePanel': 'ワークスペースパネルのサイズを変更',
'workbench.close': '閉じる',
'workspace.panelLabel': 'ワークスペース',
'workspace.tabStrip': 'ワークスペースのタブ',
'workspace.tabClose': '{title} を閉じる',
'workspace.tabCloseCurrent': '閉じる',
'workspace.tabCloseOthers': '他を閉じる',
'workspace.tabCloseRight': '右側を閉じる',
'workspace.tabCloseAll': 'すべて閉じる',
'workspace.tabReopenClosed': '閉じたタブを再度開く',
'workspace.tabMoveToBottom': '下部パネルへ移動',
'workspace.tabMoveToSide': 'ワークスペースパネルへ移動',
'workspace.pickerCancel': 'キャンセル',
'workspace.tabAdd': 'ワークスペースで開く',
'workspace.tabMenu': 'タブ操作',
'workspace.newTabTitle': '新しいタブ',
'workspace.reviewTabTitle': 'レビュー',
'workspace.terminalTabTitle': 'ターミナル {n}',
'workspace.bottomPanelLabel': 'ターミナルパネル',
'workspace.resizeBottomPanel': 'ターミナルパネルの高さを調整',
'workspace.controls.toggleBottom': '下部パネルを切り替え',
'workspace.controls.toggleSide': 'サイドパネルを表示/非表示',
'workspace.browser.suggestions': 'アドレス候補',
'workspace.browser.searchWeb': 'ウェブを検索',
'workspace.browser.visitAddress': 'アドレスを開く',
'workspace.controls.expand': 'ワークスペースを最大化',
'workspace.controls.restore': '分割表示に戻す',
'workspace.controls.bottomPanel': '下部ターミナルの表示切り替え',
'workspace.controls.sidePanel': 'ワークスペースの表示切り替え',
'workspace.launcher.label': 'ワークスペースで開く',
'workspace.launcher.review': 'レビュー',
'workspace.launcher.terminal': 'ターミナル',
'workspace.launcher.browser': 'ブラウザ',
'workspace.launcher.files': 'ファイル',
'workspace.launcher.reviewNeedsGit': 'Git リポジトリではありません',
'workspace.files.filter': 'ファイルを絞り込み…',
'workspace.files.tree': 'ファイルツリー',
'workspace.files.empty': 'ファイルがありません',
'workspace.files.projectRoot': 'プロジェクトルート',
'workspace.files.directoryMissing': 'ディレクトリが見つかりません: {path}',
'workspace.files.directoryError': 'ディレクトリを読み込めません: {path}',
'workspace.files.hidePreview': 'プレビューを非表示',
'workspace.files.showPreview': 'プレビューを表示',
'workspace.files.toggleTree': 'ファイルツリーの表示切り替え',
'workspace.files.breadcrumb': 'ファイルパス',
'workspace.files.noSelection': 'ファイルが選択されていません',
'workspace.files.openContainingFolder': '保存先フォルダーを開く',
'workspace.files.openTitle': 'ファイルを開く',
'workspace.files.pickAFile': '右のツリーからファイルを選んでください',
'workspace.files.openWith': '開く',
'workspace.files.watchFailed': 'ファイル更新が停止しました:{reason}。再読み込みで再試行できます。',
'workspace.files.watchLimit': '自動更新は最初の {count} 個のフォルダーに対応します。その他は手動で再読み込みしてください。',
'workspace.files.refreshFailed': '前回読み込んだ内容を表示しています。更新に失敗しました: {reason}',
'workspace.browser.address': 'アドレス',
'workspace.browser.addressPlaceholder': '検索するかアドレスを入力',
'workspace.browser.back': '戻る',
'workspace.browser.forward': '進む',
'workspace.browser.reload': '再読み込み',
'workspace.browser.stop': '読み込みを停止',
'workspace.browser.menu': 'ブラウザメニュー',
'workspace.browser.findInPage': 'ページ内を検索',
'workspace.browser.findPlaceholder': '検索…',
'workspace.browser.findMatches': '{index}/{total}',
'workspace.browser.findClose': '検索バーを閉じる',
'workspace.browser.print': 'PDF に印刷',
'workspace.browser.zoom': 'ズーム',
'workspace.browser.zoomIn': '拡大',
'workspace.browser.zoomOut': '縮小',
'workspace.browser.zoomReset': 'ズームをリセット',
'workspace.browser.capture': 'スクリーンショットを撮る',
'workspace.browser.pickElement': '要素を選択',
'workspace.browser.annotationActive': '注釈中(Esc で終了)',
'workspace.browser.downloads': 'ダウンロード',
'workspace.browser.downloadsEmpty': 'ダウンロードはありません',
'workspace.browser.revealDownload': 'ダウンロードしたファイルを開く',
'workspace.browser.history': '履歴',
'workspace.browser.historyEmpty': '閲覧履歴はありません',
'workspace.browser.closeOverlay': '閉じる',
'workspace.browser.openExternal': 'システムのブラウザで開く',
'workspace.browser.emptyTitle': 'ブラウズを開始',
'workspace.browser.emptyBody': 'URL を入力してページを開きます',
'workspace.browser.loadFailed': '{url} を読み込めませんでした',
'workspace.browser.pageCrashed': 'ページが応答しなくなり、再読み込みされました。',
'workspace.browser.pageClosed': 'このページはブラウザによって閉じられました。',
'workspace.browser.retry': '再試行',
'workspace.browser.unavailableTitle': '内蔵ブラウザにはデスクトップ版が必要です',
'workspace.browser.unavailableBody': 'この環境にはネイティブのブラウザビューがないため、リンクはシステムのブラウザで開きます。',
'workspace.terminal.restart': 'ターミナルを再起動',
'workspace.terminal.exited': 'このターミナルは終了しました。',
'workspace.review.sourceLabel': '比較対象',
'workspace.review.sourceUnstaged': '未ステージ',
'workspace.review.sourceStaged': 'ステージ済み',
'workspace.review.sourceUncommitted': '未コミットすべて',
'workspace.review.sourceBranch': 'ブランチ: {ref}',
'workspace.review.unstageAll': 'すべてステージ解除',
'workspace.review.stageHunk': 'このハンクをステージ',
'workspace.review.unstageHunk': 'このハンクのステージを解除',
'workspace.review.historyUnavailable': 'このターンのファイルスナップショットは記録されていません。',
'workspace.review.unified': '統合 Diff',
'workspace.review.split': '並列 Diff',
'workspace.review.enableWrap': '行の折り返しを有効化',
'workspace.review.disableWrap': '行の折り返しを無効化',
'workspace.review.collapseFile': 'ファイルの差分を折りたたむ',
'workspace.review.expandFile': 'ファイルの差分を展開',
'workspace.review.openFile': 'ファイルをタブで開く',
'workspace.review.sourceTurn': 'ターンの変更',
'workspace.review.sourceCommit': 'コミット {sha}',
'workspace.review.compareBranch': 'ブランチを比較…',
'workspace.review.viewCommit': 'コミットを表示…',
'workspace.review.branchReference': 'ブランチ参照',
'workspace.review.commitReference': 'コミット参照',
'workspace.review.refRequired': '参照を入力してください。',
'workspace.review.refUnavailable': 'この比較を読み込めません。',
'workspace.review.compare': '比較',
'workspace.review.resolvedBase': 'ベース: {ref}',
'workspace.review.filterFiles': 'ファイルを絞り込み…',
'workspace.review.changeTree': '変更ファイル',
'workspace.review.empty': 'この範囲に変更はありません',
'workspace.review.stage': 'このファイルをステージ',
'workspace.review.unstage': 'ステージを解除',
'workspace.review.revert': '変更を破棄',
'workspace.review.stageAll': 'すべてステージ',
'workspace.review.revertAll': 'すべて破棄',
'workspace.review.refresh': '更新',
'workspace.review.markViewed': '確認済みにする',
'workspace.review.viewed': '確認済み',
'workspace.review.stale': '読み込み後に作業ツリーが変更されました。更新してからやり直してください。',
'workspace.review.failed': 'Git 操作に失敗しました: {reason}',
'workspace.review.revertTitle': '変更を破棄しますか?',
'workspace.review.revertBody': '{count} 個のファイルの作業ツリーの変更を破棄します。実行前に復元用のコピーを保存します。',
'workspace.review.revertUntrackedWarning': '追跡されていないファイルは個別に表示され、一括破棄では削除されません。',
'workspace.review.untracked': '未追跡',
'workspace.review.binary': 'バイナリファイル',
'workspace.review.conflicted': 'コンフリクトあり — ファイル単位の操作のみ',
'workspace.review.notGitRepo': 'このフォルダは Git リポジトリではありません。',
'workspace.review.noHead': 'このリポジトリにはまだコミットがありません。',
'workspace.review.backupSaved': '復元用のコピーを {path} に保存しました',
'workspace.review.sourceTurnHint': '選択したターンで記録されたファイルの変更です。読み取り専用で、その後の編集は含みません。',
'workspace.review.readOnlySource': 'この比較は読み取り専用です。',
'workspace.review.revertDeleteTitle': '変更を破棄して新規ファイルを削除しますか?',
'workspace.review.revertTrackedBody': '追跡済みファイル {count} 件の作業ツリーの変更を破棄します。実行前に復元用のコピーを保存します。',
'workspace.review.revertDeleteBody': '未追跡ファイル {count} 件をディスクから完全に削除します。Git は保存していないため、実行前に保存したコピーだけが復元手段です。',
'workspace.review.revertDeleteList': '削除対象: {paths}',
'workspace.review.revertDeleted': '未追跡ファイル {count} 件を削除しました。残っているコピーは {path} だけです',
'workspace.review.missingWorkdir': 'セッションの作業ディレクトリが存在しません。',
'workspace.review.refusedNoSnapshot': 'ファイルを変更する前に、この比較を読み込んでください。',
'workspace.review.diffTruncated': 'ファイルが大きすぎて差分を表示できません({size})',
'workspace.review.statsTruncated': '大きすぎて未集計',
'workspace.preview': 'プレビュー',
'workspace.loadError': 'ワークスペースデータの読み込みに失敗しました。',
'workspace.previewState.loading': 'プレビューを読み込み中...',
'workspace.previewState.binary': 'バイナリファイルはプレビューできません。',
'workspace.previewState.tooLarge': 'ファイルが大きすぎてプレビューできません。',
'workspace.previewState.missing': 'ファイルが見つかりません。',
'workspace.imagePreviewUnavailable': '画像をプレビューできません。',
'workspace.zoom.group': 'ズーム操作',
'workspace.zoom.in': '拡大',
'workspace.zoom.out': '縮小',
'workspace.zoom.fitWindow': 'ウィンドウに合わせる',
'workspace.zoom.fitWidth': '幅に合わせる',
'workspace.openInSystemApp': 'システムのアプリで開く',
'workspace.document.loading': 'ドキュメントを読み込み中...',
'workspace.document.updating': 'プレビューを更新中...',
'workspace.document.parseFailed': 'このドキュメントを表示できませんでした。',
'workspace.document.retry': '再試行',
'workspace.document.unsupported': 'この種類のファイルはここではプレビューできません。',
'workspace.document.outsideWorkspace': 'このファイルはワークスペースの外にあるため、ここではプレビューできません。',
'workspace.document.passwordProtected': 'この PDF はパスワードで保護されているため、ここではプレビューできません。',
'workspace.document.engineUnavailable': 'この環境ではドキュメントビューアを起動できません。',
'workspace.document.openInBrowser': 'ブラウザで開く',
'workspace.document.tooComplex': 'ファイルが大きすぎる、または複雑すぎるため、安全にプレビューできません。',
'workspace.document.approximate.docx': '簡易プレビュー:数式や一部の図形は表示されない場合があります。正確なレイアウトは元のファイルを開いて確認してください。',
'workspace.document.approximate.xlsx': 'セルを書式設定済みのテキストで表示します。グラフ、画像、数式は表示されません。',
'workspace.pdf.pages': 'ページ',
'workspace.pdf.pageNumber': 'ページ番号',
'workspace.pdf.pageOfTotal': '{total} ページ中 {page} ページ目',
'workspace.pdf.pageFailed': 'このページを描画できませんでした。',
'workspace.sheet.tabs': 'ワークシート',
'workspace.sheet.truncated': '最初の {rows} 行、{columns} 列のみ表示しています。',
'workspace.sheet.showMoreRows': 'さらに行を表示',
'workspace.sheet.empty': 'このワークシートは空です。',
'workspace.previewLineLimit': '読み込まれた {total} 行のうち最初の {count} 行を表示しています。',
'workspace.previewAllLines': '読み込まれた {total} 行すべてを表示しています。',
'workspace.showAllLoadedLines': '読み込まれた行をすべて表示',
'workspace.collapsePreview': 'プレビューを折りたたむ',
'workspace.addSelectionToChat': 'チャットに追加',
'workspace.localComment': 'ローカルコメント',
'workspace.commentLine': '{line} 行目にコメント',
'workspace.commentLineTarget': '{line} 行目',
'workspace.commentLineRangeTarget': '{start}–{end} 行目',
'workspace.commentPlaceholder': 'ここで何を変更すべきか説明してください...',
'workspace.addCommentToChat': 'コメントを追加',
'workspace.diffReview.commentLineAria': '{path} の{side}側 {line} 行目にコメント',
'workspace.diffReview.editorLabel': 'レビューコメント',
'workspace.diffReview.submit': '送信',
'workspace.diffReview.submitAria': 'レビューコメントを送信',
'workspace.diffReview.side.old': '旧',
'workspace.diffReview.side.new': '新',
'workspace.diffReview.selectionReset': '選択をリセットしました。同じ側の同じハンク内の行を選択してください。',
'workspace.diffReview.diffChanged': '差分が更新されました。このコメントを送信するには行を選択し直してください。',
'workspace.diffReview.collapsedSelection': '選択した行は折りたたまれたプレビューの範囲外です。表示中の行を選択し直してください。',
'attachments.remove': '{name} を削除',
'attachments.open': '{name} を開く',
'attachments.previousImage': '前の画像',
'attachments.nextImage': '次の画像',
'attachments.selectionNote': '選択範囲のメモ:{note}',
'attachments.openFailed': '{name} を開けませんでした。ファイルが移動または削除された可能性があります。',
// ─── Status Bar ──────────────────────────────────────
'status.connected': '接続済み',
'status.connecting': '接続中...',
'status.reconnecting': '再接続中...',
'status.disconnected': '切断されました',
// ─── Settings ──────────────────────────────────────
'settings.title': '設定',
'settings.tab.providers': 'モデル設定',
'settings.tab.permissions': '権限',
'settings.tab.activity': 'トークン使用量',
'settings.tab.trace': 'Trace',
'settings.tab.general': '一般',
'settings.tab.h5Access': 'H5 アクセス',
'settings.tab.terminal': 'ターミナル',
'settings.tab.skills': 'スキル',
'settings.tab.mcp': 'MCP',
'settings.tab.plugins': 'プラグイン',
'settings.tab.pets': 'ペット',
'settings.tab.diagnostics': '診断',
// Settings > Pets
'settings.pets.title': 'デスクトップペット',
'settings.pets.subtitle': '現在のタスクを見守り、フォローアップも受け取れる小さな相棒です。',
'settings.pets.enableTitle': 'デスクトップペットを表示',
'settings.pets.enableDescription': '選択したペットをデスクトップのフローティングウィンドウに表示します。',
'settings.pets.loading': 'ペットを読み込み中…',
'settings.pets.loadError': 'ペットを読み込めませんでした。',
'settings.pets.saveError': 'ペット設定を保存できませんでした。',
'settings.pets.retry': '再試行',
'settings.pets.refresh': '更新',
'settings.pets.create': 'ペットを追加',
'settings.pets.createTitle': '自分だけのペットを作る',
'settings.pets.createMethodIntro': '作り方を選んでください。画像はすべて自分のパソコンの中で処理されます。アップロードされず、チャットの利用量も消費しません。',
'settings.pets.createRecommended': 'おすすめ',
'settings.pets.createImageTitle': '手元にある画像を使う',
'settings.pets.createImageDescription': 'キャラクターの画像が 1 枚あれば始められます。そっと呼吸して上下に浮かび、作業中は一緒に動きます。',
'settings.pets.createImageDetail': '1 分ほど · ただし走ったり手を振ったりはしません',
'settings.pets.createImageBadge': 'いちばん手軽',
'settings.pets.createImageHint': 'このあと背景が透明な PNG または WebP を選びます(縦横とも 32〜4096 ピクセル、8MB 以下)。このタイプは軽く揺れるだけで、実際に走ることはありません。走る・跳ぶ・手を振る動きが欲しいときは、前の画面で「AI に走って跳ぶペットを描いてもらう」を選んでください。',
'settings.pets.createImageSubmit': '画像を選んで作る',
'settings.pets.createAtlasTitle': 'アクションシートはもう持っている',
'settings.pets.createAtlasDescription': '描き上がったコマ割りのアクションシートをそのまま読み込み、手順をとばします。',
'settings.pets.createAtlasDetail': 'サイズ計算は不要 · 自動でぴったり合わせます',
'settings.pets.createAtlasSubmit': 'アクションシートを選んで作る',
'settings.pets.createAtlasHint': 'このあと横 8 コマ・縦 9 行のアクションシートを選びます。サイズはぴったりでなくて大丈夫です。自動で切り分けて拡大縮小し、「左に走る」の行はミラーで作られます。完成済みの 1536×2288 のアトラスもそのまま使えます。',
'settings.pets.createAiTitle': 'AI に走って跳ぶペットを描いてもらう',
'settings.pets.createAiDescription': '3 ステップです。プロンプトをコピーし、AI に描いてもらい、その画像を選ぶだけ。プロンプトと見本のテンプレートは用意してあります。',
'settings.pets.createAiDetail': '10 分ほど · 画像を描ける AI が必要です',
'settings.pets.createBack': '別の作り方にする',
'settings.pets.createId': 'ペット ID',
'settings.pets.createIdHint': '英数字の短い名前です。小文字・数字・間のハイフンのみ(例: moon-cat)。',
'settings.pets.createName': '表示名',
'settings.pets.createDescription': '説明',
'settings.pets.createCancel': 'キャンセル',
'settings.pets.createSubmit': '作成',
'settings.pets.guide.intro': '3 ステップ、10 分ほど。すべて自分のパソコンの中で完結します。',
'settings.pets.guide.step1Title': 'AI にアクションシートを描いてもらう',
'settings.pets.guide.step1Body': '画像を描ける AI を開き、下の文章をまるごと送ってください。冒頭の「キャラクター」の 2 行を好きな内容に置き換えます(例:「黄色い帽子をかぶった柴犬」)。',
'settings.pets.guide.step1Tools': 'Nano Banana、ChatGPT の画像生成、Midjourney、Stable Diffusion、Jimeng などが使えます(推奨ではなく一例です)。うまくいかないときは描き直しを頼むか、「キャラクターはそのままで 2 行目だけ描き直して」と伝えてください。',
'settings.pets.guide.prompt': `ゲームキャラクターのアクションシート(スプライトシート)を描いてください。
【キャラクター】
まるい頭のオレンジ色の子猫。青い小さなマフラーを巻いた
三頭身のデフォルメ、3D カートゥーン調、やわらかい光沢、
明るい色づかい。
(この 2 行を好きなキャラクターに置き換えてください。具体的なほど良いです)
【全体の条件】
・背景は完全に透明。背景色、グリッド線、文字、影は入れない
・画像全体を 8 列 × 9 行、合計 72 個の同じ大きさのマスに均等に分割する
・1 マスに 1 コマ。キャラクターはマスの中央に置き、周囲に少し余白を残す
・すべてのマスで同じキャラクター。体型・配色・画風を完全に統一する
・使わないマスは完全に透明のままにする
【各行に描く内容】
1 行目 左から 6 マス:立ち止まり、呼吸でわずかに上下する
2 行目 8 マスすべて:右に走る一連の動き。つねに右を向く
3 行目 左から 4 マス:手を上げて挨拶する
4 行目 左から 5 マス:しゃがむ、跳ぶ、着地する
5 行目 8 マスすべて:がっかりしてうつむき、ため息をつく
6 行目 左から 6 マス:その場で待ちながら、あたりを見回す
7 行目 左から 6 マス:うつむいて作業に集中する
8 行目 8 マスすべて:頭と視線が真上から右へゆっくり回り、右上・右・右下を通って真下の手前まで
9 行目 8 マスすべて:前の行に続き、真下から左へ回り、左下・左・左上を通って真上の手前まで`,
'settings.pets.guide.promptCopy': 'このプロンプトをコピー',
'settings.pets.guide.promptCopied': 'コピーしました',
'settings.pets.guide.copyFailed': '自動でコピーできませんでした。上の文章を選んで手動でコピーしてください。',
'settings.pets.guide.step2Title': 'テンプレートと見比べる',
'settings.pets.guide.step2Body': '画像ができたら、下のテンプレートと見比べて 3 点を確認してください。違っていたら読み込む前に描き直してもらいましょう。',
'settings.pets.guide.check1': '背景が透けている(白ではない)。白い背景はデスクトップ上で四角い板になります',
'settings.pets.guide.check2': '横に 8 コマ、縦に 9 行。1 マスにつき 1 コマ',
'settings.pets.guide.check3': '9 行を通して同じキャラクター。途中で顔や色が変わっていない',
'settings.pets.guide.templateAlt': 'アクションシートのテンプレート: 8 列 9 行、各行に描く内容を注記',
'settings.pets.guide.templateExpand': '画像をタップして全体を表示',
'settings.pets.guide.templateCollapse': '画像をタップして閉じる',
'settings.pets.guide.saveTemplate': 'テンプレートを保存',
'settings.pets.guide.saveFailed': 'テンプレート画像を保存できませんでした。少し待ってからお試しください。',
'settings.pets.guide.step3Title': '選ぶだけ',
'settings.pets.guide.step3Body': '次の画面で名前を入れ、いま作った画像を選びます。サイズを自分で調整する必要はありません。「左に走る」の行も自動でミラー生成されます。',
'settings.pets.guide.continue': '描けた、次へ',
'settings.pets.guide.backToSteps': '手順に戻る',
'settings.pets.createError': 'このペットを作れませんでした。',
'settings.pets.createError.invalidId': 'ペット ID には小文字、数字、間のハイフンのみ使用できます。',
'settings.pets.createError.duplicateId': 'この ID のペットはすでにあります。別の ID にしてください。',
'settings.pets.createError.unsupportedFormat': 'PNG または WebP 形式の画像を選んでください。',
'settings.pets.createError.imageTooLarge': '画像が大きすぎます。8 MB 以下にしてください。',
'settings.pets.createError.imageDimensions': '画像は縦横とも 32〜4096 ピクセル、総画素数 16,777,216 以下にしてください。',
'settings.pets.createError.atlasDimensions': 'この画像は 8 列 × 9 行に分割できません。横 8 コマ・縦 9 行になっているか確認するか、完成済みの 1536×2288 のアトラスを使ってください。',
'settings.pets.createError.opaqueBackground': 'この画像には透明な背景がないため、デスクトップ上で四角い板になってしまいます。背景が透明な PNG(白背景ではないもの)を書き出し直してもらってください。',
'settings.pets.createError.invalidImage': 'この画像を読み込めません。静止画の PNG または WebP を選んでください(アニメーション画像は使えません)。',
'settings.pets.createError.storage': 'ペットをローカルのフォルダーに保存できませんでした。',
'settings.pets.dialog.imageTitle': '背景が透明なペット画像を選択',
'settings.pets.dialog.imageFilter': 'ペット画像',
'settings.pets.dialog.atlasTitle': 'ペットのアクションシートを選択',
'settings.pets.dialog.atlasFilter': 'ペットのアクションシート',
'settings.pets.builtInTitle': '内蔵ペット',
'settings.pets.customTitle': 'あなたのペット',
'settings.pets.customEmpty': 'カスタムペットはまだありません。',
'settings.pets.selected': '選択中',
'settings.pets.select': '選択',
'settings.pets.appearanceTitle': '外観',
'settings.pets.size': 'ペットのサイズ',
'settings.pets.sizeDescription': '96〜192ピクセルの範囲で調整します。',
'settings.pets.motion': 'アニメーションを再生',
'settings.pets.motionDescription': 'オフにしてもペットは利用できますが、動きません。',
'settings.pets.showTaskPanel': '実行中のタスクパネルを表示',
'settings.pets.showTaskPanelDescription': 'タスクの実行中だけ長方形のパネルを表示します。実行中のタスクがなければ常に非表示です。',
'settings.pets.collapsed': '最初は折りたたむ',
'settings.pets.collapsedDescription': 'タスクパネルを開くまでペットだけを表示します。',
'settings.pets.folderTitle': 'カスタムペットフォルダー',
'settings.pets.folderDescription': 'カスタムペットパッケージの保存先:${CLAUDE_CONFIG_DIR:-~/.claude}/cc-haha/pets',
'settings.pets.openFolder': 'フォルダーを開く',
'settings.pets.openFolderError': 'カスタムペットフォルダーを開けませんでした。',
'settings.pets.invalidCustom': '無効なカスタムペットフォルダー {count} 件をスキップしました。',
'settings.pets.builtin.dada': 'アイデアを一つずつ形にしてくれる、落ち着いたコーディングロボット。',
'settings.pets.builtin.huhu': '鉛筆とノートで複雑なタスクの道筋を描く、プランニングロボット。',
'settings.pets.builtin.bubu': 'レンチを手に、不具合を見つけて直すのが得意な修理ロボット。',
'settings.pets.builtin.huihui': '歯車を抱え、新しい返信が届くと元気になるビルドロボット。',
// Desktop pet window
'pet.window.noSessions': '進行中のタスクはありません',
'pet.window.expand': '展開',
'pet.window.collapse': '折りたたむ',
'pet.window.interact': 'ペットと触れ合う',
'pet.window.close': 'ペットを閉じる',
'pet.window.saveError': 'ペット設定を保存できませんでした。もう一度お試しください。',
'pet.window.closeError': 'ペットを閉じられませんでした。もう一度お試しください。',
'pet.window.status.waiting': '入力待ち',
'pet.window.status.failed': '確認が必要',
'pet.window.status.review': 'レビュー待ち',
'pet.window.status.running': '作業中',
'pet.window.status.idle': '待機中',
'pet.window.sessionCount': '{count} 件のタスク',
'pet.window.expandTasks': '実行中のタスク {count} 件を表示',
'pet.window.hideTasks': '実行中のタスク {count} 件を隠す',
'pet.window.untitledSession': '無題のタスク',
// Settings > Usage
'settings.activity.title': 'トークン使用量',
'settings.activity.profileTitle': 'プロフィール',
'settings.activity.profilePrivacy': 'ローカルのみ',
'settings.activity.defaultHandle': 'github.com/NanmiCoder/cc-haha',
'settings.activity.editProfile': 'プロフィールを編集',
'settings.activity.displayName': '表示名',
'settings.activity.subtitle': '2 行目',
'settings.activity.displayNameHelper': '表示名と 2 行目を編集します。2 行目の URL はリンクとして開きます。',
'settings.activity.avatar': 'アバター',
'settings.activity.avatarHelper': 'PNG、JPEG、または WebP(最大 2 MB)。',
'settings.activity.changeAvatar': 'アバターを変更',
'settings.activity.removeAvatar': 'アバターを削除',
'settings.activity.saveProfile': '保存',
'settings.activity.cancelEdit': 'キャンセル',
'settings.activity.profileSaved': 'ローカルに保存しました',
'settings.activity.profileSaveFailed': 'プロフィールを保存できませんでした',
'settings.activity.subtitleLoading': 'ローカルの Claude Code CLI セッション記録に基づきます',
'settings.activity.totalTokens': '合計トークン数',
'settings.activity.peakTokens': 'ピークトークン数',
'settings.activity.longestTask': '最長タスク',
'settings.activity.currentStreak': '現在の連続日数',
'settings.activity.longestStreak': '最長の連続日数',
'settings.activity.noDuration': '0分',
'settings.activity.tokenActivity': 'トークンアクティビティ',
'settings.activity.mode.daily': '日次',
'settings.activity.mode.weekly': '週次',
'settings.activity.mode.cumulative': '累積',
'settings.activity.modeHelp.daily': '日次: 各マスはその日のトークン使用量です。',
'settings.activity.modeHelp.weekly': '週次: 各列は 1 週間のトークン使用量の合計です。',
'settings.activity.modeHelp.cumulative': '累積: 各列はその週までのトークン総数です。',
'settings.activity.emptyTitle': 'ローカルの使用履歴がまだありません',
'settings.activity.emptyBody': 'CLI またはデスクトップセッションを開始すると、完了したモデルの応答がここに表示されます。',
'settings.activity.metric.yesterday': '昨日',
'settings.activity.metric.today': '今日',
'settings.activity.metric.last4': '過去 4 日間',
'settings.activity.metric.last30': '30 日間',
'settings.activity.metric.streak': '連続日数',
'settings.activity.metric.bestStreak': '最高 {days} 日間',
'settings.activity.heatmapLabel': '日別のトークン使用量',
'settings.activity.weekRange': '{start} - {end}',
'settings.activity.cumulativeThrough': '{date} まで',
'settings.activity.tokenValue': '{tokens} トークン',
'settings.activity.count.sessionOne': '{count} セッション',
'settings.activity.count.sessionOther': '{count} セッション',
'settings.activity.count.dayOne': '{count} 日',
'settings.activity.count.dayOther': '{count} 日',
'settings.activity.count.runOne': '{count} 回実行',
'settings.activity.count.runOther': '{count} 回実行',
'settings.activity.weekday.mon': '月',
'settings.activity.weekday.wed': '水',
'settings.activity.weekday.fri': '金',
'settings.activity.selectedDay': '選択した日',
'settings.activity.sessions': 'セッション',
'settings.activity.tokens': 'トークン',
'settings.activity.messages': 'メッセージ',
'settings.activity.tools': 'ツール',
'settings.activity.activityInsights': 'アクティビティ分析',
'settings.activity.activeRate': 'アクティブ率',
'settings.activity.mostUsedModel': '最も使ったモデル',
'settings.activity.exploredSkills': '使用したスキル',
'settings.activity.totalSkillUses': 'スキル使用数',
'settings.activity.totalToolCalls': 'ツール呼び出し',
'settings.activity.freshTokens': '新規トークン',
'settings.activity.cachedTokens': 'キャッシュヒット',
'settings.activity.estimatedCost': '推定コスト',
'settings.activity.ofTotal': '全体の {percent}',
'settings.activity.costExcludesModels': '未価格モデル {count} 件を除く',
'settings.activity.totalSessions': 'セッション総数',
'settings.activity.mostUsedPluginsAndSkills': 'よく使うプラグイン/スキル',
'settings.activity.none': 'なし',
'settings.activity.less': '少ない',
'settings.activity.more': '多い',
// Settings > Terminal
'settings.terminal.title': 'ターミナル',
'settings.terminal.description': 'プラグイン、スキル、MCP のセットアップ用にホストマシンのコマンドを実行します。デスクトップアプリには claude-haha が含まれています。ドキュメントの claude <args> を claude-haha <args> に置き換えてください。例: claude-haha plugin install ... や claude-haha mcp add ...',
'settings.terminal.infoLabel': 'ターミナルセットアップのヘルプ',
'settings.terminal.clear': 'クリア',
'settings.terminal.restart': '再起動',
'settings.terminal.windowTitle': 'ホストシェル',
'settings.terminal.unavailableTitle': 'デスクトップランタイムが必要です',
'settings.terminal.unavailableBody': 'インタラクティブなターミナルを開始するには、このページをパッケージ版デスクトップアプリで開いてください。',
'settings.terminal.preferencesTitle': '起動シェル',
'settings.terminal.preferencesBody': '新しいターミナルセッションと再起動後に使用されます。',
'settings.terminal.startupShell': '起動シェル',
'settings.terminal.customPath': 'カスタムシェルのパス',
'settings.terminal.customPathPlaceholder': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
'settings.terminal.customPathRequired': '保存する前にシェルのパスを入力してください。',
'settings.terminal.customPathAbsolute': 'カスタムシェルのパスは Windows の絶対パスである必要があります。',
'settings.terminal.saveShell': 'シェルを保存',
'settings.terminal.saveShellSuccess': '保存しました。適用するには再起動するか、新しいターミナルを開いてください。',
'settings.terminal.shell.system': 'システムのデフォルト',
'settings.terminal.shell.systemDesc': '現在の COMSPEC ベースの動作を維持します。',
'settings.terminal.shell.pwsh': 'PowerShell 7 (pwsh)',
'settings.terminal.shell.pwshDesc': 'インストールされている場合は pwsh.exe を使用します。',
'settings.terminal.shell.powershell': 'Windows PowerShell',
'settings.terminal.shell.powershellDesc': '組み込みの powershell.exe を使用します。',
'settings.terminal.shell.cmd': 'コマンドプロンプト',
'settings.terminal.shell.cmdDesc': 'cmd.exe を明示的に使用します。',
'settings.terminal.shell.custom': 'カスタム実行ファイル',
'settings.terminal.shell.customDesc': '絶対パスのシェル実行ファイルを起動します。',
'settings.terminal.status.idle': 'アイドル',
'settings.terminal.status.starting': '起動中',
'settings.terminal.status.running': '実行中',
'settings.terminal.status.exited': '終了',
'settings.terminal.status.error': 'エラー',
'settings.terminal.status.unavailable': '利用不可',
'settings.terminal.bashPathLabel': 'Bash のパス',
'settings.terminal.bashPathDescription': 'Windows ではターミナルシェルのデフォルトは CMD です。ツール呼び出しで Unix コマンド(grep、sed など)を使用する場合は、ここで Bash 実行ファイル(例: Git Bash)のパスを設定してください。',
'settings.terminal.bashPathSave': '保存',
'settings.terminal.bashPathReset': 'デフォルトにリセット',
'settings.terminal.bashPathSaved': '保存しました',
'settings.terminal.bashPathInvalid': 'パスが存在しません。有効な Bash 実行ファイルを選択してください。',
'settings.terminal.bashPathBrowse': 'Bash 実行ファイルを選択',
'terminal.newTab': '新しいターミナル',
'terminal.openInTab': 'タブで開く',
'terminal.closePanel': 'ターミナルパネルを閉じる',
'terminal.resizePanel': 'ターミナルパネルのサイズを変更',
// Settings > Diagnostics
'settings.diagnostics.title': '診断',
'settings.diagnostics.description': '起動、プロバイダー、セッションの失敗をデバッグするためのサーバーおよび CLI ランタイムログ。',
'settings.diagnostics.refresh': '更新',
'settings.diagnostics.totalSize': 'ログサイズ',
'settings.diagnostics.events': 'イベント',
'settings.diagnostics.completeEvents': '完全なイベント',
'settings.diagnostics.completeEventsValue': '完全なイベント {count} 件',
'settings.diagnostics.visibleEvents': '表示中のイベント',
'settings.diagnostics.visibleEventsValue': '表示中のイベント {count} 件',
'settings.diagnostics.corruptLinesWarning': '{count} 件の破損した診断レコードが検出されたか、その証跡が保持されています。現在の診断ファイルには {physical} 物理行があります。イベント総数と最近の履歴は不完全な可能性があります。',
'settings.diagnostics.storageLimitExceededWarning': '1 つ以上の診断領域または実行中のライターが、それぞれの保持目標を一時的に超えています。各セグメントが閉じるか保持期限を過ぎるとクリーンアップされます。',
'settings.diagnostics.recentErrors': '24 時間の警告',
'settings.diagnostics.retention': '保持期間',
'settings.diagnostics.retentionValue': '{days} 日 / {size}',
'settings.diagnostics.logDirectory': 'ログディレクトリ',
'settings.diagnostics.openDirectory': '開く',
'settings.diagnostics.exportBundle': 'バンドルをエクスポート',
'settings.diagnostics.copySummary': 'エラー概要をコピー',
'settings.diagnostics.copyIssueReport': 'Issue レポートをコピー',
'settings.diagnostics.issueReportCopied': 'Issue レポートをコピーしました。',
'settings.diagnostics.issueReportCopyFailed': 'Issue レポートをコピーできませんでした。',
'settings.diagnostics.clearLogs': 'ログをクリア',
'settings.diagnostics.recentEvents': '最近のイベント',
'settings.diagnostics.privacyNote': 'Issue レポートとエクスポートバンドルはベストエフォートでサニタイズされ、チャットやファイルの内容、完全な環境変数、API キーを省略します。共有前に非公開メタデータがないか確認してください。',
'settings.diagnostics.noEvents': '診断イベントはまだありません。',
'settings.diagnostics.noRecentErrors': '最近の警告やエラーはありません。',
'settings.diagnostics.loadFailed': '診断情報の読み込みに失敗しました。',
'settings.diagnostics.openFailed': '診断ディレクトリを開けませんでした。',
'settings.diagnostics.exportFailed': '診断バンドルのエクスポートに失敗しました。',
'settings.diagnostics.exported': '{file} をエクスポートしました',
'settings.diagnostics.summaryCopied': 'エラー概要をコピーしました。',
'settings.diagnostics.copyFailed': 'エラー概要のコピーに失敗しました。',
'settings.diagnostics.confirmClear': 'ローカルの診断ログとエクスポート済みバンドルをすべてクリアしますか?',
'settings.diagnostics.cleared': '診断情報をクリアしました。',
'settings.diagnostics.clearFailed': '診断情報のクリアに失敗しました。',
'settings.diagnostics.eventDetails': '詳細',
'settings.diagnostics.localIndex.title': 'ローカルインデックス',
'settings.diagnostics.localIndex.description': 'セッションと診断の読み込みを高速化する、再構築可能なローカル投影です。',
'settings.diagnostics.localIndex.rebuild': 'ローカルインデックスを再構築',
'settings.diagnostics.localIndex.confirmRebuild': '派生ローカルインデックスのみを再構築します。トランスクリプトと設定は変更されません。',
'settings.diagnostics.localIndex.rebuildSucceeded': 'ローカルインデックスを再構築しました。ソース履歴は削除されていません。',
'settings.diagnostics.localIndex.rebuildFailed': 'ローカルインデックスの再構築に失敗しました。',
'settings.diagnostics.localIndex.mode': 'モード',
'settings.diagnostics.localIndex.state': '状態',
'settings.diagnostics.localIndex.indexed': 'インデックス済みソース',
'settings.diagnostics.localIndex.degradedSources': '縮退ソース',
'settings.diagnostics.localIndex.databaseSize': 'データベース',
'settings.diagnostics.localIndex.walSize': 'WAL',
'settings.diagnostics.localIndex.lastUpdated': '最終更新',
'settings.diagnostics.localIndex.errorCode': 'エラーコード',
'settings.diagnostics.localIndex.never': '未実行',
'settings.diagnostics.localIndex.none': 'なし',
'settings.diagnostics.localIndex.unavailable': 'ローカルインデックスの状態を取得できません。既存の診断機能は引き続き利用できます。',
'settings.diagnostics.localIndex.buildingMessage': 'バックグラウンドでインデックスを構築中です。セッション履歴は引き続き利用できます。',
'settings.diagnostics.localIndex.degradedMessage': 'ローカルインデックスは縮退しています。ファイルベースのフォールバックは引き続き利用できます。',
'settings.diagnostics.localIndex.mode.off': 'オフ',
'settings.diagnostics.localIndex.mode.shadow': 'シャドー',
'settings.diagnostics.localIndex.mode.on': 'オン',
'settings.diagnostics.localIndex.state.off': 'オフ',
'settings.diagnostics.localIndex.state.building': '構築中',
'settings.diagnostics.localIndex.state.ready': '準備完了',
'settings.diagnostics.localIndex.state.degraded': '縮退',
'settings.diagnostics.eventId': 'イベント ID',
'settings.diagnostics.copyEventId': 'イベント ID をコピー',
'settings.diagnostics.eventIdCopied': 'イベント ID をコピーしました。',
'settings.diagnostics.eventIdCopyFailed': 'イベント ID をコピーできませんでした。',
'settings.diagnostics.doctorTitle': 'Doctor',
'settings.diagnostics.doctorDescription': '保護されたユーザーとプロジェクトの状態を変更せずに確認します。',
'settings.diagnostics.doctorProtectedData': 'チャット履歴、モデル設定、スキル、MCP、IM、OAuth は常に保護されます。',
'settings.diagnostics.doctorSafeKeys': 'リセットで削除されるのは次のみ: cc-haha-open-tabs、cc-haha-session-runtime、cc-haha-theme、cc-haha-locale、cc-haha-app-zoom、cc-haha-ui-zoom、cc-haha.persistence.schemaVersion。',
'settings.diagnostics.runDoctor': 'Doctor を実行',
'settings.diagnostics.resetSafeUiState': '安全な UI 状態をリセット',
'settings.diagnostics.confirmResetSafeUiState': '上記の再生成可能なデスクトップ UI キーだけをリセットしますか?保護されたユーザーとプロジェクトのデータは変更されません。',
'settings.diagnostics.doctorCheckCompleted': 'Doctor のチェックが完了しました。',
'settings.diagnostics.doctorResetCompleted': '安全な UI 状態のリセットが完了しました。',
'settings.diagnostics.doctorPartial': '安全な UI 状態のリセットは完了しましたが、{count} 件のキーで失敗しました。',
'settings.diagnostics.doctorFailed': 'Doctor が失敗しました。',
'settings.diagnostics.doctorScope': '範囲',
'settings.diagnostics.doctorScopeProject': 'ユーザーとアクティブなプロジェクト',
'settings.diagnostics.doctorScopeUser': 'ユーザーのみ',
'settings.diagnostics.doctorSummary': '正常: {healthy} · 未設定: {neutral} · 不足: {missing} · 無効: {invalid}',
'settings.diagnostics.doctorFindings': 'Doctor の検出結果',
'settings.diagnostics.doctorNoFindings': '不足または無効な項目はありません。',
'settings.diagnostics.doctorStatusHealthy': '正常',
'settings.diagnostics.doctorStatusNotConfigured': '未設定',
'settings.diagnostics.doctorStatusMissing': '不足',
'settings.diagnostics.doctorStatusInvalidJson': '無効な JSON',
'settings.diagnostics.doctorStatusInvalidJsonl': '無効な JSONL',
'settings.diagnostics.doctorStatusInvalidSchema': '無効なスキーマ',
'settings.diagnostics.doctorStatusUnreadable': '読み取り不可',
'settings.diagnostics.doctorRemovedKeys': '削除したキー',
'settings.diagnostics.doctorFailedKeys': '失敗したキー',
'settings.diagnostics.doctorNoKeys': 'なし',
'errorBoundary.title': '問題が発生しました。',
'errorBoundary.description': 'エラーは診断に記録されました。',
'errorBoundary.item': 'この項目は表示できませんでした。エラーは診断に記録されました。',
// Settings > Claude Official Login
'settings.claudeOfficialLogin.intro': '公式 Claude モデルを使用するには、Claude.ai アカウントにサインインする必要があります。下のボタンをクリックすると、ブラウザで公式 Claude ログインページが開きます。承認後、ここに戻ります。',
'settings.claudeOfficialLogin.loginButton': 'Claude にサインイン',
'settings.claudeOfficialLogin.loginStarting': '起動中…',
'settings.claudeOfficialLogin.logoutButton': 'サインアウト',
'settings.claudeOfficialLogin.logoutProcessing': '処理中…',
'settings.claudeOfficialLogin.loggedInPrefix': 'サインイン済み (Claude',
'settings.claudeOfficialLogin.subTypeUnknown': '不明',
'settings.claudeOfficialLogin.errorPrefix': 'エラー: ',
'settings.claudeOfficialLogin.openBrowserFailed': 'ブラウザを開けませんでした。承認 URL に手動でアクセスしてください。',
// Settings > ChatGPT Official Login
'settings.chatgptOfficialLogin.intro': 'デスクトップセッションで GPT モデルを使用するには、ChatGPT でサインインしてください。',
'settings.chatgptOfficialLogin.loginButton': 'ChatGPT でサインイン',
'settings.chatgptOfficialLogin.loginStarting': 'サインインを開始中...',
'settings.chatgptOfficialLogin.logoutButton': 'サインアウト',
'settings.chatgptOfficialLogin.logoutProcessing': 'サインアウト中...',
'settings.chatgptOfficialLogin.loggedInPrefix': 'サインイン中:',
'settings.chatgptOfficialLogin.accountUnknown': 'ChatGPT アカウント',
'settings.chatgptOfficialLogin.openBrowserFailed': 'ブラウザを開けません。承認リンクをコピーして手動で開いてください。',
'settings.chatgptOfficialLogin.copyAuthorizeUrl': '承認リンクをコピー',
'settings.chatgptOfficialLogin.copyLinkFailed': '承認リンクをコピーできません。',
'settings.chatgptOfficialLogin.errorPrefix': 'ChatGPT OAuth エラー: ',
'settings.grokOfficialLogin.intro': 'デスクトップセッションで公式 Grok モデルを使用するには、Grok でサインインしてください。',
'settings.grokOfficialLogin.loginButton': 'Grok でサインイン',
'settings.grokOfficialLogin.loginStarting': 'サインインを開始中...',
'settings.grokOfficialLogin.logoutButton': 'サインアウト',
'settings.grokOfficialLogin.logoutProcessing': 'サインアウト中...',
'settings.grokOfficialLogin.loggedInPrefix': 'サインイン中:',
'settings.grokOfficialLogin.accountUnknown': 'Grok アカウント',
'settings.grokOfficialLogin.openBrowserFailed': 'ブラウザを開けません。承認リンクをコピーして手動で開いてください。',
'settings.grokOfficialLogin.copyAuthorizeUrl': '承認リンクをコピー',
'settings.grokOfficialLogin.copyLinkFailed': '承認リンクをコピーできません。',
'settings.grokOfficialLogin.errorPrefix': 'Grok OAuth エラー: ',
// Settings > Providers
'settings.providers.title': 'モデル管理',
'settings.providers.description': 'モデル、API エンドポイント、認証情報を設定します。',
'settings.providers.addProvider': 'モデルを追加',
'settings.providers.officialName': 'Claude 公式',
'settings.providers.officialDesc': 'Anthropic ネイティブ — API キー不要',
'settings.providers.openaiOfficialName': 'ChatGPT 公式',
'settings.providers.openaiOfficialDesc': 'ChatGPT アカウントによる OpenAI OAuth — API キー不要',
'settings.providers.officialModelsTitle': 'OAuth モデルマッピング',
'settings.providers.officialModelsDesc': 'Claude の各モデルエイリアスで使用する OAuth モデルを選択します。候補はログイン中のプロバイダーアカウントから取得します。',
'settings.providers.officialModelsAvailableGroup': '利用可能な OAuth モデル',
'settings.providers.officialModelsPick': 'OAuth モデル一覧から{label}を選択',
'settings.providers.officialModelsNoMatches': '一致する OAuth モデルがありません。モデル ID を直接入力できます。',
'settings.providers.officialModelsSave': 'モデルマッピングを保存',
'settings.providers.officialModelsSaved': 'モデルマッピングを保存しました',
'settings.providers.officialModelsLoadError': 'OAuth モデルマッピングを読み込めませんでした。',
'settings.providers.officialModelsSaveError': 'OAuth モデルマッピングを保存できませんでした。',
'settings.providers.grokOfficialName': 'Grok 公式',
'settings.providers.grokOfficialDesc': 'xAI アカウントによる公式 Grok OAuth — API キー不要',
'settings.providers.connected': '接続済み ({latency}ms)',
'settings.providers.failed': '失敗: {error}',
'settings.providers.connectivityOk': '① 接続 ({latency}ms)',
'settings.providers.connectivityFailed': '① 接続に失敗しました: {error}',
'settings.providers.proxyOk': '② プロキシパイプライン ({latency}ms)',
'settings.providers.proxyFailed': '② プロキシ失敗: {error}',
'settings.providers.confirmDelete': 'モデル設定「{name}」を削除しますか?この操作は取り消せません。',
'settings.providers.activate': '有効化',
'settings.providers.default': 'デフォルト',
'settings.providers.setDefault': 'デフォルトに設定',
'settings.providers.test': 'テスト',
'settings.providers.edit': '編集',
'settings.providers.dragToReorder': 'ドラッグして並べ替え',
'settings.providers.requestFailed': 'リクエストに失敗しました',
'settings.providers.addTitle': 'モデルを追加',
'settings.providers.editTitle': 'モデルを編集',
'settings.providers.new': '新着',
'settings.providers.sponsor': 'スポンサー',
'settings.providers.preset': 'プリセット',
'settings.providers.name': '設定名',
'settings.providers.namePlaceholder': '設定名',
'settings.providers.notes': 'メモ',
'settings.providers.notesPlaceholder': '任意のメモ...',
'settings.providers.baseUrl': 'ベース URL',
'settings.providers.baseUrlPlaceholder': 'https://api.example.com/anthropic',
'settings.providers.baseUrlHelp': 'ベース URL の入力説明',
'settings.providers.baseUrlTooltip': '/v1 より前のエンドポイントを入力してください。後続のパスは自動的に補完されます。',
'settings.providers.endpointRegion': 'サービス地域',
'settings.providers.regionChina': '中国本土',
'settings.providers.regionGlobal': 'グローバル',
'settings.providers.regionCustom': 'カスタム',
'settings.providers.apiKey': 'API キー',
'settings.providers.apiKeyKeep': 'API キー(空欄のままにすると現在の値を保持)',
'settings.providers.showApiKey': 'API キーを表示',
'settings.providers.hideApiKey': 'API キーを非表示',
'settings.providers.getApiKey': 'API キーを取得',
'settings.providers.modelMapping': 'モデルマッピング',
'settings.providers.mainModel': 'メインモデル',
'settings.providers.fableModel': 'Fable モデル',
'settings.providers.haikuModel': 'Haiku モデル',
'settings.providers.sonnetModel': 'Sonnet モデル',
'settings.providers.opusModel': 'Opus モデル',
'settings.providers.model1mSupportShort': '1M',
'settings.providers.model1mSupportHint': '「1M」は、そのモデルのエンドポイントが実際に 100 万トークンのコンテキストに対応している場合のみチェックしてください。誤ってチェックすると自動圧縮が働かなくなります。',
'settings.providers.model1mSupportTooltip': 'このモデルのエンドポイントが 100 万トークンのコンテキストに対応していることを宣言します。モデル名に [1m] が付き、コンテキストウィンドウは 1,000,000 に設定されます。実際のウィンドウが 1M より小さい場合、自動圧縮は実行されず、リクエストはプロバイダーのコンテキスト上限に達します。チェックを外すとプリセットのウィンドウに戻ります。',
'settings.providers.modelIdPlaceholder': '例: deepseek-v4-flash',
'settings.providers.sameAsMain': 'メインと同じ',
'settings.providers.fableModelPlaceholder': '空欄の場合は Claude Code が決定',
'settings.providers.contextSettingsTitle': 'コンテキストと自動コンパクト',
'settings.providers.contextSettingsDesc': 'プリセットの上限は自動的に適用されます。プロバイダーが上限を変更した場合やカスタムモデル ID を使用する場合のみ編集してください。',
'settings.providers.contextSettingsEdit': '詳細設定',
'settings.providers.contextSettingsHide': '非表示',
'settings.providers.contextSummaryAuto': '設定済みモデルを自動検出します。不明なモデルは組み込みのフォールバックを使用します',
'settings.providers.contextFallbackAuto': '不明なモデル: 自動',
'settings.providers.contextFallbackSummary': '不明なモデル: {tokens}',
'settings.providers.modelContextWindows': 'モデルのコンテキストウィンドウ',
'settings.providers.mainContextWindow': 'メインモデルのコンテキスト',
'settings.providers.haikuContextWindow': 'Haiku モデルのコンテキスト',
'settings.providers.sonnetContextWindow': 'Sonnet モデルのコンテキスト',
'settings.providers.opusContextWindow': 'Opus モデルのコンテキスト',
'settings.providers.contextWindowPlaceholder': '例: 200000',
'settings.providers.modelContextWindowsDesc': '各モデルの実際のコンテキストウィンドウを使用します。プリセットは自動的に入力されます。空欄の場合は組み込み検出または 200K にフォールバックします。',
'settings.providers.modelContextWindowNumberError': '整数を入力してください。',
'settings.providers.modelContextWindowRangeError': '16000 から 10000000 の間で指定してください。',
'settings.providers.autoCompactWindow': '不明なモデルのフォールバックウィンドウ',
'settings.providers.autoCompactWindowPlaceholder': '任意、例: 200000',
'settings.providers.autoCompactWindowDesc': 'コンテキストウィンドウを識別できないモデルはこの値をそのまま使用します。識別できるモデルは両者のうち小さい方を使うため、この値でウィンドウを小さくすることはできても大きくすることはできません。',
'settings.providers.autoCompactWindowNumberError': '整数を入力してください。',
'settings.providers.autoCompactWindowRangeError': '16000 から 10000000 の間で指定してください。',
'settings.providers.testConnection': '接続をテスト',
'settings.providers.settingsJson': '設定 JSON',
'settings.providers.settingsJsonDesc': '~/.claude/cc-haha/settings.json — 直接編集できます。保存時に書き込まれます。',
'settings.providers.jsonError': 'JSON 構文エラー: {error}',
'settings.providers.apiFormat': 'API 形式',
'settings.providers.apiFormatAnthropic': 'Anthropic Messages(ネイティブ)',
'settings.providers.apiFormatOpenaiChat': 'OpenAI Chat Completions(プロキシ)',
'settings.providers.apiFormatOpenaiResponses': 'OpenAI Responses API(プロキシ)',
'settings.providers.multiProtocolBadge': 'マルチプロトコル',
'settings.providers.apiFormatPerModelHint': 'このプリセットはモデルごとにプロトコルを選ぶため、この項目は固定です',
'settings.providers.proxyHint': 'リクエストはローカルプロキシ経由で変換されます',
'settings.providers.apiFormatOverrideHint': 'プロトコルを変更しました。プリセットの既定 URL が対応しているとは限らないため、このプロトコルに対応したエンドポイントを指定してください',
'settings.providers.authStrategy': '認証変数',
'settings.providers.authStrategyApiKey': 'API キー (ANTHROPIC_API_KEY)',
'settings.providers.authStrategyApiKeyDesc': 'x-api-key を使用した Anthropic API への直接アクセス。',
'settings.providers.authStrategyAuthToken': 'Bearer トークン (ANTHROPIC_AUTH_TOKEN)',
'settings.providers.authStrategyAuthTokenDesc': 'Authorization Bearer を使用する、ほとんどのサードパーティ製 Anthropic 互換サービス向け。',
'settings.providers.authStrategyAuthTokenEmptyApiKey': 'Bearer + 空の API_KEY',
'settings.providers.authStrategyAuthTokenEmptyApiKeyDesc': 'Anthropic API キーへのフォールバックを避ける必要がある OpenRouter / Ollama 形式の構成向け。',
'settings.providers.authStrategyDualSameToken': '両方の変数にトークンを書き込む',
'settings.providers.authStrategyDualSameTokenDesc': '両方の変数をチェックする Hugging Face Router などのサービス向け。',
'settings.providers.authStrategyDualDummy': '両方の変数にダミー値を書き込む',
'settings.providers.authStrategyDualDummyDesc': 'プレースホルダーの認証値のみが必要な、ローカルの vLLM 互換サービス向け。',
'settings.providers.toolSearchEnabled': 'Tool Search を有効にする',
'settings.providers.toolSearchDesc': 'デフォルトでは無効です。モデルと最終アップストリームが tool_reference をサポートする場合のみ有効にしてください。非対応のプロバイダーは HTTP 400 を返すことがあります。',
'settings.providers.toolSearchUnsupported': 'ここでは Anthropic Messages 形式のプロバイダーのみ Tool Search をサポートします。OpenAI プロキシ形式では完全なツール schema を維持します。',
'settings.providers.toolSearchConfirmTitle': 'Tool Search を有効にしますか?',
'settings.providers.toolSearchConfirmBody': 'Anthropic が Tool Search をサポートするモデルを使用し、最終 LLM アップストリームまたはゲートウェイも defer_loading と tool_reference を明示的にサポートする場合のみ有効にしてください。',
'settings.providers.toolSearchConfirmRisk': 'LM Studio、Ollama、および多くのサードパーティ互換エンドポイントでは HTTP 400 が返され、現在のセッションを継続できなくなる可能性があります。',
'settings.providers.toolSearchConfirmEnable': '有効にする',
'settings.providers.disableExperimentalBetas': '実験的な Beta ヘッダーを無効化',
'settings.providers.disableExperimentalBetasDesc': 'このプロバイダーに CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定し、サードパーティゲートウェイが拒否する可能性のある beta API 形式を避けます。GPT および o シリーズのモデルには Session で選択した推論強度が引き続き転送されます。その他の Anthropic 互換モデルへの直接接続では、ゲートウェイの既定値に戻る場合があります。',
'settings.providers.supportsNestedToolResultMedia': 'ツール結果のメディアを保持',
'settings.providers.nestedToolResultMediaDesc': 'Anthropic 互換エンドポイントがネストされたメディアに対応している場合、画像とファイルを tool result 内に保持します。ネストされたメディアを表示できないサードパーティエンドポイントでは、このオプションをオフにすると画像とファイルが独立したコンテンツブロックに引き上げられます。',
'settings.providers.nestedToolResultMediaUnsupported': 'ツール結果のネストされたメディアを設定できるのは Anthropic Messages プロバイダーのみです。',
'settings.providers.imageGenerationEnabled': '画像生成を有効にする',
'settings.providers.imageGenerationEnabledDesc': 'OpenAI 互換 Images API を通じてチャットから画像を生成します。認証情報は Skill ではなくプロバイダー設定に保存されます。',
'settings.providers.imageGenerationModel': '画像モデル',
'settings.providers.imageGenerationModelPlaceholder': 'gpt-image-2',
'settings.providers.imageGenerationModelHint': '必須。この上流が公開する画像モデル ID を入力してください。',
'settings.providers.imageGenerationBaseUrl': '画像 API ベース URL',
'settings.providers.imageGenerationBaseUrlPlaceholder': 'https://api.example.com/v1',
'settings.providers.imageGenerationBaseUrlHint': '任意。空欄の場合はチャットプロバイダーのベース URL を再利用します。',
'settings.providers.imageGenerationApiKey': '画像 API キー',
'settings.providers.imageGenerationApiKeyHint': '任意。空欄の場合はチャットプロバイダーの API キーを再利用します。',
'settings.providers.fetchModels': 'モデルを取得',
'settings.providers.fetchModelsHint': '先にベース URL を入力してください。',
'settings.providers.fetchModelsApiKeyHint': 'モデル一覧を取得するには API キーを入力してください。',
'settings.providers.fetchModelsSupportHint': '上流プロバイダーがモデル一覧エンドポイントを公開している場合のみ取得できます。',
'settings.providers.fetchModelsLoaded': 'モデル一覧を取得しました({count} 件)。選択しても、手入力を続けても構いません。',
'settings.providers.fetchModelsToast': 'モデル一覧を取得しました。ドロップダウンからモデルを選択できます。',
'settings.providers.fetchModelsEmpty': 'モデルが見つかりません。モデル ID を手入力してください。',
'settings.providers.fetchModelsPick': '取得したリストから{label}を選択',
'settings.providers.fetchModelsGroupOther': 'その他',
'settings.providers.fetchModelsMoreResults': 'さらにモデルがあります。入力して候補を絞り込んでください。',
'settings.providers.fetchModelsErrorMissingConfig': 'ベース URL と API キーが必要です。',
'settings.providers.fetchModelsErrorAuthFailed': 'API キーが拒否されました。キーと認証変数を確認してください。',
'settings.providers.fetchModelsErrorEndpointNotFound': 'このベース URL 配下にモデル一覧のエンドポイントが見つかりません。',
'settings.providers.fetchModelsErrorTimeout': 'プロバイダーからの応答がタイムアウトしました。',
'settings.providers.fetchModelsErrorNotSupported': 'このプロバイダーはモデル一覧を公開していません。モデル ID を手入力してください。',
'settings.providers.fetchModelsErrorNetwork': 'プロバイダーに接続できません。ベース URL とネットワークを確認してください。',
'settings.providers.fetchModelsErrorUnknown': 'モデル一覧を取得できませんでした。',
'settings.providers.fetchModelsErrorUpstream': 'プロバイダーの応答:',
'settings.providers.ccSwitch.importButton': 'cc-switch からインポート',
'settings.providers.ccSwitch.title': 'cc-switch からインポート',
'settings.providers.ccSwitch.description': 'インポートする cc-switch のプロバイダーを選択してください。既存のプロバイダーは変更されません。',
'settings.providers.ccSwitch.scanning': 'cc-switch の設定を読み込んでいます',
'settings.providers.ccSwitch.unavailableTitle': 'cc-switch の設定を読み込めません',
'settings.providers.ccSwitch.unavailableNotFound': 'cc-switch の設定が見つかりません。cc-switch をインストールし、プロバイダーを 1 つ以上追加してください。',
'settings.providers.ccSwitch.unavailableUnreadable': 'cc-switch の設定を読み取れませんでした。ファイルの権限を確認して再試行してください。',
'settings.providers.ccSwitch.unavailableSchema': 'この cc-switch のバージョンは cc-haha がまだ認識できない構造で設定を保存しています。cc-haha を更新するか、手動でプロバイダーを追加してください。',
'settings.providers.ccSwitch.unavailableTooOld': 'この cc-switch は、cc-switch 自身がすでにサポートしていない形式で設定を保存しています。インポートには cc-switch v3.1.0 以降が必要です。',
'settings.providers.ccSwitch.unavailableSqlite': 'このビルドでは cc-switch のデータベースを開けません。手動でプロバイダーを追加してください。',
'settings.providers.ccSwitch.configDir': '設定ディレクトリ: {path}',
'settings.providers.ccSwitch.emptyTitle': 'インポートできる項目がありません',
'settings.providers.ccSwitch.emptyDesc': 'cc-switch は見つかりましたが、プロバイダーが設定されていません。',
'settings.providers.ccSwitch.selectAll': 'すべて選択',
'settings.providers.ccSwitch.selectNone': '選択を解除',
'settings.providers.ccSwitch.selectedCount': '{total} 件中 {selected} 件を選択',
'settings.providers.ccSwitch.currentBadge': '使用中',
'settings.providers.ccSwitch.duplicateBadge': '既に存在',
'settings.providers.ccSwitch.duplicateHint': '既存のプロバイダー「{name}」と重複しています。',
'settings.providers.ccSwitch.appTypeClaude': 'Claude Code',
'settings.providers.ccSwitch.appTypeClaudeDesktop': 'Claude Desktop',
'settings.providers.ccSwitch.skipNoBaseUrl': 'インポート不可: ベース URL がありません。',
'settings.providers.ccSwitch.skipNoApiKey': 'インポート不可: API キーが保存されていません。',
'settings.providers.ccSwitch.skipNoModel': 'インポート不可: モデルが設定されていません。',
'settings.providers.ccSwitch.skipUnsupportedFormat': 'インポート不可: 対応していない API 形式です。',
'settings.providers.ccSwitch.skipFullUrlEndpoint': 'インポート不可: Base URL が完全なエンドポイントのため未対応です。',
'settings.providers.ccSwitch.skipUnknown': 'このプロバイダーはインポートできません。',
'settings.providers.ccSwitch.importAction': 'インポート ({count})',
'settings.providers.ccSwitch.scanFailed': 'cc-switch の設定を読み込めませんでした。',
'settings.providers.ccSwitch.importFailed': 'インポートに失敗しました。',
'settings.providers.ccSwitch.importedSummary': '{imported} 件をインポート、{skipped} 件をスキップしました。',
// Settings > Permissions
'settings.permissions.title': '権限モード',
'settings.permissions.description': 'ツール実行の権限の扱い方を制御します。',
'settings.permissions.default': '権限を確認',
'settings.permissions.defaultDesc': 'ツールを実行する前に確認します',
'settings.permissions.acceptEdits': '編集を承認',
'settings.permissions.acceptEditsDesc': 'ファイル編集は自動承認し、それ以外は確認します',
'settings.permissions.plan': 'プランモード',
'settings.permissions.planDesc': '実行せずに思考と計画を行います',
'settings.permissions.bypass': 'すべてバイパス',
'settings.permissions.bypassDesc': 'すべての権限チェックをスキップします(危険)',
// Settings > Adapters
'settings.tab.adapters': 'IM アダプター',
'settings.adapters.description': 'Telegram、Feishu、WeChat、DingTalk、WhatsApp、WeCom、QQ、Slack 経由で Claude Code とチャットできるよう IM アダプターを設定します。詳しい設定手順は',
'settings.adapters.configurationDocs': 'ドキュメントリンク',
'settings.adapters.descriptionAfterDocs': 'を参照してください。',
'settings.adapters.imTabs': 'IM アダプター',
'settings.adapters.telegram': 'Telegram',
'settings.adapters.feishu': 'Feishu',
'settings.adapters.wechat': 'WeChat',
'settings.adapters.dingtalk': 'DingTalk',
'settings.adapters.whatsapp': 'WhatsApp',
'settings.adapters.botToken': 'Bot トークン',
'settings.adapters.botTokenPlaceholder': '@BotFather から取得したトークンを貼り付け',
'settings.adapters.appId': 'App ID',
'settings.adapters.appIdPlaceholder': '例: cli_xxx',
'settings.adapters.appSecret': 'App Secret',
'settings.adapters.appSecretPlaceholder': 'Feishu 開放プラットフォームから取得',
'settings.adapters.feishuCreateBotTitle': 'Feishu ボットが必要ですか?',
'settings.adapters.feishuCreateBotDesc': '必要な権限が設定済みの Feishu ボットを、ドキュメント記載の OpenClaw テンプレートで作成します。その後、下に App ID と App Secret を貼り付けてください。',
'settings.adapters.feishuCreateBotAction': 'Feishu ボットを作成',
'settings.adapters.feishuCreateBotStepCreate': 'テンプレートからボットを作成します。',
'settings.adapters.feishuCreateBotStepFill': 'その App ID と App Secret をコピーして、ここに入力します。',
'settings.adapters.encryptKey': 'Encrypt Key',
'settings.adapters.encryptKeyPlaceholder': '任意',
'settings.adapters.verificationToken': 'Verification Token',
'settings.adapters.verificationTokenPlaceholder': '任意',
'settings.adapters.allowedUsers': '許可ユーザー',
'settings.adapters.allowedUsersHint': 'カンマ区切り。空欄の場合はペア済みユーザーのみ許可します。',
'settings.adapters.tgAllowedUsersPlaceholder': '例: 123456789, 987654321',
'settings.adapters.fsAllowedUsersPlaceholder': '例: ou_xxx, ou_yyy',
'settings.adapters.wcAllowedUsersPlaceholder': '例: wx_user_id_1, wx_user_id_2',
'settings.adapters.dtAllowedUsersPlaceholder': '例: manager001, staff_yyy',
'settings.adapters.waAllowedUsersPlaceholder': '例: 15551234567@s.whatsapp.net',
'settings.adapters.defaultProject': 'デフォルトプロジェクト',
'settings.adapters.defaultProjectHint': '新しい IM セッションのデフォルト作業ディレクトリ。空欄の場合、ボットは現在のユーザーの作業ディレクトリを使用します。',
'settings.adapters.clearDefaultProject': 'デフォルトプロジェクトをクリア',
'settings.adapters.allowedRoots': 'アクセスを許可するプロジェクトディレクトリ',
'settings.adapters.allowedRootsHint': 'IM ボットの境界です。これらのディレクトリ内のプロジェクトのみ一覧表示・オープン・セッション開始ができます。空欄の場合は既定値を使用します。',
'settings.adapters.allowedRootsOverridden': '{platforms} は adapters.json で個別に設定されているため、ここでの変更は {platforms} には反映されません。',
'settings.adapters.allowedRootsDefault': '既定:ホームディレクトリ(既定プロジェクトがホーム外にある場合はそれも含みます)。',
'settings.adapters.removeAllowedRoot': '削除',
'settings.adapters.streamingCard': 'ストリーミングカードモード',
'settings.adapters.streamingCardDesc': 'より快適な体験のためにカードをリアルタイムで更新します',
'settings.adapters.serverUrl': 'サーバー URL',
'settings.adapters.serverUrlPlaceholder': 'ws://127.0.0.1:3456',
'settings.adapters.save': '保存',
'settings.adapters.saved': '保存しました',
'settings.adapters.saving': '保存中...',
'settings.adapters.startHint': '保存後、アダプターを実行します: cd adapters && bun run {platform}',
'settings.adapters.pairing': 'ペアリング',
'settings.adapters.pairingDesc': 'ペアリングコードを生成し、IM の個別チャットでボットに送信して本人確認をひも付けます。',
'settings.adapters.generateCode': 'コードを生成',
'settings.adapters.regenerateCode': '再生成',
'settings.adapters.codeExpired': '期限切れ',
'settings.adapters.codeExpiresIn': '有効期限',
'settings.adapters.minutes': '分',
'settings.adapters.pairingCodeHint': '接続済みプラットフォームの個別チャットで、このコードをボットに送信してください。Feishu、WeChat、DingTalk、WhatsApp、WeCom、QQ は先に QR コードでのひも付けが必要です。',
'settings.adapters.pairedUsers': 'ペア済みユーザー',
'settings.adapters.noPairedUsers': 'ペア済みユーザーはまだいません',
'settings.adapters.unbind': 'ひも付け解除',
'settings.adapters.unbindConfirm': 'このユーザーのひも付けを解除してもよろしいですか?ボットを使用するには再度ペアリングが必要になります。',
'settings.adapters.platform.telegram': 'Telegram',
'settings.adapters.platform.feishu': 'Feishu',
'settings.adapters.platform.wechat': 'WeChat',
'settings.adapters.platform.dingtalk': 'DingTalk',
'settings.adapters.platform.whatsapp': 'WhatsApp',
'settings.adapters.dingtalkQrTitle': 'QR コードで DingTalk ボットをひも付け',
'settings.adapters.dingtalkQrDesc': 'DingTalk モバイルアプリでスキャンしてボットを作成・承認します。成功すると Client ID / Secret が自動的に保存されます。',
'settings.adapters.dingtalkStartAuth': 'スキャンしてひも付け',
'settings.adapters.dingtalkUnbindBot': 'ボットアカウントのひも付けを解除',
'settings.adapters.dingtalkQrAlt': 'DingTalk 承認用 QR コード',
'settings.adapters.dingtalkWaiting': 'DingTalk のスキャン確認を待っています...',
'settings.adapters.dingtalkBound': 'DingTalk ボットがひも付けられました。',
'settings.adapters.dingtalkAuthFailed': 'DingTalk QR コードの承認に失敗しました。',
'settings.adapters.dingtalkAuthExpired': 'DingTalk QR コードの承認の有効期限が切れました。新しい QR コードを生成してください。',
'settings.adapters.dingtalkUnbindFailed': 'DingTalk のひも付け解除に失敗しました。',
'settings.adapters.dingtalkUnbindBotConfirm': 'この DingTalk ボットアカウントのひも付けを解除しますか?DingTalk がメッセージを送受信できるようにするには、再度スキャンが必要になります。',
'settings.adapters.dingtalkClientId': 'Client ID',
'settings.adapters.dingtalkClientIdPlaceholder': 'QR 認証で自動入力、または手動で入力',
'settings.adapters.dingtalkClientSecret': 'Client Secret',
'settings.adapters.dingtalkClientSecretPlaceholder': 'QR 認証で自動入力、または手動で入力',
'settings.adapters.dingtalkEndpoint': 'Stream エンドポイント',
'settings.adapters.dingtalkEndpointPlaceholder': 'デフォルト https://api.dingtalk.com',
'settings.adapters.dingtalkPermissionCardTemplateId': '権限カードテンプレート ID',
'settings.adapters.dingtalkPermissionCardTemplateIdPlaceholder': '任意のインタラクティブカードテンプレート ID',
'settings.adapters.dingtalkPermissionCardTemplateIdHint': '設定すると、権限リクエストはまず DingTalk のインタラクティブカードを使用します。空欄の場合は /allow、/always、/deny のテキスト承認を使用します。',
'settings.adapters.wechatBind': 'スキャンしてひも付け',
'settings.adapters.wechatRebind': '再スキャン',
'settings.adapters.wechatConnected': 'WeChat はひも付け済みです',
'settings.adapters.wechatNotConnected': 'WeChat はひも付けされていません',
'settings.adapters.wechatQrHint': 'QR コードを生成し、WeChat でスキャンして確認します。ひも付け後にアダプターが再起動します。',
'settings.adapters.wechatQrAlt': 'WeChat ひも付け用 QR コード',
'settings.adapters.wechatWaiting': 'WeChat の確認を待っています...',
'settings.adapters.wechatBindSuccess': 'WeChat のひも付けに成功しました。',
'settings.adapters.wechatUnbindAccount': 'WeChat アカウントのひも付けを解除',
'settings.adapters.wechatUnbindAccountConfirm': 'この WeChat アカウントのひも付けを解除しますか?WeChat がメッセージを送受信できるようにするには、再度スキャンが必要になります。',
'settings.adapters.wechatUnbound': 'WeChat アカウントのひも付けを解除しました。',
'settings.adapters.wechatUnbindFailed': 'WeChat のひも付け解除に失敗しました。',
'settings.adapters.wechatAllowedUsersHint': 'QR コードのひも付けはアカウントを有効化するだけです。ユーザーは引き続きペアリングコードを送信する必要があります。または、ここに許可する WeChat ユーザー ID を追加できます。',
'settings.adapters.whatsappBind': 'スキャンしてひも付け',
'settings.adapters.whatsappRebind': '再スキャン',
'settings.adapters.whatsappConnected': 'WhatsApp はひも付け済みです',
'settings.adapters.whatsappNotConnected': 'WhatsApp はひも付けされていません',
'settings.adapters.whatsappQrHint': 'QR コードを生成し、WhatsApp の「リンク済みデバイス」からスキャンして確認します。ひも付け後にアダプターが再起動します。',
'settings.adapters.whatsappQrAlt': 'WhatsApp ひも付け用 QR コード',
'settings.adapters.whatsappWaiting': 'WhatsApp のスキャン確認を待っています...',
'settings.adapters.whatsappBindSuccess': 'WhatsApp のひも付けに成功しました。',
'settings.adapters.whatsappBindFailed': 'WhatsApp のひも付けに失敗しました。',
'settings.adapters.whatsappUnbindAccount': 'WhatsApp アカウントのひも付けを解除',
'settings.adapters.whatsappUnbindAccountConfirm': 'この WhatsApp アカウントのひも付けを解除しますか?WhatsApp がメッセージを送受信できるようにするには、再度スキャンが必要になります。',
'settings.adapters.whatsappUnbound': 'WhatsApp アカウントのひも付けを解除しました。',
'settings.adapters.whatsappUnbindFailed': 'WhatsApp のひも付け解除に失敗しました。',
'settings.adapters.whatsappAllowedUsersHint': 'QR コードのひも付けは WhatsApp Web アカウントを有効化するだけです。ユーザーは引き続きペアリングコードを送信する必要があります。または、ここに許可する WhatsApp JID を追加できます。',
// Settings > IM 連携 —— Feishu の QR ボット作成、WeCom、QQ、Slack
'settings.adapters.wecom': 'WeCom',
'settings.adapters.qq': 'QQ',
'settings.adapters.slack': 'Slack',
'settings.adapters.platform.wecom': 'WeCom',
'settings.adapters.platform.qq': 'QQ',
'settings.adapters.platform.slack': 'Slack',
'settings.adapters.feishuQrTitle': 'QR コードで Feishu ボットを作成',
'settings.adapters.feishuQrDesc': 'Feishu モバイルアプリで QR コードを読み取ると、ボットが作成され App ID と App Secret がここに保存されます。開発者プラットフォームでの手作業は不要です。',
'settings.adapters.feishuStartAuth': 'QR コードで作成',
'settings.adapters.feishuRebind': '再スキャン',
'settings.adapters.feishuUnbindApp': 'Feishu ボットの連携を解除',
'settings.adapters.feishuUnbindAppConfirm': 'この Feishu ボットの連携を解除しますか?解除後は再スキャンするか認証情報を入力し直すまで、Feishu でメッセージを送受信できません。',
'settings.adapters.feishuQrAlt': 'Feishu 認可 QR コード',
'settings.adapters.feishuWaiting': 'Feishu のスキャンを待っています...',
'settings.adapters.feishuBindSuccess': 'Feishu ボットを作成して連携しました。',
'settings.adapters.feishuAuthFailed': 'Feishu の QR 認可に失敗しました。',
'settings.adapters.feishuUnbound': 'Feishu の連携を解除しました。',
'settings.adapters.feishuUnbindFailed': 'Feishu の連携解除に失敗しました。',
'settings.adapters.wecomQrTitle': 'QR コードで WeCom ボットを作成',
'settings.adapters.wecomQrDesc': 'WeCom でスキャンして AI ボットを作成します。Bot ID と Secret は自動保存され、アダプターが再起動します。',
'settings.adapters.wecomBind': 'QR コードで連携',
'settings.adapters.wecomRebind': '再スキャン',
'settings.adapters.wecomUnbindBot': 'ボットの連携を解除',
'settings.adapters.wecomUnbindBotConfirm': 'この WeCom ボットの連携を解除しますか?解除後は再スキャンするまで WeCom でメッセージを送受信できません。',
'settings.adapters.wecomQrAlt': 'WeCom 認可 QR コード',
'settings.adapters.wecomWaiting': 'WeCom のスキャンを待っています...',
'settings.adapters.wecomBindSuccess': 'WeCom ボットを連携しました。',
'settings.adapters.wecomBindFailed': 'WeCom の連携に失敗しました。',
'settings.adapters.wecomUnbound': 'WeCom の連携を解除しました。',
'settings.adapters.wecomUnbindFailed': 'WeCom の連携解除に失敗しました。',
'settings.adapters.wecomAllowedUsersPlaceholder': '例: zhangsan, lisi',
'settings.adapters.wecomAllowedUsersHint': 'WeCom の userid をカンマ区切りで入力します。空欄の場合はペアリング済みユーザーのみ許可されます。',
'settings.adapters.qqQrTitle': 'QR コードで QQ ボットを作成',
'settings.adapters.qqQrDesc': 'QQ モバイルアプリでスキャンして認可します。AppID と AppSecret は自動保存され、アダプターが再起動します。',
'settings.adapters.qqBind': 'QR コードで連携',
'settings.adapters.qqRebind': '再スキャン',
'settings.adapters.qqUnbindBot': 'ボットの連携を解除',
'settings.adapters.qqUnbindBotConfirm': 'この QQ ボットの連携を解除しますか?解除後は再スキャンするまで QQ でメッセージを送受信できません。',
'settings.adapters.qqQrAlt': 'QQ 認可 QR コード',
'settings.adapters.qqWaiting': 'QQ のスキャンを待っています...',
'settings.adapters.qqBindSuccess': 'QQ ボットを連携しました。',
'settings.adapters.qqBindFailed': 'QQ の連携に失敗しました。',
'settings.adapters.qqUnbound': 'QQ の連携を解除しました。',
'settings.adapters.qqUnbindFailed': 'QQ の連携解除に失敗しました。',
'settings.adapters.qqAllowedUsersPlaceholder': '例: A1B2C3D4E5F6',
'settings.adapters.qqAllowedUsersHint': 'QQ ユーザーの openid をカンマ区切りで入力します。空欄の場合はペアリング済みユーザーのみ許可されます。',
'settings.adapters.slackCreateAppTitle': 'Slack アプリを作成',
'settings.adapters.slackCreateAppDesc': 'Slack に QR フローはないため、アプリマニフェストを使います。下のボタンでスコープと Socket Mode が設定済みの作成ページが開きます。',
'settings.adapters.slackCreateAppAction': 'マニフェストからアプリを作成',
'settings.adapters.slackStepCreate': '作成ページを開き、マニフェストを確認してアプリを作成します。',
'settings.adapters.slackStepInstall': 'アプリをワークスペースにインストールし、Bot Token(xoxb- で始まる)をコピーします。',
'settings.adapters.slackStepTokens': 'Basic Information で App-Level Token(xapp- で始まり connections:write が必要)を生成し、両方を下に貼り付けます。',
'settings.adapters.slackManifestToggle': 'アプリマニフェスト JSON を表示',
'settings.adapters.slackManifestFailed': 'Slack アプリマニフェストを取得できませんでした。',
'settings.adapters.slackBotToken': 'Bot Token',
'settings.adapters.slackBotTokenPlaceholder': 'xoxb- で始まります',
'settings.adapters.slackAppToken': 'App-Level Token',
'settings.adapters.slackAppTokenPlaceholder': 'xapp- で始まり、connections:write が必要です',
'settings.adapters.slackAllowedUsersPlaceholder': '例: U01ABCDEF, U02GHIJKL',
'settings.adapters.slackUnbindApp': 'Slack の連携を解除',
'settings.adapters.slackUnbound': 'Slack の連携を解除しました。',
'settings.adapters.slackUnbindFailed': 'Slack の連携解除に失敗しました。',
'settings.adapters.slackUnbindAppConfirm': 'この Slack アプリの連携を解除しますか?解除後はトークンを入力し直すまで Slack でメッセージを送受信できません。',
// Settings > MCP
'settings.mcp.title': 'MCP サーバー',
'settings.mcp.description': 'Claude Code 用に外部ツールやデータソースを接続します。Local、Project、User の各スコープは CLI と同じ動作に従います。',
'settings.mcp.addServer': 'サーバーを追加',
'settings.mcp.openServer': '{name} を開く',
'settings.mcp.empty': 'MCP サーバーはまだ設定されていません',
'settings.mcp.emptyHint': 'カスタムの stdio、HTTP、または SSE の MCP サーバーを追加して、ツールアクセスの拡張を始めましょう。',
'settings.mcp.stats.total': 'サーバー総数',
'settings.mcp.stats.connected': '現在のプロジェクトの接続確認',
'settings.mcp.stats.attention': '要対応',
'settings.mcp.status.configured': '設定済み',
'settings.mcp.status.configuredElsewhere': '現在のチャットでは読み込まれていません。このプロジェクトでチャットを開いて使用してください。',
'settings.mcp.scope.project': 'プロジェクト',
'settings.mcp.scope.local': 'ローカル',
'settings.mcp.scope.user': 'ユーザー',
'settings.mcp.scope.plugin': 'プラグイン',
'settings.mcp.scopeDesc.local': '1 つのプロジェクト内で自分専用です。ユーザー設定に保存され、選択したプロジェクトにスコープが限定されます。',
'settings.mcp.scopeDesc.project': '選択したプロジェクトの `.mcp.json` を通じてチームと共有されます。',
'settings.mcp.scopeDesc.user': 'ユーザーアカウントのすべてのプロジェクトで利用できます。',
'settings.mcp.scope.dynamic': '組み込み',
'settings.mcp.scope.enterprise': 'エンタープライズ',
'settings.mcp.scope.claudeai': 'Claude.ai',
'settings.mcp.scope.managed': '管理対象',
'settings.mcp.transport.http': 'Streamable HTTP',
'settings.mcp.globalOnlyHint': '1 つのプロジェクト用には Local、`.mcp.json` 用には Project、すべてのプロジェクト用には User を選択してください。',
'settings.mcp.currentProjectHint': '選択中のプロジェクト: {path}',
'settings.mcp.form.back': 'サーバー一覧に戻る',
'settings.mcp.form.createTitle': 'カスタム MCP に接続',
'settings.mcp.form.createHint': '現在 Claude Code がサポートするフィールドでカスタム MCP サーバーをセットアップします。',
'settings.mcp.form.editTitle': '{name} MCP を設定',
'settings.mcp.form.editHint': '接続の詳細を確認し、変更を保存するか、このサーバーをデスクトップアプリから再接続します。',
'settings.mcp.form.transportLocked': 'MCP サーバーの種類を切り替えるには、まずアンインストールしてください。',
'settings.mcp.form.uninstall': 'アンインストール',
'settings.mcp.form.reconnect': '再接続',
'settings.mcp.form.save': '保存',
'settings.mcp.form.name': '名前',
'settings.mcp.form.namePlaceholder': 'MCP サーバー名',
'settings.mcp.form.scope': '設定スコープ',
'settings.mcp.form.transport': 'トランスポート',
'settings.mcp.form.status': 'ステータス',
'settings.mcp.form.location': '設定の場所',
'settings.mcp.form.rawConfig': '生の設定',
'settings.mcp.form.command': '起動コマンド',
'settings.mcp.form.commandPlaceholder': 'npx',
'settings.mcp.form.commandHostHint': 'STDIO の MCP コマンドはホストマシン上で実行されます。Node.js、Python、Bun、uv などのランタイムはご自身でインストールし、コマンドが PATH 上で利用できることを確認してください。',
'settings.mcp.form.arguments': '引数',
'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
'settings.mcp.form.addArgument': '引数を追加',
'settings.mcp.form.environmentVariables': '環境変数',
'settings.mcp.form.addEnv': '環境変数を追加',
'settings.mcp.form.keyPlaceholder': 'キー',
'settings.mcp.form.valuePlaceholder': '値',
'settings.mcp.form.url': 'URL',
'settings.mcp.form.sseUrl': 'SSE URL',
'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
'settings.mcp.form.headers': 'ヘッダー',
'settings.mcp.form.addHeader': 'ヘッダーを追加',
'settings.mcp.form.oauthClientId': 'OAuth クライアント ID',
'settings.mcp.form.oauthClientIdPlaceholder': '任意のクライアント ID',
'settings.mcp.form.oauthCallbackPort': 'OAuth コールバックポート',
'settings.mcp.form.oauthCallbackPortPlaceholder': '任意の固定コールバックポート',
'settings.mcp.form.headersHelper': 'ヘッダーヘルパースクリプト',
'settings.mcp.form.headersHelperPlaceholder': '任意のヘルパーコマンドのパス',
'settings.mcp.form.deleteTitle': 'MCP サーバーを削除',
'settings.mcp.form.cancel': 'キャンセル',
'settings.mcp.form.confirmDelete': '削除',
'settings.mcp.form.deleteConfirm': 'MCP サーバー「{name}」を削除しますか?この操作は取り消せません。',
'settings.mcp.form.deleteConfirmBody': 'MCP サーバー「{name}」を削除しますか?この操作は取り消せません。',
'settings.mcp.targetProject.title': '対象プロジェクト',
'settings.mcp.targetProject.selected': '現在、次のプロジェクトのローカルおよび共有 MCP サーバーを表示しています: {path}',
'settings.mcp.targetProject.empty': 'プロジェクト専用または共有の MCP サーバーを確認するプロジェクトを選択してください。',
'settings.mcp.targetProject.emptyWithCurrent': '対象プロジェクトを選択してください。現在アクティブなセッション: {path}',
'settings.mcp.targetProject.localSelected': 'このサーバーは次の中で自分専用になります: {path}',
'settings.mcp.targetProject.localEmpty': 'このプライベート MCP サーバーを受け取るプロジェクトを選択してください。',
'settings.mcp.targetProject.projectSelected': 'このサーバーは次を通じて共有されます: {path}/.mcp.json',
'settings.mcp.targetProject.projectEmpty': 'この共有 MCP サーバーを `.mcp.json` で受け取るプロジェクトを選択してください。',
'settings.mcp.targetProject.globalTitle': 'グローバルインストール対象',
'settings.mcp.targetProject.globalHint': 'User スコープは対象プロジェクトを必要としません。グローバルの Claude 設定に保存され、どこからでも利用できます。',
'settings.mcp.toast.created': 'MCP サーバー「{name}」を作成しました',
'settings.mcp.toast.saved': 'MCP サーバー「{name}」を保存しました',
'settings.mcp.toast.deleted': 'MCP サーバー「{name}」を削除しました',
'settings.mcp.toast.enabled': 'MCP サーバー「{name}」を有効化しました',
'settings.mcp.toast.disabled': 'MCP サーバー「{name}」を無効化しました',
'settings.mcp.toast.reconnected': 'MCP サーバー「{name}」を再接続しました',
'settings.mcp.toast.saveFailed': 'MCP サーバーの保存に失敗しました',
'settings.mcp.toast.deleteFailed': 'MCP サーバーの削除に失敗しました',
'settings.mcp.toast.toggleFailed': 'MCP サーバーの状態の更新に失敗しました',
'settings.mcp.toast.reconnectFailed': 'MCP サーバーの再接続に失敗しました',
'settings.mcp.toast.syncFailed': 'チャットの同期に失敗しました:{error}',
'settings.mcp.toast.syncNotRunning': '現在のチャットは実行中ではありません。開始時に設定が適用されます。',
'settings.mcp.toast.syncDifferentProject': '現在のチャットは別のプロジェクトを使用しているため、ツールは更新されませんでした。',
'settings.mcp.toast.syncNoSession': 'チャットが選択されていません。設定を保存しました。',
'settings.mcp.toast.syncUnconfirmed': '現在のチャットの更新を確認できませんでした。',
// Settings > Agents
'settings.tab.agents': 'エージェント',
'settings.agents.title': 'インストール済みエージェント',
'settings.agents.loadError': 'エージェントを読み込めませんでした',
'settings.agents.description': '組み込み、プロジェクト、ユーザーの各ソースにわたって Claude が利用できるエージェントを閲覧します。TUI で /agents を使うと、アクティブなソースとオーバーライドを確認できます。',
'settings.agents.browserTitle': 'インストール済みエージェントを閲覧',
'settings.agents.browserEyebrow': 'エージェントブラウザ',
'settings.agents.entryEyebrow': 'エージェントプロフィール',
'settings.agents.empty': '利用できるエージェントはまだありません。',
'settings.agents.emptyHint': 'Claude の設定またはプロジェクトにエージェント定義を追加すると、ここに表示されます。',
'settings.agents.refreshWarning': '変更は保存されましたが、最新のエージェント設定を完全には適用できませんでした。',
'settings.agents.model': 'モデル',
'settings.agents.tools': 'ツール',
'settings.agents.systemPrompt': 'システムプロンプト',
'settings.agents.noDescription': '説明なし',
'settings.agents.noSystemPrompt': 'システムプロンプトは定義されていません。',
'settings.agents.backToList': '一覧に戻る',
'settings.agents.agentCount': '{count} エージェント',
'settings.agents.summary.totalAgents': 'エージェント総数',
'settings.agents.summary.activeAgents': 'アクティブなエージェント',
'settings.agents.summary.sources': 'ソース',
'settings.agents.summary.source': 'ソース',
'settings.agents.summary.model': 'モデル',
'settings.agents.summary.tools': 'ツール',
'settings.agents.summary.status': 'ステータス',
'settings.agents.groupHint': '{source} から利用できるエージェント: {count}',
'settings.agents.status.active': 'アクティブ',
'settings.agents.status.available': '利用可能',
'settings.agents.overriddenBy': '{source} によって上書き',
'settings.agents.overriddenByShort': '{source} により隠蔽',
'settings.agents.toolCount': '{count} ツール',
'settings.agents.noTools': 'ツール制限なし',
'settings.agents.disabledTools': 'ツールを許可しない',
'settings.agents.promptHint': '現在のシステムプロンプトを読み、このエージェントのスコープを比較します。',
'settings.agents.source.userSettings': 'ユーザー',
'settings.agents.source.projectSettings': 'プロジェクト',
'settings.agents.source.localSettings': 'ローカル',
'settings.agents.source.policySettings': '管理対象',
'settings.agents.source.plugin': 'プラグイン',
'settings.agents.source.flagSettings': 'CLI 引数',
'settings.agents.source.built-in': '組み込み',
'settings.agents.create': 'エージェントを作成',
'settings.agents.createTitle': 'エージェントを作成',
'settings.agents.edit': '編集',
'settings.agents.editTitle': 'エージェントを編集',
'settings.agents.delete': '削除',
'settings.agents.readOnly': '読み取り専用',
'settings.agents.deleteTitle': 'エージェントを削除',
'settings.agents.deleteBody': 'エージェント「{name}」を削除しますか?この操作は取り消せません。',
'settings.agents.deleteTarget': 'ファイル:{target}',
'settings.agents.deleteConfirm': 'エージェントを削除',
'settings.agents.deleteError': 'エージェントの削除に失敗しました',
'settings.agents.detail.configuredModel': '設定モデル',
'settings.agents.detail.configuredEffort': '設定された推論強度',
'settings.agents.detail.effortHint': '選択したモデルが対応していない場合、実行時にこの値が下げられるか省略されることがあります。',
'settings.agents.detail.inherit': '継承',
'settings.agents.form.scope': 'スコープ',
'settings.agents.form.scopeUser': 'ユーザー',
'settings.agents.form.scopeProject': 'プロジェクト',
'settings.agents.form.projectUnavailable': 'プロジェクトセッションを開いてから、プロジェクト用エージェントを作成してください。',
'settings.agents.form.projectTarget': '対象プロジェクト:{path}',
'settings.agents.form.name': '名前',
'settings.agents.form.namePlaceholder': 'code-reviewer',
'settings.agents.form.nameError': '1〜64 文字の小文字、数字、ハイフン、アンダースコアを使用し、英数字で始めて終えてください。',
'settings.agents.form.description': '説明',
'settings.agents.form.descriptionPlaceholder': 'メインエージェントが委任する場面を説明します。',
'settings.agents.form.descriptionRequired': '説明を入力してください。',
'settings.agents.form.systemPrompt': 'システムプロンプト',
'settings.agents.form.systemPromptPlaceholder': '役割、境界、期待する出力を定義します。',
'settings.agents.form.systemPromptRequired': 'システムプロンプトを入力してください。',
'settings.agents.form.model': 'モデル',
'settings.agents.form.modelDefaultDescription': 'この Claude Code ビルドに付属する既定モデルを使用します。',
'settings.agents.form.modelInheritDescription': 'メイン会話と同じモデルを使用します。',
'settings.agents.form.modelAliasDescription': '現在の Provider によって解決される CLI モデルエイリアスです。',
'settings.agents.form.modelUnavailableDescription': '保存済みのモデル ID です。現在の Provider には表示されていません。',
'settings.agents.form.modelProviderHint': 'Agent 設定には Provider ではなくモデル ID だけが保存され、実行時はセッションの現在の Provider を使用します。',
'settings.agents.form.effort': '推論の強度',
'settings.agents.form.inherit': '親から継承',
'settings.agents.form.tools': 'ツール',
'settings.agents.form.toolsInherit': 'すべてのツール',
'settings.agents.form.toolsNone': 'ツールを許可しない',
'settings.agents.form.toolsCustom': 'カスタムリスト',
'settings.agents.form.toolsCustomLabel': 'その他のツール名または権限パターン',
'settings.agents.form.toolsPlaceholder': 'mcp__docs__search, Bash(git:*)',
'settings.agents.form.toolsHint': 'この Agent に必要な組み込みツールを選択し、カスタムや MCP ツールは下に追加します。',
'settings.agents.form.builtInTools': '組み込みツール',
'settings.agents.form.builtInToolsHint': '現在の実行環境で利用可能です。Agent に必要な機能だけを許可してください。',
'settings.agents.form.toolsSelectedCount': '{count} 件選択',
'settings.agents.form.toolsSearch': 'ツールを検索',
'settings.agents.form.toolsSearchPlaceholder': '名前または用途で検索',
'settings.agents.form.toolsNoResults': '一致するツールはありません',
'settings.agents.form.toolsUnavailable': '組み込みツール一覧を取得できません。下に正確なツール名を入力できます。',
'settings.agents.form.toolsCustomHint': '任意。MCP、カスタムツール、Bash(git:*) のような権限パターンに使用します。',
'settings.agents.form.toolCategory.readSearch': '読み取りと検索',
'settings.agents.form.toolCategory.modify': 'ファイル変更',
'settings.agents.form.toolCategory.execute': 'コマンド実行',
'settings.agents.form.toolCategory.workflow': 'ワークフロー',
'settings.agents.form.toolCategory.other': 'その他',
'settings.agents.form.toolDescription.Read': 'ファイルとディレクトリを読み取る',
'settings.agents.form.toolDescription.Glob': '名前やパスのパターンでファイルを探す',
'settings.agents.form.toolDescription.Grep': 'テキストやパターンでファイルを検索する',
'settings.agents.form.toolDescription.WebFetch': 'Web ページの内容を読み取る',
'settings.agents.form.toolDescription.WebSearch': 'Web を検索する',
'settings.agents.form.toolDescription.Edit': '既存ファイルを部分的に編集する',
'settings.agents.form.toolDescription.Write': 'ファイルを作成または上書きする',
'settings.agents.form.toolDescription.NotebookEdit': 'Jupyter Notebook のセルを編集する',
'settings.agents.form.toolDescription.Bash': 'Unix Shell で端末コマンドを実行する',
'settings.agents.form.toolDescription.PowerShell': 'Windows PowerShell コマンドを実行する',
'settings.agents.form.toolDescription.TodoWrite': 'タスクリストを管理する',
'settings.agents.form.toolDescription.Skill': 'インストール済み Skill のワークフローを読み込む',
'settings.agents.form.toolDescription.ToolSearch': '機能から遅延読み込みツールを探す',
'settings.agents.form.toolDescription.EnterWorktree': '分離された Git Worktree を作成して入る',
'settings.agents.form.toolDescription.ExitWorktree': 'Agent Worktree を終了して整理する',
'settings.agents.form.toolDescription.StructuredOutput': 'Schema 検証済みの構造化データを返す',
'settings.agents.form.toolDescription.generic': 'この組み込み実行機能を使用する',
'settings.agents.form.toolsInheritHint': 'tools フィールドを省略し、このエージェントにすべてのツールを許可します。',
'settings.agents.form.toolsNoneHint': '空の tools リストを保存し、このエージェントによるツール使用を禁止します。',
'settings.agents.form.toolsCustomRequired': '許可するツールを1つ以上選択または入力してください。',
'settings.agents.form.color': '色',
'settings.agents.form.noColor': 'デフォルト',
'settings.agents.form.saveError': 'エージェントの保存に失敗しました',
'settings.agents.rowEdit': '{name} を編集',
'settings.agents.rowDelete': '{name} を削除',
'settings.agents.rowOverride': '{name} のモデルと推論強度を調整',
'settings.agents.override': 'モデルを調整',
'settings.agents.overrideTitle': '組み込みエージェントの調整',
'settings.agents.overrideHint': '変更できるのはモデルと推論強度だけです。システムプロンプト、ツール、色は Claude Code が固定します。',
'settings.agents.overrideScopeHint': 'ユーザー設定(~/.claude/settings.json)に保存され、すべてのプロジェクトに適用されます。',
'settings.agents.overrideDefault': '組み込みの既定値({value})',
'settings.agents.overrideDefaultNone': '組み込みの既定値',
'settings.agents.overrideReset': '組み込みの既定値に戻す',
'settings.agents.overrideBadge': '上書き中',
'settings.agents.overrideManaged': '{source}の設定で指定されているため、ここでは変更できません。',
'settings.agents.overrideShadowed': '現在は{source}の同名エージェントが有効なため、ここでの変更はまだ反映されません。',
'settings.agents.overrideSaveError': '上書きの保存に失敗しました',
'settings.agents.overrideResetError': '既定値への復元に失敗しました',
// Settings > Skills
'settings.skills.title': 'インストール済みスキル',
'settings.skills.description': 'スキルは Claude に専門的な機能を追加します。スキルは ~/.claude/skills/ または ~/.agents/skills/ で管理します',
'settings.skills.redirectDescription': 'スキルは統合されたスキルセンターで管理されます。マーケットとインストール済みスキルを同じ場所で扱えます。',
'settings.skills.browserTitle': 'インストール済みスキルを閲覧',
'settings.skills.browserEyebrow': 'スキルブラウザ',
'settings.skills.browserDescription': 'バンドル、プロジェクト、ユーザーのスキルを確認し、スコープを比較し、各スキルフォルダを開いてドキュメントやソースファイルを読みます。',
'settings.skills.searchLabel': 'スキルを検索',
'settings.skills.searchPlaceholder': '名前、説明、ソースでスキルを検索...',
'settings.skills.searchResultCount': '{total} 件中 {count} 件のスキルが一致',
'settings.skills.clearSearch': 'スキル検索をクリア',
'settings.skills.noSearchResults': '一致するスキルがありません',
'settings.skills.noSearchResultsHint': '別のキーワードを試すか、検索をクリアしてすべてのスキルを表示してください。',
'settings.skills.entryEyebrow': 'スキルエントリ',
'settings.skills.slashCommand': '/slash',
'settings.skills.agentsDirBadge': '.agents',
'settings.skills.agentsDirHint':
'Codex、Cursor、Gemini CLI と共有される ~/.agents/skills/ オープン標準ディレクトリ由来',
'settings.skills.agentsDirProjectHint':
'このプロジェクトの .agents/skills/ ディレクトリ由来 —— 自分でインストールしたものではなく、リポジトリに同梱されています',
'settings.skills.tokenEstimate': '約 {count} トークン',
'settings.skills.tokenEstimateShort': '約 {count}',
'settings.skills.summary.totalSkills': 'スキル総数',
'settings.skills.summary.totalFiles': 'ファイル',
'settings.skills.summary.sources': 'ソース',
'settings.skills.summary.tokens': '推定トークン数',
'settings.skills.summary.source': 'ソース',
'settings.skills.summary.entry': 'エントリ',
'settings.skills.groupHint': '{source} から利用できるスキル: {count}',
'settings.skills.ready': '準備完了',
'settings.skills.unavailable': '利用不可',
'settings.skills.empty': 'スキルがインストールされていません',
'settings.skills.emptyHint': '~/.claude/skills/ または ~/.agents/skills/ にスキルを追加して始めましょう',
'settings.skills.back': '一覧に戻る',
'settings.skills.files': 'ファイル',
'settings.skills.entryFile': 'エントリファイル',
'settings.skills.metaTitle': 'スキルのメタデータ',
'settings.skills.filesPanel': 'ファイル',
'settings.skills.filesPanelHint': 'エントリファイルと補助的な実装ファイルを閲覧します。',
'settings.skills.readingMode': '{mode} で表示中',
'settings.skills.docMode': 'ドキュメントモード',
'settings.skills.codeMode': 'コードモード',
'settings.skills.source.user': 'ユーザー',
'settings.skills.source.project': 'プロジェクト',
'settings.skills.source.plugin': 'プラグイン',
'settings.skills.source.mcp': 'MCP',
'settings.skills.source.bundled': '組み込み',
// Settings > Memory
'settings.tab.memory': 'メモリ',
'settings.memory.title': 'プロジェクトメモリ',
'settings.memory.description': 'Claude が各プロジェクト向けに書き込む Markdown メモリファイルを確認・編集します。これらのファイルは ~/.claude/projects/<project>/memory/ の下に保存され、CLI ランタイムによって読み込まれます。',
'settings.memory.refresh': '更新',
'settings.memory.projects': 'プロジェクト',
'settings.memory.files': 'メモリファイル',
'settings.memory.filePath': 'メモリファイルのパス',
'settings.memory.resourceManager': 'リソースマネージャー',
'settings.memory.editor': 'エディター',
'settings.memory.edit': '編集',
'settings.memory.preview': 'プレビュー',
'settings.memory.rendered': 'レンダリング後',
'settings.memory.emptyProjects': 'メモリのあるプロジェクトが見つかりません。',
'settings.memory.emptyFiles': 'メモリファイルはまだ見つかりません。',
'settings.memory.selectFile': 'メモリファイルを選択してください。',
'settings.memory.selectProject': 'プロジェクトを選択してください。',
'settings.memory.noFileSelected': 'ファイルが選択されていません',
'settings.memory.current': '現在',
'settings.memory.indexFile': 'インデックス',
'settings.memory.missing': '見つかりません',
'settings.memory.fileCount': '{count} ファイル',
'settings.memory.unsaved': '未保存',
'settings.memory.saved': '保存済み',
'settings.memory.revert': '元に戻す',
'settings.memory.discardUnsavedConfirm': '未保存のメモリ変更を破棄しますか?',
'settings.memory.projectSearchPlaceholder': 'パスでプロジェクトを検索...',
'settings.memory.fileSearchPlaceholder': 'メモリファイルを検索...',
'settings.memory.resourceSearchPlaceholder': 'プロジェクトまたはメモリファイルを検索...',
'settings.memory.noProjectMatches': 'この検索に一致するプロジェクトはありません。',
'settings.memory.noFileMatches': 'この検索に一致するメモリファイルはありません。',
'settings.memory.clearSearch': '検索をクリア',
'settings.memory.toggleFolder': '{name} を切り替え',
// Settings > Plugins
'settings.plugins.title': 'インストール済みプラグイン',
'settings.plugins.description': 'インストール済みプラグインを確認し、状態を把握し、デスクトップランタイムに変更を適用します。',
'settings.plugins.browserTitle': 'インストール済みプラグインを閲覧',
'settings.plugins.browserEyebrow': 'プラグインマネージャー',
'settings.plugins.browserDescription': 'プラグインはスキル、エージェント、フック、MCP サーバー、言語ツールをまとめたものです。このビューでは、インストール済みプラグイン、状態、ランタイムへの適用フィードバックにデスクトップ画面を集中させます。',
'settings.plugins.entryEyebrow': 'プラグインの詳細',
'settings.plugins.summary.total': 'プラグイン総数',
'settings.plugins.summary.enabled': '有効',
'settings.plugins.summary.attention': '要対応',
'settings.plugins.summary.marketplaces': 'マーケットプレイス',
'settings.plugins.summary.skills': 'スキル',
'settings.plugins.summary.agents': 'エージェント',
'settings.plugins.summary.mcp': 'MCP',
'settings.plugins.summary.hooks': 'フック',
'settings.plugins.group.attention': '要対応',
'settings.plugins.group.enabled': '有効',
'settings.plugins.group.disabled': '無効',
'settings.plugins.groupHint': 'このセクションには {count} 個のプラグインがあります',
'settings.plugins.refresh': '更新',
'settings.plugins.apply': '変更を適用',
'settings.plugins.applyHint': '有効化、無効化、更新の変更は、現在のデスクトップランタイムに適用した後で有効になります。',
'settings.plugins.lastReload': '前回の適用: アクティブなプラグイン {enabled} 個、プラグインスキル {skills} 個、エラー {errors} 件。',
'settings.plugins.reloadToast': 'プラグインの変更を適用しました: アクティブなプラグイン {enabled} 個、スキル {skills} 個、エラー {errors} 件。',
'settings.plugins.reloadWarning': 'プラグインの変更は適用されましたが、ランタイムの再読み込みに失敗しました: {message}',
'settings.plugins.marketplacesTitle': '既知のマーケットプレイス',
'settings.plugins.marketplacesHint': 'このマシンに既に設定済みのマーケットプレイスソースの読み取り専用の概要です。',
'settings.plugins.marketplaceAutoUpdateOn': '自動更新オン',
'settings.plugins.marketplaceAutoUpdateOff': '自動更新オフ',
'settings.plugins.marketplaceInstalledCount': '{count} 個インストール済み',
'settings.plugins.marketplaceUpdatedAt': '更新日時 {value}',
'settings.plugins.status.enabled': '有効',
'settings.plugins.status.disabled': '無効',
'settings.plugins.status.attention': '要対応',
'settings.plugins.scope.user': 'ユーザー',
'settings.plugins.scope.project': 'プロジェクト',
'settings.plugins.scope.local': 'ローカル',
'settings.plugins.scope.managed': '管理対象',
'settings.plugins.scope.builtin': '組み込み',
'settings.plugins.empty': 'プラグインがインストールされていません',
'settings.plugins.emptyHint': 'Claude Code からプラグインをインストールすると、ここで管理できます。',
'settings.plugins.back': '一覧に戻る',
'settings.plugins.noDescription': 'このプラグインの説明はありません。',
'settings.plugins.errorCount': '{count} 件のエラー',
'settings.plugins.enable': '有効化',
'settings.plugins.disable': '無効化',
'settings.plugins.update': '更新',
'settings.plugins.uninstall': 'アンインストール',
'settings.plugins.confirmUninstall': 'プラグイン「{name}」をアンインストールしますか?選択したスコープのインストール済みコピーが削除されます。',
'settings.plugins.selectionCount': '{count} 件選択中',
'settings.plugins.clearSelection': 'クリア',
'settings.plugins.enableSelected': '選択を有効化',
'settings.plugins.disableSelected': '選択を無効化',
'settings.plugins.selectPlugin': '{name} を選択',
'settings.plugins.bulkEnableTitle': '選択した {count} 件のプラグインを有効化しますか?',
'settings.plugins.bulkDisableTitle': '選択した {count} 件のプラグインを無効化しますか?',
'settings.plugins.bulkEnableBody': '{names} を有効化し、プラグイン変更を現在のデスクトップランタイムに適用します。',
'settings.plugins.bulkDisableBody': '{names} を無効化し、プラグイン変更を現在のデスクトップランタイムに適用します。',
'settings.plugins.bulkEnableToast': '{count} 件のプラグインを有効化し、変更を適用しました。',
'settings.plugins.bulkDisableToast': '{count} 件のプラグインを無効化し、変更を適用しました。',
'settings.plugins.author': '作者: {value}',
'settings.plugins.projectPath': 'プロジェクト: {value}',
'settings.plugins.installPath': 'インストール先: {value}',
'settings.plugins.managedHint': 'このプラグインはポリシーによって管理されており、デスクトップアプリから変更できません。',
'settings.plugins.builtinHint': '組み込みプラグインはここで再読み込みできますが、インストールやアンインストールの操作は表示されません。',
'settings.plugins.errorsTitle': 'プラグインのエラー',
'settings.plugins.capabilitiesTitle': 'バンドルされた機能',
'settings.plugins.capabilitiesHint': 'このプラグインがマニフェストとランタイム統合を読み込んだ後に公開する機能です。',
'settings.plugins.sharedNavigationDisabled': '共有管理ページでこのプラグインのスキル、エージェント、MCP エントリを開く前に、プラグインを有効化して変更を適用してください。',
'settings.plugins.capabilityEmpty': '公開なし',
'settings.plugins.capability.skills': '{count} スキル',
'settings.plugins.capability.agents': '{count} エージェント',
'settings.plugins.capability.mcpServers': '{count} MCP サーバー',
'settings.plugins.capabilityLabel.skills': 'スキル',
'settings.plugins.capabilityLabel.commands': 'コマンド',
'settings.plugins.capabilityLabel.agents': 'エージェント',
'settings.plugins.capabilityLabel.hooks': 'フック',
'settings.plugins.capabilityLabel.mcpServers': 'MCP サーバー',
'settings.plugins.capabilityLabel.lspServers': 'LSP サーバー',
// Settings > About
'settings.tab.about': '情報',
'settings.about.version': 'バージョン',
'settings.about.changelog': 'リリースノート',
'settings.about.repo': 'GitHub リポジトリ',
'settings.about.starHint': 'このプロジェクトが役立った場合は、Star を付けることをご検討ください',
'settings.about.feedback': '問題を報告',
'settings.about.feedbackDesc': 'バグや使い方の質問について GitHub Issue を作成します',
'settings.about.community': 'cc-haha 交流グループに参加',
'settings.about.communityDesc': 'WeCom グループです。QR コードをスキャンして参加できます。会話は主に中国語です',
'settings.about.communityHint': 'WeChat または WeCom でスキャンして参加',
'settings.about.communityQrAlt': 'cc-haha WeCom ユーザーグループの QR コード',
'settings.about.author': '作者',
'settings.about.socialMedia': 'ソーシャルメディア',
'settings.about.updates': 'アプリの更新',
'settings.about.updatesDesc': 'GitHub Releases を確認し、インストーラーをダウンロードして、インストール後に再起動します。',
// Settings > Computer Use
'settings.tab.computerUse': 'コンピューター操作',
'settings.computerUse.title': 'コンピューター操作',
'settings.computerUse.description': 'Claude がスクリーンショットを撮影し、クリック、入力を行い、コンピューターを操作できるようにします。Python 3 が必要です。macOS ではアクセシビリティ権限も必要です。',
'settings.computerUse.enabledToggle': '有効',
'settings.computerUse.enableRiskTitle': 'Computer Use を有効にしますか?',
'settings.computerUse.enableRiskSummary': 'Computer Use は Claude にこのコンピューターを幅広く操作する権限を与えます。以下のリスクを理解し、同意した場合のみ有効にしてください。',
'settings.computerUse.enableRiskScreen': 'Claude はスクリーンショットを取得し、画面上の機密情報や個人情報を見る可能性があります。',
'settings.computerUse.enableRiskActions': 'Claude はクリック、入力、クリップボード、システムショートカットを使用し、内容を送信、変更、削除する可能性があります。',
'settings.computerUse.enableRiskAllApps': '有効にすると、Claude はアプリごとの許可を求めず、対応するすべてのアプリを操作できます。製品の安全制限は引き続き適用されます。',
'settings.computerUse.enableRiskStop': '停止ボタンまたは Esc でいつでも操作を中断でき、ここで Computer Use を無効にできます。',
'settings.computerUse.enableRiskMacos': 'macOS では、システムレベルのアクセシビリティと画面収録の許可が引き続き必要です。これらはアプリの許可とは別です。',
'settings.computerUse.enableRiskConfirm': 'Computer Use を有効にする',
'settings.computerUse.disabledHint': 'コンピューター操作はオフです。新しいセッションでは、computer-use MCP サーバーを注入したり、デスクトップ操作ツールをコーディングエージェントに公開したりしません。',
'settings.computerUse.notSupported': 'コンピューター操作は macOS と Windows でのみサポートされます。',
'settings.computerUse.macosUnsupportedTitle': 'Computer Use には macOS {version} 以降が必要です',
'settings.computerUse.macosUnsupportedDetail': 'この Mac は macOS {current} を実行しています。その他の機能は引き続き利用できます。',
'settings.computerUse.unknownVersion': '不明なバージョン',
'settings.computerUse.macosDetectionFailedTitle': 'macOS のバージョンを確認できません',
'settings.computerUse.macosDetectionFailedDetail': 'この Mac が macOS 14.4 の要件を満たすか確認できませんでした。状態を再確認してください。',
'settings.computerUse.nativeUnavailableTitle': 'Computer Use ランタイムを利用できません',
'settings.computerUse.nativeUnavailableDetail': 'ネイティブランタイムが見つからないか、準備に失敗しました。アプリを再インストールまたは更新してから再確認してください。',
'settings.computerUse.configLoadFailed': '保存済みの Computer Use 設定を読み込めませんでした。',
'settings.computerUse.configSaveFailed': 'Computer Use 設定を保存できなかったため、以前の値に戻しました。',
'settings.computerUse.python': 'Python 3',
'settings.computerUse.pythonNotFound': 'インストールされていません。まず Python 3 をインストールしてください。',
'settings.computerUse.pythonFound': 'インストール済み',
'settings.computerUse.pythonCustomInvalid': 'カスタムインタープリターが利用できません',
'settings.computerUse.pythonPathLabel': 'Python インタープリターのパス',
'settings.computerUse.pythonPathPlaceholder': '自動検出、または python.exe / python3 を選択',
'settings.computerUse.pythonPathHint': '空欄のままにすると自動検出します。ランタイムのセットアップで優先したい場合は、conda、pyenv、その他のカスタム環境の Python 実行ファイルを選択してください。',
'settings.computerUse.pythonPathBrowse': '参照',
'settings.computerUse.pythonPathSave': '適用',
'settings.computerUse.pythonPathAuto': '自動',
'settings.computerUse.pythonPathSaved': '保存しました。再チェック時はこのインタープリターを優先します。',
'settings.computerUse.pythonPathSaveFailed': '保存に失敗しました。もう一度お試しください。',
'settings.computerUse.pythonPathDialogTitle': 'Python インタープリターを選択',
'settings.computerUse.pythonPathDialogFailed': 'ファイルピッカーを開けませんでした。パスを手動で貼り付けてください。',
'settings.computerUse.venv': '仮想環境',
'settings.computerUse.venvReady': '準備完了',
'settings.computerUse.venvNotReady': '未作成',
'settings.computerUse.deps': '依存関係',
'settings.computerUse.depsReady': 'インストール済み',
'settings.computerUse.depsNotReady': '未インストール',
'settings.computerUse.accessibility': 'アクセシビリティ権限',
'settings.computerUse.screenRecording': '画面収録権限',
'settings.computerUse.permGranted': '許可済み',
'settings.computerUse.permDenied': '拒否 — システム設定 > プライバシーとセキュリティ を開いて許可してください',
'settings.computerUse.permUnknown': '確認するにはまず環境をセットアップしてください',
'settings.computerUse.permScreenRecordingUnknownSoft': 'ここでは自動検出が不安定な場合があります。システム設定で既に有効と表示されていれば、通常はコンピューター操作を続行できます',
'settings.computerUse.permScreenRecordingManual': '自動検出できません — システム設定で確認してください',
'settings.computerUse.setupBtn': '環境をインストール',
'settings.computerUse.setupRunning': 'インストール中...',
'settings.computerUse.setupSuccess': '環境のセットアップが完了しました!',
'settings.computerUse.setupFail': 'セットアップに失敗しました',
'settings.computerUse.allReady': 'すべてのチェックに合格しました。コンピューター操作の準備が整いました。',
'settings.computerUse.downloadPython': 'Python 3 をダウンロード',
'settings.computerUse.recheckBtn': 'ステータスを再チェック',
'settings.computerUse.requirementsLabel': '必要なパッケージ',
'settings.computerUse.appsTitle': '承認済みアプリ',
'settings.computerUse.appsDescription': 'コンピューター操作用にアプリを事前承認します。承認済みアプリは、実行時の確認なしに Claude が操作できます。',
'settings.computerUse.appsLoading': 'インストール済みアプリを読み込み中...',
'settings.computerUse.appsEmpty': 'インストール済みアプリが見つかりません。まず環境をセットアップしてください。',
'settings.computerUse.appsSearch': 'アプリを検索...',
'settings.computerUse.appsSaved': '保存しました',
'settings.computerUse.openAccessibility': 'アクセシビリティ設定を開く',
'settings.computerUse.openScreenRecording': '画面収録設定を開く',
'settings.computerUse.permRestartHint': '許可後、有効にするためにアプリを再起動してください。',
'settings.computerUse.flagClipboard': 'クリップボードアクセス',
'settings.computerUse.flagSystemKeys': 'システムキーの組み合わせ',
// Computer Use — ネイティブ (cu-helper) Codex スタイルのページ
'settings.computerUse.controlTitle': 'コンピューター操作',
'settings.computerUse.controlSubtitle': 'Claude がコンピューター上の他のアプリケーションをどのように使用するかを管理します',
'settings.computerUse.sectionControl': '操作',
'settings.computerUse.anyApp': '任意のアプリ',
'settings.computerUse.anyAppDesc': 'Claude がコンピューター上のアプリを操作できるようにします',
'settings.computerUse.osPermTitle': 'システム権限',
'settings.computerUse.osPermHint': '有効にすると、Claude がコンピューター上でクリック、入力、スクリーンショットを実行できます。実際のマウスは占有されません。',
'settings.computerUse.openCard': '認証カードを再度開く',
'settings.computerUse.openingCard': '認証カードを開いています…',
'settings.computerUse.openCardFailed': '認証カードを開けませんでした。しばらくしてからもう一度お試しください。',
'settings.computerUse.permNeeded': '認証が必要',
'settings.computerUse.permChecking': '確認中…',
'settings.computerUse.permCheckFailed': '確認に失敗しました',
'settings.computerUse.allowedAppsTitle': '常に許可するアプリ',
'settings.computerUse.allowedAppsDesc': 'これらのアプリは認証済みで、Claude は毎回確認することなく直接操作できます。',
'settings.computerUse.allowedAppsEmpty': '常に許可するアプリはまだありません。「アプリを追加」をクリックして最初のアプリを認証してください。',
'settings.computerUse.addApp': 'アプリを追加',
'settings.computerUse.addAppTitle': '認証するアプリを選択',
'settings.computerUse.removeApp': '削除',
'settings.computerUse.appsPickerEmpty': '追加できるアプリが見つかりません。',
'settings.computerUse.appsPickerLoading': 'インストール済みアプリを読み込んでいます…',
// Settings > General - Storage
'settings.general.modeSwitchTitle': 'データ保存場所を切り替えますか?',
'settings.general.modeSwitchConfirm': '保存して再起動',
'settings.general.sessionRetentionTitle': 'セッション履歴',
'settings.general.sessionRetentionDescription': 'セッション記録をこの端末に保持する期間です。値を小さくすると古い記録がすぐに削除されるため、確認を求めます。',
'settings.general.sessionRetentionLabel': 'セッション履歴の保持期間',
'settings.general.sessionRetentionCurrent': '現在:{days} 日',
'settings.general.sessionRetentionCurrentOff': '現在:記録を保存しない',
'settings.general.sessionRetentionUnit': '日',
'settings.general.sessionRetentionHint': '既定は 365 日です。0 にするとセッション内容を記録しなくなり、既存の記録もすべて削除します。',
'settings.general.sessionRetentionRequired': '日数を入力してください。',
'settings.general.sessionRetentionRange': '0 から {max} までの整数を入力してください。',
'settings.general.sessionRetentionSave': '保存',
'settings.general.sessionRetentionSaved': '保持期間を更新し、期限切れのセッションファイルを {count} 件削除しました。',
'settings.general.sessionRetentionSavedPartial': '保持期間を更新しました。期限切れのセッションファイルを {count} 件削除し、{errors} 件は削除できませんでした。',
'settings.general.sessionRetentionConfirmTitle': 'セッション履歴の保持期間を変更しますか?',
'settings.general.sessionRetentionConfirmDelete': '{days} 日より古いセッション記録を完全に削除します。元に戻せません。',
'settings.general.sessionRetentionConfirmDisable': '0 にすると新しいセッション内容を記録しなくなり、既存の記録もすべて完全に削除します。元に戻せません。',
'settings.general.sessionRetentionPreview': 'この設定では現在 {count} 件のファイルが削除されます。',
'settings.general.sessionRetentionPreviewUnavailable': '集計に失敗しました。そのまま続行できます。',
'settings.general.sessionRetentionConfirmAction': '削除して保存',
'settings.general.storageTitle': 'データ保存場所',
'settings.general.storageDescription': '高度で使用頻度の低い設定です。切り替え後は、セッション、スキル、MCP、プラグイン、プロバイダー設定、タスク、キャッシュが新しいディレクトリから読み込まれます。',
'settings.general.storageSystemTitle': 'システムディレクトリを使用',
'settings.general.storageSystemDescription': 'Claude Code の標準ユーザーディレクトリ ~/.claude(Windows では %USERPROFILE%\\.claude)を使用します。',
'settings.general.storagePortableTitle': 'カスタムディレクトリを使用',
'settings.general.storagePortableDescription': '明示的に選択したフォルダへデスクトップデータを保存します。絶対パスで、アプリのインストール先の外にある必要があります。',
'settings.general.storagePortableDirLabel': 'カスタムデータディレクトリ',
'settings.general.storagePortableDirPlaceholder': 'cc-haha データ用のフォルダを選択',
'settings.general.storageChooseDir': 'フォルダを選択',
'settings.general.storageChooseDirTitle': 'カスタムデータディレクトリを選択',
'settings.general.storageApplyPortable': 'このフォルダを使用して再起動',
'settings.general.storageActiveDir': '現在アクティブなデータディレクトリ',
'settings.general.storageEnvironmentHint': '現在のディレクトリは CLAUDE_CONFIG_DIR 環境変数によって制御されています。アプリ内での切り替えではこれを上書きできません。システムディレクトリに戻すには、起動環境から CLAUDE_CONFIG_DIR を削除してください。',
'settings.general.storageEnvironmentSwitchBlocked': '現在 CLAUDE_CONFIG_DIR がデータディレクトリを制御しています。システムディレクトリに戻す前に、起動環境からこれを削除してください。',
'settings.general.storageRestartHint': '保存場所の変更を保存しました。新しいデータディレクトリを有効にするには、アプリを再起動してください。',
'settings.general.storageMoveHint': 'モード切り替えでディレクトリ同士は統合されません。Windows のアップグレードでは旧データを検証してから退避し、完全性を確認できない場合はアップグレードを停止します。',
'settings.general.storageNoDirError': 'まずカスタムデータディレクトリを選択または入力してください。',
'settings.general.storagePickerError': 'フォルダピッカーを開けませんでした。フォルダのパスを手動で貼り付けてください。',
'settings.general.storageRestartError': '変更は保存されましたが、自動再起動に失敗しました。アプリを手動で再起動してください。',
'settings.general.storageSwitchPortableBody': '切り替え後、デスクトップアプリはこのディレクトリでセッション、設定、スキル、MCP、プラグイン、タスク、キャッシュを読み書きします。',
'settings.general.storageSwitchDefaultBody': '元に戻すと、デスクトップアプリは再び ~/.claude を使用します。カスタムディレクトリ内のデータは削除も自動移動もされません。',
'settings.general.storageSwitchRestartBody': 'アプリはローカルサーバーとアダプタープロセスを停止してから再起動します。新しいディレクトリは再起動後に有効になります。',
'settings.general.migration.title': '既存データを移行',
'settings.general.migration.description': '現在のセッション、設定、Skills、プラグイン、タスクをコピーして検証し、保存先を切り替えて再起動します。元のデータは保持されます。',
'settings.general.migration.choose': '既存データを移行…',
'settings.general.migration.chooseTitle': 'データの移行先を選択',
'settings.general.migration.confirmTitle': 'データを移行して再起動しますか?',
'settings.general.migration.confirm': '移行して再起動',
'settings.general.migration.source': '元のディレクトリ',
'settings.general.migration.target': '新しいディレクトリ',
'settings.general.migration.preview': '{files} ファイル · {size}',
'settings.general.migration.activeTasks': '実行中のタスク {count} 件を停止します。',
'settings.general.migration.stopWarning': 'コピー前に実行中の会話とバックグラウンドタスクを中断して現在の状態を保存します。自動再開はしません。検証成功後にアプリが再起動します。',
'settings.general.migration.externalWarning': '続行前に、元のディレクトリを使用している他の Claude Code または cc-haha プロセスを終了してください。アプリのインストール先以外の空のフォルダーを選んでください。',
'settings.general.migration.running': 'データを移行中',
'settings.general.migration.stagePreparing': '移行を準備中…',
'settings.general.migration.stageQuiescing': 'タスクを停止してデータを保存中…',
'settings.general.migration.stageCopying': 'データをコピー中…',
'settings.general.migration.stageVerifying': 'コピーしたデータを検証中…',
'settings.general.migration.stageCommitting': 'データの保存先を切り替え中…',
'settings.general.migration.stageRestarting': 'アプリを再起動中…',
'settings.general.migration.progress': '{files}/{totalFiles} ファイル · {bytes}/{totalBytes}',
'settings.general.migration.cancel': '移行をキャンセル',
'settings.general.migration.cancelling': '移行をキャンセル中…',
'settings.general.migration.completed': 'データ移行が完了しました',
'settings.general.migration.cancelled': '移行をキャンセルしました。元の保存先は変更されていません。',
'settings.general.migration.failed': '移行に失敗しました。元のデータディレクトリは保持されています。',
'settings.general.migration.retained': '元のディレクトリは保持されます。新しい保存先のセッションと設定を確認してから、元のデータを手動で整理してください。',
'settings.general.migration.cli': 'この変更はデスクトップアプリに適用されます。別途起動する CLI は、CLAUDE_CONFIG_DIR を新しい保存先に設定しない限り、従来の保存先を使います。',
'settings.general.migration.openSource': '元のディレクトリを開く',
'settings.general.migration.openTarget': '新しいディレクトリを開く',
'settings.general.migration.environment': 'アプリ内の移行を使うには、起動環境から CLAUDE_CONFIG_DIR を削除してください。',
'settings.general.migration.statusError': '移行の進行状況を取得できません。自動的に再接続しています…',
'settings.general.migration.error': 'データ移行を続行できませんでした。',
// Settings > General
'settings.general.appearanceTitle': '外観',
'settings.general.proxyManagedSettingsWarning': 'ユーザー設定が PROXY_MANAGED プロキシのプレースホルダーだけになっており、他の設定がプロキシツールに上書きされた可能性があります。意図した設定でなければ、CC Switch のルーティング引き継ぎを無効にして、バックアップから settings.json を復元してください。意図した設定なら、この通知は無視できます。',
'settings.general.appearanceDescription': '紙と墨の 6 つの配色を切り替えます。',
'settings.general.appearance.paper': '紙墨',
'settings.general.appearance.warmClassic': 'クラシックウォーム',
'settings.general.appearance.celadon': '青磁',
'settings.general.appearance.inkBlue': '墨夜ブルー',
'settings.general.appearance.dark': '墨夜',
'settings.general.appearance.white': '純白',
'settings.general.appearance.followSystem': 'システムに合わせる',
'settings.general.appearance.followSystemHint': 'システムがダークモードになると墨色の配色に、ライトモードに戻ると紙色の配色に自動で切り替わります。',
'settings.general.appearance.lightThemeLabel': 'ライトモードで使用',
'settings.general.appearance.darkThemeLabel': 'ダークモードで使用',
'settings.general.languageTitle': '言語',
'settings.general.languageDescription': 'アプリケーションの表示言語を選択します。',
'settings.general.responseLangTitle': '応答言語',
'settings.general.responseLangDescription': 'Claude が常に特定の言語で応答するよう指示します。',
'settings.general.responseLangDefault': 'デフォルト(英語)',
'settings.general.outputStyleTitle': '出力スタイル',
'settings.general.outputStyleDescription': '新しいセッションまたは再起動後のセッションで Claude がどのように応答するかを選択します。',
'settings.general.outputStyleBuiltin.default.label': 'デフォルト',
'settings.general.outputStyleBuiltin.default.description': 'Claude はコーディングタスクを効率よく完了し、簡潔に応答します',
'settings.general.outputStyleBuiltin.explanatory.label': '解説型',
'settings.general.outputStyleBuiltin.explanatory.description': 'Claude は実装上の判断とコードベースのパターンを説明します',
'settings.general.outputStyleBuiltin.learning.label': '学習型',
'settings.general.outputStyleBuiltin.learning.description': 'Claude は一時停止し、実践練習として短いコードの記述を依頼します',
'settings.general.outputStyleSelectLabel': '出力スタイルを選択',
'settings.general.outputStyleLoading': '出力スタイルを読み込み中...',
'settings.general.outputStyleSaved': '出力スタイルを保存しました。',
'settings.general.outputStyleRestartHint': '実行中のセッションは現在のプロンプトを使い続けます。新しいセッションを開始するか、新しいプロセスで続行するか、セッションを再起動すると適用されます。',
'settings.general.outputStyleScopeLocal': '現在のプロジェクト',
'settings.general.outputStyleScopeUser': 'ユーザー設定',
'settings.general.outputStyleScopeLocalHint': 'アクティブなプロジェクトの .claude/settings.local.json に保存されます。',
'settings.general.outputStyleScopeUserHint': 'アクティブなプロジェクトが選択されていないため、ユーザー設定に保存されます。',
'settings.general.outputStyleSourceBuiltIn': '組み込み',
'settings.general.outputStyleSourceUser': 'ユーザースタイル',
'settings.general.outputStyleSourceProject': 'プロジェクトスタイル',
'settings.general.outputStyleSourceLocal': 'ローカルプロジェクトスタイル',
'settings.general.outputStyleSourcePolicy': '管理スタイル',
'settings.general.outputStyleSourcePlugin': 'プラグインスタイル',
'settings.general.defaultPermissionTitle': 'デフォルトのセッション権限',
'settings.general.defaultPermissionDescription': 'デスクトップで新しいチャットセッションを開始するときに適用する権限モードを選択します。',
'settings.general.defaultPermissionLabel': '新しいセッションの権限モード',
'settings.general.defaultPermissionHint': '各セッション内では、チャットの権限セレクターから個別に変更できます。',
'settings.general.defaultPermissionScope': '各新規セッションのワークスペース',
'settings.general.effortTitle': '労力レベル',
'settings.general.effortDescription': '新しいセッションのデフォルト推論強度を選択します。選択肢は現在のモデルの対応レベルに従います。',
'settings.general.effortDefaultLabel': 'デフォルトの推論強度',
'settings.general.effortSelectLabel': 'デフォルトの推論強度:{level}',
'settings.general.effortModelHint': '{model} が対応するレベルだけを表示します。別のモデルでは、そのモデルのデフォルトへ自動的に戻ります。',
'settings.general.effortNoModelHint': '対応する推論強度を表示するには、モデルを接続または選択してください。',
'settings.general.effortUnavailable': '調整不可',
'settings.general.effort.low': '低',
'settings.general.effort.medium': '中',
'settings.general.effort.high': '高',
'settings.general.effort.xhigh': '最高',
'settings.general.effort.max': '最大',
'settings.general.thinkingTitle': '思考モード',
'settings.general.thinkingDescription': '新しいセッションをモデルの思考を有効にして開始するかどうかを制御します。オフの場合、DeepSeek などの対応プロバイダーには明示的に非思考パラメーターが渡されます。',
'settings.general.thinkingEnabled': '思考モードを有効にする',
'settings.general.thinkingHint': '新しいセッションを --thinking 無効で開始するにはこれをオフにします。DeepSeek V4 Flash/Pro やその他の非思考ワークフローに便利です。',
'settings.general.defaultEditorTitle': '既定のエディタ',
'settings.general.defaultEditorDescription': 'ファイルの「開く方法」メニューに表示するエディタ。このマシンで検出されたエディタのみ表示されます。',
'settings.general.defaultEditorAuto': '自動',
'settings.general.agentTeamsTitle': 'Agent Teams',
'settings.general.agentTeamsDescription': '複数のエージェントがタスクを分担し、チームで協力できるようにします。',
'settings.general.agentTeamsEnabled': 'Agent Teams を有効にする',
'settings.general.agentTeamsHint': '新しいセッションに適用されます。既存のセッションに適用するにはアプリを再起動してください。',
'settings.general.autoQuestionTitle': '質問への自動回答',
'settings.general.autoQuestionDescription': 'AskUserQuestion に回答がない場合もセッションを続行します。',
'settings.general.autoQuestionEnabled': '一定時間後に自動で回答する',
'settings.general.autoQuestionHint': '明示された推奨選択肢を優先します。それ以外は小型モデルが提示済みの選択肢から判断します。判断できない場合は待機します。',
'settings.general.autoQuestionTimeout': '回答までの待機時間',
'settings.general.autoQuestionMinutes': '{count} 分',
'settings.general.autoQuestionSaveFailed': '質問への自動回答設定を保存できませんでした。',
'settings.general.agentTeamsSaveFailed': 'Agent Teams の設定を保存できませんでした。もう一度お試しください。',
'settings.general.workflowKeywordTitle': 'Ultracode',
'settings.general.workflowKeywordDescription': '単独の Ultracode キーワードでプロンプトを動的な Workflow オーケストレーションに切り替えるかを制御します。',
'settings.general.workflowKeywordEnabled': 'Ultracode キーワードトリガーを有効にする',
'settings.general.workflowKeywordHint': '有効なキーワードは送信前に強調表示され、コードブロック、引用、パス、flag、ハイフン付きリテラルはそのまま扱われます。',
'settings.general.autoDreamTitle': 'Auto-dream',
'settings.general.autoDreamDescription': '十分なセッションが変更された後、バックグラウンドで auto-memory を定期的に統合します。',
'settings.general.autoDreamEnabled': 'Auto-dream を有効にする',
'settings.general.autoDreamHintOn': '対象セッションの終了後、デスクトップアプリがバックグラウンドで記憶を整理できます。',
'settings.general.autoDreamHintOff': 'バックグラウンドのモデル呼び出しが発生する可能性があるため、既定ではオフです。',
'settings.general.autoDreamConfirmTitle': 'Auto-dream を有効にしますか?',
'settings.general.autoDreamConfirmKeepRunning': '対象セッションの終了後にバックグラウンドの記憶整理を開始できるよう、デスクトップアプリを起動したままにしてください。',
'settings.general.autoDreamConfirmTokenCost': 'Auto-dream は記憶ファイルの確認と書き換え時に追加のモデル Token を使用します。',
'settings.general.autoDreamConfirmEnable': 'Auto-dream を有効にする',
'settings.general.notificationsTitle': 'システム通知',
'settings.general.notificationsDescription': '権限の確認、エージェントの応答、スケジュールタスクの結果に OS ネイティブの通知を使用します。',
'settings.general.notificationsEnabled': 'システム通知を有効にする',
'settings.general.notificationsHintOn': '有効にすると、アプリは通知権限を要求し、OS の通知センターを使用します。',
'settings.general.notificationsHintOff': '無効にすると、権限の確認、エージェントの応答、スケジュールタスクはデスクトップ通知を送信しません。',
'settings.general.notificationsStatus': '権限',
'settings.general.notificationsStatusGranted': '許可済み',
'settings.general.notificationsStatusDenied': 'システム設定でブロックされています',
'settings.general.notificationsStatusDefault': '未要求',
'settings.general.notificationsStatusUnsupported': 'この環境では利用できません',
'settings.general.notificationsAuthorize': '許可する',
'settings.general.notificationsOpenSettings': '設定を開く',
'settings.general.notificationsTestTitle': 'Claude Code Haha の通知が有効になりました',
'settings.general.notificationsTestBody': '権限の確認と完了したエージェントの応答に、これからシステム通知が使用されます。',
'settings.general.traceTitle': 'Agent Trace',
'settings.general.traceDescription': '停止、失敗、予期しない待機を調査するために、ローカルセッションのモデル要求トレースを収集します。',
'settings.general.traceEnabled': 'Agent Trace を収集',
'settings.general.traceHintOn': '新しいセッションは、簡潔な要求、応答、状態イベントをローカルの cc-haha traces ディレクトリに書き込みます。',
'settings.general.traceHintOff': '新しい Trace は書き込まれません。既存の記録は Trace 一覧で引き続き確認できます。',
'settings.general.chatSendBehaviorTitle': 'メッセージの送信',
'settings.general.chatSendBehaviorDescription': 'デスクトップのチャット入力欄でメッセージを送信する方法を選択します。',
'settings.general.chatSendBehaviorEnter': 'Enter で送信',
'settings.general.chatSendBehaviorEnterDescription': 'Shift+Enter で改行を挿入します。',
'settings.general.chatSendBehaviorModifier': 'Ctrl/Cmd+Enter で送信',
'settings.general.chatSendBehaviorModifierDescription': 'Enter と Shift+Enter で改行を挿入します。',
'settings.general.h5AccessTitle': 'H5 アクセス',
'settings.general.h5AccessDescription': 'デスクトップ H5 アプリをローカルネットワークに公開します。スマートフォンは、有効期限の短い H5 トークンを含む QR リンクで接続します。',
'settings.general.h5AccessEnabled': 'H5 アクセスを有効にする',
'settings.general.h5AccessEnabledHint': 'デスクトップサーバーが LAN アドレスで待ち受け、デスクトップセッションへのアクセスを許可します。',
'settings.general.h5AccessStatusEnabled': '有効',
'settings.general.h5AccessTokenPreview': 'トークンプレビュー',
'settings.general.h5AccessDisabledValue': '無効',
'settings.general.h5AccessDisable': '無効化',
'settings.general.h5AccessGenerateToken': 'トークンを生成',
'settings.general.h5AccessRegenerate': 'トークンを再生成',
'settings.general.h5AccessGeneratedToken': '生成されたトークン',
'settings.general.h5AccessGeneratedTokenHint': '一度だけ表示されます。今すぐコピーし、パスワードのように保管してください。',
'settings.general.h5AccessShowToken': 'トークンを表示',
'settings.general.h5AccessCopy': 'コピー',
'settings.general.h5AccessCopyUrl': 'H5 URL をコピー',
'settings.general.h5AccessCopyLaunchUrl': 'QR リンクをコピー',
'settings.general.h5AccessUrlCopied': 'H5 URL をコピーしました。',
'settings.general.h5AccessLaunchUrlCopied': 'QR リンクをコピーしました。',
'settings.general.h5AccessHideToken': 'トークンを非表示',
'settings.general.h5AccessTokenNotAvailable': '旧バージョンのトークンは復元できません。一度再生成すると、トークンは永続化され、いつでも確認できます。',
'settings.general.h5AccessPublicHost': 'アクセスホスト / IP',
'settings.general.h5AccessPublicHostPlaceholder': '192.168.1.100',
'settings.general.h5AccessCurrentPort': '現在のポート',
'settings.general.h5AccessCurrentPortUnknown': '自動',
'settings.general.h5AccessFixedPort': '固定ポート',
'settings.general.h5AccessFixedPortPlaceholder': '自動',
'settings.general.h5AccessFixedPortInvalid': 'ポートは 1024〜65535 のブラウザーで使用可能な整数で指定してください。',
'settings.general.h5AccessFixedPortHint': '固定ポート未設定の場合は前回のポートを自動的に再利用します。リバースプロキシなど安定したポートが必要な場合は固定を推奨します。変更はアプリ再起動後に反映されます。',
'settings.general.h5AccessFixedPortRestartNote': '固定ポート {fixedPort} はアプリ再起動後に有効になります。現在は {activePort} で稼働中です。',
'settings.general.h5AccessDisconnectGrace': '切断後の保持(秒)',
'settings.general.h5AccessDisconnectGracePlaceholder': '30',
'settings.general.h5AccessDisconnectGraceInvalid': '5〜86400 の整数(秒)で指定してください。',
'settings.general.h5AccessDisconnectGraceHint': 'スマホの画面ロックやバックグラウンド移行で切断されても、実行中のタスクは中断されずバックグラウンドで完走し、再接続時に結果を確認できます。タスクが終了し誰も接続していない場合のみ、この時間が経過した後に CLI を停止します(デフォルト 30 秒)。外出先でのリモート操作では大きめに、例えば 600 に設定できます。',
'settings.general.h5AccessPublicUrl': '公開 URL',
'settings.general.h5AccessPublicUrlPlaceholder': 'https://chat.example.com',
'settings.general.h5AccessAllowedOrigins': '許可するオリジン',
'settings.general.h5AccessAllowedOriginsPlaceholder': 'https://chat.example.com, https://phone.example',
'settings.general.h5AccessOriginsHint': '1 行に 1 つのオリジンを入力するか、複数のオリジンをカンマで区切ってください。',
'settings.general.h5AccessOpenHint': 'LAN アクセスの場合は、ホスト / IP のみを変更してください。現在のサービスポートが再利用されます。リバースプロキシの場合は完全な URL を入力してください。',
'settings.general.h5AccessSave': 'H5 設定を保存',
'settings.general.h5AccessUrl': 'H5 URL',
'settings.general.h5AccessQrTitle': 'スマートフォン接続',
'settings.general.h5AccessQrHint': 'スキャンすると、トークンが入力済みの状態で H5 が開きます。',
'settings.general.h5AccessQrRefreshHint': '「トークンを生成」をクリックすると、スキャンできる QR リンクが作成されます。',
'settings.general.h5AccessQrEmptyHint': 'QR コードを作成するにはトークンを生成してください。',
'settings.general.h5AccessQrAlt': 'H5 アクセス用 QR コード',
'settings.general.h5AccessSafetyNote': '信頼できるネットワークでのみ有効にしてください。QR リンクを持つ誰もが、H5 が公開するデスクトップ機能にアクセスできます。',
'settings.general.h5AccessConfirmTitle': 'LAN H5 アクセスを有効にしますか?',
'settings.general.h5AccessConfirmBody': 'これにより、デスクトップ H5 アプリが LAN アドレスとポートで公開されます。QR トークンを持つデバイスは、デスクトップセッションと関連する操作にアクセスできます。信頼できるネットワークでのみ続行してください。',
'settings.general.h5AccessConfirmEnable': 'H5 アクセスを有効にする',
'settings.general.h5AccessError': 'H5 アクセス設定の更新に失敗しました。',
'settings.general.h5AccessStaleHostTitle': '保存された H5 ホストに到達できなくなりました',
'settings.general.h5AccessStaleHostBody': '保存されたホスト {storedHost} は、このマシンのアクティブなインターフェースにバインドされていません。QR コードをスキャンしたスマートフォンは接続に失敗します。現在の LAN IP に切り替えることをお勧めします。',
'settings.general.h5AccessStaleHostNoSuggestion': '保存されたホスト {storedHost} は、このマシンのアクティブなインターフェースにバインドされていません。QR コードをスキャンしたスマートフォンは接続に失敗します。このマシンのネットワーク接続を確認するか、リバースプロキシ URL に切り替えてください。',
'settings.general.h5AccessStaleHostApply': '{suggestedHost} に切り替え',
'settings.general.h5AccessProxyNote': '現在リバースプロキシ URL を使用しています。スマートフォンは、設定した公開ドメイン / トンネルを通じてデスクトップに到達します。プロキシが稼働中であることを確認してください。',
'settings.general.networkTitle': 'ネットワーク',
'settings.general.networkDescription': 'プロバイダー、サインイン、MCP、エージェントツールを含むデスクトップ AI セッションの外部通信を制御します。',
'settings.general.networkProxyModeDirect': '直接接続',
'settings.general.networkProxyModeDirectDescription': 'システムおよびプロセスから継承したプロキシを明示的に使用しません。',
'settings.general.networkProxyModeSystem': 'システムプロキシ',
'settings.general.networkProxyModeSystemDescription': '宛先ごとに OS のプロキシまたは PAC ルールに従い、変更も自動反映します。認証情報が必要な場合は手動プロキシを使用してください。',
'settings.general.networkProxyModeManual': '手動プロキシ',
'settings.general.networkProxyModeManualDescription': 'セッション通信を以下の HTTP または HTTPS プロキシ URL 経由で送信します。',
'settings.general.networkProxyUrl': 'プロキシ URL',
'settings.general.networkProxyUrlHint': 'HTTP および HTTPS プロキシ URL に対応しています。例: http://127.0.0.1:7890。',
'settings.general.networkProxyUrlInvalid': 'HTTP または HTTPS のプロキシ URL を入力してください。',
'settings.general.networkProxyUrlRequired': 'プロキシ URL を入力してください。',
'settings.general.networkTimeout': 'AI リクエストのタイムアウト',
'settings.general.networkTimeoutValue': '{seconds}秒',
'settings.general.networkTimeoutHint': 'プロバイダーへのリクエスト、ストリーミングの最初の応答、プロバイダー接続テストに適用されます。最低 30 秒です。ローカルモデルの思考に時間がかかる場合は、14400 秒(4 時間)以上に設定できます。値を大きくすると、1 回のストリーミング応答の総時間上限も広がります(最低 600 秒)。',
'settings.general.networkTimeoutUnit': '秒',
'settings.general.networkTimeoutDecrease': '30 秒減らす',
'settings.general.networkTimeoutIncrease': '30 秒増やす',
'settings.general.networkTimeoutRequired': 'タイムアウトを入力してください。',
'settings.general.networkTimeoutRange': '{min} から {max} 秒までの整数を入力してください。',
'settings.general.networkSaved': 'ネットワーク設定を保存しました。',
'settings.general.networkScopeHint': '新しいリクエストに適用され、進行中のリクエストは現在の経路を維持します。アプリ更新は別のプロキシ設定を使用します。',
'settings.general.networkSave': '保存',
'settings.general.webFetchPreflightTitle': 'WebFetch プリフライト',
'settings.general.webFetchPreflightDescription': 'デスクトップセッションは、サードパーティプロバイダーや制限されたネットワークでの誤った失敗を避けるため、デフォルトで Claude のドメインプリフライトをスキップします。',
'settings.general.webFetchPreflightEnabled': 'WebFetch のドメインプリフライトをスキップ',
'settings.general.webFetchPreflightHint': '各 WebFetch リクエスト前の上流の安全プリフライトを明示的に復元したい場合のみ、これをオフにしてください。',
'settings.general.webSearchTitle': 'WebSearch',
'settings.general.webSearchDescription': 'エージェントのウェブ検索を、公式 Claude、サードパーティプロバイダー、ローカルのフォールバックキーのどれで解決するかを選択します。',
'settings.general.webSearch.mode.auto': '自動',
'settings.general.webSearch.mode.tavily': 'Tavily',
'settings.general.webSearch.mode.brave': 'Brave',
'settings.general.webSearch.mode.anthropic': 'Claude',
'settings.general.webSearch.mode.disabled': 'オフ',
'settings.general.webSearchTavilyKey': 'Tavily API キー',
'settings.general.webSearchBraveKey': 'Brave Search API キー',
'settings.general.webSearchBravePlaceholder': 'Brave Search トークン',
'settings.general.webSearchGetApiKey': 'API キーを取得',
'settings.general.webSearchTavilyApiKeyLink': 'Tavily API キーを取得',
'settings.general.webSearchBraveApiKeyLink': 'Brave Search API キーを取得',
'settings.general.webSearchTavilyFreeHint': 'アカウントを作成してキーをコピーしてください。無料プランには 1000 クレジットが含まれます。',
'settings.general.webSearchBraveFreeHint': 'アカウントを作成すると、テスト用の無料枠付きで Search API キーを生成できます。',
'settings.general.webSearchHint': '自動の場合、Claude のモデル名にはネイティブの Claude ウェブ検索を使用し、その後 Tavily と Brave のキーにフォールバックします。',
'settings.general.webSearchSave': '保存',
'settings.general.uiZoom': 'UI ズーム',
'settings.general.uiZoomDescription': 'インターフェース全体のサイズを調整します。',
'settings.general.uiZoomShortcutHint': 'ショートカットの方が速いです:',
'settings.general.uiZoomShortcutMac': 'macOS',
'settings.general.uiZoomShortcutWindows': 'Windows / Linux',
'settings.general.uiZoomShortcutResetHint': '0 でズームを 100% にリセットします。',
'settings.general.uiZoomReset': 'UI ズームを 100% にリセット',
// ─── Empty Session ──────────────────────────────────────
'empty.title': '新しいセッション',
'empty.subtitle': '新しいコーディングセッションを開始します。Claude は、プロジェクトの構築、デバッグ、設計をお手伝いする準備ができています。',
'empty.placeholder': '何でも質問してください...',
'empty.addFiles': 'ファイルまたは写真を追加',
'empty.slashCommands': 'スラッシュコマンド',
'empty.failedToCreate': 'セッションの作成に失敗しました',
'empty.createError.workdirMissing': 'プロジェクトフォルダが見つからないか、ディレクトリではありません。既存のプロジェクトを選択してもう一度お試しください。',
'empty.createError.notGit': 'このプロジェクトは Git リポジトリではないため、ブランチでの起動は利用できません。現在のフォルダで開始するか、Git プロジェクトを選択してください。',
'empty.createError.branchNotFound': '選択したブランチは存在しなくなりました。プロジェクトコンテキストを更新して、別のブランチを選択してください。',
'empty.createError.dirtyWorktree': '現在のプロジェクトに未コミットの変更があります。ブランチの直接切り替えはブロックされました。「独立した worktree」を有効にするか、変更を先にコミット/スタッシュしてください。',
'empty.createError.branchCheckedOut': 'そのブランチは別の worktree で既にチェックアウトされています。「独立した worktree」を有効にするか、別のブランチを選択してください。',
'empty.createError.worktreeCreateFailed': '独立した worktree を作成できませんでした。Git がこのリポジトリに書き込めることを確認してから、もう一度お試しください。詳細: {detail}',
'empty.createError.switchFailed': '現在のプロジェクトブランチを切り替えできませんでした。Git のエラーを確認し、変更を安全に保ってから、もう一度お試しください。詳細: {detail}',
'empty.createError.contextFailed': 'この Git プロジェクトを検査できませんでした。リポジトリの状態を確認してもう一度お試しください。',
// ─── Repository Launch Controls ──────────────────────────────────────
'repoLaunch.selectBranch': 'ブランチを選択',
'repoLaunch.searchBranch': 'ブランチを検索',
'repoLaunch.noBranch': 'ブランチなし',
'repoLaunch.noBranchMatch': '一致するブランチがありません',
'repoLaunch.currentBranch': '現在のブランチ',
'repoLaunch.localBranch': 'ローカルブランチ',
'repoLaunch.remoteBranch': 'リモートブランチ',
'repoLaunch.checkedOut': '別の worktree でチェックアウト済み',
'repoLaunch.worktreeCurrent': '現在の worktree',
'repoLaunch.worktreeIsolated': '独立した worktree',
'repoLaunch.selectWorktree': 'worktree モードを選択',
'repoLaunch.launchLocation': '実行場所',
'repoLaunch.branch': 'ブランチ',
'repoLaunch.worktreeBadge': '分離',
'repoLaunch.missingWorkdir': '作業ディレクトリが見つかりません。',
'repoLaunch.dirtyWarning': '未コミットの変更が検出されました。直接切り替えはブロックされる場合があります。このフォルダに触れずに続行するには、独立した worktree を使用してください。',
'repoLaunch.dirtyWarningCompact': '未コミットの変更',
'repoLaunch.checkedOutWarning': '選択したブランチは別の worktree で既にチェックアウトされています。直接起動は Git によってブロックされる場合があります。ディレクトリの変更を避けるには「独立した worktree」を使用してください。',
'repoLaunch.checkedOutWarningCompact': 'ブランチは使用中',
'repoLaunch.newBranch': 'ブランチを作成…',
'repoLaunch.newBranchTitle': '新しいブランチ',
'repoLaunch.newBranchNameLabel': 'ブランチ名',
'repoLaunch.newBranchPlaceholder': 'feature/my-change',
'repoLaunch.newBranchFrom': '{branch} から作成',
'repoLaunch.newBranchSubmit': '作成',
'repoLaunch.newBranchSuccessCurrent': '「{branch}」を作成して選択しました。セッション開始時にこのブランチへ切り替えます。',
'repoLaunch.newBranchSuccessIsolated': '「{branch}」を作成して選択しました。セッション開始時にこのブランチから独立した worktree を作成します。',
'repoLaunch.newBranchErrorInvalid': 'Git はこのブランチ名を受け付けません。',
'repoLaunch.newBranchErrorExists': '同じ名前のブランチが既に存在します。',
'repoLaunch.newBranchErrorFailed': 'ブランチを作成できませんでした。',
'repoLaunch.newBranchErrorNoCommits': 'このリポジトリにはまだコミットがないため、分岐元がありません。',
// ─── Chat Input ──────────────────────────────────────
'chat.placeholder': '編集、デバッグ、説明を Claude に依頼...',
'chat.placeholderMissing': 'このセッションは見つからないワークスペースを指しています。新しいセッションを作成するか、別のプロジェクトを選択してください。',
'chat.placeholderWorktreeRemoved': 'このセッションの一時ワークスペースはクリーンアップされました。元のプロジェクトで新しいセッションを開始してください。',
'chat.placeholderQuestionPending': '先に上の質問に回答してください。Claude が回答を待っています。',
'chat.addFiles': 'ファイルまたは写真を追加',
'chat.composerTools': '入力ツールを開く',
'chat.capabilities.sectionAdd': '追加',
'chat.capabilities.sectionCapabilities': '機能',
'chat.capabilities.sectionCommands': 'コマンド',
'chat.capabilities.searchPlaceholder': 'スキル・プラグイン・ファイルを検索…',
'chat.capabilities.empty': '一致する項目がありません',
'chat.capabilities.back': '戻る',
'chat.capabilities.skills': 'スキル',
'chat.capabilities.skillsDescription': 'スキルをこのチャットに追加',
'chat.capabilities.manageSkills': 'スキルを管理',
'chat.capabilities.connectors': 'コネクタ',
'chat.capabilities.connectorsDescription': '接続済みのサービスを使う',
'chat.capabilities.manageConnectors': 'コネクタを管理',
'chat.capabilities.agents': 'Agent',
'chat.capabilities.agentsDescription': '指定した Agent でタスクを実行',
'chat.capabilities.manageAgents': 'Agent を管理',
'chat.capabilities.teams': 'Agent Teams',
'chat.capabilities.teamsDescription': '複数の Agent でひとつの目標に協働',
'chat.capabilities.teamCreate': 'チャットでチームを作成',
'chat.capabilities.teamCreateDescription': '目標を伝えれば Agent が分担',
'chat.capabilities.teamCreatePrompt': '次の目標に取り組む Agent チームを作成し、分担と連携をしてください:',
'chat.capabilities.teamMembers': 'メンバー {count} 人',
'chat.capabilities.computerUse': 'コンピューター操作',
'chat.capabilities.computerUseDescription': 'このコンピュータ上のアプリを操作',
'chat.capabilities.computerUseUnsupported': 'このプラットフォームでは利用不可 — 設定を開く',
'chat.capabilities.computerUseToggle': 'コンピューター操作を切り替え',
'chat.capabilities.workflows': 'ワークフロー',
'chat.capabilities.workflowsDescription': '保存済みのワークフローを実行',
'chat.capabilities.saveWorkflow': 'このセッションをワークフローとして保存',
'chat.dropFilesTitle': 'ここにファイルをドロップ',
'chat.dropFilesHint': 'ファイルパスとして添付されます。',
'chat.workspaceReferencesOnly': 'ワークスペース参照を {count} 件追加しました',
'chat.contextReferencesOnly': '参照を {count} 件追加しました',
'chat.addSelectionToChat': 'チャットに追加',
'chat.imageLoadFailed': '画像を読み込めません',
'chat.imageLoadFailedHint': 'ファイルが存在しないか、アクセスが許可されていない可能性があります。',
'chat.retryImage': '画像を再読み込み: {name}',
'chat.imageRetrying': '再読み込み中…',
'chat.branchFromHere': '新しい会話を分岐',
'chat.branchSuccess': '分岐した会話「{title}」を作成しました。',
'chat.branchError': 'このメッセージから分岐できませんでした。詳細: {detail}',
'chat.userMessageReference': 'ユーザーメッセージ',
'chat.assistantMessageReference': 'アシスタントメッセージ',
'chat.conversationNavigator.label': '会話ナビゲーション',
'chat.conversationNavigator.turn': '{total} 件中 {current} 件目',
'chat.conversationNavigator.attachments': '添付ファイル {count} 件',
'chat.slashCommands': 'スラッシュコマンド',
'chat.slashSkillPersonal': '個人',
'chat.slashSkillProject': 'プロジェクト',
'chat.slashSkillPlugin': 'プラグイン',
'chat.pendingMessageGuide': '誘導',
'chat.pendingMessageGuideNow': '今すぐ誘導',
'chat.pendingMessageEdit': 'キュー中のメッセージを編集',
'chat.pendingMessageDelete': 'キュー中のメッセージを削除',
'chat.pendingMessageEditInput': 'キュー中のメッセージ本文',
'chat.goalEvent.created': 'ゴールを設定しました',
'chat.goalEvent.replaced': 'ゴールを設定しました',
'chat.goalEvent.statusTitle': 'ゴールのステータス',
'chat.goalEvent.paused': 'ゴールを一時停止しました',
'chat.goalEvent.resumed': 'ゴールを再開しました',
'chat.goalEvent.completed': 'ゴールを完了しました',
'chat.goalEvent.cleared': 'ゴールをクリアしました',
'chat.goalEvent.continuing': 'ゴールを継続中',
'chat.goalEvent.message': 'ゴールの更新',
'chat.goalEvent.objective': '目標: {value}',
'chat.goalEvent.statusValue': 'ステータス: {value}',
'chat.goalEvent.budget': '予算: {value}',
'chat.goalEvent.continuations': '継続回数: {value}',
'chat.compactSummary.compacting': 'コンテキストを圧縮中',
'chat.compactSummary.title': 'コンテキストを圧縮しました',
'chat.compactSummary.autoTitle': 'コンテキストを自動的に圧縮しました',
'chat.compactSummary.manualTitle': 'コンテキストを手動で圧縮しました',
'chat.compactSummary.trigger.manual': '手動',
'chat.compactSummary.trigger.auto': '自動',
'chat.compactSummary.tokens': '圧縮前は {count} トークン',
'chat.compactSummary.messages': '{count} 件のメッセージを要約しました',
'chat.activeGoal.title': 'アクティブなゴール',
'chat.activeGoal.running': 'ループ実行中',
'chat.activeGoal.active': 'アクティブ',
'chat.activeGoal.paused': '一時停止中',
'chat.activeGoal.completed': '完了',
'chat.activeGoal.budget': '予算 {value}',
'chat.activeGoal.continuations': '継続回数 {value}',
'chat.activeGoal.elapsed': '経過 {value}',
'chat.backgroundAgents.title': 'バックグラウンドエージェント',
'chat.backgroundAgents.count': '{count} 件がアクティブまたは最近',
'chat.backgroundAgents.agent': 'エージェント',
'chat.backgroundTasks.command': 'バックグラウンドコマンド',
'chat.backgroundTasks.workflow': 'バックグラウンドワークフロー',
'chat.backgroundTasks.task': 'バックグラウンドタスク',
'chat.backgroundTasks.type.agent': 'エージェント',
'chat.backgroundTasks.type.bash': 'Bash',
'chat.backgroundTasks.type.workflow': 'ワークフロー',
'chat.backgroundTasks.type.task': 'タスク',
'chat.backgroundAgents.tokens': '{count} トークン',
'chat.backgroundAgents.status.running': '実行中',
'chat.backgroundAgents.status.completed': '完了',
'chat.backgroundAgents.status.failed': '失敗',
'chat.backgroundAgents.status.stopped': '停止',
'chat.duration.seconds': '{seconds}秒',
'chat.duration.minutesSeconds': '{minutes}分 {seconds}秒',
'chat.duration.hoursMinutes': '{hours}時間 {minutes}分',
'chat.turnCompletedAt': '{time} 完了',
'chat.turnDuration': '所要 {duration}',
'slash.mcp.title': '利用可能な MCP ツール',
'slash.mcp.subtitle': 'このチャットコンテキストで利用できる、グローバルおよび現在のプロジェクトの MCP サーバー。',
'slash.mcp.subtitleWithProject': '次のグローバルおよびプロジェクトの MCP を表示中: {path}',
'slash.mcp.emptyTitle': '利用可能な MCP サーバーがありません',
'slash.mcp.emptyBody': 'このチャットコンテキストで利用できるグローバルまたはプロジェクトの MCP サーバーがありません。',
'slash.mcp.projectBadge': 'プロジェクト: {name}',
'slash.skills.title': '利用可能なスキル',
'slash.skills.subtitle': '現在のコンテキストで利用できる、ユーザーが呼び出せるスキル。',
'slash.skills.subtitleWithProject': '次のスキルを表示中: {path}',
'slash.skills.emptyTitle': '利用可能なスキルがありません',
'slash.skills.emptyBody': 'このコンテキストで、ユーザーが呼び出せるスキルが見つかりませんでした。',
'slash.saveWorkflow.title': 'ワークフローを保存',
'slash.saveWorkflow.subtitle': '完了したワークフローを再利用可能なスラッシュコマンドとして保存します。',
'slash.saveWorkflow.noCompletedRun': 'このセッションでワークフローを完了してから、/save-workflow で保存してください。',
'slash.saveWorkflow.runLabel': '完了した実行',
'slash.saveWorkflow.nameLabel': 'コマンド名',
'slash.saveWorkflow.namePlaceholder': '例: release-audit',
'slash.saveWorkflow.scopeLabel': '保存先',
'slash.saveWorkflow.scopeProject': 'プロジェクト',
'slash.saveWorkflow.scopeUser': 'ユーザー',
'slash.saveWorkflow.save': 'ワークフローを保存',
'slash.saveWorkflow.loading': 'ワークフローを読み込み中…',
'slash.saveWorkflow.retry': '再試行',
'slash.saveWorkflow.success': '/{name} として保存しました。新しいセッションで /{name} を実行してください。',
'slash.saveWorkflow.error': 'ワークフローを保存できませんでした: {detail}',
'slash.saveWorkflow.invalidName': '名前には英数字、ハイフン、アンダースコアのみを使用し、英数字で始めてください。',
'slash.saveWorkflow.reservedName': '/{name} はデスクトップの予約済みコマンドです。別の名前を使用してください。',
'slash.saveWorkflow.existingName': '/{name} はすでに利用可能なコマンドです。別の名前を使用してください。',
'slash.plugins.title': 'プラグイン',
'slash.plugins.subtitle': 'プラグイン管理はこのスラッシュコマンド画面に移動します。',
'slash.plugins.emptyTitle': 'プラグインパネルは近日公開',
'slash.plugins.emptyBody': 'この共有スラッシュコマンドパネルは現在接続済みです。プラグインデータは次に接続されます。',
'slash.help.title': 'スラッシュコマンド',
'slash.help.subtitle': 'エージェントのワークフローを実行したり、セッション状態を確認したり、デスクトップパネルを開いたりします。',
'slash.help.group.context': 'コンテキスト',
'slash.help.group.project': 'プロジェクト',
'slash.help.group.desktop': 'デスクトップ',
'slash.help.group.more': 'その他',
'slash.help.moreAvailable': 'あと {count} 個のコマンドが利用できます。/ を入力してコマンド一覧全体を検索してください。',
'slash.inspector.title': 'セッションインスペクター',
'slash.inspector.close': 'セッションインスペクターを閉じる',
'slash.inspector.loading': 'セッションデータを読み込み中',
'slash.inspector.error.noActiveSession': 'アクティブなセッションが選択されていません。',
'slash.inspector.error.unavailable': 'セッションインスペクターのデータが利用できません。/api/sessions/:id/inspection が読み込まれるよう、デスクトップサーバーを再起動してください。',
'slash.inspector.tab.status': 'ステータス',
'slash.inspector.tab.usage': '使用量',
'slash.inspector.tab.context': 'コンテキスト',
'slash.inspector.status.cliStatus': 'CLI ステータス',
'slash.inspector.status.running': '実行中',
'slash.inspector.status.notRunning': '実行されていません',
'slash.inspector.status.activeModel': 'アクティブなモデル',
'slash.inspector.status.unknown': '不明',
'slash.inspector.status.mcpConnections': 'MCP 接続',
'slash.inspector.status.connected': '接続済み',
'slash.inspector.status.failed': '失敗',
'slash.inspector.status.registeredTools': '登録済みツール',
'slash.inspector.status.commands': 'コマンド',
'slash.inspector.status.sessionMetadata': 'セッションのメタデータ',
'slash.inspector.status.version': 'バージョン',
'slash.inspector.status.sessionId': 'セッション ID',
'slash.inspector.status.workingDirectory': '作業ディレクトリ',
'slash.inspector.status.permissionMode': '権限モード',
'slash.inspector.status.authToken': '認証トークン',
'slash.inspector.status.outputStyle': '出力スタイル',
'slash.inspector.status.default': 'デフォルト',
'slash.inspector.status.mcpServers': 'MCP サーバー',
'slash.inspector.status.refresh': '更新',
'slash.inspector.status.contextWindow': 'コンテキストウィンドウ',
'slash.inspector.usage.emptyTitle': '使用量データはまだありません',
'slash.inspector.usage.emptyBody': 'CLI セッションが開始され、少なくとも 1 ターン完了すると使用量が表示されます。',
'slash.inspector.usage.contextSnapshotNotice': '現在のコンテキストスナップショットからトークン使用量を表示しています。使用量はコンテキストの取得に応じて動的に更新されます。',
'slash.inspector.usage.transcriptNotice': 'セッションの記録から再構築した使用量を表示しています。API 所要時間は、現在実行中の CLI プロセスでのみ利用できます。',
'slash.inspector.usage.unknownCost': '1 つ以上のモデルの料金が不明なため、コストが不正確な場合があります。',
'slash.inspector.usage.totalCost': '合計コスト',
'slash.inspector.usage.source': 'ソース',
'slash.inspector.usage.source.contextSnapshot': 'コンテキストスナップショット',
'slash.inspector.usage.source.transcript': '記録',
'slash.inspector.usage.source.currentProcess': '現在のプロセス',
'slash.inspector.usage.apiDuration': 'API 所要時間',
'slash.inspector.usage.wallDuration': '実時間',
'slash.inspector.usage.usageSpan': '使用期間',
'slash.inspector.usage.codeChanges': 'コードの変更',
'slash.inspector.usage.input': '入力',
'slash.inspector.usage.output': '出力',
'slash.inspector.usage.cacheReadWrite': 'キャッシュ読み取り / 書き込み',
'slash.inspector.usage.webSearch': 'ウェブ検索',
'slash.inspector.usage.byModel': 'モデル別の使用量',
'slash.inspector.usage.tokens': 'トークン',
'slash.inspector.usage.noModelTitle': 'モデルの使用量がありません',
'slash.inspector.usage.noModelBody': 'モデルの応答が記録されると、ここにトークン使用量が表示されます。',
'slash.inspector.context.loading': 'コンテキストデータを読み込み中',
'slash.inspector.context.emptyTitle': 'コンテキストデータはまだありません',
'slash.inspector.context.emptyBody': 'コンテキストの使用量にはアクティブな CLI セッションが必要です。',
'slash.inspector.context.windowUsage': 'コンテキストウィンドウの使用量',
'slash.inspector.context.used': '使用済み',
'slash.inspector.context.free': '空き',
'slash.inspector.context.messages': 'メッセージ',
'slash.inspector.context.assistant': 'アシスタント',
'slash.inspector.context.toolResults': 'ツールの結果',
'slash.inspector.context.context': 'コンテキスト',
'slash.inspector.context.categoryTitle': 'カテゴリ別の推定使用量',
'slash.inspector.context.noCategoriesTitle': 'コンテキストカテゴリがありません',
'slash.inspector.context.noCategoriesBody': 'CLI がコンテキスト分析を報告すると、コンテキストカテゴリが表示されます。',
'slash.inspector.context.memoryFiles': 'メモリファイル',
'slash.inspector.context.noMemoryFiles': 'このセッションにはメモリファイルが読み込まれていません。',
'slash.inspector.context.openMemory': 'メモリを開く',
'contextIndicator.ariaLabel': 'コンテキスト使用量 {percent}',
'contextIndicator.pendingAria': 'コンテキスト使用量は未計算',
'contextIndicator.loadingAria': 'コンテキスト使用量を読み込み中',
'contextIndicator.unavailableAria': 'コンテキスト使用量は利用不可',
'contextIndicator.title': 'コンテキスト',
'contextIndicator.modelUnknown': '不明なモデル',
'contextIndicator.used': '使用済み',
'contextIndicator.remaining': '残り',
'contextIndicator.window': 'ウィンドウ',
'contextIndicator.loading': 'コンテキスト使用量を読み込み中...',
'contextIndicator.pendingDetail': 'コンテキスト使用量はセッション開始後に計算されます。',
'contextIndicator.unavailable': 'なし',
'contextIndicator.unavailableDetail': 'このセッションではコンテキスト使用量は利用できません。',
'contextIndicator.updatedUnknown': 'まだ更新されていません',
'contextIndicator.updatedNow': 'たった今更新',
'contextIndicator.updatedMinutes': '{count} 分前に更新',
'contextIndicator.estimate': '推定',
'contextIndicator.breakdown': '内訳',
'contextIndicator.sessionCacheHit': 'キャッシュヒット',
'contextIndicator.sessionSpeed': '生成速度',
'contextIndicator.sessionCost': 'セッション費用',
'contextIndicator.sessionSpeedUnit': 'tok/s',
'chat.navigate': '移動',
'chat.select': '選択',
'chat.dismiss': '閉じる',
'chat.stopTitle': '生成を停止 (Cmd+.)',
'chat.generationStopped': '停止しました',
'chat.jumpToLatest': '最新',
'chat.memorySavedTitle': '{count} 件のメモリファイルを保存しました',
'chat.memorySavedFromToolsTitle': '{count} 件のメモリ項目を保存しました',
'chat.memoryReferencedTitle': '{count} 件のメモリ参照',
'chat.memoryOpenSettings': 'メモリを開く',
'chat.memoryMoreFiles': '+{count} 件',
'chat.memoryTechnicalDetails': 'ツールの詳細',
'chat.rewindSuccessWithCode': '{count} 件のメッセージを巻き戻し、追跡対象のファイルを復元しました。',
'chat.rewindSuccessConversationOnly': '{count} 件のメッセージを巻き戻しました。このターンには利用できるファイルチェックポイントがありませんでした。',
'chat.rewindSuccessPartialCoverage': '{count} 件のメッセージを巻き戻し、記録済みのファイルを復元しました。{sources} による変更は記録されておらず、ディスク上に残っています。',
'chat.conversationRewindAction': '会話を巻き戻す',
'chat.conversationRewindConfirmBody': '会話をこのターンの前まで巻き戻します。ディスク上のファイルは変更されません。',
'chat.editMessage': '編集して再送信',
'chat.editMessageInputLabel': '編集したメッセージ',
'chat.editMessageSend': '送信',
'chat.editAttachmentUnavailable': '{count} 件の添付ファイルを読み込めなくなったため、再送信では省略されます。',
'chat.editResendConfirmTitle': '編集して再送信しますか?',
'chat.editResendDropsTurns': 'このメッセージ以降の {count} ターンの会話が削除され、編集したメッセージが送信されます。',
'chat.editResendLatestBody': 'このターンの返信が削除され、編集したメッセージが送信されます。',
'chat.editResendRestoreChoice': 'このターン以降に {count} 件のファイルが変更されています。会話のみを巻き戻してディスク上のファイルを残すことも、ファイルも一緒に復元することもできます。',
'chat.editResendFilesUntouched': 'ディスク上のファイルは変更されません。',
'chat.editResendConversationOnly': '会話のみ巻き戻して送信',
'chat.editResendWithCode': 'コードと会話を巻き戻して送信',
'chat.editResendConversation': '会話を巻き戻して送信',
'chat.editResendFailed': '編集したメッセージを再送信できませんでした。会話は変更されていません。詳細:{detail}',
'chat.editResendPrefilled': '会話は巻き戻されましたが、編集したメッセージを自動送信できなかったため、入力欄に戻しました。',
'chat.workspaceChangesFallbackLabel': 'ワークスペースの変更ファイル',
'chat.workspaceChangesFallbackTitle': '現在のワークスペースの変更({count})',
'chat.workspaceChangesFallbackExplanation': '会話が長すぎるため、ターンごとのプレビューやファイルの取り消しは利用できません。この一覧は現在のワークスペース全体の変更を示し、他のターンやこの会話外の変更を含む場合があります。',
'chat.workspaceChangesFallbackUnavailable': '会話が長すぎるため、ターンごとのプレビューやファイルの取り消しは利用できません。現在のワークスペースの変更を確認できないため、ファイル一覧は表示できません。',
'chat.workspaceChangesFallbackEmpty': '現在のワークスペースに変更は見つかりませんでした。',
'chat.workspaceChangesFallbackOpenFile': '{path} の現在の内容を開く',
'chat.turnChangesTitle': '{count} 個のファイルが変更されました',
'chat.turnChangesLatestCardLabel': 'ターンで変更されたファイル',
'chat.turnChangesHistoricalCardLabel': 'ターンで変更されたファイル',
'chat.turnChangesLatestSubtitle': '現在のターンのチェックポイント',
'chat.turnChangesHistoricalSubtitle': '保存済みターンのチェックポイント',
'chat.turnChangesCurrentWorkspaceDiff': '現在のワークスペース差分',
'chat.turnChangesConversationOnlySubtitle': 'ファイルのチェックポイントが不完全です。会話は巻き戻せますが、ファイルは復元されません',
'chat.turnChangesUndoConversationOnly': '会話のみ巻き戻す',
'chat.turnChangesConversationOnlyConfirmBody': 'このターンはファイルのチェックポイントが不完全なため、ファイルを安全に復元できません。会話のみを巻き戻すとセッションはこのターンの前に戻りますが、ディスク上のファイルは現状のまま残ります。',
'chat.turnChangesPartialCoverageSubtitle': '元に戻すと上記のファイルは復元されます。{sources} による変更はチェックポイントに記録されておらず、そのまま残ります',
'chat.turnChangesPartialCoverageConfirmBody': '注意: {sources} による変更はチェックポイントに記録されていないため、元に戻しても復元されません。',
'chat.turnChangesLatestUndo': '現在のターンを元に戻す',
'chat.turnChangesHistoricalUndo': 'このターンの前まで巻き戻す',
'chat.turnChangesUndoing': '元に戻しています...',
'chat.turnChangesLatestUndoAria': '現在のターンの変更を元に戻す',
'chat.turnChangesHistoricalUndoAria': 'このターンの前まで巻き戻す',
'chat.turnChangesLatestConfirmTitle': '現在のターンを元に戻しますか?',
'chat.turnChangesHistoricalConfirmTitle': 'このターンの前まで巻き戻しますか?',
'chat.turnChangesLatestConfirmBody': '最新のアシスタントの応答を巻き戻し、このターンの追跡対象ファイルを復元します。',
'chat.turnChangesHistoricalConfirmBody': '会話をこのターンの前まで巻き戻し、そのチェックポイントの追跡対象ファイルを復元します。',
'chat.turnChangesLatestConfirmUndo': '現在のターンを元に戻す',
'chat.turnChangesHistoricalConfirmUndo': 'このターンの前まで巻き戻す',
'chat.turnChangesOpenInWorkspaceAria': '{path} をワークスペースで開く',
'chat.turnChangesOpenFileAria': '{path} を開く',
'chat.turnChangesShowMore': 'さらに {count} 個のファイルを表示',
'chat.turnChangesExpand': '{count} 件の変更ファイルを展開',
'chat.turnChangesCollapse': '変更ファイルを折りたたむ',
'chat.turnChangesShowLess': '表示を減らす',
// ─── Streaming Indicator ──────────────────────────────────────
'streaming.thinking': '思考中',
'streaming.running': '実行中',
'streaming.working': '作業中',
// ─── Permission Dialog ──────────────────────────────────────
'permission.allowEditFile': '{actor} が {fileName} を {toolName} することを許可しますか?',
'permission.allowEditFileGeneric': '{actor} がこのファイルを {toolName} することを許可しますか?',
'permission.allowBash': '{actor} がこのコマンドを実行することを許可しますか?',
'permission.allowTool': '{actor} が {toolName} を使用することを許可しますか?',
'permission.awaitingApproval': '承認待ち',
'permission.responded': '応答済み',
'permission.allow': '許可',
'permission.allowForSession': 'このセッションで許可',
'permission.deny': '拒否',
'permission.hideDetails': '詳細を非表示',
'permission.showFullInput': '入力全体を表示',
'permission.replacingContent': 'ファイル内のコンテンツを置換中',
'permission.planReadyTitle': 'コーディングを開始しますか?',
'permission.planPreviewTitle': 'Claude の計画',
'permission.planRequestedPermissions': '要求された権限',
'permission.planApprove': '計画を承認',
'permission.planApproveAcceptEdits': '承認して編集を自動承認',
'permission.planApproveBypass': '承認して権限をバイパス',
'permission.planKeepPlanning': '計画を続ける',
'permission.planFeedbackPlaceholder': 'Claude に変更内容を伝える',
'permission.planExecutionModel': '実行モデル',
'permission.planExecutionModelPending': '承認後に有効',
'permission.planEmpty': '計画内容はありません。',
'permission.planApproved': '計画が承認されました',
'permission.planRejected': '計画が拒否されました',
// ─── Computer Use Approval ──────────────────────────────────────
// ─── Ask User Question ──────────────────────────────────────
'question.needsInput': 'Claude が入力を必要としています',
'question.answered': '回答済み',
'question.autoAnswered': '自動回答済み',
'question.completed': '完了',
'question.customResponse': 'または、独自の回答を入力してください:',
'question.typePlaceholder': '回答を入力...',
'question.submit': '送信',
'question.next': '次へ',
'question.answeredPrefix': '回答: ',
'question.resultPrefix': '結果: ',
'question.chatAboutThis': 'Claude と相談する',
'question.chatAboutThisHint': '選択肢が合わない場合は Claude に聞き返してもらいます。入力済みの回答も一緒に渡されます',
'question.chatRequested': '相談に切り替えました。Claude が確認します',
'question.chatBadge': '相談中',
'question.expiredBadge': '無効',
'question.expiredNotice': 'この質問は回答待ちではなくなりました。送信すると Claude への新しいメッセージとして届きます。',
'question.sendAsMessage': '新しいメッセージとして送信',
'question.sentAsMessagePrefix': '新しいメッセージとして送信しました: ',
// ─── Thinking Block ──────────────────────────────────────
'thinking.label': '思考中',
'thinking.labelDone': '思考完了',
// ─── Tool Calls ──────────────────────────────────────
'tool.errorOutput': 'エラー出力',
'tool.toolOutput': 'ツール出力',
'tool.toolInput': 'ツール入力',
'tool.partialInput': '部分的な入力',
'tool.writerPreview': 'Writer',
'tool.writerPreviewLatest': '{total} 行のうち最新の {visible} 行を表示中',
'tool.contentStats': '{lines} · {chars}',
'tool.contentStatsLatest': '最新 {visible} / {total} 行 · {chars}',
'tool.lineCountSingular': '{count} 行',
'tool.lineCountPlural': '{count} 行',
'tool.charCountSingular': '{count} 文字',
'tool.charCountPlural': '{count} 文字',
'tool.generatingContent': 'コンテンツを生成中',
'tool.preparingEdit': '編集を準備中',
'tool.preparingTool': 'ツールを準備中',
'tool.imageGenerationGeneratingOne': '画像を生成中',
'tool.imageGenerationGenerating': '{count} 枚の画像を生成中',
'tool.imageGenerationEditingOne': '画像を編集中',
'tool.imageGenerationEditing': '{count} 件の画像バリエーションを編集中',
'tool.imageGenerationCompleteOne': '画像を 1 枚生成しました',
'tool.imageGenerationComplete': '{count} 枚の画像を生成しました',
'tool.imageGenerationEditCompleteOne': '画像を 1 枚編集しました',
'tool.imageGenerationEditComplete': '{count} 件の画像バリエーションを編集しました',
'tool.imageGenerationFailed': '画像生成に失敗しました',
'tool.imageGenerationEditFailed': '画像編集に失敗しました',
'tool.imageGenerationMissing': 'プロバイダーからこの画像が返されませんでした',
'tool.generatedImageAlt': '生成画像 {index}',
'tool.stopped': '停止済み',
'tool.readFileContents': 'ファイルの内容を読み取り',
'tool.createFile': 'ファイルを作成',
'tool.updateFileContents': 'ファイルの内容を更新',
'tool.linesChanged': '{count} 行が変更されました',
'tool.linesCreated': '{count} 行が作成されました',
'tool.linesOutput': '{count} 行が出力されました',
'tool.result': '{toolName} の結果',
'tool.resultGeneric': 'ツールの結果',
'tool.error': 'エラー',
'tool.success': '成功',
'tool.showLess': '表示を減らす',
'tool.showMore': 'さらに {count} 文字を表示',
'tool.showMoreLines': '残り {count} 行を表示',
'tool.noOutput': '出力なし',
// ─── Tool Group Verbs ──────────────────────────────────────
'toolGroup.readOne': 'ファイルを 1 件読み取り',
'toolGroup.readMany': '{count} 件のファイルを読み取り',
'toolGroup.createdOne': 'ファイルを作成しました',
'toolGroup.createdMany': '{count} 件のファイルを作成しました',
'toolGroup.editedOne': 'ファイルを編集しました',
'toolGroup.editedMany': '{count} 件のファイルを編集しました',
'toolGroup.ranOne': 'コマンドを実行しました',
'toolGroup.ranMany': '{count} 件のコマンドを実行しました',
'toolGroup.foundFiles': 'ファイルを検索しました',
'toolGroup.searchedOne': 'コードを検索しました',
'toolGroup.searchedMany': '{count} 件のパターンを検索しました',
'toolGroup.agentOne': 'エージェントを 1 件起動しました',
'toolGroup.agentMany': '{count} 件のエージェントを起動しました',
'toolGroup.thought': '思考',
'toolGroup.thoughtMany': '{count} 回思考',
'toolGroup.failedCount': '{count} 件失敗',
'toolGroup.collapseAgent': 'エージェントを折りたたむ',
'toolGroup.expandAgent': 'エージェントを展開',
'toolGroup.openRun': '実行を開く',
'toolGroup.openRunNamed': '実行 {title} を開く',
'agentStatus.starting': '起動中',
'agentStatus.running': '実行中',
'agentStatus.done': '完了',
'agentStatus.failed': '失敗',
'agentStatus.stopped': '停止',
'agentStatus.noActivity': 'まだツールの動作がありません',
'agentStatus.viewResult': '結果を表示',
'agentStatus.resultTitle': 'エージェントの結果',
'agentActivity.loading': 'ツールの動作を読み込み中…',
'agentActivity.failed': 'この実行のツール動作を読み込めませんでした。',
'agentActivity.retry': '再試行',
'agentActivity.truncated': 'この実行の先頭と末尾のみ表示しています。完全な記録は実行画面で確認できます。',
'toolGroup.searchedWeb': 'ウェブを検索しました',
'toolGroup.fetchedOne': 'ページを 1 件取得しました',
'toolGroup.fetchedMany': '{count} 件のページを取得しました',
// ─── Tasks ──────────────────────────────────────
'tasks.completed': '完了したタスク',
'tasks.newTask': '+ 新しいタスク',
'tasks.emptyTitle': 'スケジュールされたタスクはまだありません',
'tasks.emptyDesc': '繰り返しタスクを作成して、エンジニアリングのワークフローを自動化しましょう。',
'tasks.createNew': '新しいタスクを作成',
'tasks.totalTasks': 'タスク総数',
'tasks.active': 'アクティブ',
'tasks.disabled': '無効',
// ─── New Task Modal ──────────────────────────────────────
'newTask.title': '新しいスケジュールタスク',
'newTask.localWarning': 'ローカルタスクは、コンピューターが起動している間のみ実行されます。',
'newTask.fullPermissions': 'すべての権限(固定)',
'newTask.time': '実行時刻',
'newTask.name': '名前',
'newTask.namePlaceholder': 'daily-code-review',
'newTask.description': '説明',
'newTask.descPlaceholder': '昨日のコミットをレビューし、気になる点を指摘する',
'newTask.frequency': '頻度',
'newTask.everyNMinutes': 'N 分ごと',
'newTask.everyNHours': 'N 時間ごと',
'newTask.daily': '毎日',
'newTask.weekdays': '平日(月〜金)',
'newTask.specificDays': '特定の曜日',
'newTask.monthly': '毎月',
'newTask.customCron': 'カスタム cron 式',
'newTask.intervalMinutes': '{n} 分ごと',
'newTask.intervalHours': '{n} 時間ごと',
'newTask.atMinute': ':{m} 分に',
'newTask.onMonthDay': '毎月 {d} 日に',
'newTask.cronFormatHint': '形式: 分 時 日 月 曜日',
'newTask.invalidCron': '無効な cron 式',
'newTask.daySun': '日',
'newTask.dayMon': '月',
'newTask.dayTue': '火',
'newTask.dayWed': '水',
'newTask.dayThu': '木',
'newTask.dayFri': '金',
'newTask.daySat': '土',
'newTask.delayNote': 'スケジュールタスクは、サーバーのパフォーマンスのために数分のランダムな遅延を使用します。',
'newTask.create': 'タスクを作成',
'newTask.promptPlaceholder': '過去 24 時間のコミットを確認してください。何が変わったかを要約し、リスクのあるパターンや不足しているテストを指摘し、フォローアップする価値のある点を書き留めてください。',
'newTask.notification': '通知',
'newTask.notifyOnComplete': '完了時にプッシュ通知',
'newTask.notifyChannels': '通知チャンネル',
'newTask.notifyHint': 'タスクの完了時に、OS ネイティブのデスクトップ通知または IM メッセージを送信します。',
'newTask.notifyDesktop': 'デスクトップ',
'newTask.notConfigured': '未設定',
'newTask.noChannelConfigured': 'IM チャンネルがまだ設定されていません。設定 → IM アダプター でセットアップしてください。',
'newTask.noChannelSelected': '少なくとも 1 つの通知チャンネルを選択してください。',
// ─── Cron Descriptions ──────────────────────────────────────
'cron.everyMinute': '毎分実行',
'cron.everyNMinutes': '{n} 分ごとに実行',
'cron.everyHour': '毎時実行',
'cron.everyNHours': '{n} 時間ごとに実行',
'cron.everyNHoursAtMinute': '{n} 時間ごとに :{m} 分に実行',
'cron.dailyAt': '毎日 {time} に実行',
'cron.weekdaysAt': '平日の {time} に実行',
'cron.specificDaysAt': '毎週 {days} の {time} に実行',
'cron.monthlyAt': '毎月 {day} 日の {time} に実行',
'cron.customSchedule': 'カスタム: {cron}',
'cron.dow.0': '日',
'cron.dow.1': '月',
'cron.dow.2': '火',
'cron.dow.3': '水',
'cron.dow.4': '木',
'cron.dow.5': '金',
'cron.dow.6': '土',
// ─── Task Actions & Logs ──────────────────────────────────────
'tasks.runNow': '今すぐ実行',
'tasks.confirmRun': 'このタスクをすぐに実行しますか?',
'tasks.confirmDisable': 'このスケジュールタスクを無効にしますか?',
'tasks.confirmEnable': 'このスケジュールタスクを有効にしますか?',
'tasks.confirmDelete': 'このタスクとそのすべてのログを完全に削除しますか?',
'tasks.running': '実行中...',
'tasks.viewLogs': 'ログ',
'tasks.moreActions': 'その他の操作',
'tasks.logsTitle': '実行ログ',
'tasks.noLogs': '実行ログはまだありません',
'tasks.runStatus.running': '実行中',
'tasks.runStatus.completed': '完了',
'tasks.runStatus.failed': '失敗',
'tasks.runStatus.timeout': 'タイムアウト',
'tasks.duration': '{s}秒',
'tasks.viewOutput': '概要',
'tasks.hideOutput': '非表示',
'tasks.close': '閉じる',
'tasks.edit': '編集',
'tasks.editTitle': 'スケジュールタスクを編集',
'tasks.saveChanges': '変更を保存',
'tasks.openSession': '会話を表示',
'tasks.createdAt': '作成: ',
'tasks.lastRunAt': '最終実行: ',
'tasks.outputHintSession': '「会話を表示」をクリックすると、セッションビューで出力全体を確認できます。',
'tasks.noOutputText': '利用できる出力はありません。',
// ─── Prompt Editor ──────────────────────────────────────
'promptEditor.worktree': 'worktree',
'promptEditor.bypassWarning': 'バイパスモードはシステムへの完全なアクセスを許可します',
'promptEditor.within': '範囲:',
'promptEditor.selectFolder': '— スコープを限定するフォルダを選択',
// ─── Permission Mode Selector ──────────────────────────────────────
'permMode.executionPermissions': '実行権限',
'permMode.askPermissions': '権限を確認',
'permMode.askPermDesc': 'CLI が要求したときに、ファイル編集やリスクの高いコマンドを確認します',
'permMode.autoAccept': '編集を自動承認',
'permMode.autoAcceptDesc': 'Claude が確認なしでディスクに書き込みます',
'permMode.autoMode': '自動モード',
'permMode.autoModeDesc': 'Claude がツール呼び出しを確認し、安全と判断した操作を実行します',
'permMode.planMode': 'プランモード',
'permMode.planModeDesc': '設計と推論のみ、ファイルは扱いません',
'permMode.bypass': '権限をバイパス',
'permMode.bypassDesc': 'シェルとファイルシステムへの完全なツールアクセス',
'permMode.dontAsk': '確認しない',
'permMode.enableBypassTitle': '権限のバイパスを有効にしますか?',
'permMode.enableBypassSubtitle': 'これによりシステムへの完全なアクセスが許可されます',
'permMode.enableBypassBody': 'Claude は次の範囲内で、シェルコマンドの実行とファイルの変更に <strong>無制限の</strong> アクセスを持ちます:',
'permMode.permReadWrite': 'あらゆるファイルの読み取り、書き込み、削除',
'permMode.permShell': '任意のシェルコマンドの実行',
'permMode.permPackages': 'パッケージのインストールまたは削除',
'permMode.enableBypassBtn': 'バイパスを有効化',
'permMode.disabledDuringTurn': 'セッションの実行中は権限を切り替えられません',
'permMode.enableAutoTitle': '自動モードを有効にしますか?',
'permMode.enableAutoBody': '自動モードは権限確認を減らしますが、安全を保証するものではありません。',
'permMode.enableAutoDetail': 'Claude はツール呼び出しの危険な操作やプロンプトインジェクションを確認し、安全と判断した操作を実行して、危険と判断した操作をブロックします。隔離された環境でのみ使用してください。',
'permMode.enableAutoBtn': '自動モードを有効にする',
// Mode labels (compact, for chips)
'permMode.label.default': '権限を確認',
'permMode.label.acceptEdits': '自動承認',
'permMode.label.auto': '自動モード',
'permMode.label.plan': 'プランモード',
'permMode.label.bypassPermissions': 'バイパス',
'permMode.label.dontAsk': '確認しない',
// ─── Model Selector ──────────────────────────────────────
'model.selectModel': 'モデルを選択',
'model.configureProvider': 'モデルプロバイダーを設定',
'model.configuration': 'モデル設定',
'model.searchPlaceholder': 'モデルを検索',
'model.clearSearch': 'モデル検索をクリア',
'model.noMatches': '一致するモデルはありません',
'model.effort': '労力',
// ─── Directory Picker ──────────────────────────────────────
'dirPicker.selectProject': 'プロジェクトを選択...',
'dirPicker.directory': 'ディレクトリ',
'dirPicker.recent': '最近',
'dirPicker.noRecent': '最近のプロジェクトはありません',
'dirPicker.chooseFolder': '別のフォルダを選択',
'dirPicker.chooseProjectFolder': 'プロジェクトフォルダを選択',
'dirPicker.useThisFolder': 'このフォルダを使用',
'dirPicker.noSubdirs': 'サブディレクトリがありません',
'dirPicker.searchProjects': 'プロジェクトを検索…',
'dirPicker.noMatches': '一致するプロジェクトがありません',
// ─── File Search ──────────────────────────────────────
'fileSearch.searching': '検索中...',
'fileSearch.noMatch': '一致するファイルがありません',
'fileSearch.noFiles': 'このディレクトリにファイルがありません',
'fileSearch.accessDenied': 'このディレクトリにアクセスできません',
'fileSearch.loadFailed': 'ディレクトリの読み込みに失敗しました',
'fileSearch.navigate': '移動',
'fileSearch.attach': '添付',
'fileSearch.select': '選択',
'fileSearch.open': 'フォルダを開く',
'fileSearch.close': '閉じる',
'fileSearch.directory': 'フォルダ',
'fileSearch.currentDirectory': '現在のフォルダ',
'fileSearch.folderTag': 'フォルダ',
'fileSearch.fileTag': 'ファイル',
'fileSearch.openFolder': 'フォルダを開く',
// ─── Teams ──────────────────────────────────────
'teams.backToLeader': '\u2190 \u30ea\u30fc\u30c0\u30fc\u306b\u623b\u308b',
'teams.viewing': '\u8868\u793a\u4e2d:',
'teams.transcript': '記録',
'teams.noMessages': 'メッセージはまだありません',
'teams.members': 'メンバー',
'teams.working': '作業中...',
'teams.thinking': '思考中...',
'teams.leader': 'team-lead',
'teams.memberPlaceholder': 'このメンバーに直接メッセージを送信...',
'teams.memberSessionHint': 'ここでのメッセージはこのメンバーに直接届き、記録の更新を見ながらやり取りできます。',
'teams.archivedMemberSessionHint': 'この保存済み実行には、当時の会話とツール呼び出しがすべて残っています。',
'teams.archivedMemberReadOnly': 'これは読み取り専用の実行履歴です。作業を続けるにはリーダーへ戻ってください。',
'agentTeams.title': 'Agent Teams ワークベンチ',
'agentTeams.sharedTaskList': '共有タスクリスト',
'agentTeams.experimental': '実験機能',
'agentTeams.stats.phase': 'フェーズ',
'agentTeams.stats.completed': '完了',
'agentTeams.stats.running': '実行中',
'agentTeams.stats.available': '未取得',
'agentTeams.stats.blocked': 'ブロック',
'agentTeams.live.following': 'ライブ · チームを追跡中',
'agentTeams.live.runningHint': '{count} 人の進捗を追跡中です。チーム終了後にリプレイ操作が有効になります。',
'agentTeams.live.formingHint': 'リードがチームを編成中です。チーム終了後にリプレイ操作が有効になります。',
'agentTeams.live.waitingHint': '次のタスクの取得を待っています。チーム終了後にリプレイ操作が有効になります。',
'agentTeams.live.elapsed': '経過時間',
'agentTeams.live.sessionClock': 'セッション時刻',
'agentTeams.replay.play': '再生',
'agentTeams.replay.pause': '一時停止',
'agentTeams.replay.replay': 'リプレイ',
'agentTeams.replay.speed': '再生速度',
'agentTeams.replay.timeline': 'リプレイタイムライン · クリックで移動',
'agentTeams.canvas.formation': '1 · 編成 — リードを中央、メンバーを下に配置',
'agentTeams.canvas.tasks': '2 · 共有タスクリスト — 依存レイヤーを左 → 右へ',
'agentTeams.canvas.laneRoot': '依存なし · 取得可能',
'agentTeams.canvas.laneDepth': '第 {layer} 層',
'agentTeams.canvas.laneWrapUp': '仕上げ',
'agentTeams.legend.unmet': '依存未解決',
'agentTeams.legend.satisfied': '依存解決済み(下流へ)',
'agentTeams.legend.tether': 'メンバーがこのタスクを実行中',
'agentTeams.legend.unlocked': '解放直後',
'agentTeams.legend.flight': '移動中のメッセージ / 取得',
'agentTeams.member.inbox': '受信箱 {count}',
'agentTeams.member.executingTask': '#{task} を実行中',
'agentTeams.member.waitingForTask': '待機 · タスク待ち',
'agentTeams.member.waitingForDependency': '待機 · #{task} の解放待ち',
'agentTeams.member.waitingForClose': '待機 · 終了待ち',
'agentTeams.lead.forming': 'チーム編成中',
'agentTeams.lead.coordinating': '調整中 · 報告待ち',
'agentTeams.lead.finishing': '結果を統合中',
'agentTeams.lead.archived': '実行をアーカイブ済み',
'agentTeams.task.start': '開始',
'agentTeams.task.unlocked': '解放直後',
'agentTeams.task.reconstructedOwner': '推定担当',
'agentTeams.communication.open': '通信パネルを開く',
'agentTeams.communication.close': '通信パネルを閉じる',
'agentTeams.communication.backToFeed': '通信一覧に戻る',
'agentTeams.inspector.independentContext': '{role} · 独立コンテキスト',
'agentTeams.inspector.current': '現在',
'agentTeams.inspector.completedTasks': '完了',
'agentTeams.inspector.messages': '送受信',
'agentTeams.inspector.taskHistory': 'タスク履歴',
'agentTeams.inspector.taskHistoryHint': '1 人のメンバーが複数タスクを順番に実行',
'agentTeams.inspector.sent': '送信',
'agentTeams.inspector.received': '受信',
'agentTeams.inspector.failureReason': '原因',
'agentTeams.model.label': 'モデル',
'agentTeams.model.inheritFromLead': 'リードから継承 · {model}',
'agentTeams.model.unknown': '不明',
'agentTeams.hideReport': 'Agent Teams 実行レポートを隠す',
'agentTeams.closeReport': 'Agent Teams 実行レポートを閉じる',
'agentTeams.loading': 'Agent Teams のアクティビティを待機中…',
'agentTeams.phase.forming': 'チーム編成中',
'agentTeams.phase.running': '並列実行',
'agentTeams.phase.finishing': '仕上げ中',
'agentTeams.phase.completed': '完了',
'agentTeams.progressLabel': 'チームタスクの進捗',
'agentTeams.followingLive': 'リアルタイム追従',
'agentTeams.reviewHistory': '履歴を見る',
'agentTeams.older': '以前のワークベンチ状態',
'agentTeams.newer': '新しいワークベンチ状態',
'agentTeams.backToLive': 'リアルタイムへ戻る',
'agentTeams.live': 'ライブ',
'agentTeams.leader': '長',
'agentTeams.restArea': '休憩エリア',
'agentTeams.emptyTasks': 'チームを編成中です。タスク作成後に依存グラフが表示されます。',
'agentTeams.resizePanel': 'Agent Teams ワークベンチの幅を変更',
'agentTeams.task.blocked': '依存待ち',
'agentTeams.task.open': '取得可能',
'agentTeams.task.running': '進行中',
'agentTeams.task.completed': '完了',
'agentTeams.task.closeDetail': 'タスク詳細を閉じる',
'agentTeams.task.ownerLabel': '担当',
'agentTeams.task.dependsOn': '依存',
'agentTeams.task.unblocks': '解放',
'agentTeams.openTask': 'タスクを表示:{subject}',
'agentTeams.task.inferredOwner': '{name}(推定)',
'agentTeams.task.layer': '第 {layer} 層',
'agentTeams.task.dependencies': '依存 {dependencies}',
'agentTeams.task.unclaimed': 'メンバーの取得待ち',
'agentTeams.task.completedNoOwner': '完了 · 担当者の記録なし',
'agentTeams.member.working': '作業中',
'agentTeams.member.idle': '待機中',
'agentTeams.member.stopped': '停止済み',
'agentTeams.member.exited': '退出済み',
'agentTeams.member.error': 'エラー',
'agentTeams.member.retrying': '自動再試行 {attempt}/{max}',
'agentTeams.member.retryInSeconds': '{n} 秒後に自動で再試行',
'agentTeams.member.retryInMinutes': '約 {n} 分後に自動で再試行',
'agentTeams.member.retryNow': 'まもなく自動で再試行',
'agentTeams.member.stoppedHint': 'メッセージを送ると、保存された会話から再開します',
'agentTeams.member.errorHint': '問題を解決してからメッセージを送ると、作業を再開します',
'agentTeams.openMember': '{name} の詳細を開く',
'agentTeams.resizeCommunication': '通信パネルの幅を変更',
'agentTeams.memberTranscriptLoading': 'メンバーの transcript を読み込み中...',
'agentTeams.communication.title': '通信',
'agentTeams.communication.count': '{count} 件',
'agentTeams.communication.all': 'すべて',
'agentTeams.communication.timeline': 'タスクの時間軸',
'agentTeams.communication.timeAll': '全期間',
'agentTeams.communication.timeEarly': '開始',
'agentTeams.communication.timeMiddle': '進行',
'agentTeams.communication.timeLate': '仕上げ',
'agentTeams.communication.empty': 'この表示にはまだメンバー間のメッセージがありません。承認されたタスクはメンバーに直接渡されます。進捗は各メンバーの実行履歴で確認できます。',
'agentTeams.communication.direct': 'DM',
'agentTeams.communication.broadcast': 'ブロードキャスト',
'agentTeams.communication.system': 'システム',
'agentTeams.communication.everyone': '全員',
'agentTeams.communication.taskAssignment': '{name} に {task} {subject} を割り当てました',
'agentTeams.communication.taskClaimed': '{name} が {task} {subject} を受け取りました',
'agentTeams.communication.assignment': '割り当て',
'agentTeams.communication.peer': 'DM',
'agentTeams.communication.report': '報告',
'agentTeams.communication.shutdownRequest': '終了要求:{reason}',
'agentTeams.communication.shutdownResponse': '終了応答を受信しました',
'agentTeams.communication.idle': 'メンバーが待機状態になりました',
'agentTeams.disbanded': 'チームは解散し、成果はメイン会話に統合されました',
'agentTeams.memberDetails': '{name} の詳細',
'agentTeams.memberTasks': '担当タスク',
'agentTeams.noMemberTasks': '割り当てられたタスクはありません。',
'agentTeams.memberMessages': '関連メッセージ',
'agentTeams.noMemberMessages': '関連するチームメッセージはまだありません。承認されたタスクは直接渡されます。下の実行履歴ボタンで進捗を確認できます。',
'agentTeams.fullConversationHint': '完全な会話、ツール呼び出し、ストリーミング出力は既存のセッション表示を再利用します。',
'agentTeams.archivedConversationHint': '保存された実行セッションを開き、会話全体とツール呼び出しを確認できます。',
'agentTeams.openConversation': '{name} と直接話す',
'agentTeams.openExecution': '{name} の実行を表示',
'agentTeams.dependencyLegend': '実線:主依存 · 破線:副依存 · ホバーでフォーカス',
'agentTeams.backToSession': 'セッションに戻る',
'agentTeams.backToOverview': 'チーム概要に戻る',
'agentTeams.openInTab': 'タブで開く',
'agentTeams.communication.lifecycle.idle_notification': '待機状態に入り、次の作業を待っています',
'agentTeams.communication.lifecycle.shutdown_request': '終了を要請しました',
'agentTeams.communication.lifecycle.shutdown_approved': '終了が承認されました',
'agentTeams.communication.lifecycle.shutdown_rejected': '終了が却下されました',
'agentTeams.communication.lifecycle.teammate_terminated': 'メンバーが停止しました',
'agentTeams.communication.lifecycle.shutdown_response': '終了を確認しました',
'agentTeams.communication.showLifecycle': 'ステータス通知 {count} 件を表示',
'agentTeams.communication.hideLifecycle': 'ステータス通知を隠す',
'agentTeams.communication.expand': 'もっと見る',
'agentTeams.communication.collapse': '折りたたむ',
'agentTeams.inline.created': 'エージェントチーム · メンバー {count} 名',
'agentTeams.inline.coordination': 'チーム編成ログ · {count} ステップ',
'agentTeams.inline.open': '実行レポートを開く',
'agentTeams.report.title': 'Agent Teams 実行レポート',
'agentTeams.report.openWorkbench': 'ワークベンチ',
'agentTeams.report.tasksDone': 'タスク完了',
'agentTeams.report.members': 'メンバー {count}',
'agentTeams.report.tasks': 'タスク {count}',
'agentTeams.report.ownedTasks': '{count} 件担当',
'agentTeams.report.messages': '通信ログ {count} 件',
'agentTeams.report.disbanded': 'チームは解散し、成果はメインセッションに統合されました',
'agentTeams.report.memberStatus.running': '作業中',
'agentTeams.report.memberStatus.idle': '待機中',
'agentTeams.report.memberStatus.completed': '完了',
'agentTeams.report.memberStatus.error': 'エラー',
'agentTeams.inline.tasks': 'タスク {completed}/{total}',
'agentTeams.strip.label': 'チーム',
// ─── Session Activity ──────────────────────────────────────
'session.activity.title': 'アクティビティ',
'session.activity.close': 'アクティビティを閉じる',
'session.activity.clearFinished': '完了済みをクリア',
'session.activity.openTeamMember': 'チームメンバー {name} を開く',
'session.activity.openRun': '実行 {name} を開く',
'session.activity.openBackgroundTask': 'バックグラウンドタスク {name} を開く',
'session.activity.stopBackgroundTask': 'バックグラウンドタスク {name} を停止',
'session.activity.stoppingBackgroundTask': 'バックグラウンドタスク {name} を停止中',
'session.activity.details.title': '詳細',
'session.activity.details.type': '種類',
'session.activity.details.description': '説明',
'session.activity.details.summary': '要約',
'session.activity.details.outputFile': '出力ファイル',
'session.activity.details.usage': '使用量',
'session.activity.section.tasks': 'タスク',
'session.activity.tasksProgress': 'タスク進捗 {completed}/{total}',
'session.activity.section.team': 'チーム',
'session.activity.section.workflow': 'ワークフロー',
'session.activity.section.backgroundTasks': 'バックグラウンドタスク',
'session.activity.section.subagents': 'SubAgent',
'session.activity.section.sources': 'ソース',
'session.activity.empty.tasks': 'タスクはありません',
'session.activity.empty.team': 'チームメンバーはいません',
'session.activity.empty.backgroundTasks': 'バックグラウンドタスクはありません',
'session.activity.empty.subagents': 'SubAgent はありません',
'session.activity.empty.sources': 'ソースはありません',
'session.activity.task.completed': 'タスク完了',
'session.activity.task.inProgress': 'タスク実行中',
'session.activity.task.pending': 'タスク待機中',
'session.activity.tasks.earlier': '過去のタスク',
'session.activity.tasks.earlierSummary': '過去のターン: {completed}/{total} 完了',
'session.activity.status.pending': '待機中',
'session.activity.status.inProgress': '進行中',
'session.activity.status.completed': '完了',
'session.activity.status.running': '実行中',
'session.activity.status.stopping': '停止中',
'session.activity.status.failed': '失敗',
'session.activity.status.stopped': '停止済み',
'session.activity.status.idle': 'アイドル',
'session.activity.status.error': 'エラー',
'session.activity.status.unknown': '不明',
// ─── SubAgent Run ──────────────────────────────────────
'subagentRun.incompleteHistory': '一部の履歴を読み込めませんでした。利用可能な内容を表示しています。更新して再試行できます。',
'subagentRun.refresh': 'SubAgent 実行を更新',
'subagentRun.backToParent': '親セッションに戻る',
'subagentRun.loading': 'SubAgent 実行を読み込み中...',
'subagentRun.source': 'ソース',
'subagentRun.agent': 'Agent',
'subagentRun.model': 'モデル',
'subagentRun.unknown': '不明',
'subagentRun.task': 'タスク',
'subagentRun.updated': '更新日時',
'subagentRun.output': '出力',
'subagentRun.agentInvocation': 'Agent 呼び出し',
'subagentRun.parentToolInput': '親 Agent のツール入力',
'subagentRun.parentToolCall': '親 Agent のツール呼び出し',
'subagentRun.transcript': '実行記録',
'subagentRun.noTranscript': 'この SubAgent のローカル実行記録は取得されていません。',
'subagentRun.truncated': '先頭 50 件と最新 950 件を表示中',
'subagentRun.source.transcript': '実行記録',
'subagentRun.source.sessionHistory': 'セッション履歴',
'subagentRun.source.liveTask': 'ライブタスク',
'subagentRun.source.none': 'なし',
'subagentRun.status.completed': '完了',
'subagentRun.status.failed': '失敗',
'subagentRun.status.stopped': '停止済み',
'subagentRun.status.running': '実行中',
'subagentRun.status.unknown': '不明',
'subagentRun.result.completedFallback': 'SubAgent は完了しましたが、結果ペイロードはありません。',
'subagentRun.result.failedFallback': 'SubAgent は失敗しましたが、エラーペイロードはありません。',
'subagentRun.result.stoppedFallback': 'SubAgent は停止しましたが、結果ペイロードはありません。',
'subagentRun.result.noneFallback': '結果はありません。',
'subagentRun.readOnly': 'これは単発 SubAgent の実行記録です。会話を続けることはできません。',
// ─── Scheduled Tasks Pages ──────────────────────────────────────
'scheduledPage.title': 'スケジュールタスク',
'scheduledPage.subtitle': 'タスクをスケジュール実行したり、必要なときに実行したりします。既存のセッションで {code} を入力すると作成できます。',
'scheduledPage.desktopNotice': 'スケジュールタスクは、デスクトップアプリが開いている間のみ実行されます。タスクが時間どおりに実行されるよう、アプリを起動したままにしてください。',
'scheduledPage.oldSubtitle': '自動化された運用ルーチンとバックグラウンドメンテナンスを管理します。',
'scheduledPage.executionMode': '実行モード',
'scheduledPage.localMode': 'ローカルモード',
'scheduledPage.remoteMode': 'リモートモード',
'scheduledPage.nextRun': '次回実行',
'scheduledPage.systemHealth': 'システムの状態',
'scheduledPage.activeSession': 'アクティブなセッション',
'scheduledPage.endOfList': 'スケジュール一覧の末尾',
'scheduledPage.pausedTasks': '他の 9 件のタスクは現在、メンテナンスのために一時停止または無効になっています。',
'scheduledPage.recentLogs': '最近の出力ログ',
'scheduledPage.viewArtifacts': '成果物全体を表示',
'scheduledPage.resourceAllocation': 'リソース割り当て',
'scheduledPage.cpuCapacity': 'CPU 容量',
'scheduledPage.memoryLoad': 'メモリ負荷',
'scheduledPage.connectedLocal': 'ローカルノードに接続済み',
'scheduledPage.thisMonth': '今月 {count} 件',
// ─── Update Checker ──────────────────────────────────────
'update.available': 'v{version} が利用可能',
'update.availableLabel': '利用可能',
'update.checking': '更新を確認中...',
'update.checkNow': '今すぐ確認',
'update.checkedAt': '最終確認 {time}',
'update.currentVersionUnknown': '不明',
'update.newVersion': '新しいバージョン v{version} が利用可能',
'update.downloading': 'ダウンロード中...',
'update.downloaded': '更新をダウンロードしました。使用する準備ができたら再起動してください。',
'update.idle': '更新を確認して、インストール済みのバージョンを最新の GitHub Release と比較します。',
'update.installAndRestart': 'インストールして再起動',
'update.installing': '更新をインストール中...',
'update.now': '今すぐ更新',
'update.later': '後で',
'update.progress': '更新をダウンロード中... {progress}%',
'update.progressBytes': '更新をダウンロード中... {downloaded} ダウンロード済み',
'update.proxyAdvanced': '高度な更新プロキシ',
'update.proxyModeManual': '手動プロキシ',
'update.proxyModeManualDescription': '指定したローカルの HTTP プロキシアドレスを使用します。',
'update.proxyModeSystem': 'システムプロキシ',
'update.proxyModeSystemDescription': 'OS の HTTP/HTTPS プロキシを自動的に使用します。',
'update.proxySave': '保存',
'update.proxyScopeHint': 'これはアプリの更新確認とダウンロードにのみ影響します。',
'update.proxyUrl': 'プロキシ URL',
'update.proxyUrlHint': 'HTTP および HTTPS プロキシ URL に対応しています。例: http://127.0.0.1:7890。',
'update.proxyUrlInvalid': 'HTTP または HTTPS のプロキシ URL を入力してください。',
'update.proxyUrlRequired': 'プロキシ URL を入力してください。',
'update.releaseNotes': 'リリースノート',
'update.readyBody': 'v{version} をダウンロードしました。使用する準備ができたら再起動してください。',
'update.readyTitle': '更新の準備完了',
'update.restarting': '更新を完了するために再起動中...',
'update.upToDate': 'v{version} は最新です。',
'update.failed': '更新に失敗しました: {error}',
// ─── Active Session ──────────────────────────────────────
'session.untitled': '無題のセッション',
'session.active': 'セッションがアクティブ',
'session.lastUpdated': '最終更新 {time}',
'session.messages': '{count} 件のメッセージ',
'session.apiTokens': '{count} API tokens',
'session.apiTokensWithCache': '{count} tokens(キャッシュを含む)',
'session.apiTokenBreakdown': 'API 使用量: {total} tokens · 入力 {input} · 出力 {output} · キャッシュ読み取り {cacheRead} · キャッシュ書き込み {cacheWrite}',
'session.historyLoadFailed': 'セッション履歴の読み込みに失敗しました。',
'session.historyTooLarge': 'このセッション履歴は大きすぎるため読み込めません。',
'session.workspaceUnavailable': 'ワークスペースが利用できません: {dir}',
'session.worktreeRemoved': '一時ワークスペースはクリーンアップされました。履歴は引き続き閲覧できます。{dir} で新しいセッションを開始してください。',
'session.timeJustNow': 'たった今',
'session.timeMinutes': '{n} 分前',
'session.timeHours': '{n} 時間前',
'session.timeDays': '{n} 日前',
'trace.open': 'Trace',
'trace.title': 'モデル Trace',
'trace.loadFailed': 'Trace の読み込みに失敗しました',
'trace.apiCalls': 'API 呼び出し',
'trace.failedCalls': '失敗',
'trace.duration': '所要時間',
'trace.elapsed': '経過時間',
'trace.completed': '完了',
'trace.wallTime': '実時間',
'trace.modelTime': 'モデル時間',
'trace.toolTime': 'ツール時間',
'trace.models': 'モデル',
'trace.request': 'リクエスト',
'trace.response': 'レスポンス',
'trace.status': 'ステータス',
'trace.live': 'ライブ',
'trace.updatedAt': '更新',
'trace.copySessionId': 'Session ID をコピー',
'trace.refresh': 'Trace を更新',
'trace.openWindow': '別ウィンドウで開く',
'trace.backToList': '一覧に戻る',
'trace.delete': 'Trace を削除',
'trace.noResponse': 'レスポンス本文はキャプチャされていません',
'trace.emptyTitle': 'Trace 呼び出しはまだありません',
'trace.emptyBody': 'このセッションにはキャプチャ済みのモデル呼び出しがありません。新しいデスクトップセッションでは、軽量なリクエストとレスポンスのプレビューを自動記録します。',
'trace.tokens': '入力 + 出力',
'trace.inputOutputTokens': '入力 → 出力',
'trace.cacheTokens': 'キャッシュ読み取り → 書き込み',
'trace.snapshotEmpty': 'Trace スナップショットは空です。',
'trace.errors': 'エラー',
'trace.focus': '注目箇所',
'trace.searchSpans': 'Span を検索',
'trace.noMatchingSpans': '一致する Span はありません',
'trace.filter.aria': 'Span を絞り込み',
'trace.filter.all': 'すべて',
'trace.filter.llm': 'LLM',
'trace.filter.tools': 'ツール',
'trace.filter.errors': 'エラー',
'trace.sidechain': '子',
'trace.turnLabel': 'ターン {index}',
'trace.waitingForResult': '結果待ち',
'trace.started': '開始',
'trace.provider': 'Provider',
'trace.model': 'モデル',
'trace.childSpans': '子 Span',
'trace.requestBody': 'リクエスト本文',
'trace.requestHeaders': 'リクエストヘッダー',
'trace.responseBody': 'レスポンス本文',
'trace.responseHeaders': 'レスポンスヘッダー',
'trace.toolResult': 'ツール結果',
'trace.truncatedShort': '切り詰め済み',
'trace.noData': 'データなし',
'trace.llmCalls': 'LLM 呼び出し',
'trace.toolCalls': 'ツール呼び出し',
'trace.status.ok': '正常',
'trace.status.error': 'エラー',
'trace.status.pending': '待機中',
'trace.message.user': 'ユーザーメッセージ',
'trace.message.assistant': 'アシスタントメッセージ',
'trace.message.redactedReasoning': '推論内容はプロバイダーにより非開示',
'trace.message.system': 'システムメッセージ',
'trace.message.toolRequest': 'アシスタントのツール要求',
'trace.message.toolResult': 'ツール結果',
'trace.toolError': 'ツールエラー',
'trace.modelCall': 'モデル呼び出し',
'trace.sessionActivity': 'セッションアクティビティ',
'trace.diagnosis.modelError': 'モデル呼び出しに失敗しました',
'trace.diagnosis.toolError': 'ツール実行に失敗しました',
'trace.diagnosis.eventError': 'トレースイベントに失敗しました',
'trace.diagnosis.pendingModel': 'モデル応答を待機中',
'trace.diagnosis.pendingTool': 'ツール結果を待機中',
'trace.diagnosis.waitingForAgent': 'ユーザーメッセージはまだ agent ステップに入っていません',
'trace.diagnosis.empty': '診断イベントがありません',
'trace.diagnosis.healthy': 'ブロック箇所は検出されていません',
'trace.event.apiCallStarted': 'API 呼び出し開始',
'trace.event.apiCallCompleted': 'API 呼び出し完了',
'trace.event.apiCallFailed': 'API 呼び出し失敗',
'trace.event.apiCallAborted': 'API 呼び出し中断',
'trace.event.responseCaptureFailed': 'レスポンスキャプチャ失敗',
'trace.event.upstreamFetchStarted': 'アップストリーム要求開始',
'trace.event.upstreamFetchCompleted': 'アップストリーム要求完了',
'trace.event.upstreamFetchFailed': 'アップストリーム要求失敗',
'trace.section.response': 'レスポンス',
'trace.section.messages': 'メッセージ',
'trace.section.systemPrompt': 'システムプロンプト',
'trace.section.context': '注入されたコンテキスト',
'trace.context.systemReminder': 'システムリマインダー',
'trace.context.deferredTools': '遅延ツール',
'trace.context.other': '注入',
'trace.section.tools': 'ツール',
'trace.section.parameters': 'パラメータ',
'trace.section.raw': '生データ',
'trace.section.input': '入力',
'trace.section.result': '結果',
'trace.section.meta': 'メタ情報',
'trace.section.content': '内容',
'trace.section.event': 'イベント',
'trace.section.metadata': 'メタデータ',
'trace.detail.stopReason': '停止理由',
'trace.detail.streaming': 'モデルの応答を待機中...',
'trace.detail.aborted': '応答が完了する前にリクエストが中断されました(タイムアウトまたはキャンセル)。',
'trace.status.aborted': '中断',
'trace.detail.legacyTruncated': 'このレコードは旧形式の切り詰められたデータのため、セマンティック表示はできません。下の生データを確認してください。',
'trace.detail.fetchFailed': '完全なレコードの読み込みに失敗したため、切り詰められたプレビューを表示しています。',
'trace.detail.earlierMessages': '以前の {count} 件のメッセージを表示',
'trace.detail.chars': '{count} 文字',
'trace.detail.thinking': '思考',
'trace.detail.toolUseId': 'Tool use ID',
'trace.detail.phase': 'フェーズ',
'trace.detail.severity': '重要度',
'trace.detail.message': 'メッセージ',
'trace.tree.aria': 'トレースタイムライン',
'trace.tree.toggleTurn': 'ターンを開閉',
'trace.list.eyebrow': 'Agent Trace',
'trace.list.title': 'Trace 一覧',
'trace.list.collecting': '収集中',
'trace.list.paused': '一時停止',
'trace.list.settings': 'Trace 設定',
'trace.list.sessions': 'セッション',
'trace.list.searchPlaceholder': 'タイトル、Session ID、プロジェクトパスを検索',
'trace.list.emptyTitle': 'Trace 記録はまだありません',
'trace.list.emptyBody': '収集を有効にすると、新しいデスクトップセッションはモデル呼び出しトレースをローカルの traces ディレクトリに書き込みます。',
'trace.list.loadFailed': 'Trace 一覧の読み込みに失敗しました',
'trace.list.loadedCount': '{shown} / {total} を表示中',
'trace.list.loadMore': 'さらに読み込む',
'trace.list.deleteConfirmTitle': 'Trace セッションを削除',
'trace.list.deleteConfirmBody': '「{title}」の Trace データを削除しますか?チャット履歴は削除されません。',
'trace.list.deleteFailed': 'Trace セッションの削除に失敗しました',
// ─── App Shell ──────────────────────────────────────
'app.serverFailed': 'ローカルサーバーの起動に失敗しました',
'app.serverFailedHint': '問題を報告する際は、この診断パネルのスクリーンショットを添付してください。',
'app.startupError': '起動エラー',
'app.serverLogs': 'サーバーログ',
'app.copyDiagnostics': '診断情報をコピー',
'app.copiedDiagnostics': 'コピーしました',
'app.launching': 'ローカルワークスペースを起動中...',
// ─── Error Codes ──────────────────────────────────────
'error.CLI_NOT_RUNNING': 'CLI プロセスが実行されていません。セッションが終了したか、プロセスがクラッシュした可能性があります。',
'error.CLI_START_FAILED': 'CLI プロセスの起動に失敗しました。',
'error.CLI_AUTH_REQUIRED': '認証が必要です。ログインしてください。',
'error.CLI_SESSION_CONFLICT': 'セッションは既に別のプロセスで使用されています。',
'error.CLI_SPAWN_FAILED': 'CLI サブプロセスの生成に失敗しました。',
'error.CLI_ERROR': '処理中にエラーが発生しました。',
'error.WORKDIR_INVALID': '作業ディレクトリが無効か、存在しません。',
'error.PARSE_ERROR': 'メッセージの形式が無効です。',
'error.UNKNOWN_TYPE': '不明なメッセージタイプです。',
'error.BAD_REQUEST': '不正なリクエストです。',
'error.NOT_FOUND': 'リソースが見つかりません。',
'error.INTERNAL_ERROR': 'サーバー内部エラーです。',
// ─── Business Errors ──────────────────────────────────────
'businessError.pdf_too_large': 'PDF が選択したモデルには大きすぎます。テキストに変換するか、より小さい PDF を使用してください。',
'businessError.pdf_password_protected': 'PDF はパスワードで保護されています。再送信する前にロックを解除するか、変換してください。',
'businessError.pdf_invalid': 'PDF ファイルが無効です。テキストに変換するか、別のファイルを送信してください。',
'businessError.image_too_large': '画像が選択したモデルには大きすぎます。サイズを変更するか、より小さい画像を送信してください。',
'businessError.image_unsupported': 'このモデルは画像をサポートしていません。テキストで続行するか、ビジョン対応モデルに切り替えて画像を再送信してください。',
'businessError.request_too_large': 'リクエストがプロバイダーまたは中継サービスの許容サイズを超えました。次のメッセージで以前の画像とドキュメントが自動的に削除されます。それでも失敗する場合は、会話を圧縮するか、新しいセッションを開始してください。',
'businessError.prompt_too_long': 'プロンプトが選択したモデルには長すぎます。会話を圧縮するか、コンテキストを減らして再試行してください。',
'businessError.auto_mode_unavailable': '自動モードは現在のプランでは利用できません。',
// ─── Server Status Verbs ──────────────────────────────────────
'serverVerb.Thinking': '思考中',
'serverVerb.Compacting conversation': 'コンテキストを圧縮中',
'serverVerb.Running': '実行中',
'serverVerb.Working': '作業中',
'serverVerb.Creating worktree': 'worktree を作成中',
'serverVerb.Task started': 'タスクを開始しました',
'serverVerb.Task in progress': 'タスクを実行中',
'chat.retry.title': 'リクエストに失敗、再試行中',
'chat.retry.attempt': '再試行 {attempt}/{max}',
'chat.retry.httpStatus': 'HTTP {status}',
'chat.retry.rateLimit': '使用量またはレート制限に達しました',
'chat.retry.networkError': 'ネットワークエラー',
'chat.retry.waiting': '{seconds} 秒待機中',
'chat.retry.waitingLong': '約 {duration} 後に再試行',
'chat.retry.retrying': '再試行しています…',
'chat.fallback.title': 'ネットワーク不調のため非ストリーミングに切替',
'chat.fallback.detail': '応答は一括で届くため時間がかかることがあります',
// ─── Tabs ──────────────────────────────────────
'tabs.close': '閉じる',
'tabs.closeOthers': '他を閉じる',
'tabs.closeLeft': '左側を閉じる',
'tabs.closeRight': '右側を閉じる',
'tabs.closeAll': 'すべて閉じる',
'tabs.closeConfirmTitle': 'セッション実行中',
'tabs.closeConfirmMessage': 'このセッションはまだ実行中です。どうしますか?',
'tabs.closeConfirmKeep': '実行を継続',
// ─── Slash Command Descriptions ──────────────────────────────────────
'slashCmd.agent.description': '選択した Agent でプロンプトを実行',
'slashCmd.mcp.description': '現在のチャットコンテキストで利用可能な MCP ツールを開く',
'slashCmd.skills.description': '現在のチャットコンテキストでユーザーが呼び出せるスキルを閲覧',
'slashCmd.saveWorkflow.description': '完了した Workflow を再利用できるように保存',
'slashCmd.help.description': '利用可能なデスクトップおよびエージェントのコマンドを表示',
'slashCmd.status.description': 'セッションのステータス、使用量、コンテキストを表示',
'slashCmd.cost.description': 'セッションの使用量とコストを表示',
'slashCmd.context.description': '現在のコンテキスト使用量を表示',
'slashCmd.plugin.description': '設定でデスクトップのプラグイン操作を開く',
'slashCmd.memory.description': '設定でプロジェクトのメモリファイルを開く',
'slashCmd.doctor.description': '診断で Doctor を開く',
'slashCmd.compact.description': '会話のコンテキストを圧縮',
'slashCmd.clear.description': '会話履歴をクリア',
'slashCmd.goal.description': '完了ゴールを設定',
'slashCmd.review.description': 'コードの変更をレビュー',
'slashCmd.commit.description': 'git コミットを作成',
'slashCmd.pr.description': 'プルリクエストを作成',
'slashCmd.init.description': 'プロジェクトの CLAUDE.md を初期化',
'slashCmd.bug.description': 'バグを報告',
'slashCmd.config.description': '設定を開く',
'slashCmd.login.description': 'Anthropic アカウントを切り替え',
'slashCmd.logout.description': '現在のアカウントからサインアウト',
'slashCmd.model.description': 'AI モデルを切り替え',
'slashCmd.permissions.description': 'ツールの権限を表示または管理',
'slashCmd.terminal-setup.description': 'ターミナル統合をセットアップ',
'slashCmd.vim.description': 'Vim 編集モードを切り替え',
'tabs.closeConfirmStop': '停止して閉じる',
'tabs.closeAllConfirmTitle': 'セッション実行中',
'tabs.closeAllConfirmMessage': '{count} 件のセッションがまだ実行中です。これらのタブを閉じる前に停止しますか?',
'tabs.closeAllConfirmStop': 'すべて停止して閉じる',
'tabs.sessionRunning': 'セッション実行中',
'tabs.openTerminal': 'ターミナルを開く',
'tabs.showWorkspace': 'ワークスペースを表示',
'tabs.hideWorkspace': 'ワークスペースを非表示',
'tabs.showBrowser': 'ブラウザを表示',
'tabs.hideBrowser': 'ブラウザを非表示',
'tabs.scrollLeft': 'タブを左にスクロール',
'tabs.scrollRight': 'タブを右にスクロール',
'tabs.jumpToAttention': '次の待機中のセッションへ移動({count} 件)',
'tabs.closeTab': '{title} を閉じる',
'tabs.untitled': '無題',
// スキルマーケット
'sidebar.market': 'スキルマーケット',
'market.title': 'スキルマーケット',
'market.subtitle': 'ClawHub と SkillHub から厳選したスキルを閲覧できます。必要なら両マーケットをリアルタイム検索できます。',
'market.searchPlaceholder': 'スキル名・キーワードで検索…',
'market.clearSearch': '検索をクリア',
'market.resultCount': '{count} 件のスキル',
'market.loadMore': 'さらに読み込む',
'market.loadingMore': '読み込み中…',
'market.loadMoreError': 'スキルの追加読み込みに失敗しました',
'market.installedSkills': 'インストール済みスキル',
'market.installedSkillsHint': 'この端末にインストール済みのスキルを表示',
'market.loading': 'スキルを読み込み中…',
'market.empty': '利用可能なスキルがありません',
'market.emptyHint': '厳選リストが空でした。しばらくしてから再試行してください。',
'market.emptySearch': '検索に一致するスキルがありません',
'market.emptySearchHint': '別のキーワードを試すか、フィルタをクリアしてください。',
'market.error.list': 'スキルマーケットの読み込みに失敗しました',
'market.retry': '再試行',
'market.filter.source': 'ソース',
'market.filter.security': 'セキュリティ',
'market.filter.installed': 'インストール状態',
'market.source.all': 'すべてのソース',
'market.source.clawhub': 'ClawHub',
'market.source.skillhub': 'SkillHub',
'market.security.all': 'すべてのセキュリティ状態',
'market.security.verified': '認証済み',
'market.security.benign': 'スキャン済み・安全',
'market.security.unknown': '未監査',
'market.security.flagged': 'リスクあり',
'market.securityHint.verified': '認証済みの作者によって公開され、提供元のセキュリティスキャンに合格しています。',
'market.securityHint.benign': '提供元のセキュリティスキャンでリスクは検出されませんでした。',
'market.securityHint.unknown': '提供元からセキュリティ監査データが提供されていません。インストール前にファイルを確認してください。',
'market.securityHint.flagged': '提供元のセキュリティスキャンで潜在的なリスクが検出されました。',
'market.disclaimer.title': 'サードパーティ製スキルにご注意ください。',
'market.disclaimer.body': 'スキルはコミュニティの第三者ソースから提供されており、本アプリでは内容の安全性を監査していません。インストール前にファイルを確認し、まず AI にスキャンさせて安全を確認することをおすすめします。',
'market.disclaimer.dismiss': '免責事項を閉じる',
'market.installedFilter.all': 'すべてのスキル',
'market.installedFilter.installed': 'インストール済み',
'market.installedFilter.installable': '未インストール',
'market.sourceStatus.ok': '正常',
'market.sourceStatus.degraded': '低下',
'market.sourceStatus.failed': '利用不可',
'market.sourceStatus.cached': 'キャッシュ',
'market.sourceStatus.cachedAt': '{time} 時点のキャッシュ',
'market.card.by': '作者 {author}',
'market.card.moreTags': '+{count}',
'market.install.state.installed': 'インストール済み',
'market.install.state.installable': 'インストール可能',
'market.install.state.notInstallable': 'インストール不可',
'market.install.action': 'インストール',
'market.install.installing': 'インストール中…',
'market.uninstall.action': 'アンインストール',
'market.uninstall.uninstalling': 'アンインストール中…',
'market.uninstall.confirmTitle': 'スキルをアンインストール',
'market.uninstall.confirmMessage': '「{name}」をローカルから削除しますか?{path} 配下のファイルが削除されます。',
'market.uninstall.success': '「{name}」をアンインストールしました。',
'market.reason.empty-file-list': 'このスキルにはインストール可能なファイルがありません(SKILL.md がありません)。',
'market.reason.file-too-large': 'このスキルにはサイズ制限を超えるファイルが含まれています。',
'market.reason.too-many-files': 'このスキルはファイル数が多すぎるため、安全にインストールできません。',
'market.reason.invalid-name': 'スキル名をローカルのディレクトリ名として使用できません。',
'market.reason.name-conflict': '同名のローカルスキルが既に存在します。先に名前を変更するか削除してください。',
'market.reason.source-unavailable': 'このスキルの提供元は現在利用できません。',
'market.detail.back': 'マーケットに戻る',
'market.detail.overview': '概要',
'market.detail.files': 'ファイル',
'market.detail.author': '作者',
'market.detail.version': 'バージョン',
'market.detail.updated': '更新日時',
'market.detail.category': 'カテゴリ',
'market.detail.license': 'ライセンス',
'market.detail.downloads': 'ダウンロード数',
'market.detail.installs': 'インストール数',
'market.detail.stars': 'スター',
'market.detail.securityReport': 'セキュリティレポート',
'market.detail.viewReport': 'レポートを見る',
'market.detail.mirror': '{source} にも掲載',
'market.detail.requiresApiKey': 'API キーが必要',
'market.detail.loadError': 'スキル詳細の読み込みに失敗しました',
'market.detail.noDescription': 'このスキルには説明がありません。',
'market.detail.metadata': 'メタ情報',
'market.detail.metadataCollapse': '折りたたむ',
'market.detail.metadataExpand': '展開',
'market.file.empty': '左側のファイルを選択するとプレビューできます。',
'market.file.truncated': 'プレビューは切り詰められています。ファイルがプレビュー上限を超えています。',
'market.file.loadError': 'ファイルの読み込みに失敗しました',
'market.file.noFiles': 'このスキルにはプレビュー可能なファイルがありません。',
'market.installConfirm.title': 'スキルをインストール',
'market.installConfirm.message': '{source} から「{name}」をインストールしますか?',
'market.installConfirm.location': 'インストール先',
'market.installConfirm.effectNote': 'インストール後、スキルは新しいセッションで有効になります。',
'market.installConfirm.riskBenign': 'セキュリティスキャンではこのスキルにリスクは見つかりませんでした。',
'market.installConfirm.riskVerified': 'このスキルは認証済みの発行者によるもので、セキュリティスキャンに合格しています。',
'market.installConfirm.riskUnknown': 'このスキルはセキュリティ監査を受けていません。インストール前にファイルを確認してください。',
'market.installConfirm.riskFlagged': 'セキュリティスキャンでこのスキルに潜在的なリスクが検出されました。信頼できる場合のみインストールしてください。',
'market.installConfirm.confirm': 'インストール',
'market.installConfirm.cancel': 'キャンセル',
'market.installSuccess': '「{name}」をインストールしました。新しいセッションで有効になります。',
'market.installError.network': 'インストール失敗:スキルの提供元に接続できません。ネットワークを確認して再試行してください。',
'market.installError.checksum': 'インストール中止:ダウンロードしたファイルが整合性検証に失敗しました。提供元が信頼できると確認できるまで再試行しないでください。',
'market.installError.exists': 'インストール失敗:このスキルは既にインストール済みか、インストール中です。',
'market.installError.disk': 'インストール失敗:ディスクへの書き込みに失敗しました。権限と空き容量を確認してください。',
'market.installError.notInstallable': 'インストール失敗:このスキルはインストールできません。',
'market.installError.generic': 'インストール失敗:{message}',
'market.catalog.summary': '厳選スキル {count} 件',
'market.catalog.updated': 'リスト更新日 {date}',
'market.catalog.liveResults': 'リアルタイム結果 {count} 件',
'market.scope.catalogHint': '厳選スキルのみを検索しています。',
'market.scope.marketHint': 'ClawHub と SkillHub の全スキルをリアルタイム検索中です。結果は厳選されていません。',
'market.scope.searchMarket': 'すべてのマーケットで「{q}」を検索',
'market.scope.backToCatalog': '厳選に戻る',
'market.scope.notCurated': '未厳選',
'market.scope.livePlaceholder': 'すべてのマーケットを検索 — Enter で検索',
'market.category.label': 'カテゴリ',
'market.category.all': 'すべて',
'market.featured': 'おすすめ',
'market.securityShort.verified': '認証済み',
'market.securityShort.benign': 'スキャン合格',
'market.securityShort.unknown': '未スキャン',
'market.securityShort.flagged': '要注意',
'market.detail.security': 'セキュリティレポート',
'market.detail.changelog': '更新履歴',
'market.detail.whenToUse': '発動する場面',
'market.detail.info': '情報',
'market.detail.sourcePage': 'ソースページ',
'market.detail.updatedOn': '{date} 更新',
'market.detail.by': '作者 {author}',
'market.detail.readingTime': '約 {minutes} 分で読めます',
'market.detail.scanReports': 'スキャン結果',
'market.detail.noReports': 'このスキルのセキュリティスキャン結果は上流にありません。',
'market.detail.scanDisclaimer': 'スキャン結果は上流レジストリによるもので、本アプリは表示するだけで保証はしません。インストールは作者を信頼することを意味します。',
'market.detail.securityNote': 'キュレーターのメモ',
'market.detail.noChangelog': 'このバージョンのリリースノートは上流にありません。',
'market.detail.flaggedDot': 'セキュリティスキャンで要注意と判定',
'market.cap.title': 'インストール前に確認:このスキルができること',
'market.cap.viewReport': '詳細レポート →',
'market.cap.note': 'SKILL.md とファイル一覧からルールで検出したもので、参考情報です。インストール時にスクリプトは実行されません。',
'market.cap.shell': 'コマンドやスクリプトを実行',
'market.cap.shell.detail': '{evidence}',
'market.cap.hooks': 'フックを登録',
'market.cap.hooks.detail': '対象:{evidence}',
'market.cap.secrets': 'シークレットが必要',
'market.cap.secrets.detail': '読み取り:{evidence}',
'market.cap.network': 'ネットワークサービスにアクセス',
'market.cap.network.detail': 'リクエスト先:{evidence}',
'market.cap.writes': 'ファイルを書き込み',
'market.cap.writes.detail': '作成・変更:{evidence}',
'market.cap.binaries': 'ローカルコマンドに依存',
'market.cap.binaries.detail': '必要:{evidence}',
'market.cap.level.high': '高',
'market.cap.level.medium': '中',
'market.cap.level.low': '低',
'market.installConfirm.willGet': 'このスキルができること',
'market.installConfirm.ack': 'SKILL.md とセキュリティレポートを確認し、上記の権限を理解しました',
// ─── Window controls / diagram + code viewers ──────────────────────────────────────
'windowControls.minimize': 'ウィンドウを最小化',
'windowControls.maximize': 'ウィンドウを最大化',
'windowControls.restore': 'ウィンドウを元に戻す',
'windowControls.close': 'ウィンドウを閉じる',
'mermaid.preview': 'プレビュー',
'mermaid.zoomOut': '縮小',
'mermaid.zoomIn': '拡大',
'mermaid.fit': 'フィット',
'mermaid.fitDiagram': '図を画面に合わせる',
'codeViewer.collapse': '折りたたむ',
'codeViewer.showMoreLines': '残り {count} 行を表示',
// ─── Browser Panel ──────────────────────────────────────
'browser.back': '戻る',
'browser.forward': '進む',
'browser.reload': '再読み込み',
'browser.addressPlaceholder': 'URL を入力...',
'browser.zoomOut': 'プレビューを縮小',
'browser.zoomIn': 'プレビューを拡大',
'browser.zoomReset': 'プレビューのズームをリセット',
'browser.capture': 'スクリーンショット',
'browser.pickElement': '要素を選択',
'browser.selection.cancel': 'キャンセル',
'browser.selection.sendOne': '送信',
'browser.selection.queueAndContinue': '追加して続行',
'browser.selection.add': '追加',
'browser.selection.descriptionPlaceholder': '変更内容を入力…',
'browser.selection.draftCount': '{count} 件選択済み',
'browser.selection.undo': '直前の選択を元に戻す',
'browser.selection.clear': '選択をクリア',
'browser.selection.sendBatch': '{count} 件を送信',
'browser.selection.batchMessage': '{count} 件のページ修正',
'browser.selection.limitReached': '選択上限の {count} 件に達しました。送信またはクリアして続行してください。',
'browser.selection.cleanupFailed': '選択の停止または上限を超えた項目の復元に失敗しました:{reason}',
'browser.selection.navigationTitle': 'この一括選択を終了しますか?',
'browser.selection.navigationBody': '移動すると、選択した {count} 件が破棄され、ページ上のプレビュー変更も元に戻ります。',
'browser.selection.navigationContinue': '破棄して続行',
'browser.selection.navigationDiscarded': 'ページが変わったため、{count} 件の選択をクリアしました。',
'workflows.status.running': '実行中',
'workflows.status.completed': '完了',
'workflows.status.failed': '失敗',
'workflows.status.stopped': '停止',
'workflows.report.title': '動的ワークフローの実行',
'workflows.report.progressLabel': 'ワークフロー {name} の進捗',
'workflows.report.waiting': '最初のエージェントを待機中…',
'workflows.report.result': '結果',
'workflows.ungroupedPhase': '未分類',
'workflows.meta.agents': 'エージェント {count} 件',
'workflows.meta.tokens': '{tokens} トークン',
'workflows.meta.tools': 'ツール呼び出し {count} 回',
'workflows.phase.counts': '{done}/{total} 完了',
'workflows.phase.failed': '{count} 件失敗',
'workflows.agent.cached': 'キャッシュ済み',
'workflows.dock.running': '{count} 件実行中',
'workflows.dock.expand': 'ワークフローの詳細を表示',
'workflows.dock.collapse': 'ワークフローの詳細を隠す',
'workflows.launcher.title': 'ワークフローを実行',
'workflows.launcher.hint': 'ワークフローは保存済みスクリプトから多数のサブエージェントを編成し、バックグラウンドで実行して最後にまとめて報告します。',
'workflows.launcher.empty': '保存済みのワークフローがありません。実行から保存するか、.claude/workflows/ にスクリプトを置いてください。',
'workflows.launcher.run': '実行',
'workflows.launcher.argsLabel': 'args としてスクリプトに渡す入力',
'workflows.workbench.title': '動的ワークフロー ワークベンチ',
'workflows.workbench.close': 'ワークフロー ワークベンチを閉じる',
'workflows.workbench.open': 'ワークフロー ワークベンチを開く',
'workflows.workbench.closeDetail': 'エージェント詳細を閉じる',
'workflows.workbench.counts': 'エージェント {done}/{total} 件が終了',
'workflows.workbench.runningCount': '{count} 件実行中',
'workflows.workbench.queued': '{count} 件待機中',
'workflows.workbench.prompt': 'プロンプト',
'workflows.workbench.detailTitle': 'エージェント',
'workflows.history.title': 'ワークフロー履歴',
'workflows.history.empty': 'このマシンにはまだ実行履歴がありません。',
'workflows.history.pick': '実行を選ぶと、スクリプトと各エージェントの結果を表示します。',
'workflows.history.agents': '{count} 個のエージェントを記録',
'workflows.history.script': 'スクリプト',
'workflows.launcher.argsPlaceholder': '例: 質問、またはパスのリスト',
'settings.tab.voice': '音声入力',
'voice.settings.title': '音声入力',
'voice.settings.description': 'cc-haha サーバーを実行しているこのマシン上のローカル音声モデルで、話した内容を入力欄に書き起こします。音声がクラウドサービスに送信されることはありません。',
'voice.settings.loadFailed': '音声入力の設定を読み込めませんでした。',
'voice.settings.saveFailed': '設定を保存できませんでした。もう一度お試しください。',
'voice.settings.actionFailed': '操作を完了できませんでした。',
'voice.settings.unsupported.title': 'このプラットフォームではローカル音声認識はまだ利用できません',
'voice.settings.unsupported.detail': '音声入力にはローカル音声ランタイムが対応するプラットフォームが必要です。',
'voice.settings.enable.label': '音声入力を有効にする',
'voice.settings.enable.description': 'チャット入力欄の横にディクテーションボタンを表示します。録音した音声は cc-haha サーバーを実行しているマシン上で認識されます。',
'voice.settings.enable.needModel': '音声入力は有効ですが、音声モデルがまだダウンロードされていません。下でダウンロードしてください。自動ではダウンロードされません。',
'voice.settings.engine.title': '認識エンジン',
'voice.settings.engine.description': '音声モデルを選び、そのファイルを管理します。',
'voice.settings.engine.provider': 'エンジン',
'voice.settings.phase.unprepared': '未ダウンロード',
'voice.settings.phase.downloading': 'ダウンロード中',
'voice.settings.phase.verifying': '検証中',
'voice.settings.phase.ready': '準備完了',
'voice.settings.phase.failed': '失敗',
'voice.settings.phase.cancelled': '一時停止',
'voice.settings.step.runtime': '音声ランタイムをダウンロード中',
'voice.settings.step.model': '音声モデルをダウンロード中',
'voice.settings.step.vad': '音声区間検出モデルをダウンロード中',
'voice.settings.step.verify': 'ファイルを検証中',
'voice.settings.model.unprepared': '音声モデルはまだダウンロードされていません。',
'voice.settings.model.download': 'ダウンロード',
'voice.settings.model.meta': 'ローカル認識 · 約 {size}',
'voice.settings.model.downloading': 'ダウンロード中',
'voice.settings.model.progress': '{completed} / {total}',
'voice.settings.model.resumed': 'ダウンロード済みの {size} から再開しました',
'voice.settings.model.source': 'ダウンロード元: {source}',
'voice.settings.model.verifying': 'ダウンロードしたファイルを検証しています…',
'voice.settings.model.ready': 'ローカルモデルの準備ができました。録音時に自動で起動します。',
'voice.settings.model.remove': 'モデルを削除',
'voice.settings.model.removeTitle': 'ローカル音声モデルを削除しますか?',
'voice.settings.model.removeBody': 'ダウンロード済みのランタイムとモデルファイルを削除します。音声入力を使うには再度ダウンロードが必要です。',
'voice.settings.model.cancelled': '一時停止中です。ダウンロード済みの部分は保持されるので、いつでも再開できます。',
'voice.settings.model.resume': 'ダウンロードを再開',
'voice.settings.model.resumeHint': 'ダウンロード済みの部分は保持されます。ネットワークが回復したら再試行すると、中断した位置から続けられます。',
'voice.settings.failure.network': 'ダウンロード失敗: ネットワーク接続の問題',
'voice.settings.failure.dns': 'ダウンロード失敗: ダウンロード先のアドレスを解決できません',
'voice.settings.failure.timeout': 'ダウンロード失敗: 接続がタイムアウトしました',
'voice.settings.failure.certificate': 'ダウンロード失敗: 安全な接続を確認できません',
'voice.settings.failure.http': 'ダウンロード失敗: サーバーがエラーを返しました',
'voice.settings.failure.integrity': 'ダウンロード失敗: ファイルの検証が一致しなかったため、再ダウンロードします',
'voice.settings.failure.storage': 'ダウンロード失敗: ディスクに書き込めません(空き容量と権限を確認してください)',
'voice.settings.failure.unsupportedPlatform': 'このプラットフォームはローカル音声ランタイムに対応していません',
'voice.settings.failure.unknown': 'ダウンロードに失敗しました(原因不明)',
'voice.settings.language.label': '言語',
'voice.settings.downloadSource.label': 'ダウンロード元',
'voice.settings.downloadSource.auto': '自動(最初に応答したソース)',
'voice.settings.downloadSource.official': '公式(Hugging Face、npm)',
'voice.settings.downloadSource.mirror': '中国ミラー(hf-mirror、npmmirror)',
'voice.settings.downloadSource.proxyHint': 'ダウンロードは「一般」のネットワークプロキシを使用します(現在: {mode})。ダウンロード元の変更は次回のダウンロードから適用されます。',
'voice.settings.downloadSource.changeProxy': 'プロキシを変更',
'voice.settings.language.auto': '自動検出',
'voice.settings.language.zh': '中国語(標準語)',
'voice.settings.language.en': '英語',
'voice.settings.language.ja': '日本語',
'voice.settings.language.ko': '韓国語',
'voice.settings.language.yue': '広東語',
'voice.settings.mic.title': 'マイク',
'voice.settings.mic.description': 'ディクテーションに使う入力デバイスを選びます。この選択はこのデバイスにのみ保存されます。',
'voice.settings.mic.label': '入力デバイス',
'voice.settings.mic.systemDefault': 'システムのデフォルト',
'voice.settings.mic.savedDevice': '保存したマイク',
'voice.settings.mic.unnamed': 'マイク {index}',
'voice.settings.mic.missing': '以前選んだマイクは現在利用できないため、システムのデフォルトを使用します。',
'voice.settings.mic.noDevices': 'マイクが検出されませんでした。',
'voice.settings.mic.allowAccess': 'マイクへのアクセスを許可してデバイス名を表示',
'voice.settings.mic.allowHint': 'デバイス名を表示するためにマイクを一瞬だけ開きます。録音はされません。',
'voice.settings.capture.unsupported': 'この環境ではマイクを使用できません。このコンピューターで cc-haha を開くか、HTTPS 経由で録音してください。',
'voice.settings.test.title': '文字起こしテスト',
'voice.settings.test.description': '短い音声を録音し、ディクテーションと同じ経路でモデルの認識結果を確認します。',
'voice.settings.test.start': 'テスト開始',
'voice.settings.test.stop': '停止',
'voice.settings.test.starting': '開始中…',
'voice.settings.test.transcribing': '認識中…',
'voice.settings.test.level': 'マイクレベル',
'voice.settings.test.needModel': 'テストの前に、上で音声モデルをダウンロードしてください。',
'voice.settings.test.result': '認識結果',
'voice.settings.test.stats': '音声 {audio} 秒 · 推論 {inference} 秒',
'voice.settings.test.playback': '録音を再生',
'voice.composer.start': '音声入力',
'voice.composer.starting': 'マイクを開いています…(クリックでキャンセル)',
'voice.composer.stop': '録音を停止して認識',
'voice.composer.transcribing': '認識中…',
'voice.composer.recordingHint': '録音中 · Esc でキャンセル',
'voice.composer.insertText': 'テキストを挿入',
'voice.composer.discard': '破棄',
'voice.composer.dismiss': '閉じる',
'voice.composer.pendingTitle': '音声認識の結果',
'voice.composer.pendingHint': '認識中に入力欄の内容が変わったため、自動では挿入しませんでした。',
'voice.composer.error.permission': 'マイクへのアクセスが拒否されました。システム設定で許可してからもう一度お試しください。',
'voice.composer.error.noDevice': 'マイクが見つかりません。接続してからもう一度お試しください。',
'voice.composer.error.deviceBusy': 'マイクは別のアプリで使用中です。',
'voice.composer.error.unavailable': 'この環境では音声入力を利用できません。',
'voice.composer.error.interrupted': 'マイクが予期せず停止しました。録音は破棄されました。',
'voice.composer.error.notReady': '音声モデルの準備ができていません。設定 → 音声入力を確認してください。',
'voice.composer.error.invalidAudio': '録音を読み取れませんでした。もう一度お試しください。',
'voice.composer.error.unknownProvider': '選択した音声エンジンは利用できません。',
'voice.composer.error.failed': '認識に失敗しました。もう一度お試しください。',
'voice.composer.error.noSpeech': '音声が認識されませんでした。',
'voice.composer.error.tooShort': '録音が短すぎます。',
}