{
  "delegateRuns": {
    "eventsEmpty": "イベントなし",
    "subtaskGroupTitle": "サブタスク #{{n}}",
    "subtaskSectionHeading": "サブタスク内の委譲",
    "result": "結果",
    "abortReason": "中断理由",
    "noDescription": "（説明なし）",
    "toolCount": "ツール {{count}} 回",
    "childCount": "子 {{total}} 件",
    "childCountFailed": "子 {{total}} 件・失敗 {{failed}}",
    "moreEvents": "他 {{count}} 件（トレースタブで全件表示できます）",
    "toolSummary": "使用ツール",
    "filesChanged": "変更ファイル",
    "eventsToggle": "詳細イベント（{{count}} 件）"
  },
  "tabs": { "chat": "会話", "overview": "概要", "activity": "進捗", "files": "ファイル", "trace": "トレース", "browser": "ブラウザ", "ssh": "SSH" },
  "chatTabsLabel": "チャットと詳細",
  "panel": {
    "deleteConfirm": "このタスクを削除しますか？この操作は取り消せません。",
    "subtitle": "ローカルワークスペース", "author": "作成者", "change": "変更",
    "saving": "保存中...", "save": "保存", "cancel": "キャンセル",
    "deleting": "削除中...", "delete": "削除", "close": "詳細パネルを閉じる", "tabsLabel": "詳細タブ"
  },
  "visibility": {
    "private": "非公開", "org": "組織", "public": "公開",
    "sharedWith": "共有先: {{org}}", "orgLoginHint": "組織を使うには Gitea でログインしてください"
  },
  "share": { "sharing": "共有中...", "publish": "公開リンクを発行", "copied": "コピーしました", "copy": "共有リンクをコピー", "stop": "共有を停止" },
  "continue": {
    "label": "別 piece で続ける", "disabled": "タスクが進行中のため続行できません",
    "heading": "Task #{{id}} を別 piece で続ける",
    "workspaceNote": "workspace は共有されます (output/ のファイルは次の piece からも見えます)",
    "prevPiece": "直前 piece \"{{name}}\" の", "question": "質問", "result": "結果", "current": "(現在)",
    "newInstruction": "新しい指示", "instructionPlaceholder": "例: output/manual.md を使ってサーバー foo.example.com をセットアップして",
    "cancel": "キャンセル", "starting": "起動中..."
  },
  "focus": { "toStandard": "標準表示に戻る", "toFocused": "集中モード (TASK 列を細い rail に / Chat と Workspace を可変分割)", "toFocusedShort": "集中モードに切替" },
  "feedback": { "title": "フィードバック", "change": "変更", "good": "良かった", "bad": "改善が必要", "commentPlaceholder": "コメント（任意）", "cancel": "キャンセル", "submitting": "送信中...", "submit": "送信", "tags": { "goodAccuracy": "出力の精度が高い", "goodFormat": "フォーマットが適切", "goodUnderstanding": "指示をよく理解していた", "goodSpeed": "速度が適切だった", "badAccuracy": "出力の精度が低い", "badFormat": "フォーマットが不適切", "badMismatch": "指示と違う結果になった", "badUnnecessary": "不要な作業をしていた", "badStalled": "途中で止まった / ASKが多すぎた" } },
  "title": { "edit": "タイトルを編集", "regenerate": "AIでタイトルを再生成", "save": "保存", "saving": "保存中...", "cancel": "キャンセル" },
  "mission": {
    "pinnedMemo": "固定メモ", "edit": "編集", "cancel": "キャンセル", "saving": "保存中...", "save": "保存",
    "emptyHelp": "まだ Mission Brief は設定されていません。エージェントが必要に応じて自動で書き込みますが、手動で目標 / 進捗 / 残タスクをここに固定しておくことで、長い会話の途中でも本質を見失わないように誘導できます。",
    "fields": {
      "goal": { "label": "目標", "placeholder": "このタスクの本質的な目標 (Markdown 可)", "emptyHint": "未設定 — エージェントが最初に書きます" },
      "done": { "label": "完了", "placeholder": "完了したマイルストーン (Markdown 箇条書き推奨)", "emptyHint": "まだ何も完了していません" },
      "open": { "label": "残タスク", "placeholder": "残っている作業 / ブロッカー", "emptyHint": "残タスク未記入" },
      "user_constraints": { "label": "ユーザー制約", "placeholder": "ユーザーが明示した恒久的な制約（「X は変えないで」等）", "emptyHint": "制約の pin なし" },
      "decisions": { "label": "決定事項", "placeholder": "確定した設計判断とその理由", "emptyHint": "決定事項の記録なし" },
      "current_focus": { "label": "現在の焦点", "placeholder": "いま取り組んでいる作業の焦点", "emptyHint": "現在の焦点は未設定" },
      "clarifications": { "label": "補足・制約", "placeholder": "途中で追加された制約・補足", "emptyHint": "補足なし" }
    }
  },
  "progress": {
    "timeline": "実行 Timeline", "events": "件",
    "current": "現在: {{movement}}", "currentPending": "現在の movement は取得待ちです",
    "loading": "読み込み中...", "noProgress": "まだ進行情報がありません。", "viewFull": "全文",
    "logLoading": "(activity.log を読み込み中...)", "logEmpty": "(activity.log がまだありません)"
  },
  "timeline": { "empty": "コメントなし" },
  "context": {
    "ariaLabel": "コンテキスト残り {{remaining}} tokens、{{percent}}% 使用"
  },
  "sharingPreview": { "notShared": "— 共有されません" },
  "trace": { "loading": "読み込み中...", "error": "エラー", "empty": "events.jsonl がまだ存在しません。タスクが少なくとも一度実行されると、engine 内部動作のトレースがここに表示されます。", "refreshTooltip": "手動更新（自動 5 秒ごとにも更新されます）", "totalTime": "総時間 (cache hit 除外、max は個別呼び出しの最大値)" },
  "output": { "title": "成果物プレビュー", "viewFull": "全文", "empty": "まだ成果物が生成されていません。", "emptyHint": "成果物は ファイルタブの output/ に保存されます。" },
  "subtasks": {
    "activityTitle": "サブタスク進捗", "done": "完了", "filesLoading": "ファイル読み込み中...", "files": "ファイル",
    "childTasks": "子タスク ({{done}}/{{total}} 完了)", "title": "サブ実行",
    "delegateSection": "委譲実行",
    "delegateStatus": {
      "success": "完了",
      "aborted": "中断",
      "needs_user_input": "要確認",
      "running": "実行中"
    },
    "delegateRunningTool": "{{tool}} 実行中",
    "category": { "output": "出力ファイル", "logs": "ログ", "input": "入力ファイル" }
  },
  "browser": {
    "loading": "読み込み中…", "fetchFailed": "ブラウザセッション情報の取得に失敗しました",
    "novncNotInstalled": {
      "title": "noVNC の Web 配布物 (vnc.html) が配置されていません",
      "body": "このタスクのブラウザセッションは存在しますが、noVNC の HTML/JS 一式が vendor/noVNC/ に無いため iframe を表示できません。",
      "setupIntro": "以下のいずれかの方法でセットアップしてください:",
      "bareMetal": "bare metal / dev 環境: scripts/setup-novnc.sh を実行",
      "docker": "Docker: 最新の Dockerfile (noVNC tarball を builder で展開) で再ビルド"
    },
    "headless": { "title": "headless モードでは Browser のライブ表示は使えません", "body": "Settings → Tools → Browser Runtime で Browser Session Mode を novnc に（Xvfb/x11vnc/websockify 必須）。" },
    "displayUnavailable": { "title": "ライブ表示スタックがホストに未導入です", "body": "管理者に Xvfb/x11vnc/websockify の導入を依頼してください。" },
    "noSession": { "title": "まだセッションがありません", "body": "このタスクで BrowseWeb を実行するとここに表示されます (5 秒ポーリング中)。" },
    "openNewTab": "新しいタブで開く ↗", "releaseConfirm": "このタスクのブラウザセッションを終了します。よろしいですか?",
    "releaseTooltip": "セッションを destroy する。次回 BrowseWeb 実行時に再生成される",
    "releasing": "終了中…", "release": "セッション終了", "pipActive": "PiP ウィンドウで表示中。閉じるとここに戻ります。"
  },
  "console": {
    "scrollLatest": "最新へスクロール", "keyboardBar": "ターミナルキーボード補助", "paste": "ペースト",
    "keyAria": { "arrow-left": "左", "arrow-down": "下", "arrow-up": "上", "arrow-right": "右" },
    "sshDisabled": "SSH サブシステムは無効です。config.yaml の ssh.enabled: true を設定後にサーバーを再起動してください。",
    "startTitle": "SSH コンソールを開始", "startDesc": "接続を選んでセッションを開始すると、ターミナルが開き AI とこのタスクで共有されます。",
    "loadFailed": "読み込みに失敗しました", "noConnections": "利用できる SSH 接続がありません — Settings → SSH Connections で登録/grant してください。",
    "starting": "開始中…", "startSession": "セッション開始", "loadingConnections": "読み込み中…",
    "cancelAddConnection": "接続の追加をキャンセル",
    "noActiveConsole": "アクティブなコンソールがありません。接続を追加してセッションを開始してください。",
    "connecting": "接続中…", "restoringScrollback": "スクロールバックを復元中…",
    "unknownReason": "不明な理由", "disconnected": "切断されました: {{reason}}",
    "connected": "接続中", "connLabel": "接続: {{label}}",
    "uptime": "稼働 {{time}}", "idle": "アイドル {{time}}", "readOnly": "閲覧のみ（読み取り専用）",
    "agentActive": "このセッションでエージェントが作業中", "closeSession": "このセッションを閉じる",
    "addConnection": "接続を追加",
    "errors": {
      "hostKeyNotVerified": "接続の host key を検証してください（Settings → SSH Connections → Test）",
      "noGrant": "この接続への権限がありません（admin に grant を依頼してください）",
      "hostKeyMismatch": "host key 不一致（MITM の可能性）。admin に連絡してください",
      "disabled": "この接続は無効化されています", "abuseLocked": "この接続は一時的にロックされています（abuse 検知）",
      "notFound": "接続が見つかりません", "startFailed": "セッションを開始できませんでした: {{code}}",
      "taskSessionCap": "このタスクはコンソールセッション数の上限に達しています。新しく開く前に既存のセッションを閉じてください。",
      "userSessionCap": "アカウント全体のコンソールセッション数の上限に達しています。新しく開く前に既存のセッションを閉じてください。"
    }
  }
}
