Files
EasyCLIProxyAPI/src/i18n/ja.ts
T

1104 lines
79 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 { MessageKey } from './locales/zh-CN';
export const jaOverrides = {
'apiAccess.models.add': 'カスタムモデルを追加',
'apiAccess.models.namePlaceholder': 'モデル名(例: gpt-4o)',
'apiAccess.models.aliasPlaceholder': 'モデル別名(任意)',
'apiAccess.models.remove': 'モデルを削除',
'app.language': '言語',
'app.theme.light': 'ライトモード',
'app.theme.dark': 'ダークモード',
'app.theme.switchToLight': 'ライトモードに切り替え',
'app.theme.switchToDark': 'ダークモードに切り替え',
'app.desktopConsole': 'デスクトップコンソール',
'app.navigation': 'メインナビゲーション',
'app.nav.easy': '簡易モード',
'app.nav.home': 'ホーム',
'app.nav.versions': 'バージョン管理',
'app.nav.kernel': 'コア',
'app.nav.config': '詳細設定',
'app.nav.thinkingAliases': 'モデルエイリアス',
'app.nav.oauth': 'OAuth',
'app.nav.api': 'API 接続',
'app.nav.authFiles': '認証ファイル',
'app.nav.quota': 'クォータ照会',
'app.nav.usageRecords': '使用履歴',
'app.nav.agents': 'エージェント設定',
'app.coreRequired.title': '先にコアを起動してください',
'app.coreRequired.description': '設定、OAuth、API 接続などを使用するには CPA コアを起動してください。',
'app.contact.title': 'QQ でお問い合わせ',
'app.contact.label': 'お問い合わせ',
'app.close.title': '次の操作を選択してください',
'app.close.description': 'アプリを終了するか、EasyCLIProxyAPI をシステムトレイで実行し続けることができます。',
'app.close.minimizing': '最小化しています...',
'app.close.minimize': 'トレイに最小化',
'app.close.exiting': '終了しています...',
'app.close.exit': 'アプリを終了',
'app.close.remember': 'この選択を記憶',
'easyMode.steps.label': '接続ウィザードの手順',
'easyMode.overview.coreTitle': '使い方',
'easyMode.overview.providerTitle': 'モデルを接続',
'easyMode.overview.agentTitle': 'エージェントを接続',
'easyMode.provider.oauthFit': '公式アカウントとブラウザー認証向け',
'easyMode.provider.apiFit': 'サードパーティプラットフォームの API 向け',
'easyMode.oauth.title': 'OAuth ログイン',
'easyMode.oauth.description': 'API キーを手動でコピーせず、ブラウザーで認証します。',
'easyMode.api.title': 'API 接続',
'easyMode.api.description': 'サードパーティプラットフォームから提供された Base URL と API キーを入力します。',
'easyMode.step3.cardTitle': 'モデルを選んでエージェントに接続',
'easyMode.step3.cardDescription': '「利用可能なモデル」一覧からモデルを選び、利用するエージェントクライアントを選択します。',
'easyMode.step3.step1': '「利用可能なモデル」一覧から利用するモデルを選びます。',
'easyMode.step3.step2': 'インストール済みのエージェントクライアントを選びます。',
'easyMode.step3.step3': '設定を適用して、クライアントを起動します。',
'easyMode.guide.title': '使い方',
'easyMode.guide.description': 'OAuth ログインまたは API 接続を選び、「利用可能なモデル」一覧からモデルを選んでエージェントに接続します。',
'easyMode.guide.step1Title': '接続方法を選ぶ',
'easyMode.guide.step1Description': 'OAuth で自分のアカウントにログインしてアカウントの利用枠を使うことも、API 接続で任意のプラットフォームに接続することもできます。',
'easyMode.guide.step2Title': 'モデルを接続',
'easyMode.guide.step2Description': 'アカウント認証を行うか、サードパーティプラットフォームの Base URL と API キーを入力して保存します。',
'easyMode.guide.step3Title': 'モデルを選んでエージェントに接続',
'easyMode.guide.step3Description': '「利用可能なモデル」一覧からモデルを選び、インストール済みのエージェントクライアントを選択して設定を適用します。',
'easyMode.navigation.back': '前へ',
'easyMode.navigation.next': '次へ',
'error.render.title': 'ページの描画中にエラーが発生しました',
'error.unknown': '不明なエラー',
'error.reload': 'ページを再読み込み',
'quota.title': 'クォータ照会',
'quota.queryableCredentials.one': '照会可能な認証情報 {count} 件',
'quota.queryableCredentials.other': '照会可能な認証情報 {count} 件',
'quota.credentials.one': '認証情報 {count} 件',
'quota.credentials.other': '認証情報 {count} 件',
'quota.readList': '一覧を読み込む',
'quota.refreshAll': 'すべて更新',
'quota.loadingFiles': '認証ファイルを読み込んでいます',
'quota.empty.title': '照会可能なクォータがありません',
'quota.empty.description': 'まず認証ファイルにクォータ照会対応の認証情報を追加してください。',
'quota.unknownProvider': '不明',
'quota.reset': 'クォータをリセット',
'quota.fileDisabled': '認証ファイルは無効です',
'quota.refresh': 'クォータを取得/更新',
'quota.notFetched': 'クォータはまだ取得されていません',
'quota.disabled': '無効',
'quota.fetch': 'クォータを取得',
'quota.querying': '照会中',
'quota.resetCredits': '手動リセット回数',
'quota.earliestExpiry': '最も早い有効期限',
'quota.remaining': '残り {percent}%',
'quota.confirm.title': '「{name}」の Codex クォータをリセットしますか?',
'quota.confirm.cost': 'この操作では手動リセットを 1 回消費します。',
'quota.confirm.available': '現在利用可能:{count} 回',
'quota.confirm.expiry': '最も早い有効期限:{time}',
'quota.confirm.warning': '「確認」を押した場合のみ実行されます。「キャンセル」ではリセット回数を消費しません。',
'oauth.title': 'OAuth ログイン',
'oauth.tabs.label': 'OAuth 管理ページ',
'oauth.loginSuccess': '{provider} へのログインに成功しました',
'oauth.priorityApplyFailed': 'OAuth ログインは成功しましたが、新しい認証情報の優先度を 0 に設定できませんでした:{error}',
'oauth.authFailed': '認証に失敗しました',
'oauth.loginFailed': '{provider} へのログインに失敗しました{detail}',
'oauth.missingState': 'コアから OAuth state が返されませんでした',
'oauth.missingStatePolling': 'コアから OAuth state が返されなかったため、ログイン状態を確認できません',
'oauth.openFailedDetail': 'ログインリンクを取得しましたが、ブラウザーを自動で開けませんでした:{error}',
'oauth.openFailed': 'ログインリンクを取得しましたが、ブラウザーを自動で開けませんでした。手動で開いてください',
'oauth.linkCopied': 'ログインリンクをコピーしました',
'oauth.linkCopyFailed': 'ログインリンクをコピーできませんでした',
'oauth.pasteCallback': 'コールバック URL を貼り付けてください',
'oauth.pasteXaiCallback': 'xAI から返された code またはコールバック URL を貼り付けてください',
'oauth.invalidCallback': 'コールバック内容が無効です',
'oauth.invalidXaiCallback': '入力から xAI コールバックを作成できません。code と state を確認してください',
'oauth.callbackSubmittedNotice': 'コールバックを送信しました。認証完了を待っています',
'oauth.loginAnother': '別のアカウントでログイン',
'oauth.loggingIn': 'ログイン中…',
'oauth.startLogin': 'ログインを開始',
'oauth.hint': 'ログインを開始すると上で選択したブラウザーが開きます。「自動で開かない」を選ぶとリンクのみ生成します',
'oauth.authorizationLink': '認証リンク',
'oauth.copyLink': 'リンクをコピー',
'oauth.openLink': 'リンクを開く',
'oauth.callbackPlaceholder': '完全なコールバック URL を貼り付け',
'oauth.xaiCallbackPlaceholder': 'code または完全なコールバック URL を貼り付け',
'oauth.submitCallback': 'コールバックを送信',
'oauth.callbackSubmitted': 'コールバックを送信しました。認証完了を待っています',
'oauth.callbackFailed': 'コールバックの送信に失敗しました{detail}',
'oauth.refreshLink': 'リンクを更新',
'oauth.refreshingLink': '更新中…',
'oauth.browser.label': 'ブラウザーを選択',
'oauth.browser.detecting': 'ブラウザーを検出中…',
'oauth.browser.systemDefault': 'システムのデフォルトブラウザー',
'oauth.browser.noAutoOpen': '自動で開かない',
'oauth.browser.remembered': '利用可能なブラウザーを自動選択し、選択内容を記憶します',
'oauth.status.completed': '完了',
'oauth.status.failed': '失敗',
'oauth.status.waiting': 'コールバック待ち',
'oauth.status.signedOut': '未ログイン',
'usage.title': '使用履歴',
'usage.collector.collecting': 'ローカルで収集中',
'usage.collector.error': '収集エラー',
'usage.collector.waiting': 'コアを待機中',
'usage.longTermRecords': '長期レコード {count} 件',
'usage.pageLabel': '使用履歴ページ',
'usage.tab.overview': '概要',
'usage.tab.analysis': '分析',
'usage.tab.events': 'リクエスト詳細',
'usage.tab.pricing': '料金統計',
'usage.tab.dataManagement': 'データ管理',
'usage.refresh': '更新',
'usage.filter.reset': 'フィルター解除',
'usage.filter.timeRange': '期間',
'usage.range.4h': '過去 4 時間',
'usage.range.24h': '過去 24 時間',
'usage.range.today': '今日',
'usage.range.7d': '過去 7 日間',
'usage.range.30d': '過去 30 日間',
'usage.range.all': '全期間',
'usage.range.custom': 'カスタム',
'usage.filter.model': 'モデル',
'usage.filter.allModels': 'すべてのモデル',
'usage.filter.allProviders': 'すべてのプロバイダー',
'usage.filter.source': 'ソース',
'usage.filter.allSources': 'すべてのソース',
'usage.filter.allKeys': 'すべてのキー',
'usage.filter.result': 'リクエスト結果',
'usage.filter.allResults': 'すべての結果',
'usage.result.success': '成功',
'usage.result.failed': '失敗',
'usage.result.canceled': 'キャンセル済み',
'usage.filter.startTime': '開始日時',
'usage.filter.endTime': '終了日時',
'usage.filter.to': '~',
'usage.loading': 'ローカル SQLite の使用履歴を読み込んでいます',
'usage.stat.requests': '総リクエスト数',
'usage.stat.requestMeta': '成功 {success} · 失敗 {failed} · キャンセル {canceled}',
'usage.stat.requestMetaTitle': '合計 {total} 件:成功 {success}、失敗 {failed}、キャンセル {canceled}',
'usage.stat.tokens': '合計 Token',
'usage.stat.tokenMeta': '入力 {input} · 出力 {output}',
'usage.stat.tokenMetaTitle': '入力 {input}、出力 {output}、推論 {reasoning}、キャッシュ読取 {cache}',
'usage.stat.successRate': '成功率',
'usage.stat.successMeta': '成功 {success} · 失敗 {failed}',
'usage.stat.successMetaTitle': '成功 {success} 件、失敗 {failed} 件、キャンセル {canceled} 件',
'usage.stat.averageLatency': '平均レイテンシ',
'usage.stat.tps': 'TPS',
'usage.stat.performanceMeta': '有効サンプル {samples} 件 · RPM {rpm}',
'usage.stat.performanceMetaTitle': 'TPS {tps}、有効サンプル {samples} 件、RPM {rpm}、平均レイテンシ {latency} ms',
'usage.stat.cacheHitRate': 'キャッシュヒット率',
'usage.stat.cacheHitMeta': 'キャッシュ読取 {hit} · 入力 {input}',
'usage.stat.cacheHitMetaTitle': 'キャッシュヒット率 {rate}%、読取 {hit} Token、入力 {input} Token',
'usage.stat.estimatedCost': '推定コスト',
'usage.stat.costMeta': '料金カバー率 {priced} / {total} 件',
'usage.stat.costMetaTitle': 'モデル料金で {priced} / {total} 件を推定、未計算 {unpriced} 件',
'usage.pricing.coverage': '{priced} / {total} 件を計算済み · 利用可能なモデル料金 {saved} 件',
'usage.pricing.search': 'モデルを検索',
'usage.pricing.add': '手動で追加',
'usage.pricing.sync': '料金を同期',
'usage.pricing.syncing': '同期中',
'usage.pricing.syncResult': '料金を更新しました:{imported} 件を追加、手動料金 {skipped} 件を保持、{unmatched} 件は未一致',
'usage.pricing.syncFallback': 'リモート料金を読み込めなかったため、内蔵料金を引き続き使用します',
'usage.pricing.model': 'モデル',
'usage.pricing.calls': 'リクエスト数',
'usage.pricing.cost': '推定コスト',
'usage.pricing.prompt': '入力料金 ($/1M)',
'usage.pricing.completion': '出力料金 ($/1M)',
'usage.pricing.cache': '互換キャッシュ料金 ($/1M)',
'usage.pricing.cacheRead': 'キャッシュ読み取り料金 ($/1M)',
'usage.pricing.cacheCreation': 'キャッシュ作成料金 ($/1M)',
'usage.pricing.actions': '操作',
'usage.pricing.optional': '任意。空欄の場合は代替料金を使用',
'usage.pricing.modelRequired': 'モデル名を入力してください',
'usage.pricing.saving': '保存中',
'usage.pricing.saved': 'モデル料金を保存し、概要のコストを更新しました',
'usage.pricing.deleted': 'モデル料金を削除し、概要のコストを更新しました',
'usage.pricing.deleteConfirm': 'モデル {model} の料金を削除しますか?',
'usage.dataManagement.title': '履歴データ管理',
'usage.dataManagement.description': 'キャッシュ Token の不整合がある使用履歴をスキャンして修復します。',
'usage.dataManagement.manualBadge': '手動操作',
'usage.dataManagement.notice': '修復前にデータベースをバックアップします。判定可能な Claude / Anthropic の記録のみ処理します。',
'usage.dataManagement.actionTitle': 'キャッシュ記録を修復',
'usage.dataManagement.actionDescription': 'キャッシュ読み取りと作成を含む入力 Token の集計方式に統一します。',
'usage.dataManagement.run': 'スキャンして修復',
'usage.dataManagement.running': '処理中…',
'usage.dataManagement.confirm': '履歴キャッシュ記録をスキャンして修復しますか?先にデータベースをバックアップします。',
'usage.dataManagement.scanned': 'スキャン件数',
'usage.dataManagement.repaired': '修復件数',
'usage.dataManagement.backup': 'バックアップ',
'usage.dataManagement.success': '履歴キャッシュデータの処理が完了しました。{repaired} 件を修復しました。',
'usage.trend.title': 'リクエストと Token の推移',
'usage.trend.description': 'システムのローカル時刻ごとに集計',
'usage.token.title': 'Token の内訳',
'usage.token.description': 'キャッシュ、推論、生成の消費量',
'usage.token.input': '入力',
'usage.token.output': '出力',
'usage.token.reasoning': '推論',
'usage.token.cacheRead': 'キャッシュ読み取り',
'usage.token.cacheCreation': 'キャッシュ作成',
'usage.trend.aria': 'リクエスト推移',
'usage.analysis.models': 'モデル使用量',
'usage.analysis.sources': 'リクエスト元',
'usage.analysis.keys': '認証キー',
'usage.analysis.hours': '時間帯分布',
'usage.analysis.sortedByTokens': 'Token 順',
'usage.analysis.itemMeta': '{requests} 回 · {percent}% · {tokens} Token',
'usage.events.total': '合計 {count} 件',
'usage.events.page': '{page} / {total} ページ',
'usage.events.resetColumns': '列幅をリセット',
'usage.events.resizeHint': 'ドラッグで列幅を調整、ダブルクリックでリセット',
'usage.events.dragHint': 'ヘッダーの境界をドラッグして列幅を調整',
'usage.events.columnSettings': '表示設定',
'usage.events.columnSettingsDescription': 'リクエスト詳細に表示する列を選択します。',
'usage.events.columnsSelected': '{total} 列中 {selected} 列を選択',
'usage.events.selectAllColumns': 'すべて選択',
'usage.events.applyColumns': '適用',
'usage.events.pageSize': '{size} 件/ページ',
'usage.events.rangeSummary': '{total} 件中 {start} - {end} 件を表示',
'usage.column.time': '日時',
'usage.column.model': 'モデル',
'usage.column.provider': 'Provider',
'usage.column.source': 'ソース',
'usage.column.key': 'API キー',
'usage.column.result': '結果',
'usage.column.latency': '合計所要時間',
'usage.column.ttft': '初回トークン遅延',
'usage.column.input': '入力',
'usage.column.output': '出力',
'usage.column.reasoning': '推論',
'usage.column.cache': 'キャッシュ',
'usage.column.cacheRate': 'キャッシュ率',
'usage.column.total': '合計',
'usage.column.speed': '生成速度',
'usage.key.noRemark': 'メモなし',
'usage.previous': '前へ',
'usage.next': '次へ',
'usage.empty': '現在のフィルター範囲に使用履歴はありません',
'aliases.effort.low': '低',
'aliases.effort.medium': '標準',
'aliases.effort.high': '高',
'aliases.effort.xhigh': '超高',
'aliases.effort.max': '最大',
'aliases.source.openAiCompatible': 'OpenAI 互換',
'aliases.source.other': 'その他のソース',
'aliases.source.available': '現在コアで利用可能なモデル',
'aliases.error.selectModel': '先に元のモデルを選択してください',
'aliases.error.emptyAlias': 'エイリアスモデル名を入力してください',
'aliases.error.emptyEffort': '推論レベルを入力してください',
'aliases.error.unsupportedEffort': 'このモデルソースには利用可能な推論レベルがありません',
'aliases.created': '{alias} を作成し、推論レベルを {effort} に固定しました',
'aliases.createdPlain': 'モデルエイリアス {alias} を作成しました',
'aliases.deleteConfirm': 'エイリアスモデル「{alias}」を削除しますか?\n対応する推論レベルの上書きルールも削除されます。',
'aliases.deleted': '{alias} を削除しました',
'aliases.create.title': 'モデルエイリアスを作成',
'aliases.create.description': 'モデルに別の入口を作成し、選択したソースの推論レベルを固定します',
'aliases.originalModel': '元のモデル',
'aliases.loadingModels': 'モデルを読み込んでいます',
'aliases.searchModel': '元のモデルを検索して選択',
'aliases.availableModels': '利用可能な元モデル',
'aliases.noMatch': '一致するモデルまたはソースがありません',
'aliases.noModels': '選択可能なモデルがありません',
'aliases.sourceLabel': 'ソース:{source}',
'aliases.sourceHint': '同名モデルは実際の接続ソースごとに分けて表示されます',
'aliases.effort.title': '推論レベル',
'aliases.effort.description': '選択したモデルソースが対応するレベルのみ表示します',
'aliases.effort.none': '設定しない',
'aliases.effort.noneHint': '推論レベルを上書きしません',
'aliases.effort.unsupported': 'このモデルソースは利用可能な推論レベルを報告していません。',
'aliases.aliasName.title': 'エイリアスモデル名',
'aliases.aliasName.description': '新しい入口のみを追加し、元のモデル名は変更しません',
'aliases.aliasName.autoDescription': 'モデルと選択したオプションから自動生成します。元のモデル名は変更せず編集できます',
'aliases.aliasName.example': '例:{model}-{effort}',
'aliases.aliasName.selectFirst': '先に元のモデルを選択し、クライアントで使用するエイリアスを入力してください',
'aliases.notSelected': 'モデル未選択',
'aliases.enterAlias': 'エイリアスモデル名を入力してください',
'aliases.notSet': '未入力',
'aliases.creating': '作成中',
'aliases.create': 'エイリアスを作成',
'aliases.createdList.title': '作成済みエイリアス',
'aliases.createdList.description': '各エイリアスに固定された推論レベルを表示します',
'aliases.loadingConfig': '設定を読み込んでいます',
'aliases.empty.title': 'モデルエイリアスはまだありません',
'aliases.empty.description': '左側でモデルとエイリアスオプションを選択して作成できます',
'aliases.unboundEffort': 'レベル未設定',
'aliases.delete': '{alias} を削除',
'config.routing.roundRobin': 'ラウンドロビン',
'config.routing.fillFirst': '優先充填',
'config.tabs.label': '詳細設定ページ',
'config.tabs.general': '基本設定',
'config.tabs.network': 'ネットワーク設定',
'config.tabs.routing': 'セッションルーティング',
'config.tabs.software': 'ソフトウェア設定',
'config.error.emptyKey': '認証キーを入力してください',
'config.error.invalidKey': '空白を含まない表示可能な ASCII 文字のみ使用できます',
'config.error.duplicateKey': '同じ認証キーがすでに存在します',
'config.error.remarkTooLong': 'メモは 80 文字以内で入力してください',
'config.error.portRange': 'ポートは 1〜65535 の整数で入力してください',
'config.error.hostRequired': '有効なリッスン IP アドレスを入力してください',
'config.error.retryRange': '再試行設定は 0〜4294967295 の整数で入力してください',
'config.error.networkRestartFailed': '設定は保存されましたが、コアの再起動に失敗しました:{error}',
'config.error.saveFailed': '保存に失敗しました:{error}',
'config.notice.keyAdded': '認証キーを追加しました',
'config.notice.keyUpdated': '認証キーを更新しました',
'config.notice.keyDeleted': '認証キーを削除しました',
'config.notice.keyCopied': '認証キーをコピーしました',
'config.notice.keyCopyFailed': '認証キーをコピーできませんでした',
'config.notice.routingUpdated': 'ルーティング方式を更新しました',
'config.notice.networkUpdated': 'ネットワークとセッションルーティング設定を保存しました',
'config.notice.retryUpdated': '失敗時の再試行設定を保存しました',
'config.notice.sessionRoutingUpdated': 'セッションルーティング設定を保存しました',
'config.notice.networkRestarted': 'ネットワーク設定を保存し、コアを再起動しました',
'config.notice.networkNextStart': 'ネットワーク設定を保存しました。次回のコア起動時に反映されます',
'config.notice.proxyUpdated': 'プロキシ URL を保存しました',
'config.notice.sessionAffinityEnabled': 'セッションアフィニティを有効にしました',
'config.notice.sessionAffinityDisabled': 'セッションアフィニティを無効にしました',
'config.notice.sessionTtlUpdated': 'セッションアフィニティ TTL を保存しました',
'config.webuiKey.title': 'WebUI キー',
'config.webuiKey.configured': '設定済み',
'config.webuiKey.unconfigured': '未設定',
'config.webuiKey.heading': '管理 API のアクセス認証情報',
'config.webuiKey.description': 'CPA WebUI へのログインと管理 API の呼び出しに使用します。上の API 認証キーとは用途が異なります。',
'config.webuiKey.securityHint': '既存のキーは表示されません。忘れた場合は、そのままキーを再設定してください。',
'config.webuiKey.newKey': '新しい WebUI キー',
'config.webuiKey.confirmKey': '新しいキーを確認',
'config.webuiKey.placeholder': '新しい平文キーを入力',
'config.webuiKey.confirmPlaceholder': '新しいキーをもう一度入力',
'config.webuiKey.generate': '安全なキーを生成',
'config.webuiKey.save': 'キーを保存',
'config.webuiKey.open': 'WebUI を開く',
'config.webuiKey.error.empty': 'WebUI キーを入力してください',
'config.webuiKey.error.legacyDefault': '旧版の既定キー 123456 は使用できません',
'config.webuiKey.error.tooLong': 'WebUI キーは 512 文字以内で入力してください',
'config.webuiKey.error.invalid': 'WebUI キーに制御文字は使用できません',
'config.webuiKey.error.mismatch': '入力した WebUI キーが一致しません',
'config.webuiKey.error.openFailed': 'WebUI を開けませんでした:{error}',
'config.webuiKey.notice.updated': 'WebUI キーを更新しました',
'config.keys.title': '認証キー',
'config.keys.count': 'キー数',
'config.keys.add': '認証キーを追加',
'config.unavailable': '設定を利用できません',
'common.retry': '再試行',
'config.keys.noRemark': 'メモなし',
'config.keys.copy': '認証キーをコピー',
'config.keys.copyNth': '{number} 番目の認証キーをコピー',
'config.keys.edit': '認証キーを編集',
'config.keys.editNth': '{number} 番目の認証キーを編集',
'config.keys.delete': '認証キーを削除',
'config.keys.deleteNth': '{number} 番目の認証キーを削除',
'config.keys.empty': '認証キーがありません',
'common.loading': '読み込み中',
'common.unavailable': '利用不可',
'common.enabled': '有効',
'common.disabled': '無効',
'config.routing.title': 'ルーティング方式',
'config.network.title': 'ネットワーク設定',
'config.network.networkSection': 'ネットワーク設定',
'config.network.routingSection': 'セッションルーティング',
'config.network.retrySection': '失敗時の再試行',
'config.network.saving': '保存中',
'config.network.saved': '保存済み',
'config.network.unsaved': '未保存の変更あり',
'config.network.confirmSave': '確認して保存',
'config.network.port': 'ポート',
'config.network.portHint': '範囲は 1〜65535。コア実行中の変更時は自動的に再起動します',
'config.network.listenHost': 'カスタムリッスン IP',
'config.network.listenHostHint': '例: 127.0.0.1、0.0.0.0、または LAN IP。変更すると実行中のコアが再起動します',
'config.network.proxyUrl': 'プロキシ URL',
'config.network.proxyPlaceholder': '例:socks5://127.0.0.1:7890',
'config.network.proxyHint': 'SOCKS プロトコルと HTTP プロトコルに対応しています',
'config.network.sessionAffinity': 'セッションアフィニティ',
'config.network.sessionAffinityHint': '同じセッションでは以前選択した認証情報を優先します',
'config.network.sessionTtl': 'セッションアフィニティ TTL',
'config.network.sessionTtlHint': '例:1h。空欄の場合はコアのデフォルト値を使用します',
'config.network.requestRetry': 'リクエスト再試行回数',
'config.network.requestRetryHint': '403、408、500、502、503、504 応答の再試行回数です。0 で無効になります',
'config.network.maxRetryCredentials': '試行する認証情報の上限',
'config.network.maxRetryCredentialsHint': '失敗した1リクエストで試す認証情報の上限です。0 ですべてを試します',
'config.network.maxRetryInterval': '再試行の最大待機時間(秒)',
'config.network.maxRetryIntervalHint': 'クールダウン中の認証情報を待つ上限です。小さくすると累積待機時間を短縮できますが、リクエストの強制タイムアウトではありません',
'config.network.streamingBootstrapRetries': 'ストリーミング開始時の再試行回数',
'config.network.streamingBootstrapRetriesHint': '最初の応答を送信する前に許可する安全な再試行回数です。0 で無効になります',
'config.notice.softwareUpdated': 'ソフトウェア設定を保存しました',
'config.tls.enable': 'TLS を有効にする',
'config.tls.enableDescription': '有効な PEM 証明書と秘密鍵を使用して API と WebUI を HTTPS で提供します',
'config.tls.cert': '証明書のパス',
'config.tls.certPlaceholder': '例: C:\\certs\\server.crt または /path/to/cert.pem',
'config.tls.certHint': 'コアから読み取り可能な PEM 証明書ファイルのパス',
'config.tls.key': '秘密鍵のパス',
'config.tls.keyPlaceholder': '例: C:\\certs\\server.key または /path/to/key.pem',
'config.tls.keyHint': '証明書と一致する PEM 秘密鍵ファイルのパス',
'config.tls.browse': 'ファイルを選択',
'config.tls.selectCertTitle': 'TLS 証明書ファイルを選択',
'config.tls.selectKeyTitle': 'TLS 秘密鍵ファイルを選択',
'config.tls.certFile': 'TLS 証明書',
'config.tls.keyFile': 'TLS 秘密鍵',
'config.tls.error.selectFileFailed': 'ファイルを選択できませんでした: {error}',
'config.tls.restartHint': 'TLS 設定を保存すると、実行中のコアは自動的に再起動します。',
'config.tls.error.pathsRequired': 'TLS を有効にする前に証明書と秘密鍵のパスを入力してください',
'config.tls.notice.saved': 'TLS 設定を保存しました。次回のコア起動時に反映されます',
'config.tls.notice.savedAndRestarted': 'TLS 設定を保存し、コアを再起動しました',
'config.software.title': 'ソフトウェア設定',
'config.software.autostart': 'システム起動時に開始',
'config.software.autostartDescription': 'サインイン後に EasyCLIProxyAPI を自動的に起動します',
'config.software.startCoreOnLaunch': '起動時にコアを開始',
'config.software.startCoreOnLaunchDescription': 'EasyCLIProxyAPI の起動時に CPA コアを自動的に開始します',
'config.software.silentStart': 'サイレント起動',
'config.software.silentStartDescription': 'メインウィンドウを表示せず、システムトレイで直接起動します',
'config.software.closeBehavior': '終了動作',
'config.software.closeBehaviorDescription': 'ウィンドウを閉じたときにアプリを終了するか、システムトレイで実行を続けるかを選択します',
'config.software.behavior.ask': '毎回確認',
'config.software.behavior.minimize': 'トレイに最小化',
'config.software.behavior.exit': 'アプリを終了',
'config.keys.addTitle': '認証キーを追加',
'config.keys.editTitle': '認証キーを編集',
'common.close': '閉じる',
'config.keys.label': '認証キー',
'config.keys.hide': 'キーを隠す',
'config.keys.show': 'キーを表示',
'config.keys.remark': 'メモ',
'config.keys.remarkPlaceholder': '例:開発環境、田中さんのキー',
'config.keys.generate': 'キーを生成',
'config.keys.adding': '追加中',
'common.add': '追加',
'config.keys.deleteTitle': '認証キーを削除',
'config.keys.deleteAllWarning': 'すべてのキーを削除すると、デフォルトですべてのキーが許可されます',
'common.cancel': 'キャンセル',
'common.deleting': '削除中',
'common.delete': '削除',
'authFiles.unknownProvider': '不明なプロバイダー',
'authFiles.status.disabled': '無効',
'authFiles.status.unavailable': '利用不可',
'authFiles.status.ready': '準備完了',
'authFiles.quota.loading': 'クォータを照会中',
'authFiles.quota.failed': 'クォータの取得に失敗しました',
'authFiles.quota.aria': 'クォータ情報',
'authFiles.quota.empty': 'クォータデータがありません',
'authFiles.quota.resets': '手動リセット {count} 回',
'authFiles.quota.expiry': '最も早い有効期限 {time}',
'authFiles.models.noneForProvider': 'このプロバイダーには設定可能なモデル定義がありません',
'authFiles.models.updated': '{provider} の公開モデルを更新しました',
'authFiles.priority.button': '優先度 {priority}',
'authFiles.priority.title': '認証情報の優先度を変更',
'authFiles.priority.label': '優先度',
'authFiles.priority.placeholder': '例:10 または -1',
'authFiles.priority.hint': '整数のみ指定できます。値が大きいほど優先度が高くなります。空欄または 0 で既定値に戻ります。',
'authFiles.priority.invalid': '有効な整数の優先度を入力してください',
'authFiles.priority.updated': '{name} の優先度を更新しました',
'authFiles.uploaded': '認証ファイルを {count} 件アップロードしました',
'authFiles.uploadFailed': '{count} 件のファイルをアップロードできませんでした:{errors}',
'authFiles.notice.enabled': '認証ファイルを有効にしました',
'authFiles.notice.disabled': '認証ファイルを無効にしました',
'authFiles.runtimeDeleteError': '実行時認証ファイルはディスクから削除できません',
'authFiles.deleteConfirm': '「{name}」を削除しますか?',
'authFiles.deleted': '認証ファイルを削除しました',
'common.copyFailed': 'コピーに失敗しました',
'authFiles.title': '認証ファイル',
'authFiles.summary': 'ファイル {files} 件 · 無効 {disabled} 件',
'common.refresh': '更新',
'common.upload': 'アップロード',
'authFiles.import': 'インポート',
'authFiles.searchPlaceholder': 'ファイル名、アカウント、プロバイダーを検索',
'authFiles.filter.allProviders': 'すべてのプロバイダー',
'authFiles.filter.allStatuses': 'すべての状態',
'authFiles.filter.enabled': '有効',
'authFiles.filter.disabled': '無効',
'authFiles.filter.runtime': '実行時のみ',
'authFiles.loading': '認証ファイルを読み込んでいます',
'authFiles.empty.filtered': '一致する認証ファイルがありません',
'authFiles.empty.none': '認証ファイルがありません',
'authFiles.empty.tryFilter': '別のフィルター条件をお試しください',
'authFiles.empty.upload': 'JSON 認証ファイルをアップロードするとここに表示されます',
'authFiles.unknownSize': 'サイズ不明',
'authFiles.runtime': '実行時',
'authFiles.quota.querying': '照会中',
'authFiles.quota.refresh': 'クォータを更新',
'authFiles.quota.fetch': 'クォータを取得',
'authFiles.models.settings': '公開モデルを設定',
'authFiles.models.button': 'モデル',
'authFiles.copyName': 'ファイル名をコピー',
'authFiles.openDirectory': 'フォルダーを開く',
'common.enable': '有効化',
'common.disable': '無効化',
'authFiles.runtimeFootnote': '{count} 件の認証情報は実行時ストレージ由来です。対応するプロバイダーまたは認証元でのみ管理できます。',
'authFiles.models.title': '公開モデル',
'authFiles.models.description': '{provider} · 既定ではすべて公開されます。不要なモデルは選択解除できます',
'authFiles.models.search': 'モデル名を検索',
'authFiles.models.summary': '合計 {total} 件 · 公開 {open} 件',
'authFiles.models.closeVisible': '表示中を非公開',
'authFiles.models.openVisible': '表示中を公開',
'authFiles.models.openAll': 'すべて公開',
'authFiles.models.closeAll': 'すべて非公開',
'authFiles.models.loading': 'モデル定義を読み込んでいます',
'authFiles.models.loadFailed': 'モデルの読み込みに失敗しました',
'authFiles.models.noMatch': '一致するモデルがありません',
'authFiles.models.empty': 'モデル定義がありません',
'common.saving': '保存中',
'authFiles.models.save': '保存({count} 件を公開)',
'agents.description.claudeCode': 'CPA の Anthropic 互換 API を使用',
'agents.description.claudeDesktop': 'CPA 3P 推論ゲートウェイを使用(Windows、macOS、Linux Beta 対応)',
'agents.description.codex': 'CPA Responses API を使用',
'agents.description.opencode': 'CPA OpenAI Compatible プロバイダーを使用',
'agents.description.openclaw': 'CPA モデルプロバイダーと既定モデルを使用',
'agents.description.hermes': 'CPA カスタムプロバイダーを使用',
'agents.description.deepseekHarness': 'Harness のネイティブ DeepSeek 設定と分離された OpenAI 互換ルートで CPA を使用',
'agents.description.zcode': 'CPA の Anthropic Messages API と動的モデルカタログを使用',
'agents.description.kimiCode': 'CPA の OpenAI Chat Completions API と動的モデルカタログを使用',
'agents.description.grokBuild': 'CPA の OpenAI Chat Completions API とカスタムモデルカタログを使用',
'agents.description.pi': 'CLIProxyAPI プロバイダーを使用して Pi CLI のモデルを動的に読み込みます',
'agents.list.detecting': '検出中',
'agents.list.unsupported': '現在のプラットフォームでは非対応',
'agents.list.notInstalled': 'インストールを検出できません',
'agents.list.modified': '変更済み · {model}',
'agents.list.installedVersion': 'インストール済み · {version}',
'agents.list.installed': 'インストール済み · 元の設定を維持',
'agents.list.pluginNotInstalled': 'Pi プロバイダーがインストールされていません',
'agents.list.piInstalled': 'Pi プラグインがインストールされています',
'agents.list.configured': '設定済み · EasyCLIProxyAPI',
'agents.model.loading': 'モデルを読み込んでいます',
'agents.model.loadFailed': 'モデルの取得に失敗しました',
'agents.model.select': 'モデルを選択',
'agents.model.none': 'モデル一覧は空です',
'agents.model.search': 'モデル名またはエイリアスを検索',
'agents.model.clearSearch': '検索を消去',
'agents.model.refresh': 'モデルを更新',
'agents.model.fetching': 'モデルを取得しています',
'agents.model.noMatch': '一致するモデルがありません',
'agents.model.unavailable': 'モデル一覧は空です',
'agents.model.tryKeywords': '別のキーワードをお試しください',
'agents.model.connectFirst': '先に利用可能なモデルを接続してから更新してください',
'agents.model.available': '利用可能なモデル',
'agents.model.count': '利用可能なモデル {count} 件',
'agents.model.stale': '更新に失敗したため、前回の結果を表示しています',
'agents.error.modelsLoading': 'モデル一覧を読み込み中です。しばらくしてから再試行してください',
'agents.error.noModels': '選択可能なモデルがないため、設定変更を適用できません',
'agents.error.selectionGone': '選択中のモデルは利用可能一覧にありません。更新後に選び直してください',
'agents.error.mappingSelectionGone': 'Claude Desktop のモデルマッピングに利用できないモデルがあります。モデルを更新して選び直してください',
'agents.error.claudeCodeRuntimeSettingsInvalid': '最大コンテキストは 100000~1000000、自動圧縮率は 1~100 にしてください',
'agents.error.applyFirst': '選択したモデルはまだ適用されていません。先に「設定変更を適用」をクリックしてください',
'agents.launch.enableFirst': '先に設定変更を適用してください',
'agents.launch.applyFirst': '先に選択中のモデルを適用してください',
'agents.launch.starting': '起動中',
'agents.launch.startCli': 'CLI を起動',
'agents.launch.startApp': 'App を起動',
'agents.launch.restartApp': 'App を再起動',
'agents.launch.restartingApp': '再起動中',
'agents.launch.start': '{target} を起動',
'agents.launch.unavailable': '起動できません',
'agents.launchDirectory.noDirectory': '未選択',
'agents.launchDirectory.chooseDirectory': 'ディレクトリを選択',
'agents.launchDirectory.selectedDirectory': '選択した作業ディレクトリ',
'agents.launchDirectory.choosing': '選択中',
'agents.launchDirectory.dialogTitle': '{client} の起動ディレクトリを選択',
'agents.launchDirectory.dialogDescription': 'プロジェクトの作業ディレクトリを選択してから、{client} を起動します。',
'agents.launchDirectory.workingDirectory': '作業ディレクトリ',
'agents.launchDirectory.browse': '変更',
'agents.launchDirectory.directoryRequired': '先に作業ディレクトリを選択してください',
'agents.launchDirectory.launch': '{client} を起動',
'agents.launchDirectory.historyTitle': '最近使用した項目',
'agents.launchDirectory.lastUsed': '前回使用',
'agents.launchDirectory.recentItem': '履歴ディレクトリ',
'agents.launchDirectory.historyUse': '選択',
'agents.launchDirectory.historySelected': '選択済み',
'agents.status.detecting': '検出中',
'agents.status.unsupported': 'プラットフォーム非対応',
'agents.status.notInstalled': '未インストール',
'agents.status.conflict': '設定競合',
'agents.status.modified': '設定変更済み',
'agents.status.original': '元の設定を維持',
'agents.status.invalid': '設定が無効',
'agents.status.applied': '適用済み',
'agents.status.unconfigured': '未設定',
'agents.title': 'エージェント設定',
'agents.redetect': '再検出',
'agents.tabs.label': 'エージェント設定ページ',
'agents.tabs.core': 'コア設定',
'agents.tabs.sessions': 'セッション管理',
'agents.sessions.title': 'Codex セッション管理',
'agents.sessions.description': 'ローカルの Codex セッションをスキャンし、過去のセッションの復元、バックアップ、削除を安全に行います。',
'agents.sessions.refresh': '更新',
'agents.sessions.total': 'セッション総数',
'agents.sessions.active': '未アーカイブ',
'agents.sessions.archived': 'アーカイブ済み',
'agents.sessions.database': 'データベース',
'agents.sessions.databaseMissing': 'セッションデータベースが見つかりません',
'agents.sessions.repairTitle': '過去のセッションを復元',
'agents.sessions.repairDescription': '他の Provider のセッションを現在のセッション Provider に同期します。',
'agents.sessions.repairNow': '今すぐ復元',
'agents.sessions.repairing': '復元中',
'agents.sessions.loadFailed': 'Codex セッションの読み込みに失敗しました:{error}',
'agents.sessions.localSessions': 'ローカルセッション',
'agents.sessions.pageDescription': '{page} ページ目・1 ページ最大 {size} 件',
'agents.sessions.selected': '{count} 件選択中',
'agents.sessions.selectAll': 'このページをすべて選択',
'agents.sessions.clearSelection': '選択を解除',
'agents.sessions.deleteSelected': '選択項目を削除',
'agents.sessions.multiSelect': '複数選択',
'agents.sessions.loading': 'ローカルセッションをスキャンしています…',
'agents.sessions.empty': 'Codex セッションが見つかりません。',
'agents.sessions.selectSession': 'セッション {title} を選択',
'agents.sessions.untitled': '無題のセッション',
'agents.sessions.noProject': 'プロジェクトパスなし',
'agents.sessions.noProvider': '不明な Provider',
'agents.sessions.noTime': '更新時刻不明',
'agents.sessions.activeBadge': '未アーカイブ',
'agents.sessions.archivedBadge': 'アーカイブ済み',
'agents.sessions.previousPage': '前のページ',
'agents.sessions.nextPage': '次のページ',
'agents.sessions.pageNumber': '{page} ページ目',
'agents.sessions.deleteOneTitle': 'このセッションを削除しますか?',
'agents.sessions.deleteManyTitle': '{count} 件のセッションを削除しますか?',
'agents.sessions.deleteOneDescription': 'バックアップを作成してから「{title}」と既知の関連記録を削除します。アプリ内で元に戻すことはできません。',
'agents.sessions.deleteManyDescription': 'バックアップを作成してから、次の {count} 件と既知の関連記録を削除します:{preview}{extra}',
'agents.sessions.deleteMore': '、ほか {count} 件',
'agents.sessions.confirmDelete': 'バックアップして削除',
'agents.sessions.deleteResult': '{deleted} 件を削除、{failed} 件失敗。{details}{backup}',
'agents.sessions.deleteFailed': 'セッションの削除に失敗しました:{error}',
'agents.sessions.backupAt': 'バックアップ先:{path}',
'agents.sessions.repairResult': '過去のセッションを {provider} に復元しました:rollout {files} ファイルを移行、データベース {rows} 行を更新、使用中の {skipped} ファイルをスキップしました。',
'agents.sessions.repairFailed': '過去のセッションの復元に失敗しました:{error}',
'agents.sessions.progressCount': '{processed}/{total}',
'agents.sessions.progress.scanning': 'セッションをスキャン中',
'agents.sessions.progress.backingUp': 'バックアップを作成中',
'agents.sessions.progress.rewriting': '過去のセッションを移行中',
'agents.sessions.progress.updatingDatabase': 'データベースを同期中',
'agents.sessions.progress.complete': '復元完了',
'agents.sessions.scanIndex': '無効なセッション記録を確認',
'agents.sessions.scanningIndex': '無効な記録を確認中',
'agents.sessions.cleanupNoCandidates': '安全に削除できる無効なセッション記録はありません。',
'agents.sessions.cleanupPreviewFailed': '無効なセッション記録の確認に失敗しました:{error}',
'agents.sessions.cleanupTitle': '削除可能な無効な索引',
'agents.sessions.cleanupDescription': 'session_index.jsonl のみに存在し、実際のセッション元がなくなった記録が {count} 件見つかりました。初期状態では未選択です。Codex と ChatGPT を終了し、項目ごとに確認して削除してください。不明な形式の記録は保持されます。',
'agents.sessions.cleanupSelectAll': '候補をすべて選択',
'agents.sessions.cleanupConfirm': '選択した {count} 件を削除',
'agents.sessions.cleanupResult': '無効なセッション索引を {count} 件削除しました。{backup}',
'agents.sessions.cleanupFailed': '無効なセッション索引の削除に失敗しました:{error}',
'agents.localClients': 'ローカルクライアント',
'agents.selectClient': '管理するエージェントを選択',
'agents.installStatus': 'インストール状態',
'agents.clientDetected': 'クライアントを検出しました',
'agents.clientNotDetected': 'クライアントを検出できません',
'agents.clientVersion': 'クライアントバージョン',
'agents.cliVersion': 'CLI バージョン',
'agents.appVersion': 'App バージョン',
'agents.pluginVersion': 'プラグインバージョン',
'agents.notFetched': '未取得',
'agents.useModel': '使用モデル',
'agents.pending': '未適用',
'agents.model.readingAvailable': '利用可能なモデルを読み込んでいます',
'agents.model.current': '現在適用中:{model}',
'agents.model.firstSelection': '利用可能なモデル {count} 件。初回は先頭を選択します',
'agents.modify.title': '設定変更',
'agents.modify.oauthConfiguration': 'OAuth ログイン設定方式',
'agents.claudeDesktopMapping.title': 'Claude Desktop モデル → 上流モデル',
'agents.claudeDesktopMapping.description': '役割ごとに上流モデルとコンテキスト機能を選択します。対応モデルでのみ 1M を有効にしてください。',
'agents.claudeCodeMapping.title': 'Claude Code モデル → 上流モデル',
'agents.claudeCodeMapping.description': 'タスク役割ごとに上流モデルを選び、共通のコンテキストと自動圧縮ポリシーを設定します。',
'agents.claudeCodeRuntime.maxContextTokens': '最大コンテキスト',
'agents.claudeCodeRuntime.maxContextTokensHint': 'Claude Code の既定値は 200000 です。上流モデルの上限を超えないでください。',
'agents.claudeCodeRuntime.context1mHint': 'このマッピングで [1m] モデルを使用し、最大コンテキストを 1000000 にします。3 つすべてを無効にすると 200000 に戻ります。',
'agents.claudeCodeRuntime.autoCompactPct': '自動圧縮の開始率',
'agents.claudeCodeRuntime.autoCompactPctHint': '既定値は 90% です。小さい値ほど早く圧縮します。',
'agents.claudeCodeRuntime.disableAutoCompact': '自動圧縮を無効化',
'agents.claudeCodeRuntime.disableAutoCompactHint': '有効時は /compact による手動圧縮のみ利用できます。',
'agents.claudeDesktopMapping.customMapping': 'モデルエイリアスを使用',
'agents.claudeDesktopMapping.customMappingHint': '有効にするとエイリアスモデルのみ、無効にするとエイリアス未設定の元モデルのみ表示します。',
'agents.claudeDesktopMapping.opus': 'Claude Opus 5',
'agents.claudeDesktopMapping.sonnet': 'Claude Sonnet 4.6',
'agents.claudeDesktopMapping.haiku': 'Claude Haiku 4.5',
'agents.claudeMapping.context1m': '1M',
'agents.claudeMapping.context1mHint': '1M コンテキストとして設定します。選択した上流モデルが対応していることを確認してください。',
'agents.oauthLoginRequired.title': 'Codex へのログインが必要です',
'agents.oauthLoginRequired.enableDescription': '有効な Codex のログイン認証情報が見つからないため、OAuth 設定方式を有効にできません。Codex アプリで ChatGPT アカウントにログインしてください。Codex アプリでログインを開始できない場合は、先に',
'agents.oauthLoginRequired.enableClearConfiguration': '設定を消去',
'agents.oauthLoginRequired.enableDescriptionSuffix': 'を使用してください。',
'agents.oauthLoginRequired.applyDescription': '有効な Codex のログイン認証情報が見つからないため、OAuth 設定を適用できません。Codex で ChatGPT アカウントにログインしてから、設定を適用してください。',
'agents.oauthLoginRequired.launchDescription': '有効なログイン認証情報が見つからないため Codex を起動できません。先に Codex アプリで ChatGPT アカウントにログインしてください。',
'agents.oauthLoginRequired.confirm': '了解しました',
'agents.modify.apply': '設定変更を適用',
'agents.modify.update': '設定を更新',
'agents.modify.close': '設定変更を終了',
'agents.modify.default': 'デフォルト設定',
'agents.modify.clear': '設定を消去',
'agents.modify.invalid': '現在の設定を解析できません。「設定変更を適用」は最小の有効な設定を再構築し、「デフォルト設定」はファイル全体をリセットします。',
'agents.modify.zcodeRestart': '設定の適用または終了後、ZCode を完全終了して再起動してください。デフォルトモデルとコンテキスト長は新しいセッションで有効になります。',
'agents.pi.installTitle': 'Pi CLIProxyAPI プロバイダー',
'agents.pi.installDescription': 'プラグインをインストールまたは更新し、CPA 認証情報、既定のプロバイダー、既定のモデルを修復します',
'agents.pi.install': 'Pi プラグインをインストール',
'agents.pi.update': 'Pi プラグインを更新',
'agents.pi.updateAvailable': '新しいバージョン {version} が利用できます',
'agents.pi.updating': 'プラグインを更新中',
'agents.pi.installing': 'プラグインをインストール中',
'agents.pi.repair': '設定を適用',
'agents.pi.repairing': '設定を適用中',
'agents.pi.uninstall': 'Pi プラグインをアンインストール',
'agents.pi.uninstalling': 'プラグインをアンインストール中',
'agents.default.title': 'デフォルト設定にリセット',
'agents.default.description': '選択中のモデルを使って {name} の関連設定ファイルをすべて書き直し、その他のユーザー内容を削除します。バックアップは作成されず、元に戻せません。',
'agents.default.confirm': 'デフォルト設定を書き込む',
'agents.clear.title': 'Codex 設定を消去',
'agents.clear.description': 'Codex 設定ディレクトリの auth.json と config.toml を完全に削除し、このアプリが記録した適用状態をリセットします。バックアップは作成されず、元に戻せません。',
'agents.clear.confirm': '設定を消去',
'agents.clear.success': 'Codex 設定を消去しました。',
'apiAccess.compatibleName': 'OpenAI 互換 {number}',
'apiAccess.error.headerMissingColon': 'カスタムヘッダーの {number} 行目にコロンがありません',
'apiAccess.error.headerInvalid': 'カスタムヘッダーの {number} 行目の形式が無効です',
'apiAccess.error.partialLoad': '一部の接続を読み込めませんでした:{errors}',
'apiAccess.error.requiredAll': 'メモ、Base URL、キーを入力してください',
'apiAccess.error.requiredBaseKey': 'Base URL と API キーを入力してください',
'apiAccess.error.requiredKey': 'API キーを入力してください',
'apiAccess.error.baseRequired': '{provider} 接続には Base URL が必要です',
'apiAccess.error.noModels': '公開可能なモデルが見つかりません。Base URL と API キーを確認してください',
'apiAccess.error.stale': '接続設定が別の操作で変更されました。更新してから再試行してください',
'apiAccess.error.duplicate': '同じ接続設定がすでに存在します',
'apiAccess.error.remarkInvalid': 'メモは 80 文字以内で、改行や制御文字を含めないでください',
'apiAccess.notice.updated': '接続を更新しました',
'apiAccess.notice.added': '接続を追加しました',
'apiAccess.deleteConfirm': '「{remark}」を削除しますか?',
'apiAccess.notice.deleted': '接続を削除しました',
'apiAccess.notice.enabled': '接続を有効にしました',
'apiAccess.notice.disabled': '接続を無効にしました',
'apiAccess.title': 'API 接続',
'apiAccess.count': '接続 {count} 件',
'apiAccess.add': '追加',
'apiAccess.matches': '一致する接続 {count} 件',
'apiAccess.search': 'メモ、キー、アドレスを検索',
'apiAccess.loading': '設定を読み込んでいます',
'apiAccess.empty.filtered': '一致する接続がありません',
'apiAccess.empty.none': '接続設定がありません',
'apiAccess.empty.tryKeyword': '別のキーワードをお試しください',
'apiAccess.empty.addFirst': '右上の「追加」から最初の接続を追加してください',
'apiAccess.keys.count': 'キー {count} 件',
'apiAccess.keys.summary': '{key} · 合計 {count} 件',
'apiAccess.remarkValue': 'メモ:{remark}',
'apiAccess.defaultUrl': '既定のアドレスを使用',
'apiAccess.models.summary': 'モデル {count} 件',
'apiAccess.priorityValue': '優先度 {priority}',
'apiAccess.enable': '接続を有効化',
'apiAccess.disable': '接続を無効化',
'apiAccess.status.disabled': '無効',
'apiAccess.status.enabled': '有効',
'apiAccess.toggleAria': '{remark} 接続の{action}スイッチ',
'apiAccess.dragHandle': '「{remark}」をドラッグして並べ替えます。キーボードでは Space の後に矢印キーを使用します',
'apiAccess.health.action': 'ヘルスチェック',
'apiAccess.health.title': 'モデルヘルスチェック',
'apiAccess.health.description': '{provider}',
'apiAccess.health.warning': '各モデルへ最小限のストリーミングリクエストを 1 回送信し、最初の出力文字または検証可能な正常終了応答を受信した時点で停止します。少額の料金が発生する場合があります。',
'apiAccess.health.search': 'モデル名またはエイリアスを検索',
'apiAccess.health.loadingModels': 'モデル一覧を読み込んでいます…',
'apiAccess.health.modelLoadFailed': 'モデル一覧を更新できませんでした:{error}',
'apiAccess.health.noMatch': '一致するモデルがありません',
'apiAccess.health.notChecked': '未確認',
'apiAccess.health.checkOne': '確認',
'apiAccess.health.retryOne': '再確認',
'apiAccess.health.checkAll': 'すべてのモデルを確認',
'apiAccess.health.checkingProgress': '確認中 {checked}/{total}',
'apiAccess.health.summary': '確認済み {checked}/{total} · 正常 {healthy} · 失敗 {failed}',
'apiAccess.health.checking': '確認中…',
'apiAccess.health.healthy': '正常',
'apiAccess.health.failed': '失敗',
'apiAccess.health.noModel': 'ヘルスチェックに使用できるモデルがありません',
'apiAccess.health.timeout': 'リクエストがタイムアウトしました',
'apiAccess.health.missingDirectKey': '初字遅延を測定するには、直接使用できる平文の API キーが必要です',
'apiAccess.health.firstTokenInline': '初字 {latency} ms',
'apiAccess.health.firstTokenLatencyResult': '初字遅延:{latency} ms',
'apiAccess.health.responseInline': '応答 {latency} ms',
'apiAccess.health.responseLatencyResult': '応答遅延:{latency} ms',
'common.edit': '編集',
'apiAccess.error.enterBaseUrl': '先に Base URL を入力してください',
'apiAccess.error.noAvailableModels': '利用可能なモデルが見つかりません',
'apiAccess.error.baseBeforeModels': 'モデルを取得する前に Base URL を入力してください',
'apiAccess.models.selected': '{count} 件のモデルを選択済み',
'apiAccess.models.restricted': 'モデル制限を設定済み',
'apiAccess.models.autoAll': '保存時にすべてのモデルを既定で公開',
'apiAccess.models.upstreamDefault': '上流の既定モデルを使用',
'apiAccess.models.hiddenHint': '選択していないモデルは公開一覧に表示されません',
'apiAccess.models.autoHint': '接続の保存時にモデルを自動取得します。不要な項目は事前に選択解除できます',
'apiAccess.models.allHint': '現在、上流のすべてのモデルを公開しています',
'apiAccess.dialog.edit': 'API 接続を編集',
'apiAccess.dialog.add': 'API 接続を追加',
'apiAccess.field.keysMany': 'API キー(1 行に 1 件)',
'apiAccess.field.key': 'API キー',
'apiAccess.field.remark': 'メモ',
'apiAccess.remarkPlaceholder': '例:本番環境、チームのメインアカウント',
'apiAccess.baseRequiredPlaceholder': '必須、例:https://api.example.com',
'apiAccess.baseOptionalPlaceholder': '任意。空欄の場合は既定のアドレスを使用',
'apiAccess.preset.title': 'OpenAI 互換プリセット',
'apiAccess.preset.description': 'DeepSeek 公式アドレスを入力済みです。保存時にすべてのモデルを自動検出して公開します',
'apiAccess.thinking.builtIn': '組み込み推論レベル',
'apiAccess.thinking.builtInDescription': '現在公開中のすべてのモデルに自動適用します',
'apiAccess.thinking.title': '推論レベル',
'apiAccess.thinking.description': '上流の対応状況に合わせて追加してください',
'apiAccess.thinking.placeholder': '例:low、medium、またはカスタムレベル',
'apiAccess.thinking.add': '追加',
'apiAccess.thinking.delete': '{level} を削除',
'apiAccess.thinking.deleteAria': '推論レベル {level} を削除',
'apiAccess.thinking.empty': '未追加の場合 thinking.levels は書き込まれません',
'apiAccess.models.title': 'モデル',
'apiAccess.models.description': '選択したモデルを公開します。選択解除するとモデル一覧から非表示になります',
'apiAccess.models.fetch': 'モデルを取得',
'apiAccess.field.priority': '優先度',
'common.optional': '任意',
'apiAccess.advanced': '詳細設定',
'apiAccess.field.prefix': 'モデル接頭辞',
'apiAccess.prefixPlaceholder': '任意、例:team-a',
'apiAccess.field.headers': 'カスタムリクエストヘッダー(1 行に Name: Value)',
'apiAccess.field.excludedModels': '除外モデル(1 行に 1 件、ワイルドカード対応)',
'apiAccess.field.testModel': 'テストモデル',
'apiAccess.cloak.mode': 'Claude 偽装モード',
'apiAccess.cloak.default': '既定(auto)',
'apiAccess.cloak.words': '偽装する機密語(1 行に 1 件)',
'apiAccess.cloak.strict': '厳格モード',
'apiAccess.cloak.strictDescription': 'Claude Code のシステムプロンプトのみ保持します',
'apiAccess.cloak.enableStrict': '厳格モードを有効化',
'apiAccess.cloak.cacheUser': 'ユーザー識別子をキャッシュ',
'apiAccess.cloak.cacheUserDescription': '偽装後のユーザー識別子を再利用します',
'apiAccess.websocket.description': 'この Codex 接続で WebSocket を有効にします',
'apiAccess.websocket.enable': 'WebSocket を有効化',
'apiAccess.cooling.title': 'クールダウンを無効化',
'apiAccess.cooling.description': '上流でレート制限が発生しても、この接続を引き続き選択可能にします',
'common.save': '保存',
'apiAccess.modelDialog.title': 'モデルを選択',
'apiAccess.modelDialog.summary': '{found} 件検出 · {selected} 件選択済み',
'apiAccess.modelDialog.deselectAll': 'すべて選択解除',
'apiAccess.modelDialog.selectVisible': '表示中をすべて選択',
'common.clear': '消去',
'apiAccess.modelDialog.fetching': 'モデルを取得しています',
'apiAccess.modelDialog.fetchFailed': 'モデルの取得に失敗しました',
'apiAccess.modelDialog.noMatch': '一致するモデルがありません',
'apiAccess.modelDialog.none': 'モデルが見つかりません',
'apiAccess.modelDialog.tryKeyword': '別のキーワードをお試しください',
'apiAccess.modelDialog.checkCredentials': 'Base URL と API キーを確認してください',
'apiAccess.modelDialog.apply': '選択を適用({count})',
'kernel.install.completed': '{version} のインストールが完了しました',
'kernel.error.progressListener': 'ダウンロード進捗の監視に失敗しました:{error}',
'kernel.action.start': '起動',
'kernel.action.stop': '停止',
'kernel.action.restart': '再起動',
'kernel.notice.actionSuccess': 'コアの{action}に成功しました',
'kernel.notice.actionFailed': 'コアの{action}に失敗しました:{error}',
'kernel.notice.networkRestarted': 'ネットワーク設定を保存し、コアを再起動しました',
'kernel.notice.networkRestartFailed': 'ネットワーク設定を保存しましたが、コアの再起動に失敗しました',
'kernel.notice.networkNextStart': 'ネットワーク設定を保存しました。次回のコア起動時に反映されます',
'kernel.notice.networkSaveFailed': 'ネットワーク設定を保存できませんでした:{error}',
'kernel.error.port': 'ポートは 1~65535 の範囲で指定してください',
'kernel.error.installTask': 'インストールタスクを読み込めませんでした:{error}',
'kernel.install.installingVersion': '{version} をインストールしています',
'kernel.phase.preparingDownload': 'ダウンロードを準備中',
'kernel.phase.downloading': 'ダウンロード中',
'kernel.phase.extracting': '展開中',
'kernel.phase.completed': 'インストール完了',
'kernel.install.installingBundled': '組み込みコア {version} をインストールしています',
'kernel.phase.preparingBundled': '組み込みコアを準備中',
'kernel.install.bundledCompleted': '組み込みコア {version} のインストールが完了しました',
'kernel.phase.failed': 'インストール失敗',
'kernel.phase.cancelled': 'キャンセル済み',
'kernel.install.cancelling': 'ダウンロードをキャンセルしています',
'kernel.notice.copyFailed': '接続情報をコピーできませんでした',
'kernel.error.openUpdate': '更新ページを開けませんでした:{error}',
'kernel.progress.completed': '完了',
'kernel.progress.extracting': 'ファイルを展開しています',
'kernel.progress.waiting': '進捗情報を待っています',
'kernel.status.running': '実行中',
'kernel.status.stopped': '停止済み',
'kernel.status.notInstalled': '未インストール',
'common.detectionFailed': '検出失敗',
'common.detecting': '検出中',
'kernel.update.failedRetry': '確認失敗、再試行',
'kernel.update.toVersion': '{version} に更新',
'kernel.update.checking': '確認中',
'kernel.update.failed': '確認失敗',
'kernel.update.notChecked': '未確認',
'kernel.update.statusChecking': '確認しています',
'kernel.update.notYetChecked': 'まだ確認していません',
'kernel.update.latest': '最新バージョンです',
'kernel.update.available': '停止して新しいバージョンに更新できます',
'appUpdate.eyebrow': 'ソフトウェア更新',
'appUpdate.title': 'アプリのバージョン管理',
'appUpdate.current': '現在のバージョン',
'appUpdate.latest': '最新バージョン',
'appUpdate.status': '更新状態',
'appUpdate.manualFallback': '検出に失敗した場合は、GitHub ページから手動で更新してください',
'appUpdate.upToDate': '最新バージョンです',
'appUpdate.available': 'バージョン {version} を利用できます',
'appUpdate.check': '更新を確認',
'appUpdate.checking': '確認中',
'appUpdate.catalog.label': 'Codex モデルカタログ',
'appUpdate.catalog.description': '起動時に GitHub から通知なしで自動同期します',
'appUpdate.catalog.update': 'モデルカタログを同期',
'appUpdate.catalog.updateHint': 'GitHub を確認して Codex モデルカタログを更新します',
'appUpdate.catalog.updating': 'モデルカタログを同期しています',
'appUpdate.catalog.updated': 'GitHub からモデルカタログを同期しました',
'appUpdate.catalog.unchanged': 'モデルカタログは最新です',
'appUpdate.installNow': '今すぐ更新',
'appUpdate.openRelease': 'ダウンロードページを開く',
'appUpdate.confirmTitle': 'アプリ更新をインストール',
'appUpdate.confirmDescription': '{version} をダウンロードしてインストールします。アプリは再起動し、管理中のコアは一時停止後に復帰します。',
'appUpdate.progressTitle': 'アプリを更新中',
'appUpdate.cancelDownload': 'ダウンロードをキャンセル',
'appUpdate.badgeAvailable': 'アプリの新しいバージョン {version} があります',
'appUpdate.phase.idle': '待機中',
'appUpdate.phase.checking': '更新を確認中',
'appUpdate.phase.available': '更新可能',
'appUpdate.phase.downloading': 'ダウンロード中',
'appUpdate.phase.verifying': '検証中',
'appUpdate.phase.staging': '更新を準備中',
'appUpdate.phase.waitingForExit': 'アプリの終了を待機中',
'appUpdate.phase.restarting': '再起動中',
'appUpdate.phase.completed': '更新完了',
'appUpdate.phase.cancelled': 'ダウンロードをキャンセルしました',
'appUpdate.phase.failed': '更新失敗',
'kernel.install.inProgress': 'インストール中',
'kernel.install.githubFailed': 'GitHub に接続できません。「オフラインインストール」を使用してください',
'kernel.install.titleCancelling': 'ダウンロードをキャンセル中',
'kernel.install.titleInstalling': 'コアをインストール中',
'kernel.install.titleCompleted': 'インストール完了',
'kernel.install.titleCancelled': 'ダウンロードをキャンセルしました',
'kernel.install.titleFailed': 'インストール失敗',
'kernel.install.waitingStop': 'ダウンロードタスクの停止を待っています',
'kernel.install.taskRunning': 'インストールタスクを実行中です',
'kernel.install.cancellingShort': 'キャンセル中',
'kernel.install.cancel': 'ダウンロードをキャンセル',
'common.processing': '処理中',
'kernel.overview.coreStatus': 'コア状態',
'kernel.overview.appVersion': 'アプリバージョン',
'kernel.update.openGithub': 'GitHub の最新リリースページを開く',
'kernel.overview.coreVersion': 'コアバージョン',
'kernel.control.title': '実行制御',
'kernel.control.installStatus': 'インストール状態',
'kernel.control.installed': 'インストール済み',
'kernel.control.runStatus': '実行状態',
'kernel.control.pid': 'プロセス PID',
'kernel.control.notRunning': '未実行',
'kernel.control.noPid': 'なし',
'kernel.control.allowLan': 'LAN を許可',
'kernel.control.lanRestartHint': '変更すると実行中のコアが自動的に再起動します',
'kernel.control.allowLanAria': 'LAN アクセスを許可',
'kernel.control.port': 'ポート',
'kernel.control.portPlaceholder': 'ポート番号',
'kernel.control.portRange': 'ポート範囲:1~65535',
'kernel.notice.stopped': 'コアを停止しました',
'kernel.notice.started': 'コアを起動しました',
'kernel.notice.restarted': 'コアを再起動しました',
'kernel.control.refresh': '状態を更新',
'kernel.versions.title': 'コアバージョン管理',
'kernel.versions.subtitle': 'アプリ、プロキシコア、モデルカタログのバージョン更新およびオフラインインストールを管理します。',
'kernel.versions.checkAll': 'すべて更新確認',
'kernel.versions.checkingAll': 'すべて確認中...',
'kernel.versions.checkAllSuccess': '全コンポーネントの更新確認が完了しました',
'kernel.versions.appCardTitle': 'デスクトップアプリ',
'kernel.versions.coreCardTitle': 'プロキシコア',
'kernel.versions.catalogCardTitle': 'Codex モデルカタログ',
'kernel.versions.sourceSwitched': '{source} に切り替えました。バージョンを再確認しています',
'kernel.versions.sourceAutoSwitched': '現在のダウンロード元で確認できなかったため、{source} に自動切り替えしました',
'kernel.versions.bundledPackage': '内蔵オフラインパッケージ',
'kernel.versions.offlineRecommend': 'ネットワーク制限がありますか?インターネット接続なしで内蔵オフラインコアを直接インストールできます。',
'kernel.versions.autoUpdateSupported': 'アプリ内自動更新対応',
'kernel.versions.autoUpdateManual': 'ポータブル版 / 手動更新',
'kernel.versions.coreRunningNotice': 'コアの更新または再インストール時、実行中のコアは自動的に停止します。',
'kernel.versions.currentRunning': '現在実行中',
'kernel.versions.currentInstalled': '現在インストール済',
'kernel.versions.latestCloud': '公式最新',
'kernel.versions.viewChangelog': '変更履歴',
'kernel.versions.installLatestMissing': '最新版をインストール',
'kernel.versions.offlineHint': 'GitHub に接続できない場合は、オフラインインストールで組み込みコアを使用できます。',
'kernel.versions.current': '現在のバージョン',
'kernel.versions.latest': '最新バージョン',
'kernel.versions.bundled': '組み込みバージョン',
'kernel.versions.notIncluded': '含まれていません',
'kernel.versions.platform': '実行プラットフォーム',
'kernel.versions.updateStatus': '更新状態',
'kernel.versions.check': '更新を確認',
'kernel.versions.installVersion': '{version} をインストール',
'kernel.versions.installLatest': '停止して更新',
'kernel.versions.confirmUpdateTitle': 'コアを停止して更新',
'kernel.versions.stopAndConfirmDescription': 'コアを更新すると実行中のコアプロセスが停止し、バージョン {version} がインストールされます。更新後にコアを再起動できます。続行しますか?',
'kernel.versions.stopAndUpdateVersion': '{version} に停止して更新',
'kernel.versions.reinstallTitle': '現在のバージョンを再インストール',
'kernel.versions.reinstall': '再インストール',
'kernel.versions.noBundled': 'このリリースには組み込みコアが含まれていません',
'kernel.versions.offlineInstall': 'オフラインインストール',
'kernel.versions.downloadSource': 'ダウンロード元を切り替える',
'kernel.versions.downloadSourceHint': '組み込み経路を選択するか、カスタム HTTPS ミラープレフィックスを追加できます。確認失敗時は自動的に切り替えます。ミラープロキシは第三者が提供します。',
'kernel.versions.source.github': 'GitHub 公式',
'kernel.versions.source.gitcode': 'GitCode 中国向けミラー',
'kernel.versions.source.ghProxy': 'GitHub ミラー · gh-proxy.com',
'kernel.versions.source.ghFast': 'GitHub ミラー · ghfast.top',
'kernel.versions.source.custom': 'カスタムミラー',
'kernel.versions.customMirrorPlaceholder': 'ミラープレフィックス(例: https://mirror.example.com/)',
'kernel.versions.customMirrorAdd': 'カスタムソースを追加',
'kernel.versions.customMirrorDialogTitle': 'カスタムダウンロード元を追加',
'kernel.versions.customMirrorDialogDescription': 'GitHub ミラープロキシの HTTPS プレフィックスを入力してください。ダウンロード時に元の GitHub URL を末尾へ追加します。',
'kernel.versions.customMirrorConfirm': '追加して切り替え',
'kernel.versions.customMirrorAdded': 'カスタムミラーを追加して切り替えました',
'kernel.versions.customMirrorAddFailed': 'ミラーの追加に失敗しました: {error}',
'kernel.versions.customMirrorRemove': 'カスタムソースを削除',
'kernel.versions.customMirrorSaved': '追加済みのカスタムソース',
'kernel.versions.customMirrorRemoved': 'カスタムミラーを削除しました',
'kernel.versions.customMirrorRemoveFailed': 'ミラーの削除に失敗しました: {error}',
'kernel.versions.gitcodeUnavailable': 'このビルドには完全な GitCode ミラー設定が含まれていません。',
'kernel.versions.gitcodeSaveFailed': 'ダウンロード元の切り替えに失敗しました: {error}',
'kernel.access.firstKey': '最初のキー',
'kernel.access.noConfiguredKey': 'キーが設定されていないため、現在はすべてのキーがデフォルトで許可されます',
'kernel.access.connectable': '接続可能',
'kernel.access.waiting': 'コアの起動を待っています',
'kernel.access.localUrl': 'ローカル URL',
'kernel.access.localCopied': '{name} のローカル URL をコピーしました',
'kernel.access.copyLocal': '{name} のローカル URL をコピー',
'kernel.access.apiUrl': 'API URL',
'kernel.access.apiCopied': '{name} の API URL をコピーしました',
'kernel.access.copyApi': '{name} の API URL をコピー',
'kernel.access.lanUrl': 'LAN URL',
'kernel.access.detectingIp': 'LAN IP を検出しています',
'kernel.access.noIp': 'LAN IP を検出できません',
'kernel.access.lanCopied': '{name} の LAN URL をコピーしました',
'kernel.access.copyLan': '{name} の LAN URL をコピー',
'kernel.dialog.install': 'コアのインストール',
'kernel.dialog.phase': '現在の段階',
'kernel.dialog.unknownProgress': '進捗不明',
'kernel.access.openaiDescription': 'OpenAI互換形式',
'kernel.access.claudeDescription': 'Anthropic互換形式',
'kernel.access.geminiDescription': 'Gemini互換形式',
'authFiles.unnamed': '無名の認証ファイル',
'management.notConfigured': '未設定',
'management.error.upstream': '上流リクエストに失敗しました',
'management.error.upstreamHttp': '上流が HTTP {status} を返しました',
'model.error.invalidBaseUrl': 'Base URL が無効です。https://api.example.com のような URL を入力してください',
'model.error.unsupportedBaseUrl': 'Base URL は http:// または https:// のみ使用できます',
'model.error.baseUrlRequired': '先に Base URL を入力してください',
'model.error.noResponse': 'モデル API から応答がありません',
'quota.service.relative.daysHours': '{days} 日 {hours} 時間後',
'quota.service.relative.days': '{days} 日後',
'quota.service.relative.hoursMinutes': '{hours} 時間 {minutes} 分後',
'quota.service.relative.hours': '{hours} 時間後',
'quota.service.relative.minutes': '{minutes} 分後',
'quota.service.duration.unknown': '不明な期間',
'quota.service.duration.days': '{count} 日',
'quota.service.duration.hours': '{count} 時間',
'quota.service.duration.minutes': '{count} 分',
'quota.service.duration.seconds': '{count} 秒',
'quota.service.limit.fiveHours': '5 時間制限',
'quota.service.limit.week': '週間制限',
'quota.service.limit.month': '月間制限',
'quota.service.limit.duration': '{duration}制限',
'quota.service.codeReview': 'コードレビュー',
'quota.service.additional': '追加 {index}',
'quota.service.window.fiveHour': '5 時間枠',
'quota.service.window.sevenDay': '7 日間枠',
'quota.service.window.sevenDayOAuth': '7 日間 OAuth アプリ枠',
'quota.service.window.sevenDayOpus': '7 日間 Opus 枠',
'quota.service.window.sevenDaySonnet': '7 日間 Sonnet 枠',
'quota.service.window.sevenDayCowork': '7 日間 Cowork 枠',
'quota.service.window.duration': '{duration}枠',
'quota.service.extraUsage': '追加使用量',
'quota.service.usedOf': '使用済み {used} / {limit}',
'quota.service.weekly': '週間クォータ',
'quota.service.limit.numbered': '制限 {index}',
'quota.service.product.numbered': '製品 {index}',
'quota.service.monthlyIncluded': '月間内包クォータ',
'quota.service.onDemand': '従量課金クォータ',
'quota.service.quota': 'クォータ',
'quota.service.quota.numbered': 'クォータ {index}',
'quota.service.error.missingAuthIndex': 'auth-index がないためクォータを照会できません',
'quota.service.error.missingProject': 'Antigravity project ID がありません',
'quota.service.error.antigravityEmpty': 'Antigravity は成功しましたが、認識可能なクォータグループがありません',
'quota.service.error.upstreamEmpty': '上流から空のクォータデータが返されました',
'quota.service.error.noResponse': 'クォータ API から応答がありません',
'quota.service.error.missingResetAuthIndex': 'auth-index がないため手動リセット回数を照会できません',
'quota.service.error.unsupportedProvider': 'このプロバイダーのクォータ照会には対応していません',
'quota.service.error.unrecognized': '上流からクォータデータが返されましたが、形式を認識できません',
'quota.service.error.codexResetOnly': 'リセットクォータを使用できるのは Codex 認証情報のみです',
'quota.service.error.missingConsumeAuthIndex': 'auth-index がないためリセットクォータを使用できません',
} satisfies Partial<Record<MessageKey, string>>;