Files
EasyCLIProxyAPI/src/i18n/ja.ts
T

1738 lines
136 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';
import { easyModeJa } from './easyMode';
export const jaOverrides = {
"apiAccess.groups.summary": "上流グループ {count} 件",
"apiAccess.groups.add": "グループを追加",
"apiAccess.groups.edit": "グループを編集",
"apiAccess.groups.name": "グループ名",
"apiAccess.groups.namePlaceholder": "例:メイン、バックアップ",
"apiAccess.groups.nameRequired": "制御文字を含まない1〜80文字のグループ名を入力してください。",
"apiAccess.groups.description": "グループ内のキーは同じ上流URL、モデル、接続設定を共有します。",
"apiAccess.groups.keys": "グループのキー",
"apiAccess.groups.keysHint": "各キーは共有設定を継承するか、個別に上書きできます。",
"apiAccess.groups.addKey": "キーを追加",
"apiAccess.groups.emptyKeys": "このグループにキーはありません。",
"apiAccess.groups.keyNumber": "キー {number}",
"apiAccess.groups.removeKey": "キー {number} を削除",
"apiAccess.groups.showKey": "キーを表示",
"apiAccess.groups.keySettings": "キー設定",
"apiAccess.groups.overrides": "個別設定 {count} 件",
"apiAccess.groups.inherits": "共有設定を継承",
"apiAccess.groups.overrideHint": "チェックで個別設定、解除で継承に戻ります。リストとヘッダーは全体を置換し、空欄は消去します。",
"apiAccess.groups.overrideField": "個別設定:{field}",
"apiAccess.groups.overrideModels": "個別設定:モデルとエイリアス",
"apiAccess.groups.weight": "ラウンドロビン重み(既定1)",
"apiAccess.groups.retry": "再試行回数",
"apiAccess.groups.invalidKey": "キー設定が無効です:{field}。キーと整数の範囲を確認してください。",
"apiAccess.groups.discoveryKey": "モデル取得に使用するキー",
"apiAccess.groups.sharedHint": "以下のモデルと詳細設定は共有されます。キーの個別設定が優先されます。",
"apiAccess.groups.sharedModels": "共有モデル",
"apiAccess.groups.sharedToggleHint": "共有モデルの有効状態を切り替えます。キー固有の除外設定が優先されます。",
"apiAccess.groups.partial": "一部のキーが無効",
"apiAccess.groups.healthKey": "検査するキー",
...easyModeJa,
'authFiles.settings.noModels': '該当するモデルはありません。上の欄で除外ルールを入力できます。',
'authFiles.settings.button': "設定",
'authFiles.settings.title': "認証情報の設定",
'authFiles.settings.updated': "{name} の設定を保存しました",
'authFiles.settings.routing': "ルーティングと接続",
'authFiles.settings.additional': "ヘッダーとメモ",
'authFiles.settings.prefix': "プレフィックス",
'authFiles.settings.prefixHint': "モデルのルーティング用。空欄で未設定。",
'authFiles.settings.proxy_url': "プロキシ URL",
'authFiles.settings.proxy_urlHint': "この認証情報専用のプロキシ。空欄で既定の設定を使用。",
'authFiles.settings.priority': "優先度",
'authFiles.settings.priorityHint': "整数。大きいほど優先。空欄は 0。",
'authFiles.settings.weight': "振り分けの重み",
'authFiles.settings.weightHint': "同じ優先度内の相対的な重み。最大 1000000。空欄は既定値 1、0 以下は 0 として加重振り分けから除外。",
'authFiles.settings.disable_cooling': "指数バックオフの無効化",
'authFiles.settings.disable_coolingHint': "有効にすると、この認証情報の指数バックオフを無効化。既定は全体設定に従います。",
'authFiles.settings.websockets': "WebSockets",
'authFiles.settings.websocketsHint': "この認証情報の WebSocket 対応(Codex / xAI)。接続にはバックエンドと上流の対応も必要です。",
'authFiles.settings.inherit': "既定(上書きなし)",
'authFiles.settings.excluded_models': "除外モデル",
'authFiles.settings.rules': "除外ルール",
'authFiles.settings.excludedHint': "1 行に 1 つのモデル ID。* ワイルドカード対応。空欄で個別の除外を解除。全体の除外設定は引き続き適用。",
'authFiles.settings.catalog': "モデル一覧から除外を選択({count})",
'authFiles.settings.catalogError': "モデル一覧を読み込めません。ルールは手動で編集できます。",
'authFiles.settings.searchModels': "モデルを検索",
'authFiles.settings.wildcard': "ワイルドカードで除外済み。上のルールを変更してください。",
'authFiles.settings.headers': "カスタムヘッダー",
'authFiles.settings.headersHint': "キーと値が文字列の JSON オブジェクト。キーの削除、または {} でヘッダーを解除。",
'authFiles.settings.note': "メモ",
'authFiles.settings.unsaved': "未保存の変更を破棄しますか?",
'authFiles.settings.keepEditing': "編集を続ける",
'authFiles.settings.discard': "変更を破棄",
'authFiles.settings.invalid.metadata': "設定を読み込めません。有効な JSON オブジェクトではありません。",
'authFiles.settings.invalid.headers': "ヘッダーは JSON オブジェクトで、有効かつ重複しない名前と改行のない文字列値が必要です。",
'authFiles.settings.invalid.priority': "優先度は有効な整数で指定してください。",
'authFiles.settings.invalid.weight': "重みは 1000000 以下の整数で指定してください。",
'authFiles.settings.runtime': "実行時の認証情報は設定を保存できません。",
'authFiles.settings.quotaRemaining': "残りのクォータ",
'authFiles.settings.quotaUnknown': "残量不明",
'authFiles.settings.quotaIdle': "クォータ未取得",
'authFiles.health.title': '認証情報の状態',
'authFiles.health.active': '利用可能',
'authFiles.health.error': 'リクエストエラー',
'authFiles.health.refreshing': '認証情報を更新中',
'authFiles.health.pending': '認証待ち',
'authFiles.health.warning': '状態に関する通知',
'authFiles.health.unknown': '状態不明',
'authFiles.health.elapsed': 'クールダウン時間が経過',
'authFiles.health.unknownCooldown': '有効な詳細情報がコアから提供されていないため、クールダウン状態は不明です。',
'authFiles.health.missingCooldown': 'コアからクールダウンの詳細が提供されていないため、復旧時刻は不明です。',
'authFiles.health.credential': '認証情報全体のクールダウン',
'authFiles.health.models': '{count} 個のモデルがクールダウン中',
'authFiles.health.credentialModels': '認証情報および {count} 個のモデルがクールダウン中',
'authFiles.health.earliest': '最短の残り時間:約 {time}',
'authFiles.health.seconds': '{count} 秒',
'authFiles.health.minutes': '{count} 分',
'authFiles.health.hours': '{count} 時間',
'authFiles.health.expiredHint': '一覧を更新して最新の状態を確認してください。時間の経過だけでは利用可能になったとは限りません。',
'authFiles.health.details': '詳細',
'authFiles.health.coreStatus': 'コアが報告した状態:{status}',
'authFiles.health.coreMessage': 'コアの状態メッセージ',
'authFiles.health.credentialScope': '認証情報全体',
'authFiles.health.remaining': '残り {time}',
'authFiles.health.waiting': '時間経過 · 要確認',
'authFiles.health.backoff': 'バックオフレベル {level}',
'authFiles.health.backoffHint': 'バックオフレベルは再試行の間隔を制御する値で、失敗回数ではありません。',
'authFiles.health.deadline': 'クールダウン終了予定',
'authFiles.health.observed': '状態の取得時刻',
'authFiles.health.note': '残り時間はコアのスナップショットに基づく推定です。時間の経過はクォータや利用可否の回復を保証せず、テストリクエストも自動送信しません。',
'authFiles.health.reason.quota': 'クォータまたはレート制限',
'authFiles.health.reason.credentialQuota': '認証情報のクォータ制限',
'authFiles.health.reason.cloudflare': 'Cloudflare 認証チャレンジ',
'authFiles.health.reason.invalidGrant': '認可が無効',
'authFiles.health.reason.unauthorized': '認証失敗',
'authFiles.health.reason.accessDenied': 'アクセス制限(402/403)',
'authFiles.health.reason.notFound': 'リソースが見つかりません',
'authFiles.health.reason.modelUnsupported': 'モデル非対応',
'authFiles.health.reason.upstream': '上流サービスの一時的なエラー',
'authFiles.health.reason.tokenExpired': 'アクセストークンの有効期限切れ',
'authFiles.health.reason.unknown': 'その他または不明な制限',
'authFiles.requests.title': 'リクエスト履歴',
'authFiles.requests.success': '成功 {count}',
'authFiles.requests.failure': '失敗 {count}',
'authFiles.requests.window': '直近200分 · 1ブロック10分',
'authFiles.requests.rate': '成功率 {rate}',
'authFiles.requests.recentRate': '直近200分のリクエスト成功率',
'authFiles.requests.empty': 'リクエストなし',
'authFiles.requests.unavailable': 'コアから最近のリクエスト統計が提供されていません',
'authFiles.requests.interval': '時間帯 {index}',
'authFiles.requests.totalsHint': 'コアの稼働中の累計回数です。再起動でリセットされます。一覧の更新で統計を更新できます。',
'apiAccess.provider.codex': 'Codex API',
'apiAccess.provider.deepseek': 'DeepSeek',
'apiAccess.provider.claude': 'Claude',
'apiAccess.provider.gemini': 'Gemini',
'apiAccess.field.baseUrl': 'Base URL',
'apiAccess.cloak.auto': '自動',
'apiAccess.cloak.always': '常に有効',
'apiAccess.cloak.never': '常に無効',
'usage.unit.requests': 'リクエスト',
'usage.unit.tokens': 'Token',
'easyMode.status.ready': '準備完了',
'easyMode.status.connectedModels': '接続済みの接続元を {count} 件検出しました',
'easyMode.status.noModelsYet': '接続元がありません。先にログインするか API を追加してください',
'easyMode.oauth.loggedIn': 'ログイン済み',
'easyMode.oauth.relogin': '再ログイン',
'easyMode.oauth.loggingIn': 'ブラウザーでの認証を待っています…',
'easyMode.api.quickAdd': 'API を簡単に接続',
'easyMode.api.testAndSave': 'テストして保存',
'easyMode.api.testing': '接続をテスト中…',
'easyMode.api.fetchModels': 'モデル一覧を取得',
'easyMode.api.fetchingModels': 'モデル一覧を取得中…',
'easyMode.api.modelListTitle': 'モデルを選択',
'easyMode.api.modelListHint': '接続するモデルを選択してください',
'easyMode.api.modelListStale': '接続情報が変更されました。保存する前にモデル一覧を更新してください',
'easyMode.api.credentialsRequired': '先に API の URL と API キーを入力してください',
'easyMode.api.modelRequired': 'モデル一覧を取得し、モデルを選択してください',
'easyMode.api.testSuccess': '接続に成功しました。{count} 件のモデルが見つかりました',
'easyMode.api.testFailed': '接続テストに失敗しました',
'easyMode.api.platform': 'プラットフォーム',
'easyMode.api.baseUrl': 'API Base URL',
'easyMode.api.apiKey': 'API Key',
'easyMode.api.name': 'メモ名(任意)',
'easyMode.api.viewExisting': '接続済みの提供元をすべて表示({count} 件)',
'easyMode.api.backToQuick': '簡単接続に戻る',
'easyMode.api.savedSuccess': 'API 接続を保存しました',
'easyMode.scenario.title': '利用方法を選択',
'easyMode.scenario.agentTab': 'AI エージェントに接続(推奨)',
'easyMode.scenario.apiTab': 'ローカル API のアドレスをコピー',
'easyMode.agent.installedBadge': 'この端末にインストール済み',
'easyMode.agent.notDetected': '未検出',
'easyMode.agent.chooseModel': '使用するモデルを選択',
'easyMode.agent.applyConfig': '⚡ 設定を適用',
'easyMode.agent.applySuccess': '設定を適用しました',
'easyMode.agent.launchClient': '🚀 クライアントを起動 / ターミナルを開く',
'easyMode.agent.launching': '起動中…',
'easyMode.complete.title': '設定完了!',
'easyMode.apiCopy.desc': 'OpenAI / Claude / Gemini プロトコルに対応するツールにローカルプロキシのアドレスを入力して利用することもできます。',
'easyMode.apiCopy.copied': 'クリップボードにコピーしました',
'usage.dataManagement.deleted': '誤った記録を削除しました',
'aliases.error.unsupportedFast': 'Fast は Codex API、OpenAI 互換、Codex OAuth のモデル接続元でのみ利用できます',
'aliases.createdCombined': '{alias} を作成し、推論レベルを {effort} に固定して Fast を有効にしました',
'aliases.fast.title': 'Fast 高速化',
'aliases.fast.enabled': '有効です。リクエストのサービス階層を priority に固定します',
'aliases.fast.disabled': '無効です。クライアントの service_tier を維持します',
'aliases.fast.unsupported': 'Fast は Codex API、OpenAI 互換、Codex OAuth のモデル接続元でのみ利用できます。',
'speedAliases.created': '{alias} を作成し、リクエスト階層を Fast に固定しました',
'speedAliases.fast.title': 'Fast',
'speedAliases.aliasName.example': '例: {model}-fast',
'config.software.defaultTerminal': '既定のターミナル',
'config.software.defaultTerminalDescription': 'CLI エージェントの起動に使用するターミナルアプリ',
'config.software.terminal.auto': '自動選択',
"agents.harness.button": "モデル設定",
"agents.harness.providerInput": "プロバイダーの既定入力を使用",
"agents.harness.defaultModel": "デフォルトモデル",
"agents.harness.defaultHint": "新しいセッションの初期モデルです。DSH 内で自由に切り替えられます。",
"agents.harness.title": "DeepSeek Harness モデル設定",
"agents.harness.subtitle": "API のモデル一覧を取得し、モデル能力とプロバイダー設定を調整します。",
"agents.harness.provider": "プロバイダー設定",
"agents.harness.contextSource.model": "取得元:コアのモデル一覧 / モデル API",
"agents.harness.contextSource.provider": "取得元:プロバイダーの既定コンテキスト",
"agents.harness.contextSource.default": "取得元:DSH の既定値",
"agents.harness.contextSource.custom": "取得元:手動設定",
"agents.harness.resetContext": "コンテキストをリセット",
"agents.harness.auto": "自動",
"agents.harness.apiSource": "API に従う",
"agents.harness.inheritHint": "空欄は API または DSH の既定値に従います。",
"agents.harness.apiInput": "API の入力形式:{value}",
"agents.harness.unknown": "未提供(非対応とは限りません)",
"agents.harness.managedConnection": "接続先:{url}。URL と認証は EasyCLIProxyAPI が管理します。",
"agents.harness.reset": "自動に戻す",
"agents.harness.resetGroup": "このグループをリセット",
"agents.harness.yes": "有効",
"agents.harness.no": "無効",
"agents.harness.textOnly": "テキストのみ",
"agents.harness.textImage": "テキストと画像",
"agents.harness.reasoningDisabled": "推論なし",
"agents.harness.reasoningCustom": "推論レベルを指定",
"agents.harness.noWireValue": "パラメーターを省略",
"agents.harness.invalid": "設定値を確認してください:{field}",
"agents.harness.changed": "モデル一覧または設定が変更されました。再読み込みしてください。",
"agents.harness.saved": "保存しました。次のリクエストから適用されます。デフォルトモデルは変更されません。",
"agents.harness.savedDraft": "保存しました。DSH 接続時に適用されます。",
"agents.harness.saveHint": "デフォルトモデルを変更せずに一覧の設定を保存します。",
"agents.harness.hint.input": "API の情報を使用し、未提供の場合はプロバイダーの既定値に従います。",
"agents.harness.hint.defaultInput": "API に入力情報がないモデルの既定値です。画像を有効にして、例外をモデルごとに変更できます。",
"agents.harness.hint.maxTokens": "設定すると、リクエストごとの既定の出力上限にもなります。",
"agents.harness.hint.defaultMaxTokens": "モデル能力の既定値です。リクエストの出力制限にはなりません。",
"agents.harness.hint.api": "全モデルに同じプロトコルを使用します。変更後は互換性設定を確認してください。",
"agents.harness.hint.headers": "ヘッダー名と値の JSON オブジェクト。空欄は既定値を使用します。",
"agents.harness.hint.reasoningEfforts": "利用可能なレベルと送信する reasoning_effort 値を指定します。off のみ空欄にできます。",
"agents.harness.hint.compat": "現在のプロトコルの互換性設定です。モデル設定が優先され、自動値は DSH が決定します。",
"agents.harness.hint.thinkingBudgets": "推論予算に対応するプロバイダーの各レベルのトークン数。",
"agents.harness.hint.retryPolicy": "normal は既定で最大 5 回再試行します。always は成功またはキャンセルまで続けます。",
"agents.harness.hint.backoff": "再試行間隔とジッターを設定します。初期間隔は最大間隔以下にしてください。",
"agents.harness.field.name": "表示名",
"agents.harness.field.contextWindow": "コンテキスト(tokens)",
"agents.harness.field.maxTokens": "出力上限(tokens)",
"agents.harness.field.input": "入力形式",
"agents.harness.field.reasoningEfforts": "推論レベル",
"agents.harness.field.compat": "プロトコル互換性",
"agents.harness.field.displayName": "プロバイダー名",
"agents.harness.field.api": "API プロトコル",
"agents.harness.field.defaultContextWindow": "既定コンテキスト(tokens)",
"agents.harness.field.defaultMaxTokens": "既定出力能力(tokens)",
"agents.harness.field.defaultInput": "既定入力形式",
"agents.harness.field.reasoning": "既定推論レベル",
"agents.harness.field.thinkingBudgets": "推論予算(tokens)",
"agents.harness.field.cacheRetention": "キャッシュ保持",
"agents.harness.field.transport": "ストリーミング方式",
"agents.harness.field.timeoutMs": "リクエストタイムアウト(ms)",
"agents.harness.field.websocketConnectTimeoutMs": "WebSocket 接続タイムアウト(ms)",
"agents.harness.field.streamIdleTimeoutMs": "ストリーム待機タイムアウト(ms)",
"agents.harness.field.maxRequestImageBytes": "リクエスト画像合計(bytes)",
"agents.harness.field.requestImagePixelBudget": "画像ピクセル予算",
"agents.harness.field.requestImageMaxBytes": "画像サイズ(bytes)",
"agents.harness.field.headers": "追加ヘッダー(JSON)",
"agents.harness.field.retryPolicy": "再試行ポリシー",
"agents.harness.field.minimal": "minimal",
"agents.harness.field.low": "low",
"agents.harness.field.medium": "medium",
"agents.harness.field.high": "high",
"agents.harness.field.mode": "再試行モード",
"agents.harness.field.maxRetries": "最大再試行回数",
"agents.harness.field.retryableCodes": "再試行するエラー(JSON)",
"agents.harness.field.backoff": "再試行間隔",
"agents.harness.field.initialDelayMs": "初期間隔(ms)",
"agents.harness.field.maxDelayMs": "最大間隔(ms)",
"agents.harness.field.jitterRatio": "ジッター比率(0–1)",
"agents.harness.field.supportsStore": "supportsStore",
"agents.harness.field.supportsDeveloperRole": "supportsDeveloperRole",
"agents.harness.field.supportsReasoningEffort": "supportsReasoningEffort",
"agents.harness.field.supportsUsageInStreaming": "supportsUsageInStreaming",
"agents.harness.field.supportsFinishReason": "supportsFinishReason",
"agents.harness.field.maxTokensField": "maxTokensField",
"agents.harness.field.requiresToolResultName": "requiresToolResultName",
"agents.harness.field.requiresAssistantAfterToolResult": "requiresAssistantAfterToolResult",
"agents.harness.field.requiresThinkingAsText": "requiresThinkingAsText",
"agents.harness.field.requiresReasoningContentOnAssistantMessages": "requiresReasoningContentOnAssistantMessages",
"agents.harness.field.thinkingFormat": "thinkingFormat",
"agents.harness.field.chatTemplateKwargs": "chatTemplateKwargs",
"agents.harness.field.chatTemplateArgs": "chatTemplateArgs",
"agents.harness.field.supportsThinkingTokenBudget": "supportsThinkingTokenBudget",
"agents.harness.field.thinkingTokenBudgetField": "thinkingTokenBudgetField",
"agents.harness.field.vllmPriority": "vllmPriority",
"agents.harness.field.supportsMaxOutputTokens": "supportsMaxOutputTokens",
"agents.harness.field.supportsStrictMode": "supportsStrictMode",
"agents.harness.field.cacheControlFormat": "cacheControlFormat",
"agents.harness.field.supportsLongCacheRetention": "supportsLongCacheRetention",
"agents.harness.field.supportsEagerToolInputStreaming": "supportsEagerToolInputStreaming",
"agents.harness.field.supportsCacheControlOnTools": "supportsCacheControlOnTools",
"agents.harness.field.supportsTemperature": "supportsTemperature",
"agents.harness.field.forceAdaptiveThinking": "forceAdaptiveThinking",
"agents.harness.field.allowEmptySignature": "allowEmptySignature",
"agents.harness.field.supportsStrictTools": "supportsStrictTools",
'agents.catalog.button': 'モデル一覧の設定',
'agents.catalog.title': 'Codex モデル一覧',
'agents.catalog.subtitle': 'コンテキストの既定値は CPA コア API から取得します。モデルのパラメーターを編集し、Codex モデル一覧に保存できます。',
'agents.catalog.search': 'モデル名または ID を検索',
'agents.catalog.official': '公式テンプレート',
'agents.catalog.fallback': '標準テンプレート',
'agents.catalog.customized': 'カスタマイズ済み',
'agents.catalog.reload': '再読み込み',
'agents.catalog.loading': 'モデル一覧を読み込み中…',
'agents.catalog.empty': '利用可能なモデルがありません。コアに接続し、モデルの提供元を設定してください。',
'agents.catalog.displayName': '表示名',
'agents.catalog.description': 'モデルの説明',
'agents.catalog.context': 'コンテキストウィンドウ(トークン)',
'agents.catalog.contextSource.client': 'コンテキストの取得元:CPA コアの Codex クライアントモデル一覧 API。',
'agents.catalog.contextSource.configuration': 'コンテキストの取得元:CPA コアでこのモデルに設定された max-context-length。',
'agents.catalog.contextSource.template': 'コアに有効なコンテキスト情報がありません。ソフトウェアのテンプレートの代替値を使用しています。',
'agents.catalog.contextSource.customized': 'コンテキストの取得元:このモデルのカスタム設定。',
'agents.catalog.maximum': '最大コンテキストウィンドウ(トークン)',
'agents.catalog.percent': '有効コンテキスト比率(%)',
'agents.catalog.compact': '自動圧縮のしきい値(トークン)',
'agents.catalog.automatic': '空欄で自動設定',
'agents.catalog.reasoning': '選択可能な推論レベル',
'agents.catalog.defaultReasoning': '既定の推論レベル',
'agents.catalog.clientDefault': 'クライアントに任せる',
'agents.catalog.modalities': '入力タイプ',
'agents.catalog.text': 'テキスト',
'agents.catalog.image': '画像',
'agents.catalog.visible': 'Codex のモデル一覧に表示',
'agents.catalog.parallel': '並列ツール呼び出しを許可',
'agents.catalog.capabilityHint': 'Fast は常に選択可能です。推論・画像・ツール機能の動作は上流モデルの対応状況によります。',
'agents.catalog.resetModel': 'このモデルの既定値に戻す',
'agents.catalog.resetAll': 'すべて既定値に戻す',
'agents.catalog.resetHint': 'コンテキストは CPA コア API の値を既定値とし、有効なデータがない場合のみテンプレートの値を使用します。その他の項目はモデルのテンプレートに戻ります。保存後に適用されます。',
'agents.catalog.restored': '下書きを既定値に戻しました。保存すると適用されます。',
'agents.catalog.saved': '保存しました。管理対象の一覧が同期されます。Codex を再起動して変更を読み込んでください。',
'agents.catalog.syncFailed': '設定は保存しましたが、一覧の同期に失敗しました:{error}',
'agents.catalog.changed': 'モデル一覧またはテンプレートが更新されました。再読み込みしてから編集してください。',
'agents.catalog.unsaved': '未保存の変更があります。',
'agents.catalog.discard': '変更を破棄',
'agents.catalog.discardHint': '閉じると、保存していないモデルパラメーターの変更は破棄されます。',
'agents.catalog.keepEditing': '編集を続ける',
'agents.catalog.saveHint': '変更はこの端末に保存され、アプリの再起動後も保持されます。',
'agents.catalog.invalidText': '表示名を入力してください。名前と説明はそれぞれ 4000 文字以内にしてください。',
'agents.catalog.invalidContext': 'コンテキストウィンドウには有効な正の整数を入力してください。',
'agents.catalog.invalidMaximum': '最大コンテキストはコンテキストウィンドウ以上にしてください。',
'agents.catalog.invalidPercent': '有効コンテキスト比率は 1~100 の整数にしてください。',
'agents.catalog.invalidCompact': '自動圧縮のしきい値はコンテキストウィンドウ以下の正の整数にしてください。',
'agents.catalog.invalidReasoning': '既定の推論レベルは選択肢に含め、レベルを重複させないでください。',
'agents.catalog.invalidModalities': '入力タイプを少なくとも 1 つ選択してください。',
'apiAccess.models.add': 'カスタムモデルを追加',
'apiAccess.models.namePlaceholder': 'モデル名(例: gpt-4o)',
'apiAccess.models.aliasPlaceholder': 'モデル別名(任意)',
'apiAccess.models.remove': 'モデルを削除',
'app.language': '言語',
'app.theme.light': 'ライト',
'app.theme.dark': 'ダーク',
'app.theme.label': '外観モード',
'app.theme.system': '自動',
'app.theme.switchToSystem': 'システムの外観に合わせて自動的に切り替え',
'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.nav.lockedHint': 'まずホームでコアサービスを起動してください',
'app.coreRequired.title': '先にコアを起動してください',
'app.coreRequired.description': '設定、OAuth、API 接続などを使用するには CPA コアを起動してください。',
'app.contact.title': 'Discord サーバーに参加',
'app.contact.label': 'Discord サーバーに参加',
'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.steps.current': '{total} ステップ中 {current} ステップ目',
'easyMode.steps.step1Description': 'アカウントにログインするか API を接続',
'easyMode.steps.step2Description': 'クライアントとモデルを選んで起動',
'easyMode.overview.coreTitle': '使い方',
'easyMode.overview.providerTitle': 'モデルを接続',
'easyMode.overview.agentTitle': 'エージェントを接続',
'easyMode.setup.providerDescription': 'ブラウザのOAuth認証によるサブスクリプション接続、またはサードパーティAPIプロバイダーの設定に対応しています。',
'easyMode.oauth.title': 'OAuth ログイン',
'easyMode.oauth.description': 'ブラウザー認証で自分のアカウントにログインし、アカウントの利用枠を使います。',
'easyMode.oauth.nextHint': 'ログインが完了したら、ページ上部の「次へ」をクリックして続行します。',
'easyMode.api.title': 'API 接続',
'easyMode.api.description': 'モデルプラットフォームから提供された Base URL と API キーを入力します。',
'easyMode.api.nextHint': 'API 種類を選んで「追加」をクリックします。\nAPI URL とキーを入力してモデルを取得し、「次へ」をクリックします。',
'easyMode.step3.cardTitle': 'モデルを選んでエージェントに接続',
'easyMode.step3.cardDescription': '「利用可能なモデル」一覧からモデルを選び、利用するエージェントクライアントを選択します。',
'easyMode.step3.step1': '「利用可能なモデル」一覧から利用するモデルを選びます。',
'easyMode.step3.step2': 'インストール済みのエージェントクライアントを選びます。',
'easyMode.step3.step3': '設定を適用して、クライアントを起動します。',
'easyMode.guide.title': '使い方',
'easyMode.guide.description': 'まず接続方法を決め、モデルを接続した後、「利用可能なモデル」一覧からエージェントで使うモデルを選びます。',
'easyMode.guide.step1Title': '接続方法を選ぶ',
'easyMode.guide.step1Description': 'OAuth で自分のアカウントにログインして利用枠を使うことも、API 接続で任意のプラットフォームに接続することもできます。',
'easyMode.guide.step2Title': 'モデルを接続',
'easyMode.guide.step2Description': 'OAuth でアカウント認証を行うか、サードパーティプラットフォームの 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': '不明',
'common.confirm': '確認',
'quota.service.xaiPaidAccount': '有料 API アカウント',
'quota.service.xaiPaidHealth': '有料 API の会話が利用可能です。xAI は現在、この OAuth 認証情報の総クォータを提供していません。',
'quota.service.xaiPaidQuotaUnavailable': 'このアカウントの残りクォータは提供されていません。',
'quota.confirm.button': 'リセットを実行',
'quota.resetting': 'リセットを送信してクォータを更新中…',
'quota.resetResult.submitted': 'リセット要求を送信し、クォータを再取得しました。カードの最新クォータを確認してください。',
'quota.resetResult.refreshFailed': 'リセット要求は送信済みですが、クォータの更新に失敗しました:{error}。再消費を避けるため、先にクォータを更新してください。',
'quota.resetResult.failed': 'リセットの成功を確認できませんでした:{error}。再試行する前にクォータを更新してください。',
'quota.reset': 'クォータをリセット',
'quota.fileDisabled': '認証ファイルは無効です',
'quota.refresh': 'クォータを取得/更新',
'quota.notFetched': 'クォータはまだ取得されていません',
'quota.disabled': '無効',
'quota.fetch': 'クォータを取得',
'quota.querying': '照会中',
'quota.resetCredits': '手動リセット回数',
'quota.earliestExpiry': '最も早い有効期限',
'quota.remaining': '残り {percent}%',
'quota.resetPassed': 'リセット時刻到達。更新して確認してください',
'quota.subscriptionExpiry': 'サブスクリプション期限:{time}',
'quota.resetApplicable': '現在適用可能:{count} 回',
'quota.resetCreditsWarning': 'リセット回数の詳細取得に失敗:{error}',
'quota.service.window.sevenDayFable': '7 日間 Fable 枠',
'quota.service.error.resetCreditsInvalid': 'リセット回数 API のデータ形式を認識できません',
'quota.confirm.title': '「{name}」の Codex クォータをリセットしますか?',
'quota.confirm.cost': 'この操作では手動リセットを 1 回消費します。',
'quota.confirm.available': '現在利用可能:{count} 回',
'quota.confirm.expiry': '最も早い有効期限:{time}',
'quota.confirm.warning': '手動リセットを 1 回消費します。「リセットを実行」をクリックした場合のみ実行します。キャンセルや閉じる操作では消費しません。',
'oauth.devinHint': 'ブラウザーで Devin を認証してください。リダイレクトに失敗した場合は、今回のログインの完全なコールバック URL を貼り付けてください。',
'oauth.devinStateMismatch': 'コールバックの state が今回の Devin ログインと一致しません。最新の認証リンクでログインしてください。',
'quota.service.daily': '日次クォータ',
'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.costNote': 'モデル単価で推定',
'usage.stat.costIncluded': '{count} 件を計上',
'usage.stat.costExcluded': '{count} 件は未計上',
'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} 件のモデル料金を保存しました',
'usage.pricing.syncSource': '料金ソース',
'usage.pricing.syncPreview': '料金同期のプレビュー',
'usage.pricing.syncNote': '選択した基本料金のみ保存します。時間帯料金、コンテキスト階層、動的エイリアスは確認してください。手動料金は最初は選択されません。',
'usage.pricing.syncCounts': '一致 {matched} 件、未一致 {unmatched} 件',
'usage.pricing.selectAll': 'すべて選択',
'usage.pricing.selectNone': '選択解除',
'usage.pricing.syncNoMatches': '一致するモデル料金がありません',
'usage.pricing.syncUnmatched': '未一致の {count} 件を表示',
'usage.pricing.syncInvalid': '0 以上の有効な料金を入力してください。入力・出力料金は必須です',
'usage.pricing.applySelected': '選択した {count} 件を保存',
'usage.pricing.syncFallback': 'リモート料金を読み込めなかったため、内蔵料金を引き続き使用します',
'usage.pricing.model': 'モデル',
'usage.pricing.calls': 'リクエスト数',
'usage.pricing.cost': '推定コスト',
'usage.pricing.prompt': '入力料金 ($/1M)',
'usage.pricing.completion': '出力料金 ($/1M)',
'usage.pricing.cacheRead': 'キャッシュ読み取り料金 ($/1M)',
'usage.pricing.cacheCreation': 'キャッシュ作成料金 ($/1M)',
'usage.pricing.actions': '操作',
'usage.pricing.optional': '任意。空欄の場合は 0 で計算',
'usage.pricing.modelRequired': 'モデル名を入力してください',
'usage.pricing.saving': '保存中',
'usage.pricing.saved': 'モデル料金を保存し、概要のコストを更新しました',
'usage.pricing.deleted': 'モデル料金を削除し、概要のコストを更新しました',
'usage.pricing.deleteConfirm': 'モデル {model} の料金を削除しますか?',
'usage.dataManagement.title': '履歴データ管理',
'usage.dataManagement.manualBadge': '手動操作',
'usage.dataManagement.storageTitle': 'データベース容量上限',
'usage.dataManagement.storageDescription': '0 にすると無制限です。上限に達すると古い使用履歴から自動的に削除します。',
'usage.dataManagement.storageCurrent': '現在の使用量 {size} · {records} 件',
'usage.dataManagement.storageInput': 'データベース容量上限(MB)',
'usage.dataManagement.storageUnit': 'MB',
'usage.dataManagement.storageSave': '上限を保存',
'usage.dataManagement.storageSaving': '保存中…',
'usage.dataManagement.storageInvalid': 'データベース容量上限には 0 または正の整数を入力してください。',
'usage.dataManagement.storageSaved': 'データベース容量上限を保存しました。',
'usage.dataManagement.storageSavedWithCleanup': 'データベース容量上限を保存し、古い記録を {deleted} 件削除しました。',
'usage.dataManagement.shrinkTitle': 'データベースをワンクリックで縮小',
'usage.dataManagement.shrinkDescription': 'データベースを目標サイズに調整します。確認後、目標サイズ以下になるまで古い使用履歴から削除します。',
'usage.dataManagement.shrinkInput': '縮小後の目標サイズ(MB)',
'usage.dataManagement.shrinkRun': '今すぐ縮小',
'usage.dataManagement.shrinking': '縮小中…',
'usage.dataManagement.shrinkInvalid': '縮小後の目標サイズには 0 より大きい整数を入力してください。',
'usage.dataManagement.shrinkConfirmTitle': 'データベース縮小の確認',
'usage.dataManagement.shrinkConfirm': 'データベースを {size} MB 以下に縮小しますか?古い使用履歴から削除され、この操作は元に戻せません。',
'usage.dataManagement.shrinkSuccess': '縮小が完了しました。古い記録を {deleted} 件削除し、現在の使用量は {size} です。',
'usage.dataManagement.shrinkNoCleanup': 'データベースを整理しました。現在の使用量は {size} のため、使用履歴は削除されませんでした。',
'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} 件を修復し、誤った記録を {deleted} 件削除しました。',
'usage.trend.title': 'Token の推移',
'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': 'Token の積み上げ棒グラフ。マウスまたは矢印キーで各時間帯とモデルの内訳を確認できます。',
'usage.trend.bucket.30m': '30 分ごとに表示',
'usage.trend.bucket.hour': '1 時間ごとに表示',
'usage.trend.bucket.3h': '3 時間ごとに集計',
'usage.trend.bucket.day': '日ごとに集計',
'usage.trend.bucket.week': '週ごとに集計',
'usage.trend.bucket.month': '月ごとに集計',
'usage.trend.bucket.year': '年ごとに集計',
'usage.trend.other': 'その他',
'usage.trend.tooltip.tokens': 'Token',
'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': 'プロバイダー',
'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.invalidAlias': 'エイリアスモデル名に空白文字は使えません',
'aliases.error.emptyEffort': '推論レベルを入力してください',
'aliases.error.unsupportedEffort': 'このモデルソースには利用可能な推論レベルがありません',
'aliases.created': '{alias} を作成し、推論レベルを {effort} に固定しました',
'aliases.createdPlain': 'モデルエイリアス {alias} を作成しました',
'aliases.updated': 'モデルエイリアス {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.tabs.sensitiveWords': '機密語の難読化',
'config.sensitiveWords.title': 'システムプロンプトの機密語',
'config.sensitiveWords.addPlaceholder': '語句を入力して Enter で追加',
'config.sensitiveWords.empty': '項目なし',
'config.sensitiveWords.discardTitle': '未保存の機密語を破棄しますか?',
'config.sensitiveWords.discardMessage': '更新すると、未保存の項目は現在のコア設定で上書きされます。',
'config.sensitiveWords.antigravity': 'Antigravity',
'config.sensitiveWords.devin': 'Devin',
'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.diagnostics.title': 'ログと診断',
'config.diagnostics.description': '有効にすると、呼び出しでエラーが発生したリクエストのみを記録し、成功したリクエストは記録しません。ストレージ容量を過度に消費しないよう、不要になったら速やかに「**ログファイルへ書き込む**」を無効にしてください。',
'config.diagnostics.debug.title': 'デバッグモード',
'config.diagnostics.debug.description': '問題調査用の詳細なデバッグログを出力します。',
'config.diagnostics.commercial.title': '商用モード',
'config.diagnostics.commercial.description': '高負荷なリクエストログと一部 HTTP ミドルウェアを無効にします。',
'config.diagnostics.commercial.warning': '商用モードの変更時は、保存後に実行中の CPA コアを自動再起動します。',
'config.diagnostics.fileLogging.title': 'ログファイルへ書き込む',
'config.diagnostics.fileLogging.description': 'アプリログをローテーションファイルへ保存します。無効時はコンソールへ出力します。',
'config.diagnostics.usage.title': '使用量統計',
'config.diagnostics.usage.description': 'リクエストとトークン使用量をメモリ内で集計します。',
'config.diagnostics.maxSize.title': 'ログ合計サイズ上限(MB)',
'config.diagnostics.maxSize.hint': '上限超過時に古いログを削除します。0 は無制限です。',
'config.diagnostics.errorFiles.title': 'エラーリクエストログ保持数',
'config.diagnostics.errorFiles.hint': 'リクエストログ無効時の保持数です。0 は自動削除なしです。',
'config.diagnostics.redisRetention.title': '使用量キュー保持時間(秒)',
'config.diagnostics.redisRetention.hint': '管理 API 用キューの保持時間を 1~3600 秒で設定します。',
'config.diagnostics.save': 'ログ設定を保存',
'config.diagnostics.openLogs': 'ログフォルダーを開く',
'config.diagnostics.notice.saved': 'ログと診断の設定を保存しました',
'config.diagnostics.notice.savedAndRestarted': 'ログと診断の設定を保存し、CPA を再起動しました',
'config.diagnostics.error.nonNegativeInteger': 'ログサイズと保持数には 0 以上の整数を入力してください',
'config.diagnostics.error.redisRetention': '使用量キュー保持時間には 1~3600 の整数を入力してください',
'config.diagnostics.error.openLogs': 'ログフォルダーを開けませんでした:{{error}}',
'config.webuiKey.title': 'WebUI キー',
'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.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': '「システムに従う」をオフにすると編集できます。手動設定が空欄の場合は直接接続します。HTTP と SOCKS に対応しています。',
'config.network.systemProxy': 'システムに従う',
'config.network.systemProxyHint': 'オンの場合は検出したシステムプロキシを、オフの場合は下の手動設定を使用します',
'config.network.sessionAffinity': 'セッションアフィニティ',
'config.network.sessionAffinityHint': '同じセッションでは以前選択した認証情報を優先します',
'config.network.sessionTtl': 'セッションアフィニティ TTL',
'config.network.sessionTtlHint': '例:1h。空欄の場合はコアのデフォルト値を使用します',
'config.network.disableCooling': 'クールダウンを無効化',
'config.network.disableCoolingHint': '認証情報とモデルのクールダウン制御を全体で無効にします',
'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': '閉じる',
'app.notice.dismiss': '操作結果を閉じる',
'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} の OAuth 認証情報のモデル除外ルールを更新しました',
'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.credentialUpdated': '{name} のモデル除外ルールを更新しました',
'authFiles.models.globalButton': 'OAuth 認証情報のモデル除外',
'authFiles.models.provider': 'OAuth プロバイダー',
'authFiles.models.globalDescription': 'チェックしたモデルはすべての {provider} OAuth 認証情報ファイルでのみ除外され、API 接続には影響しません。認証情報ごとのルールも適用されます',
'authFiles.fileOnly': 'この操作は OAuth 認証情報ファイルのみが対象です。API 接続は「API 接続」ページで管理してください。',
'authFiles.models.runtimeUnsupported': '実行時の認証情報のモデルは、対応するプロバイダーまたは認証元で設定してください',
'authFiles.models.invalidMetadata': '認証ファイルを読み取れないため、モデル設定を読み込めませんでした',
'authFiles.models.invalidExclusions': '認証ファイルのモデル除外ルールが無効です。ファイルを確認してください',
'authFiles.models.excludeButton': 'モデル除外',
'authFiles.models.viewTitle': '対応モデル',
'authFiles.models.viewDescription': 'この認証情報に現在登録されているモデルです。モデル名をクリックするとコピーできます',
'authFiles.models.viewEmpty': 'この認証情報で現在利用できるモデルはありません',
'authFiles.models.copyModel': 'モデル名をコピー',
'authFiles.models.excludeAll': 'すべて除外',
'authFiles.models.excludeAllHint': '候補一覧の各モデルを追加します。* は自動で追加されません',
'authFiles.models.clearSelected': '選択をクリア',
'authFiles.models.clearHint': '一覧内の完全一致の選択を解除し、ワイルドカードと一覧外のルールを保持します',
'authFiles.models.rulesPlaceholder': 'gpt-image-*',
'authFiles.models.rulesLabel': '除外ルール(1 行に 1 件)',
'authFiles.models.rulesHint': '* は任意の文字列に一致し、大文字と小文字は区別しません。* を入力するとすべてのモデルを除外します。選択のクリアではワイルドカードと一覧外のルールを保持します。',
'authFiles.models.wildcardBlocked': '{rule} により除外されています。下のルールを編集してください',
'authFiles.models.catalogUnavailable': '候補モデルを読み込めませんでした。下の欄で除外ルールの編集と保存は可能です',
'authFiles.models.search': 'モデル名を検索',
'authFiles.models.summary': '候補 {total} 件 · 除外 {excluded} 件',
'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.antigravityCli': 'CPA の Gemini 互換 API で Antigravity CLI を設定',
'agents.modify.antigravityCliHint': '設定適用後はこのページの起動ボタンを使用してください。CPA が CLI プロセスに接続先とキーを渡します。agy を直接実行する場合は環境変数の設定が必要です。',
'agents.description.workbuddy': 'CPA の OpenAI Chat Completions API で WorkBuddy のカスタムモデルを設定',
'agents.modify.workbuddyHint': '適用後、WorkBuddy で「CPA:モデル名」を選択してください。表示されない場合は App を再起動してください。既存の会話のモデルは自動で切り替わりません。',
'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.deepseekLaunch.dialogTitle': 'DeepSeek Harness を起動',
'agents.deepseekLaunch.dialogDescription': '実行モード、起動オプション、既定の workspace として使う作業ディレクトリを選択します。',
'agents.deepseekLaunch.mode.label': '実行モード',
'agents.deepseekLaunch.mode.web': 'Web UI',
'agents.deepseekLaunch.mode.webDescription': 'ブラウザー UI を起動します。dsh web と同じです。',
'agents.deepseekLaunch.mode.headless': 'Headless 単発タスク',
'agents.deepseekLaunch.mode.headlessDescription': '新しいタスクを実行し、最終結果を出力して終了します。',
'agents.deepseekLaunch.mode.acp': 'ACP サーバー',
'agents.deepseekLaunch.mode.acpDescription': '標準入出力を介して ACP クライアントにサービスを提供します。',
'agents.deepseekLaunch.mode.sdk': 'SDK サーバー',
'agents.deepseekLaunch.mode.sdkDescription': '標準入出力で SDK JSON-RPC サーバーを起動します。',
'agents.deepseekLaunch.mode.sdkMinimal': 'SDK Minimal サーバー',
'agents.deepseekLaunch.mode.sdkMinimalDescription': '独立した最小エージェントツリーで SDK JSON-RPC サーバーを起動します。',
'agents.deepseekLaunch.mode.custom': 'カスタム Profile',
'agents.deepseekLaunch.mode.customDescription': 'DSH_HOME にインストール済みのカスタム profile を起動します。',
'agents.deepseekLaunch.web.host': 'バインドホスト(任意)',
'agents.deepseekLaunch.web.hostPlaceholder': 'DSH の既定値を使用',
'agents.deepseekLaunch.web.port': 'ポート(任意)',
'agents.deepseekLaunch.web.portPlaceholder': '既定値;0 は空きポート',
'agents.deepseekLaunch.web.openBrowser': 'ブラウザーを自動的に開く',
'agents.deepseekLaunch.web.openBrowserDescription': '無効にすると --no-open を渡し、Web サーバーのみを起動します。',
'agents.deepseekLaunch.web.trustedHosts': '追加の信頼済み Host(任意、1 行に 1 件)',
'agents.deepseekLaunch.web.trustedHostsPlaceholder': 'localhost:3000\nexample.test',
'agents.deepseekLaunch.headless.task': 'タスク内容',
'agents.deepseekLaunch.headless.taskPlaceholder': '例:このプロジェクトを確認してテストを実行する',
'agents.deepseekLaunch.custom.profile': 'Profile 名',
'agents.deepseekLaunch.custom.profilePlaceholder': '例:tui',
'agents.deepseekLaunch.patches': '追加 Patch ファイル(任意、1 行に 1 件)',
'agents.deepseekLaunch.patchesPlaceholder': './extra.yml\n./local.patch.yml',
'agents.deepseekLaunch.launch': '{mode} を起動',
'agents.deepseekLaunch.stop': 'DeepSeek Harness を停止',
'agents.deepseekLaunch.stopping': '停止中',
'agents.deepseekLaunch.runningDetail': '実行中:モード {mode}、PID {pid}',
'agents.deepseekLaunch.error.invalidPort': 'ポートは 0~65535 の整数にしてください',
'agents.deepseekLaunch.error.taskRequired': 'Headless のタスク内容を入力してください',
'agents.deepseekLaunch.error.profileRequired': 'カスタム profile 名を入力してください',
'agents.deepseekLaunch.error.invalidProfile': 'Profile 名に使用できるのは英数字、ドット、ハイフン、アンダースコアのみです',
'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.backup.create": "手動バックアップ",
"agents.backup.button": "バックアップを復元",
"agents.backup.description": "管理対象の全ファイルを、独自設定を含む元の内容と存在状態に復元します。接続先とキーも保存時の値になります。自動バックアップは作成しません。",
"agents.backup.versions": "バックアップ一覧",
"agents.backup.empty": "手動バックアップはありません。「手動バックアップ」でディスク上の現在の設定を保存できます。",
"agents.backup.files": "{count} ファイル",
"agents.backup.preview": "復元プレビュー",
"agents.backup.loading": "読み込み中…",
"agents.backup.select": "バックアップを選択してファイルを確認してください。",
"agents.backup.unchanged": "設定は最新です。書き込みは不要です。",
"agents.backup.updated": "設定を更新しました。",
"agents.backup.restored": "バックアップを復元し、設定状態とフォームを更新しました。",
"agents.backup.created": "ディスク上の現在の設定を手動バックアップしました。未保存のフォーム編集は含まれません。",
"agents.backup.location": "バックアップの保存先",
"agents.backup.invalid": "復元不可",
"agents.backup.present": "保存時に存在",
"agents.backup.missing": "保存時に存在しないため、復元時に削除",
"agents.backup.overwrite": "バックアップの原文で全ファイルを上書きします。",
"agents.backup.restore": "このバージョンを復元",
"agents.backup.delete": "このバージョンを削除",
"agents.backup.restoreConfirm": "バックアップ {version} を復元しますか?",
"agents.backup.deleteConfirm": "バックアップ {version} を削除しますか?",
"agents.backup.restoreWarning": "一覧のファイル内の独自設定も上書きします。保存時に存在しなかったファイルは削除します。自動バックアップは作成しません。",
"agents.backup.deleteWarning": "このバックアップだけを削除します。現在の設定や他のバックアップには影響しません。",
"agents.backup.confirmRestore": "復元を確定",
"agents.backup.confirmDelete": "削除を確定",
"agents.backup.mappingRequired": "信頼できる Claude Desktop のモデル割り当てがありません。モデルを選び直してください。",
"agents.backup.mappingRestore": "保存したモデル割り当てを復元:",
'agents.title': 'エージェント設定',
'agents.embedded.title': 'クライアントとモデルを選んで起動',
'agents.embedded.subtitle': 'ない場合は先にインストールしてください',
'agents.redetect': '再検出',
'agents.tabs.label': 'エージェント設定ページ',
"agents.tabs.management": "設定管理",
"agents.run.title": "起動操作",
"agents.management.backups": "バックアップと復元",
"agents.management.backupsDescription": "ディスク上の設定を保存するか、手動バックアップから復元します。未適用の変更はバックアップに含まれません。",
"agents.management.template": "ezcpa 設定テンプレート",
"agents.management.templateDescription": "ezcpa 内蔵テンプレートを使い、問題のあるエージェント設定をすばやく修復します。",
"agents.management.clearDescription": "Codex のログイン認証情報と接続設定を消去し、再ログインや再設定を行えるようにします。自動バックアップは作成されません。",
"agents.management.plugin": "プラグイン管理",
"agents.management.pluginVersion": "インストール済みのバージョン:{version}",
"agents.management.pluginInstalled": "Pi プラグインをインストールしました。",
"agents.management.pluginUpdated": "Pi プラグインを更新しました。",
"agents.management.pluginUninstalled": "Pi プラグインをアンインストールしました。",
"agents.management.pluginMissing": "Pi プラグインが未インストールです。基本設定でモデルを選択してインストールしてください。",
"agents.deepseekLaunch.restart": "Web を再起動",
"agents.deepseekLaunch.restarting": "Web を再起動中",
'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': '他のプロバイダーのセッションを現在のセッションプロバイダーに同期します。',
'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': '不明なプロバイダー',
'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.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.connected": "現在の接続設定:CPA",
"agents.modify.disconnected": "現在の接続設定:CPA 未設定",
"agents.modify.connectionChecking": "現在の接続設定:確認中…",
"agents.modify.connectionUnknown": "現在の接続設定:判定できません。設定を確認してください",
"agents.modify.description": "選択したモデルと認証方式を書き込み、無関係な設定を保持します。",
"agents.modify.authApiKeyHint": "CPA の API を使用して接続し、より安定した接続状態を維持します。",
"agents.nativeOAuth.status": "CPA 未接続",
"agents.nativeOAuth.restoreTitle": "ChatGPT App のログイン状態をリセット",
"agents.nativeOAuth.restore": "ログインをリセット",
"agents.nativeOAuth.restoreHint": "CPA の接続設定を解除し、Codex で ChatGPT アカウントへのログインを促します。変更を反映するには、解除後にアプリを再起動してください。",
"agents.nativeOAuth.activeHint": "現在 CPA に接続していません。ログイン後に OAuth を選んで設定を更新すると、CPA に再接続できます。",
"agents.nativeOAuth.restored": "CPA の接続設定を解除しました。Codex を再起動して ChatGPT アカウントにログインしてください。",
"agents.modify.authOAuthHint": "アカウントのログイン状態を保持して CPA 経由で接続します。未ログインの状態で API から切り替える場合は、設定管理で「ログインをリセット」をクリックし、Codex を再起動して ChatGPT にログインしてから選択してください。",
"agents.modify.authHelpLabel": "説明",
"agents.modify.authHelpShow": "選び方",
"agents.modify.authHelpHide": "説明を閉じる",
"agents.modify.authHelp": "接続方式の説明",
"agents.modify.connect": "ワンクリック接続",
"agents.modify.repair": "接続設定を修復",
"agents.modify.connectionRepair": "現在の接続設定:CPA 設定の修復が必要です",
"agents.modify.authMethod": "接続方式",
"agents.modify.authApiKey": "API キー",
"agents.modify.authOAuth": "OAuth 設定方式",
"agents.modify.matches": "保存済み",
"agents.modify.pending": "適用待ち",
"agents.modify.checking": "設定を読み込み中…",
"agents.modify.invalidState": "現在の設定を解析できません",
"agents.modify.more": "その他の操作",
"agents.modify.moreDescription": "再構築やクリアは独自設定を削除します。必要な場合のみ使用してください。",
"agents.modify.title": "{name} の設定を書き込む",
'agents.modify.oauthConfiguration': 'OAuth ログイン設定方式',
'agents.claudeDesktopMapping.title': 'Claude Desktop モデルとエイリアス',
'agents.claudeDesktopMapping.help': '使い方',
'agents.claudeDesktopMapping.description': 'Claude Desktop では Claude 系列のモデルのみ使用できるため、他の系列のモデルには Claude 形式のエイリアスを設定する必要があります。元のモデル名がすでに Claude 系列なら、エイリアスの設定は不要です。空欄のままにしてください。',
'agents.claudeDesktopMapping.collisionHint': 'エイリアスは、元モデル一覧にある既存のモデル ID と重複しない名前を推奨します。同じ名前があるとラウンドロビン方式でリクエストが別のモデルに振り分けられ、目的のモデルを呼び出せない場合があります。',
'agents.claudeDesktopMapping.add': 'モデルを追加',
'agents.claudeDesktopMapping.remove': 'モデルを削除',
'agents.claudeDesktopMapping.model': '元モデル',
'agents.claudeDesktopMapping.alias': 'エイリアス(Claude モデルは省略可)',
'agents.claudeDesktopMapping.claudeDefault': 'Claude モデルは既定で元の ID を使用します',
'agents.claudeDesktopMapping.sameModel': 'エイリアスが元モデルと同じです。設定は不要で、元の ID をそのまま使用します。',
'agents.claudeDesktopMapping.defaultAliasExists': '既定のエイリアス「{alias}」はモデル一覧に存在します。別のモデルが呼び出されないよう、他のエイリアスに切り替えてください。',
'agents.claudeDesktopMapping.noRename': '元の ID を使用',
'agents.claudeDesktopMapping.suggestedAlias': 'エイリアス候補',
'agents.claudeDesktopMapping.suggestionCount': '{count} 件のエイリアス候補',
'agents.claudeDesktopMapping.customAliasHint': '一致する候補はありません。自由にエイリアスを入力できます。',
'agents.model.useCustom': '入力したモデル ID を使用',
'agents.claudeDesktopMapping.newModel': '新しいモデル',
'agents.claudeDesktopMapping.idHint': 'エイリアスは claude-opus-*、claude-sonnet-*、claude-haiku-* などの形式にできます。ただし gpt・grok・gemini・deepseek など、他のモデル系列の名前は含められません。星印は任意の接尾辞を表します。そのまま入力せず、使いたい文字列に置き換えてください。',
'agents.claudeDesktopMapping.empty': '「モデルを追加」で元モデルを入力してください。エイリアスは省略できます。',
'agents.claudeDesktopMapping.error.empty': '元モデルを1つ以上選択または入力してください。',
'agents.claudeDesktopMapping.error.model': '元モデルを選択または入力してください。',
'agents.claudeDesktopMapping.error.modelFormat': '元モデル ID の形式が無効です。空白を削除するか、名前を短くしてください。',
'agents.claudeDesktopMapping.error.aliasExists': 'このエイリアスは既存の元モデル ID と同じです。別のエイリアスを指定してください。',
'agents.claudeDesktopMapping.error.alias': 'エイリアスは claude- で始まり、小文字の英数字・ハイフン・ピリオドのみ使用できます。gpt・grok・gemini・deepseek など他のモデル系列の名前は含められません。',
'agents.claudeDesktopMapping.error.duplicate': 'エイリアスまたは元モデル ID が重複しています。各行に異なる ID を指定してください。',
'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': 'Opus',
'agents.claudeDesktopMapping.sonnet': 'Sonnet',
'agents.claudeDesktopMapping.haiku': 'Haiku',
'agents.claudeMapping.context1m': '1M',
'agents.claudeMapping.context1mHint': '1M コンテキストとして設定します。選択した上流モデルが対応していることを確認してください。',
'agents.oauthLoginRequired.title': 'Codex へのログインが必要です',
"agents.oauthLoginRequired.enableDescription": "利用可能な Codex のログイン情報が見つかりません。API から OAuth に切り替えるには、",
"agents.oauthLoginRequired.enableManagementConnector": "で",
"agents.oauthLoginRequired.enableClearConfiguration": "ログインをリセット",
"agents.oauthLoginRequired.enableDescriptionSuffix": "をクリックしてください。Codex を再起動して ChatGPT にログインした後、基本設定で OAuth を選んで設定を更新してください。",
"agents.oauthLoginRequired.applyDescription": "利用可能な Codex のログイン情報が見つかりません。設定管理で「ログインをリセット」をクリックし、Codex を再起動して ChatGPT にログインした後、基本設定で OAuth を選んで設定を更新してください。",
'agents.oauthLoginRequired.launchDescription': '有効なログイン認証情報が見つからないため Codex を起動できません。先に Codex アプリで ChatGPT アカウントにログインしてください。',
"agents.oauthLoginRequired.openManagement": "設定管理を開く",
'agents.oauthLoginRequired.confirm': '了解しました',
'agents.modify.apply': '設定変更を適用',
'agents.modify.update': '設定を更新',
'agents.modify.close': '設定変更を終了',
'agents.modify.closeHint': 'CPA 設定を解除し、保存されていれば接続前の設定とログイン情報を復元します。',
'agents.modify.closed': 'CPA 設定を解除しました。Codex を再起動し、必要に応じてログインしてください。',
"agents.modify.default": "ezcpa テンプレートを適用",
'agents.modify.clear': '設定を消去',
"agents.modify.invalid": "通常の更新は停止しています。設定ファイルを修正するか、「設定管理」の「ezcpa テンプレートを適用」で接続設定を再生成してください。",
"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.updateAvailableShort': '更新あり',
'agents.pi.updating': 'プラグインを更新中',
'agents.pi.installing': 'プラグインをインストール中',
'agents.pi.repair': '設定を適用',
'agents.pi.repairing': '設定を適用中',
'agents.pi.uninstall': 'Pi プラグインをアンインストール',
'agents.pi.uninstalling': 'プラグインをアンインストール中',
"agents.default.title": "ezcpa 設定テンプレートを適用",
"agents.default.description": "ezcpa 内蔵テンプレートと現在の接続先、キー、選択したモデル、認証方式を使い、{name} の接続設定一式を生成して下記のファイルを上書きします。独自設定は置き換えられ、自動バックアップは作成されません。保存したい場合はキャンセルして手動バックアップを作成してください。",
"agents.default.confirm": "上書きを確定",
'agents.clear.title': 'Codex 設定を消去',
"agents.clear.description": "Codex の auth.json と config.toml を削除します。自動バックアップは作成しません。既存の手動バックアップから全ファイルと独自設定を復元できます。",
'agents.clear.confirm': '設定を消去',
'agents.clear.success': 'Codex 設定を消去しました。',
'agents.clearIntegration.title': '{name} の接続設定を解除',
'agents.clearIntegration.button': '接続設定を解除',
'agents.clearIntegration.description': 'CPA 接続設定を削除し、その他の設定は保持します。解除後はエージェントを再起動してください。',
'agents.clearIntegration.confirm': '接続設定の解除を確認',
'agents.clearIntegration.success': 'CPA 接続設定を解除しました。{name} を再起動してください。',
'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.fetchModelsBeforeSave': 'モデル一覧を正常に取得し、少なくとも 1 件選択してください',
'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.selectionRequired': 'モデルが選択されていません',
'apiAccess.models.selectionRequiredHint': 'モデル一覧を取得し、少なくとも 1 件選択してください',
'apiAccess.models.staleHint': '接続情報が変更されました。モデル一覧を再取得してください',
'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 Key(1 行に 1 件)',
'apiAccess.field.key': 'API Key',
'apiAccess.field.remark': 'メモ',
'apiAccess.remarkPlaceholder': '例:本番環境、チームのメインアカウント',
'apiAccess.baseRequiredPlaceholder': '必須、例:https://api.example.com',
'apiAccess.baseOptionalPlaceholder': '任意。空欄の場合は既定のアドレスを使用',
'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': 'レベルを編集するまでは、各モデルの推論設定を保持します',
'apiAccess.models.title': 'モデル',
'apiAccess.models.description': '選択したモデルを公開します。選択解除するとモデル一覧から非表示になります',
'apiAccess.models.fetch': 'モデルを取得',
'apiAccess.field.priority': '優先度',
'common.optional': '任意',
'apiAccess.advanced': '詳細設定',
'apiAccess.field.prefix': 'モデル接頭辞',
'apiAccess.field.proxyUrl': 'プロキシ URL',
'apiAccess.proxyMixed': '異なるプロキシが設定されています',
'apiAccess.proxyClear': 'プロキシを解除',
'apiAccess.error.proxyUrlInvalid': 'プロキシ URL が無効です。http://、https://、socks5://、direct、none を使用してください',
'apiAccess.prefixPlaceholder': '任意、例:team-a',
'apiAccess.field.headers': 'カスタムリクエストヘッダー(1 行に Name: Value)',
'apiAccess.field.excludedModels': '除外モデル(1 行に 1 件、ワイルドカード対応)',
'apiAccess.option.inherit': 'デフォルトを使用',
'apiAccess.error.priorityInteger': '優先度は安全な範囲の整数で指定してください。',
'apiAccess.cooling.disable': 'クールダウンを無効化',
'apiAccess.cooling.enable': 'クールダウンを有効化',
'apiAccess.cloak.mode': 'Claude 偽装モード',
'apiAccess.cloak.default': '既定(自動)',
'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': '表示中をすべて選択',
'apiAccess.modelDialog.unselected': '未選択のモデル',
'apiAccess.modelDialog.selected': '選択済みのモデル',
'apiAccess.modelDialog.searchUnselected': '未選択のモデルを検索',
'apiAccess.modelDialog.searchSelected': '選択済みのモデルを検索',
'apiAccess.modelDialog.clearSearch': '検索をクリア',
'apiAccess.modelDialog.addAll': 'すべて追加',
'apiAccess.modelDialog.removeAll': 'すべて解除',
'apiAccess.modelDialog.addResults': '検索結果を追加',
'apiAccess.modelDialog.removeResults': '検索結果を解除',
'apiAccess.modelDialog.addModel': '{name} を追加',
'apiAccess.modelDialog.removeModel': '{name} を解除',
'apiAccess.modelDialog.emptySelected': 'まだモデルが選択されていません',
'apiAccess.modelDialog.emptyUnselected': '未選択のモデルはありません',
'apiAccess.modelDialog.chooseOne': 'モデルを1つ以上選択してください',
'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.install.installingLatest': '最新バージョンをインストールしています',
'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.notes.title': 'ソフトウェアの更新内容',
'appUpdate.notes.expand': '展開',
'appUpdate.notes.collapse': '折りたたむ',
'appUpdate.notes.publishedAt': '{date}公開',
'appUpdate.notes.openRelease': 'リリースノート全体を見る',
'appUpdate.notes.empty': '現在の言語の更新内容を取得できませんでした。',
'appUpdate.notes.loading': '更新内容を取得中…',
'appUpdate.notes.failed': '更新内容を取得できませんでした。後でもう一度確認してください。',
'appUpdate.notes.notChecked': 'ソフトウェアの更新を確認すると、最新版の更新内容が表示されます。',
'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.quick.agentsDesc': 'クライアントエージェントとモデルルーティングを設定',
'kernel.quick.apiDesc': 'マルチアップストリームモデルとキーを管理',
'kernel.quick.oauthDesc': 'アカウントのワンクリック認証と資格情報管理',
'kernel.quick.usageDesc': 'リアルタイムのリクエストログとToken消費統計を表示',
'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 Record<MessageKey, string>;