{
  "common.cancel": "キャンセル",
  "common.save": "保存",
  "common.saveSettings": "設定を保存",
  "common.loading": "読み込み中…",
  "common.delete": "削除",
  "common.modify": "変更",
  "common.next": "次へ",
  "common.prev": "戻る",
  "common.refresh": "更新",
  "common.notFound": "（見つかりません）",
  "common.copied": "コピー済み",
  "common.copy": "コピー",
  "common.close": "閉じる",

  "sidebar.brand.tag": "マルチサブスクリプションプロキシ",
  "sidebar.nav.guide": "セットアップガイド",
  "sidebar.nav.virtualModels": "仮想モデル",
  "sidebar.nav.subscriptions": "サブスクリプション",
  "sidebar.nav.requestLogs": "リクエストログ",
  "sidebar.nav.logs": "ログ",
  "sidebar.nav.statistics": "統計",
  "sidebar.nav.settings": "設定",
  "sidebar.nav.about": "情報",
  "sidebar.updateAvailable": "更新が利用可能",

  "settings.title": "設定",
  "settings.subtitle": "プロキシサービス、クライアント設定、認証、データ保持期間。",
  "settings.section.update": "アプリ更新",
  "settings.update.source.label": "更新ソース",
  "settings.update.source.international": "グローバル",
  "settings.update.source.china": "中国本土",
  "settings.section.proxy": "プロキシサービス",
  "settings.proxy.statusRunning": "実行中",
  "settings.proxy.statusStopped": "停止中",
  "settings.proxy.port.label": "リッスンポート",
  "settings.proxy.port.desc": "デフォルトは 23456。使用中の場合は自動でインクリメントします。",
  "settings.proxy.port.actual": "現在の実値:",
  "settings.proxy.bind.label": "リッスンアドレス",
  "settings.proxy.bind.desc": "デフォルトはローカルループバックのみ。「LAN からアクセス可能」を有効にすると他デバイスの Claude Code から本機 IP に接続できます。",
  "settings.proxy.bind.local": "ローカルのみ",
  "settings.proxy.bind.lan": "LAN",
  "settings.proxy.bind.aria": "LAN からアクセス可能",
  "settings.proxy.bind.warning": "⚠️ 有効化すると同一ネットワーク上の任意のデバイスからプロキシを呼び出せます。プロキシ自体は認証を行わないため、信頼できないネットワークでの利用は避けてください。",
  "settings.proxy.autostart.label": "起動時に自動実行",
  "settings.proxy.needsRestart": "プロキシ設定を変更しました（プロトコル/ポート/リッスンアドレス）。cc-router を再起動すると反映されます。",
  "settings.proxy.mode.label": "リッスンプロトコル",
  "settings.proxy.mode.desc": "「HTTP のみ」が最もシンプル。「HTTPS のみ」は下記の CA 証明書をシステム信頼ストアにインポートする必要があります。「両方」を選ぶと HTTP と HTTPS を別ポートで同時公開し、クライアントごとに使い分けられます。",
  "settings.proxy.mode.http": "HTTP のみ",
  "settings.proxy.mode.https": "HTTPS のみ",
  "settings.proxy.mode.both": "HTTP + HTTPS",
  "settings.proxy.httpsPort.label": "HTTPS ポート",
  "settings.proxy.httpsPort.desc": "デフォルトは 23457。使用中の場合は自動で +1 増分し、HTTP ポートとの衝突も自動で回避します。",

  "settings.section.https": "HTTPS 証明書",
  "settings.https.h2.label": "HTTP/2 プロトコル",
  "settings.https.h2.desc": "オンにすると HTTPS ポートが TLS ハンドシェイク時に ALPN で HTTP/2 をネゴシエートします (失敗時は HTTP/1.1 にフォールバック)。オフにすると HTTP/1.1 を強制します。cc-router を再起動すると反映されます。",
  "settings.https.cert.fingerprint.label": "CA 証明書フィンガープリント (SHA-256)",
  "settings.https.cert.fingerprint.desc": "システム信頼ストアに取り込んだ CA と同一かを照合するために使います。フィンガープリントが一致して初めてインポート成功です。",
  "settings.https.cert.export.label": "CA 証明書をエクスポート",
  "settings.https.cert.export.desc": "cc-router の自己署名 CA 公開鍵をエクスポートします。.pem と .crt の 2 つ（内容は同一）を同時に書き出します。Windows では .crt をダブルクリックすると証明書インポートウィザードが直接起動します。macOS/Linux は .pem / .crt のどちらでも使えます。システム信頼ストアにインポートすれば、ブラウザやクライアントが cc-router の発行する localhost 証明書を信頼します。",
  "settings.https.cert.export.button": "CA 証明書をエクスポート…",
  "settings.https.cert.exportOk": ".pem と .crt の 2 つの CA 証明書をエクスポートしました。下記の手順に従ってシステム信頼ストアにインポートしてください。",
  "settings.https.cert.exportFailed": "エクスポートに失敗しました",
  "settings.https.cert.regenerate.button": "証明書を再生成",
  "settings.https.cert.regenerateConfirm": "リーフ証明書を再生成しますか? 信頼ストアにインポート済みの CA には影響しません。app を再起動すると新しい証明書が反映されます。",
  "settings.https.cert.regenerateOk": "リーフ証明書を再生成しました。cc-router を再起動すると反映されます。",
  "settings.https.cert.regenerateFailed": "再生成に失敗しました",
  "settings.https.cert.sans.label": "追加 SAN (IP / hostname)",
  "settings.https.cert.sans.desc": "1 行につき IP またはホスト名を 1 件入力します（例: 192.168.1.5 や my-laptop.local）。localhost / 127.0.0.1 / ::1 は常に証明書に含まれており、ここで指定した値が追加されます。入力欄からフォーカスを外した時点でリーフ証明書を自動再生成し、cc-router を再起動すると反映されます。",
  "settings.https.cert.sans.regenerated": "新しい SAN でリーフ証明書を再生成しました。cc-router を再起動すると反映されます。",
  "settings.https.cert.howto.title": "システム信頼ストアにインポート（エクスポート後に一度だけ手動で取り込めば、以降 cc-router が発行する証明書はすべて信頼されます）",
  "settings.https.cert.howto.macos": ".pem ファイルをダブルクリック → キーチェーンアクセス → 「cc-router local CA」を選択 → 右クリック「情報を見る」→ 「信頼」を展開 → 「この証明書を使用するとき」を「常に信頼」に変更 → ウィンドウを閉じてパスワード入力で確定。",
  "settings.https.cert.howto.windows": ".crt ファイルをダブルクリック → 証明書のインストール → 「ローカルコンピュータ」を選択（管理者権限が必要）→ 「証明書をすべて次のストアに配置する」→ 「信頼されたルート証明機関」を参照 → 完了。",
  "settings.https.cert.howto.linux": ".crt ファイルを /usr/local/share/ca-certificates/ にコピーしてから sudo update-ca-certificates を実行します。Firefox/Chromium は独自の信頼ストアを使うため、ブラウザの設定から別途インポートしてください。",
  "settings.saveFailed": "保存に失敗しました",
  "settings.section.auth": "認証と CORS",
  "settings.auth.token.label": "トークン認証",
  "settings.auth.token.desc": "Claude Code 起動時に ANTHROPIC_API_KEY または ANTHROPIC_AUTH_TOKEN をこのトークンに設定します。再生成後はすべての接続済みクライアントを更新する必要があります。",
  "settings.auth.token.enabled": "有効——リクエストには正しいトークンが必須",
  "settings.auth.token.disabled": "無効——すべてのリクエストを通過させます",
  "settings.auth.token.regenerated": "生成済み",
  "settings.auth.token.regenerate": "再生成",
  "settings.auth.token.alertFailed": "トークン生成に失敗しました",
  "settings.auth.cors.label": "CORS",
  "settings.auth.cors.descEnabled": "有効——レスポンスに CORS ヘッダーを付与します。http://localhost:5173 のように具体的な値を指定するとそのオリジンのみ許可します。",
  "settings.auth.cors.descDisabled": "無効——ブラウザからのクロスオリジン呼び出しはブロックされます。",
  "settings.auth.cors.statusEnabled": "有効——レスポンスに CORS ヘッダーを付与",
  "settings.auth.cors.statusDisabled": "無効——ブラウザからのクロスオリジン呼び出しはブロック",
  "settings.section.storage": "データストレージ",
  "settings.storage.retention.label": "リクエストログの保持期間",
  "settings.storage.retention.7d": "7 日間",
  "settings.storage.retention.30d": "30 日間",
  "settings.storage.retention.90d": "90 日間",
  "settings.storage.retention.forever": "無期限",
  "settings.storage.dbLimit.label": "データベースサイズ上限",
  "settings.storage.dbLimit.unlimited": "10 GB（実質無制限）",
  "settings.section.language": "言語",
  "settings.language.label": "UI 言語",
  "settings.language.desc": "cc-router の UI 表示言語を選択します。「システムに従う」はシステムロケールを参照します: 中国語 → 中文、日本語 → 日本語、それ以外 → English。",
  "settings.language.system": "システムに従う",
  "settings.section.debug": "デバッグ",
  "settings.debug.mode.label": "デバッグモード",
  "settings.debug.mode.desc": "有効にすると、毎回のアウトバウンドリクエストでクライアントリクエストボディ、cc-router 書き換え後のリクエストボディ、上流レスポンスボディの 3 セットを debug-dumps ディレクトリにそれぞれ .txt として書き出し、プロトコル適合の問題を切り分けるのに使えます。ファイルには会話の全内容が含まれるため、デバッグ後は無効化してクリーンアップしてください。",
  "settings.debug.dumps.label": "Dump ディレクトリ",
  "settings.debug.dumps.desc": "ファイルは累積するため、定期的に手動で整理してください。",
  "settings.debug.open.button": "Dump ディレクトリを開く",
  "settings.debug.open.alertFailed": "ディレクトリを開けませんでした",
  "settings.debug.clear.button": "Dump をクリア",
  "settings.debug.clear.alertFailed": "クリアに失敗しました",
  "settings.debug.clear.dialog.title": "debug-dumps をクリアしますか?",
  "settings.debug.clear.dialog.desc": "debug-dumps ディレクトリ配下のすべての .txt ファイルが完全に削除されます。Claude に共有済みのデバッグサンプルは安心して削除できます。",
  "settings.debug.clear.dialog.confirm": "確認してクリア",
  "settings.section.danger": "危険ゾーン · 工場出荷時にリセット",
  "settings.danger.desc": "すべてのサブスクリプション、API Key、仮想モデルのバインド、リクエストログ、設定ファイルを消去します。app は自動的に再起動し初期ウェルカム画面に戻ります。この操作は取り消せません。",
  "settings.danger.button": "工場出荷時にリセット",
  "settings.danger.alertFailed": "工場出荷時リセットに失敗しました",
  "settings.danger.dialog.title": "工場出荷時にリセットしてよろしいですか?",
  "settings.danger.dialog.intro": "以下のデータが完全に削除されます:",
  "settings.danger.dialog.item.subscriptions": "すべてのサブスクリプション（平文で保存された API Key を含む）",
  "settings.danger.dialog.item.virtualModels": "仮想モデルのバインド",
  "settings.danger.dialog.item.logs": "リクエストログとモデル一覧キャッシュ",
  "settings.danger.dialog.item.settings": "app 設定（ポート、保持期間など）",
  "settings.danger.dialog.outro": "完了後 app は自動的に再起動します。",
  "settings.danger.dialog.confirm": "削除して再起動",

  "about.title": "情報",
  "about.subtitle": "プロジェクト情報とライセンス",
  "about.description": "ローカル HTTP プロキシ。複数の LLM サブスクリプションを単一の Anthropic Messages API エンドポイントに集約し、Claude Code から透過的に切り替えできるようにします。",
  "about.repo": "GitHub リポジトリ",
  "about.docs": "ドキュメント",
  "about.site": "公式サイト",
  "about.updater.checking": "更新を確認中…",
  "about.updater.upToDate": "最新バージョンです",
  "about.updater.idle": "アプリの更新を確認",
  "about.updater.recheck": "再確認",
  "about.updater.check": "更新を確認",
  "about.updater.foundNewPrefix": "新しいバージョンを検出 v",
  "about.updater.currentPrefix": "現在 v",
  "about.updater.debManual": " · deb パッケージはインプレース更新に対応していません。手動で再インストールしてください",
  "about.updater.openDownload": "ダウンロードページを開く",
  "about.updater.installNow": "今すぐ更新",
  "about.updater.downloadingPrefix": "ダウンロード中 v",
  "about.updater.ready.title": "更新の準備完了",
  "about.updater.ready.desc": "再起動後に反映されます。再起動は Claude Code の現在のセッションを一時的に中断するので、都合のよいタイミングで実行してください。",
  "about.updater.restart": "今すぐ再起動",
  "about.updater.error": "更新確認に失敗しました",
  "about.updater.retry": "再試行",
  "about.disclaimer.title": "免責事項",
  "about.disclaimer.usage": "本ツールは「すでに保有しているサブスクリプションプラン間の自動切り替え」のみを目的としています。リクエストボディはほぼそのまま透過するだけで、リバースエンジニアリングや脱獄、回避行為は一切含みません。各プランの利用規約は利用者ご自身で遵守してください。Claude Code などのコーディングツール用途専用であり、それ以外の用途には使用しないでください。",
  "about.disclaimer.tos": "各プロバイダの利用規約が「サブスクリプションキーをサードパーティのプロキシ経由でルーティングし、複数仮想モデルでディスパッチする」用途を明示的に許可しているとは限りません。特に Coding Plan / Token Plan のような per-seat サブスクリプションでは、リスク管理機構に検知される可能性があります。本ツールの使用に起因するアカウントのレート制限、BAN、サブスクリプション解約等について、作者は一切の責任を負いません。",
  "about.disclaimer.warranty": "本ソフトウェアは As-Is（現状有姿）で提供され、明示・黙示を問わずいかなる保証もしません。クォータの異常消費、データ損失、業務中断を含む直接・間接の損害について作者は責任を負いません。",
  "onboarding.disclaimer.title": "免責事項",
  "onboarding.disclaimer.subtitle": "cc-router の利用を開始する前に、以下をお読みください。",
  "onboarding.disclaimer.accept": "内容を理解し同意します",

  "guide.title": "セットアップガイド",
  "guide.subtitle": "cc-router を Anthropic Messages 互換エンドポイントとして各種クライアントに接続します。",
  "guide.proxy.title": "プロキシのリッスンアドレス",
  "guide.proxy.statusNotStarted": "未起動",
  "guide.proxy.intro1": "cc-router はローカルで HTTP プロキシを起動し、複数のサブスクリプションを単一の Anthropic Messages エンドポイントに集約します。ポート、リッスンアドレス、認証トークンは",
  "guide.proxy.settingsLink": "設定",
  "guide.proxy.intro2": "ページで変更できます（ポート/リッスンアドレスの変更は app 再起動が必要）。",
  "guide.method1.title": "方法 1 · settings.json に直接書き込む（推奨）",
  "guide.method1.sub": "最も安定し、shell 環境に依存しません",
  "guide.method1.desc": "下記の JSON を Claude Code の設定ファイルにマージします。ファイルが存在しない場合は新規作成してください。",
  "guide.method1.note1": " には現在の cc-router トークンがすでに記入済みで、そのまま使用できます。トークンは",
  "guide.method1.note2": "ページで再生成できます。",
  "guide.method2.title": "方法 2 · 環境変数（代替）",
  "guide.method2.sub": "GUI から起動するクライアントは shell の env を読まないことがあるため、方法 1 を優先",
  "guide.method2.note1": "上記の行を ",
  "guide.method2.note2": "、",
  "guide.method2.note3": " または PowerShell profile に追加し、ターミナルを再起動してから Claude Code を起動してください。",

  "guide.tab.others": "その他の AI エージェント",
  "guide.others.title": "近日対応予定",

  "guide.ccswitch.entry.title": "cc-switch で新規プロバイダを追加",
  "guide.ccswitch.entry.body": "cc-switch を開く → 「新規プロバイダを追加」をクリック → 「Claude プロバイダ」タブに切り替え → 「カスタム設定」を選択（プリセットの中から選ばないでください）。",
  "guide.ccswitch.method1.title": "方法 1 · フォームに手動入力",
  "guide.ccswitch.method1.sub": "直感的、初回接続に最適",
  "guide.ccswitch.method1.desc": "下の表に従って入力してください。cc-router の現在の port と token が記入済みで、各フィールドの値をクリックしてコピーできます。",
  "guide.ccswitch.method1.fieldUrl": "リクエスト URL",
  "guide.ccswitch.method1.fieldKey": "API Key",
  "guide.ccswitch.method1.fieldFormat": "API フォーマット",
  "guide.ccswitch.method1.fieldAuthField": "認証フィールド",
  "guide.ccswitch.method1.modelMapTitle": "「詳細オプション」を展開し、「モデルマッピング」に入力:",
  "guide.ccswitch.method1.modelOpus": "メインモデル / Opus デフォルトモデル",
  "guide.ccswitch.method1.modelSonnet": "Sonnet デフォルトモデル",
  "guide.ccswitch.method1.modelHaiku": "Haiku デフォルトモデル",
  "guide.ccswitch.method1.note": "「リクエスト URL」の末尾にスラッシュを付けないでください。cc-switch の検証で弾かれます。",
  "guide.ccswitch.method2.title": "方法 2 · JSON を直接貼り付け",
  "guide.ccswitch.method2.sub": "一度に貼り付けてフォーム入力をスキップ",
  "guide.ccswitch.method2.desc": "cc-switch の「設定 JSON」エディタに下記の内容を貼り付けます。一度ですべて設定可能。cc-router の現在の port と token が記入済みです。",

  "guide.openclaw.path.title": "設定ファイルのパス",
  "guide.openclaw.path.note": ".js / .json / .yaml の 3 形式に対応しています。お好みの形式を 1 つ選んでください。",
  "guide.openclaw.config.title": "完全な設定例",
  "guide.openclaw.config.desc": "下記の内容をファイルに書き込みます（存在しない場合は新規作成）。cc-router の現在の port と token が記入済みで、そのまま使用できます。",
  "guide.openclaw.note.modelRef": "model ref は anthropic/<model-name> の前置形式が必須です。cc-router は model-opus / model-sonnet / model-haiku の 3 つの仮想モデルを提供し、それ以外のモデル名は fallback に透過されます。",
  "guide.openclaw.note.tokenHint": "token は「設定」ページで再生成できます。",

  "guide.hermes.path.title": "設定ファイルのパス",
  "guide.hermes.path.note": "hermes model コマンドで対話式ウィザードから生成することもできます。手動で編集する必要はありません。",
  "guide.hermes.config.title": "設定例",
  "guide.hermes.config.desc": "下記の内容を設定ファイルに書き込みます。cc-router の現在の port が記入済みで、そのまま使用できます。",
  "guide.hermes.auth.title": "API Key の設定",
  "guide.hermes.auth.desc": "環境変数 ANTHROPIC_API_KEY を使用するか、hermes auth add anthropic --type api-key --api-key <token> を実行します。token は「設定」ページで確認・再生成できます。",
  "guide.hermes.note.apiMode": "api_mode は anthropic_messages にしてください（Hermes の 3 種から cc-router プロトコルに一致するもの）。間違えると全て 4xx で返ります。",

  "guide.opencode.path.title": "設定ファイルのパス",
  "guide.opencode.path.project": "プロジェクト",
  "guide.opencode.path.global": "グローバル",
  "guide.opencode.path.note": "プロジェクト単位の opencode.json か、グローバルの ~/.config/opencode/opencode.json のどちらか一方を選択。",
  "guide.opencode.config.title": "設定例",
  "guide.opencode.config.desc": "@ai-sdk/anthropic npm パッケージで Anthropic プロトコルのエンドポイントであることを宣言します。cc-router の現在の port と token が記入済みで、そのまま使用できます。",
  "guide.opencode.note.baseUrlTrap": "⚠️ baseURL の末尾に /v1 を付けないでください。@ai-sdk/anthropic は内部で自動的に /v1/messages を追加するため、重複すると /v1/v1/messages → 404 になります（OpenCode issue #5163 の原因）。",
  "guide.opencode.note.usage": "/models で cc-router/model-opus(または sonnet / haiku)を選択して使用します。",

  "stats.title": "統計",
  "stats.subtitle": "使用量、処理時間、成功率の全体集計ビュー。日次集計で永続保持され、ログクリーンアップの影響を受けません。",
  "stats.refresh": "更新",
  "stats.range.today": "今日",
  "stats.range.last7": "過去 7 日間",
  "stats.range.last30": "過去 30 日間",
  "stats.range.last90": "過去 90 日間",
  "stats.range.all": "すべて",
  "stats.kpi.totalRequests": "総リクエスト数",
  "stats.kpi.successRate": "成功率",
  "stats.kpi.avgDuration": "平均処理時間",
  "stats.kpi.totalTokens": "総 Token",
  "stats.kpi.failedFormat": "{failed} 失敗 / {total}",
  "stats.kpi.p95Prefix": "P95 ",
  "stats.kpi.p95Suffix": " s",
  "stats.heatmap.title": "Token 使用量ヒートマップ",
  "stats.heatmap.subtitle": "過去 365 日の日別 Token 消費量。色が濃いほど消費が多い。",
  "stats.heatmap.legendLess": "少",
  "stats.heatmap.legendMore": "多",
  "stats.heatmap.tooltipFormat": "{date}: {tokens} tokens · {requests} 件のリクエスト",
  "stats.heatmap.empty": "最近の使用量データがありません。",
  "stats.daily.title": "日次トレンド",
  "stats.daily.subtitle": "日別のリクエスト件数。緑 = 成功、赤 = 失敗、グレー = タイムアウト。",
  "stats.daily.empty": "選択期間内にリクエストはありません。",
  "stats.daily.tooltipRequests": "リクエスト",
  "stats.daily.tooltipSuccess": "成功",
  "stats.daily.tooltipError": "失敗",
  "stats.daily.tooltipTimeout": "タイムアウト",
  "stats.daily.tokenTitle": "日次 Token 使用量",
  "stats.daily.tokenSubtitle": "日別の Token 量。下から上に：キャッシュ読取 / キャッシュ書込 / 入力 / 出力。",
  "stats.daily.tokenTooltipOutput": "出力",
  "stats.daily.tokenTooltipInput": "入力",
  "stats.daily.tokenTooltipCacheCreate": "キャッシュ書込",
  "stats.daily.tokenTooltipCacheRead": "キャッシュ読取",
  "stats.byVm.title": "仮想モデル別分布",
  "stats.byVm.subtitle": "各仮想モデルスロットのリクエスト数と成功率。",
  "stats.byVm.empty": "選択期間内のデータがありません。",
  "stats.bySub.title": "サブスクリプション別ランキング",
  "stats.bySub.subtitle": "行をクリックすると、そのサブスクリプションでフィルタしたログページに移動します。",
  "stats.bySub.col.subscription": "サブスクリプション",
  "stats.bySub.col.requests": "リクエスト数",
  "stats.bySub.col.successRate": "成功率",
  "stats.bySub.col.avgDuration": "平均処理時間",
  "stats.bySub.col.tokensOut": "出力 Token",
  "stats.bySub.empty": "選択期間内のサブスクリプションデータがありません。",

  "requestLogs.title": "リクエストログ",
  "requestLogs.subtitle": "プロキシを経由した最近のリクエスト記録（新しい順）。",
  "requestLogs.refresh": "更新",
  "requestLogs.filter.allVm": "すべての仮想モデル",
  "requestLogs.filter.allProvider": "すべてのプロバイダ",
  "requestLogs.filter.allStatus": "すべてのステータス",
  "requestLogs.filter.allClient": "すべてのクライアント",
  "requestLogs.filter.clientUnknown": "未識別",
  "requestLogs.summaryFormat": "全 {total} 件 · {page} / {pages} ページ",
  "requestLogs.summaryEmpty": "0 件",
  "requestLogs.empty.filtered": "現在の条件に一致する記録はありません。",
  "requestLogs.empty.none": "リクエストログはまだありません。Claude Code でプロキシ経由の対話を一度実行すると記録が表示されます。",
  "requestLogs.clearFilter": "フィルタを解除",
  "requestLogs.col.time": "時刻",
  "requestLogs.col.status": "ステータス",
  "requestLogs.col.client": "クライアント",
  "requestLogs.col.virtualModel": "仮想モデル",
  "requestLogs.col.realModel": "実モデル",
  "requestLogs.col.responseModel": "レスポンスモデル",
  "requestLogs.col.provider": "プロバイダ",
  "requestLogs.col.tokensIn": "入力",
  "requestLogs.col.tokensOut": "出力",
  "requestLogs.col.latency": "レイテンシ",
  "requestLogs.status.success": "成功",
  "requestLogs.status.timeout": "タイムアウト",
  "requestLogs.status.error": "失敗",
  "requestLogs.sse": "SSE ストリーム",
  "requestLogs.prevPage": "前へ",
  "requestLogs.nextPage": "次へ",
  "requestLogs.detail.title": "リクエスト詳細",
  "requestLogs.detail.time": "時刻",
  "requestLogs.detail.requestId": "リクエスト ID",
  "requestLogs.detail.status": "ステータス",
  "requestLogs.detail.httpStatus": "アップストリーム HTTP",
  "requestLogs.detail.virtualModel": "仮想モデル",
  "requestLogs.detail.realModel": "実モデル",
  "requestLogs.detail.provider": "プロバイダ",
  "requestLogs.detail.latency": "レイテンシ",
  "requestLogs.detail.errorMessage": "エラーメッセージ",
  "requestLogs.detail.upstreamBody": "アップストリームレスポンス（一部省略）",
  "requestLogs.detail.copy": "すべてコピー",
  "requestLogs.detail.noBody": "詳細はありません。",
  "requestLogs.detail.clientTool": "クライアント",
  "requestLogs.detail.clientVersion": "クライアントバージョン",
  "requestLogs.detail.clientIp": "リクエスト元 IP",
  "requestLogs.detail.userAgent": "User-Agent",
  "requestLogs.detail.entryKind": "受信エンドポイント",
  "requestLogs.detail.httpVersion": "下り HTTP",
  "requestLogs.client.unknown": "未識別",
  "clientTool.claudeCode": "Claude Code",
  "clientTool.claudeDesktop": "Claude Desktop",
  "clientTool.codexCli": "Codex CLI",
  "clientTool.codexDesktop": "Codex Desktop",
  "clientTool.ccRouter": "cc-router (転送)",
  "clientTool.zed": "Zed",
  "clientTool.cursor": "Cursor",
  "clientTool.opencode": "OpenCode",
  "clientTool.anthropicSdkPython": "Anthropic Python SDK",
  "clientTool.anthropicSdkJs": "Anthropic JS SDK",

  "logs.tab.requests": "リクエストログ",
  "logs.tab.subscriptionEvents": "サブスクリプションイベント",
  "logs.tab.systemErrors": "システムエラー",
  "logs.subscriptionEvents.subtitle": "サブスクリプション健全性ステートマシンの遷移履歴。いつ失効し始めたかの追跡に使えます。",
  "logs.subscriptionEvents.empty": "サブスクリプションの状態変更記録はまだありません。",
  "logs.systemErrors.subtitle": "個別リクエストに紐付けられないシステムレベルの障害や集約 503 などのイベント。",
  "logs.systemErrors.empty": "システムエラーはありません。",
  "logs.systemErrors.detailTitle": "システムエラー詳細",
  "logs.systemErrors.summary": "概要",
  "logs.systemErrors.payload": "コンテキスト",

  "subscriptions.title": "サブスクリプション",
  "subscriptions.subtitle": "各サブスクリプションは 1 プロバイダの API Key に対応します。ステータスはヘルスチェック結果をリアルタイムで反映します。",
  "subscriptions.add": "サブスクリプションを追加",
  "subscriptions.empty.message": "サブスクリプションがまだありません。「サブスクリプションを追加」をクリックして開始してください。",
  "subscriptions.empty.action": "最初のサブスクリプションを追加",
  "subscriptions.col.status": "ステータス",
  "subscriptions.col.provider": "プロバイダ",
  "subscriptions.col.note": "備考",
  "subscriptions.col.referenced": "参照",
  "subscriptions.col.updatedAt": "更新日時",
  "subscriptions.notUsed": "未使用",
  "subscriptions.custom": "カスタム",
  "subscriptions.view": "表示",

  "virtualModels.title": "仮想モデル",
  "virtualModels.subtitle1": "3 つの固定仮想モデルが Claude Code のモデルスロットに対応します。",
  "virtualModels.subtitle2": "はフォールバックで、その他すべての model リクエストはここを通ります。",
  "virtualModels.endpointsSuffix": " エンドポイント",
  "virtualModels.mode.label": "ディスパッチモード",
  "virtualModels.mode.sequentialHint": "優先順位順、失敗時に降下",
  "virtualModels.mode.roundRobinHint": "均等に分散、レート制限時はスキップ",
  "virtualModels.addButton": "この仮想モデルにサブスクリプションを追加",
  "virtualModels.dialog.title": "追加するサブスクリプションを選択",
  "virtualModels.dialog.empty": "利用可能なサブスクリプションがありません。先に「サブスクリプション」ページで追加してください。",
  "virtualModels.dialog.add": "選択したものを追加",

  "subscriptionNew.back": "戻る",
  "subscriptionNew.backToList": "一覧へ戻る",
  "subscriptionNew.welcomeTitle": "cc-router へようこそ",
  "subscriptionNew.title": "サブスクリプションを追加",
  "subscriptionNew.welcomeSubtitle": "最初のサブスクリプションを追加します。自動的に 4 つの仮想モデルすべてにバインドし、続いてセットアップガイドへ移動します。",
  "subscriptionNew.subtitle": "新しいプロバイダの API Key をルーターに接続し、仮想モデルスロットにバインドします。",
  "subscriptionNew.step1": "基本情報",
  "subscriptionNew.step2": "モデルをバインド",
  "subscriptionNew.field.provider": "プロバイダ",
  "subscriptionNew.providerSelect": "プロバイダを選択",
  "subscriptionNew.customProvider": "カスタム (Anthropic 互換)",
  "subscriptionNew.group.firstParty": "プロバイダ",
  "subscriptionNew.group.secondParty": "AI アプリ",
  "subscriptionNew.group.aggregator": "API アグリゲータ",
  "subscriptionNew.group.custom": "カスタム",
  "subscriptionNew.customHint": "カスタム経路: 接続情報とモデルスロットを 1 度に入力します。2 ステップウィザードは経由しません。",
  "subscriptionNew.customGeminiProvider": "カスタム (Gemini 互換)",
  "subscriptionNew.customGeminiHint": "Google AI Studio や Gemini 互換中継プロキシ用です。cc-router が Anthropic Messages リクエストを自動的に Gemini generateContent 呼び出しに変換します。",
  "subscriptionNew.geminiBaseUrlHint": "Gemini エンドポイントのドメインルート。AI Studio 公式は https://generativelanguage.googleapis.com を、中継は実際のドメインを指定します。",
  "subscriptionNew.geminiMessagesPathHint": "URL パステンプレート。{model} プレースホルダを必ず含めてください。cc-router がスロットの実際のモデル名に置換します。",
  "subscriptionNew.geminiAuthLocked": "Gemini API は x-goog-api-key ヘッダ固定です。API Key をそのまま入力するだけで OK、認証方式の選択は不要です。",
  "subscriptionNew.customOpenaiProvider": "カスタム (OpenAI Responses 互換)",
  "subscriptionNew.customOpenaiHint": "OpenAI 公式 /v1/responses や OpenAI 互換中継プロキシ (one-api / new-api など) 用です。cc-router が Anthropic Messages を OpenAI Responses 呼び出しに自動変換し、reasoning の複数ターン回送に対応します。",
  "subscriptionNew.openaiAuthLocked": "OpenAI Responses は Authorization: Bearer ヘッダ固定です。API Key をそのまま入力するだけで OK (通常 sk-... で始まります)、認証方式の選択は不要です。",
  "subscriptionNew.openaiBaseUrlHint": "OpenAI Responses エンドポイントのドメインルート。公式は https://api.openai.com を、中継は実際のドメインを指定します。",
  "subscriptionNew.openaiMessagesPathHint": "URL パス。通常は /v1/responses ですが、中継は別のパスを使う場合があるためドキュメントに従ってください。",
  "subscriptionNew.customOpenaiChatProvider": "カスタム (OpenAI Chat Completions 互換)",
  "subscriptionNew.customOpenaiChatHint": "OpenAI /v1/chat/completions 互換サービス (DeepSeek 公式、Together、Groq、Ollama、one-api / new-api 中継、OpenAI レガシーモデル GPT-4 / 4-turbo など) 用です。cc-router が Anthropic Messages を Chat Completions 呼び出しに自動変換し、DeepSeek R1 などの reasoning_content を Claude Code の thinking ブロックとして表示します。",
  "subscriptionNew.openaiChatBaseUrlHint": "Chat Completions エンドポイントのドメインルート。例: OpenAI 公式 https://api.openai.com、DeepSeek https://api.deepseek.com、Together https://api.together.xyz、Groq https://api.groq.com/openai、Ollama http://localhost:11434。",
  "subscriptionNew.openaiChatMessagesPathHint": "URL パス。通常は /v1/chat/completions ですが、中継は別のパスを使う場合があるためドキュメントに従ってください。",
  "subscriptionNew.openaiChatAuthLocked": "OpenAI Chat Completions は Authorization: Bearer ヘッダ固定です。API Key をそのまま入力するだけで OK (通常 sk-... で始まります。Ollama のように認証不要な場合は任意の非空文字列で構いません)、認証方式の選択は不要です。",
  "subscriptionNew.errGeminiPathPlaceholder": "Gemini パステンプレートに {model} プレースホルダが必要です",
  "subscriptionNew.field.endpoint": "エンドポイント",
  "subscriptionNew.endpointSelect": "エンドポイントを選択",
  "subscriptionNew.openApiKey": "公式サイトで API Key を取得",
  "subscriptionNew.field.providerName": "プロバイダ表示名",
  "subscriptionNew.providerNameHint": "ドロップダウンに表示されるプロバイダ名。あとから編集できます。",
  "subscriptionNew.providerNamePh": "例: 自前のゲートウェイ",
  "subscriptionNew.baseUrlHint": "/v1/messages 部分は含めず、ドメインルートまで。",
  "subscriptionNew.messagesPathHint": "通常は /v1/messages。プロキシによっては別のパスを使う場合があります。",
  "subscriptionNew.authMethod": "認証方式",
  "subscriptionNew.field.note": "備考名",
  "subscriptionNew.notePh": "例: MiniMax メインアカウント",
  "subscriptionNew.noteHint": "ローカルの識別用ラベル。どこにもアップロードされません。",
  "subscriptionNew.slotsLabel": "仮想モデルスロット",
  "subscriptionNew.slotsHint": "この 3 つのスロットが、cc-router が model-opus / model-sonnet / model-haiku をどの実モデル文字列にルーティングするかを決定します。",
  "subscriptionNew.errFillProvider": "プロバイダ表示名を入力してください",
  "subscriptionNew.errFillBase": "base URL を入力してください",
  "subscriptionNew.errFillKey": "API Key を入力してください",
  "subscriptionNew.errFillNote": "サブスクリプションの備考名を入力してください",
  "subscriptionNew.errFillSlots": "3 つの仮想モデルスロットそれぞれに実モデル名を入力してください",
  "subscriptionNew.errCreate": "作成に失敗しました",
  "subscriptionNew.slotPh": "例: claude-3-5-sonnet-20241022",
  "subscriptionNew.field.chatgptAccount": "ChatGPT アカウント",
  "oauth.chatgpt.title": "ChatGPT アカウントを接続",
  "oauth.chatgpt.subtitle": "ChatGPT Plus/Pro サブスクリプションの Codex 枠を利用します。認可は Codex CLI とは独立しており、cc-router 内のみに保存されます。",
  "oauth.chatgpt.starting": "ログインリンクを初期化中…",
  "oauth.chatgpt.instructions": "ブラウザを開きました。表示されているコードが下記と一致することを確認し、認可してください。",
  "oauth.chatgpt.userCodeLabel": "ユーザーコード",
  "oauth.chatgpt.openBrowser": "ブラウザを再度開く",
  "oauth.chatgpt.waitingForAuth": "ブラウザでの認可をお待ちしています…",
  "oauth.chatgpt.connected": "接続済み",
  "oauth.chatgpt.failed": "ログインに失敗しました。再試行してください",
  "oauth.chatgpt.noEmail": "ChatGPT アカウント",
  "oauth.chatgpt.reconnect": "アカウントを切り替え",
  "oauth.chatgpt.connectButton": "ChatGPT アカウントを接続",
  "oauth.chatgpt.connectHint": "認可完了後、cc-router は ChatGPT サブスクリプションの枠を使って Claude Code を実行します。ローカルの Codex CLI には影響しません。",
  "oauth.chatgpt.tosWarning": "⚠️ ChatGPT サブスクリプションは本来 OpenAI 自社製品と Codex CLI 向けで、第三者利用はグレーゾーンです。OpenAI はアカウント管理の権利を留保しています。推奨: サブアカウントを使用する／短時間の高頻度アクセスを避ける。新しい端末からの認可で電話番号認証が表示されるのは通常の挙動です。",
  "subscriptionNew.field.kiroCredential": "Kiro 認証情報",
  "oauth.kiro.title": "Kiro アカウントを接続",
  "oauth.kiro.subtitle": "Kiro IDE の無料 Claude 枠 (AWS CodeWhisperer 経由) を利用します。",
  "oauth.kiro.tosWarning": "⚠️ Kiro サブスクリプションは本来 Kiro IDE / kiro-cli 向けで、第三者利用はグレーゾーンです。AWS はアカウント管理の権利を留保しています。推奨: 短時間の高頻度アクセスを避ける。新しい端末からの認可で電話番号認証が表示されるのは通常の挙動です。",
  "oauth.kiro.tabImport": "JSON からインポート",
  "oauth.kiro.tabDeviceFlow": "AWS Builder ID ログイン",
  "oauth.kiro.importDescription": "Kiro IDE にログイン済み、または kiro-cli login を実行済みであれば、認証情報は ~/.aws/sso/cache/ に保存されているため直接読み込めます。",
  "oauth.kiro.localFilePath": "ローカル認証情報ファイルパス",
  "oauth.kiro.readFile": "読み込み",
  "oauth.kiro.importPasted": "貼り付けた認証情報をインポート",
  "oauth.kiro.deviceFlowDescription": "AWS SSO OIDC Device Flow を使いブラウザで Builder ID の認可を完了します (無料アカウントで可)。完了後、cc-router が refresh_token を自動で受け取り、JS には一切渡しません。",
  "oauth.kiro.startBuilderIdLogin": "AWS Builder ID ログインを開始",
  "oauth.kiro.importing": "認証情報を解析中…",
  "oauth.kiro.deviceStarting": "ログインリンクを初期化中…",
  "oauth.kiro.deviceInstructions": "ブラウザを開きました。表示されているコードが下記と一致することを確認し、認可してください。",
  "oauth.kiro.userCodeLabel": "ユーザーコード",
  "oauth.kiro.openBrowser": "ブラウザを再度開く",
  "oauth.kiro.waitingForAuth": "ブラウザでの認可をお待ちしています…",
  "oauth.kiro.connected": "接続済み",
  "oauth.kiro.failed": "ログインに失敗しました。再試行してください",
  "oauth.kiro.reconnect": "認証情報を切り替え",
  "oauth.kiro.connectButton": "Kiro 認証情報を接続",
  "oauth.kiro.connectHint": "Kiro IDE のキャッシュ済み JSON のインポート、または AWS Builder ID OAuth に対応。インポート後、4 つの偽装フィールドの確認が必要です。",
  "oauth.kiro.credentialReady": "認証情報を取得しました",
  "oauth.kiro.authMethod": "認証方式",
  "oauth.kiro.profileArnDetected": "✓ profileArn を検出しました。リクエスト時に自動で注入されます。",
  "oauth.kiro.disguiseTitle": "リクエスト偽装フィールド",
  "oauth.kiro.disguiseHint": "これらのフィールドは毎リクエストで user-agent / x-amz-user-agent ヘッダーとともに AWS へ送信され、Kiro IDE クライアントを模倣します。デフォルト値は cc-router のバージョンに追従しますが、手動で変更も可能です (例: 実 IDE の machineId に合わせてリスク管理リスクを更に下げる)。",
  "oauth.kiro.regen": "再生成",
  "oauth.kiro.confirmAndNext": "確認して次へ",
  "oauth.kiro.errPasteEmpty": "認証情報の JSON を貼り付けてください",
  "oauth.kiro.sourceFromJson": "JSON インポート由来",
  "oauth.kiro.sourceFromDeviceFlow": "AWS Builder ID ログイン由来",
  "common.orPasteBelow": "または JSON を貼り付け",
  "common.retry": "再試行",

  "subscriptionEdit.notFound": "サブスクリプションが見つかりません",
  "subscriptionEdit.referencedPrefix": "参照: ",
  "subscriptionEdit.enabled": "有効",
  "subscriptionEdit.basicInfo": "基本情報",
  "subscriptionEdit.providerLocked": "（変更不可）",
  "subscriptionEdit.endpointChangeWarn": "保存するとこのエンドポイントテンプレートから接続情報を再コピーします",
  "subscriptionEdit.providerNamePh": "プロバイダ表示名",
  "subscriptionEdit.authHeaderName": "認証ヘッダー名",
  "subscriptionEdit.authHeaderNamePh": "Authorization または x-api-key",
  "subscriptionEdit.authHeaderFormat": "認証フォーマット",
  "subscriptionEdit.authBearerOption": "Bearer（ヘッダー値の先頭に \"Bearer \" を付与）",
  "subscriptionEdit.authRawOption": "Raw（ヘッダー値に key をそのまま記入）",
  "subscriptionEdit.modelSlotsTitle": "モデルスロット",
  "subscriptionEdit.modelCacheUpdated": "モデル一覧を更新: ",
  "subscriptionEdit.testModel": "テストモデル: ",
  "subscriptionEdit.stateReset": "✓ サブスクリプションのステータスを正常にリセットしました",
  "subscriptionEdit.testConn": "接続テスト",
  "subscriptionEdit.errSave": "保存に失敗しました",
  "subscriptionEdit.keyDialog.title": "API Key を変更",
  "subscriptionEdit.keyDialog.desc": "新しい Key は即時に反映されます。",
  "subscriptionEdit.keyDialog.placeholder": "新しい API Key",
  "subscriptionEdit.deleteDialog.titlePrefix": "「",
  "subscriptionEdit.deleteDialog.titleSuffix": "」を削除しますか?",
  "subscriptionEdit.deleteDialog.refByPrefix": "このサブスクリプションは ",
  "subscriptionEdit.deleteDialog.refBySuffix": " 個の仮想モデルから参照されています:",
  "subscriptionEdit.deleteDialog.refByOutro": "削除するとこれらの仮想モデルのサブスクリプション一覧から外れます。",
  "subscriptionEdit.deleteDialog.noRef": "サブスクリプションを削除すると保存済みの API Key も同時に消去されます。",
  "subscriptionEdit.deleteDialog.confirm": "削除を確認",

  "common.relativeTime.justNow": "たった今",
  "common.relativeTime.minutesAgo": "分前",
  "common.relativeTime.hoursAgo": "時間前",
  "common.relativeTime.daysAgo": "日前",

  "subscriptionBalance.title": "残高",
  "subscriptionBalance.refresh": "残高を更新",
  "subscriptionBalance.refreshing": "取得中…",
  "subscriptionBalance.lastUpdatedPrefix": "最終更新 ",
  "subscriptionBalance.neverFetched": "未取得 — 右のボタンをクリックして最新の残高を取得",
  "subscriptionBalance.errPrefix": "残高取得失敗: ",
  "subscriptionBalance.accountUnavailable": "アカウントが現在利用できません (残高不足または制限中)",
  "subscriptionBalance.severityLow": "残高が少なめ",
  "subscriptionBalance.severityCritical": "残高不足",

  "modelSlot.label": "モデルスロット",
  "modelSlot.modeAuto": "自動",
  "modelSlot.modeManual": "手動",
  "modelSlot.refresh": "モデル一覧を更新",
  "modelSlot.errPrefix": "モデル一覧の取得に失敗しました:",
  "modelSlot.errSuffix": "。手動入力に切り替えました。",
  "modelSlot.examplePrefix": "例:",
  "modelSlot.opus.label": "Opus スロット",
  "modelSlot.opus.hint": "高度なタスク / Plan Mode",
  "modelSlot.sonnet.label": "Sonnet スロット",
  "modelSlot.sonnet.hint": "メインチャット",
  "modelSlot.haiku.label": "Haiku スロット",
  "modelSlot.haiku.hint": "小タスク / ツール呼び出し",
  "modelSlot.placeholder": "モデルを選択してください",
  "modelSlot.historicalSuffix": "（履歴値）",
  "modelSlot.historicalTitle": "{model} は自動取得一覧に含まれていません。過去の手動入力の可能性があります。変更するには手動モードに切り替えてください。",
  "modelSlot.modelIdPh": "プロバイダから提供されたモデル ID を入力",

  "providerBadge.verified": "検証済み",
  "providerBadge.partial": "部分対応",
  "providerBadge.untested": "未検証",

  "routeFlow.title": "リクエストルーティング",
  "routeFlow.live": "リアルタイム",
  "routeFlow.offline": "停止中",
  "routeFlow.notBound": "未バインド",
  "routeFlow.providersTitle": "プロバイダのサブスクリプション",
  "routeFlow.providersEmpty": "バインド済みのサブスクリプションなし",

  "sortableSub.empty": "サブスクリプションがありません。下のボタンから追加してください",
  "sortableSub.passthrough": "リクエストの model をそのまま透過",
  "sortableSub.dragHandle": "ドラッグして並び替え",
  "sortableSub.remove": "削除",

  "subscriptionState.healthy": "正常",
  "subscriptionState.rate_limited": "レート制限中",
  "subscriptionState.quota_exhausted": "クォータ枯渇",
  "subscriptionState.transient_error": "一時的エラー",
  "subscriptionState.auth_failed": "認証情報が無効",
  "subscriptionState.disabled": "無効化済み",

  "copyable.copied": "コピー済み",
  "copyable.copy": "コピー",

  "vm.opus.purpose": "高度なタスク",
  "vm.opus.purposeEn": "Plan Mode",
  "vm.opus.label": "高度なタスク / Plan Mode",
  "vm.sonnet.purpose": "メインチャット",
  "vm.sonnet.purposeEn": "Default chat",
  "vm.sonnet.label": "メインチャット",
  "vm.haiku.purpose": "小タスク",
  "vm.haiku.purposeEn": "Tool calls",
  "vm.haiku.label": "小タスク / ツール呼び出し",
  "vm.fallback.purpose": "フォールバック",
  "vm.fallback.purposeEn": "Unknown models",
  "vm.fallback.label": "フォールバック · 未知モデルの透過",
  "vm.mode.sequential": "順次",
  "vm.mode.round_robin": "ラウンドロビン",

  "validation.baseUrl": "base URL は http:// または https:// で始まる必要があります",
  "validation.messagesPath": "messages path は / で始まる必要があります",

  "sidebar.nav.receipts": "利用レシート",

  "receipts.title": "利用レシート",
  "receipts.subtitle": "サブスクリプションのトークン利用量をレシート風のスナップショットに変換します。料金は既定で非表示、利用量のみを表示します。",
  "receipts.empty": "この期間にはリクエストがありません。",
  "receipts.loadError": "レシートデータの読み込みに失敗しました",
  "receipts.exportFailed": "エクスポートに失敗しました。もう一度お試しください。",
  "receipts.savedToDownloads": "ダウンロードフォルダに保存しました",
  "receipts.openDownloads": "開く",

  "receipts.range.last24h": "過去 24 時間",
  "receipts.range.last7": "過去 7 日間",
  "receipts.range.last30": "過去 30 日間",
  "receipts.range.lastYear": "過去 1 年間",
  "receipts.range.all": "すべて",

  "receipts.controls.range.title": "期間",
  "receipts.controls.display.title": "表示オプション",
  "receipts.controls.display.colorMode": "カラーモード",
  "receipts.controls.display.colorModeDesc": "既定はモノクロ(印刷レシート風)。オンにするとクリーム色の用紙にダークブラウン文字に切り替わります。",
  "receipts.controls.display.showProviderLogo": "プロバイダーロゴを表示",
  "receipts.controls.display.showProviderLogoDesc": "各サブ項目行のプロバイダー名の前にブランドアイコン(Anthropic / DeepSeek / 智譜 など)を表示します。モノクロモードでは自動的にグレースケールに変換されます。",
  "receipts.controls.display.showCache": "キャッシュ token を表示",
  "receipts.controls.display.showCacheDesc": "オフにすると入力 / 出力の 2 行のみとなり、レシートがすっきりします。",
  "receipts.controls.display.showCounts": "リクエスト回数を表示",
  "receipts.controls.display.showCountsDesc": "オフにすると token 数のみ表示され、各項目末尾の「156×」が消えます。",
  "receipts.controls.display.compactTokens": "コンパクト表記（K/M）",
  "receipts.controls.display.compactTokensDesc": "token 数を K/M 形式（例: 12.35K、1.23M）に圧縮します。1000 未満はそのまま表示します。",
  "receipts.controls.display.groupMode.label": "表示モード",
  "receipts.controls.display.groupMode.virtual_model": "仮想モデル別",
  "receipts.controls.display.groupMode.subscription": "サブスクリプション別",
  "receipts.controls.display.groupMode.totals_only": "合計のみ",
  "receipts.controls.display.groupMode.desc": "レシート本体の集計軸を切り替えます。サブスクリプション別 / 合計のみは仮想モデルスロットによる分類を行いません。",
  "receipts.controls.filter.title": "データ絞り込み",
  "receipts.controls.filter.bySubscription": "サブスクリプション別",
  "receipts.controls.filter.byProvider": "プロバイダー別",
  "receipts.controls.filter.allSubscriptions": "すべてのサブスクリプション",
  "receipts.controls.filter.allProviders": "すべてのプロバイダー",
  "receipts.controls.filter.excludeDeleted": "削除済みサブスクを除外",
  "receipts.controls.filter.excludeDeletedDesc": "オンにすると、削除されたサブスクの利用量はレシートから除外され、合計は自動的に再計算されます。",
  "receipts.controls.export.title": "レシートをエクスポート",
  "receipts.controls.export.png": "PNG",
  "receipts.controls.export.pdf": "PDF",
  "receipts.controls.export.html": "HTML",
  "receipts.controls.export.exporting": "エクスポート中…",

  "receipts.slip.header": "USAGE SLIP",
  "receipts.slip.tagline": "マルチサブスクリプション · Anthropic Messages エンドポイント",
  "receipts.slip.period": "期間",
  "receipts.slip.issued": "発行",
  "receipts.slip.slipNo": "番号",
  "receipts.slip.totalRequests": "総リクエスト数",
  "receipts.slip.totalTokens": "合計 TOKEN",
  "receipts.slip.input": "入力",
  "receipts.slip.output": "出力",
  "receipts.slip.cacheCreate": "キャッシュ作成",
  "receipts.slip.cacheRead": "キャッシュ読込",
  "receipts.slip.subtotal": "小計",
  "receipts.slip.empty": "(該当なし)",
  "receipts.slip.deletedSub": "(削除済みサブスクリプション)",
  "receipts.slip.thanks": "cc-router をご利用いただきありがとうございます",
  "receipts.slip.section.bySubscription": "サブスクリプション別",
  "receipts.slip.section.byRealModel": "実モデル別"
}
