Files
EasyCLIProxyAPI/src/i18n/ja.ts
T

849 lines
57 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 './resources';
export const jaOverrides = {
'app.language': '言語',
'app.theme.light': 'ライトモード',
'app.theme.dark': 'ダークモード',
'app.theme.switchToLight': 'ライトモードに切り替え',
'app.theme.switchToDark': 'ダークモードに切り替え',
'app.desktopConsole': 'デスクトップコンソール',
'app.navigation': 'メインナビゲーション',
'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': 'アプリを終了',
'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.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.openBrowser': 'ブラウザーを開く',
'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.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.filter.startTime': '開始日時',
'usage.filter.endTime': '終了日時',
'usage.filter.to': '~',
'usage.loading': 'ローカル SQLite の使用履歴を読み込んでいます',
'usage.stat.requests': '総リクエスト数',
'usage.stat.requestMeta': '成功 {success} · 失敗 {failed}',
'usage.stat.tokens': '合計 Token',
'usage.stat.tokenMeta': '入力 {input} · 出力 {output}',
'usage.stat.successRate': '成功率',
'usage.stat.reasoningMeta': '推論 {tokens} Token',
'usage.stat.averageLatency': '平均レイテンシ',
'usage.stat.tps': 'TPS',
'usage.stat.performanceMeta': '{rpm} RPM · 平均レイテンシ {latency} ms',
'usage.stat.cacheHitRate': 'キャッシュヒット率',
'usage.stat.cacheHitMeta': 'ヒット {hit} / 入力 {input} Token',
'usage.stat.estimatedCost': '推定コスト',
'usage.stat.costMeta': '{priced} / {total} 件を計算済み · 参考値',
'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.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.column.time': '日時',
'usage.column.model': 'モデル',
'usage.column.source': 'ソース',
'usage.column.result': '結果',
'usage.column.latency': '合計所要時間',
'usage.column.ttft': '初回トークン遅延',
'usage.column.input': '入力',
'usage.column.output': '出力',
'usage.column.reasoning': '推論',
'usage.column.cache': 'キャッシュ',
'usage.column.total': '合計',
'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.created': '{alias} を作成し、推論レベルを {effort} に固定しました',
'aliases.deleteConfirm': 'エイリアスモデル「{alias}」を削除しますか?\n対応する推論レベルの上書きルールも削除されます。',
'aliases.deleted': '{alias} を削除しました',
'aliases.create.title': '推論エイリアスを作成',
'aliases.create.description': 'Codex OAuth、Codex API、OpenAI 互換接続に対応',
'aliases.originalModel': '元のモデル',
'aliases.loadingModels': 'モデルを読み込んでいます',
'aliases.searchModel': '元のモデルを検索して選択',
'aliases.availableModels': '利用可能な元モデル',
'aliases.noMatch': '一致するモデルまたはソースがありません',
'aliases.noModels': '選択可能なモデルがありません',
'aliases.sourceLabel': 'ソース:{source}',
'aliases.sourceHint': '同名モデルは Codex OAuth、Codex API、OpenAI 互換ソースごとに表示されます',
'aliases.effort.title': '推論レベル',
'aliases.effort.description': '一般的なレベルを選択するか、上流が対応するカスタム値を入力します',
'aliases.customLevel': 'カスタムレベル:{effort}',
'aliases.customLevelHint': 'モデルプロバイダーが対応する別の推論レベルを入力',
'aliases.custom': 'カスタム',
'aliases.customPlaceholder': '例:minimal、auto、ultra、またはベンダー独自レベル',
'aliases.collapseCustom': 'カスタム入力を折りたたむ',
'aliases.customHelp': '対象モデルが実際に対応するレベル名のみ入力してください',
'aliases.aliasName.title': 'エイリアスモデル名',
'aliases.aliasName.description': '新しい入口のみを追加し、元のモデル名は変更しません',
'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.error.emptyKey': '認証キーを入力してください',
'config.error.invalidKey': '空白を含まない表示可能な ASCII 文字のみ使用できます',
'config.error.duplicateKey': '同じ認証キーがすでに存在します',
'config.error.remarkTooLong': 'メモは 80 文字以内で入力してください',
'config.error.portRange': 'ポートは 1〜65535 の整数で入力してください',
'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.networkRestarted': 'ネットワーク設定を保存し、コアを再起動しました',
'config.notice.networkNextStart': 'ネットワーク設定を保存しました。次回のコア起動時に反映されます',
'config.notice.proxyUpdated': 'プロキシ URL を保存しました',
'config.notice.sessionAffinityEnabled': 'セッションアフィニティを有効にしました',
'config.notice.sessionAffinityDisabled': 'セッションアフィニティを無効にしました',
'config.notice.sessionTtlUpdated': 'セッションアフィニティ TTL を保存しました',
'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.saving': '保存中',
'config.network.saved': '保存済み',
'config.network.unsaved': '未保存の変更あり',
'config.network.confirmSave': '確認して保存',
'config.network.port': 'ポート',
'config.network.portHint': '範囲は 1〜65535。コア実行中の変更時は自動的に再起動します',
'config.network.allowLan': 'LAN アクセスを許可',
'config.network.allowLanHint': 'LAN 内の他のデバイスからこのプロキシへのアクセスを許可します',
'config.network.proxyUrl': 'プロキシ URL',
'config.network.proxyPlaceholder': '例:socks5://127.0.0.1:7890',
'config.network.proxyHint': 'グローバル上流プロキシ。空欄の場合は使用しません',
'config.network.sessionAffinity': 'セッションアフィニティ',
'config.network.sessionAffinityHint': '同じセッションでは以前選択した認証情報を優先します',
'config.network.sessionTtl': 'セッションアフィニティ TTL',
'config.network.sessionTtlHint': '例:1h。空欄の場合はコアのデフォルト値を使用します',
'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': '認証ファイルを削除しました',
'authFiles.deleteAllConfirm': 'ディスク上の認証ファイルをすべて削除しますか?実行時認証は削除されません。',
'authFiles.deletedAll': 'ディスク上の認証ファイルをすべて削除しました',
'common.copyFailed': 'コピーに失敗しました',
'authFiles.title': '認証ファイル',
'authFiles.summary': 'ファイル {files} 件 · 無効 {disabled} 件',
'common.refresh': '更新',
'authFiles.clearDisk': 'ディスクファイルを消去',
'common.upload': 'アップロード',
'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.list.detecting': '検出中',
'agents.list.unsupported': '現在のプラットフォームでは非対応',
'agents.list.notInstalled': 'インストールを検出できません',
'agents.list.modified': '変更済み · {model}',
'agents.list.installedVersion': 'インストール済み · {version}',
'agents.list.installed': 'インストール済み · 元の設定を維持',
'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.applyFirst': '選択したモデルはまだ適用されていません。先に「設定変更を適用」をクリックしてください',
'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.currentPage': '現在のページ',
'agents.sessions.active': '未アーカイブ',
'agents.sessions.archived': 'アーカイブ済み',
'agents.sessions.database': 'データベース',
'agents.sessions.databaseMissing': 'セッションデータベースが見つかりません',
'agents.sessions.repairTitle': '過去のセッションを復元',
'agents.sessions.repairDescription': '他の Provider のセッションを現在のセッション Provider に同期します。',
'agents.sessions.autoRepair': '過去のセッションを自動復元',
'agents.sessions.settingLoading': '読み込み中',
'agents.sessions.settingOn': 'オン',
'agents.sessions.settingOff': 'オフ',
'agents.sessions.settingLoadFailed': '自動復元設定の読み込みに失敗しました:{error}',
'agents.sessions.applyManagedFirst': '先に Codex の CPA 管理設定を適用してください',
'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.settingFailed': '自動復元設定の保存に失敗しました:{error}',
'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.notFetched': '未取得',
'agents.useModel': '使用モデル',
'agents.pending': '未適用',
'agents.model.readingAvailable': '利用可能なモデルを読み込んでいます',
'agents.model.current': '現在適用中:{model}',
'agents.model.firstSelection': '利用可能なモデル {count} 件。初回は先頭を選択します',
'agents.modify.title': '設定変更',
'agents.modify.oauthConfiguration': 'OAuth 設定方式',
'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': 'OAuth 設定方式が有効ですが、有効な Codex のログイン認証情報が見つかりません。起動する前に Codex で ChatGPT アカウントにログインしてください。',
'agents.oauthLoginRequired.confirm': '了解しました',
'agents.modify.apply': '設定変更を適用',
'agents.modify.default': 'デフォルト設定',
'agents.modify.clear': '設定を消去',
'agents.modify.invalid': '現在の設定を解析できません。「設定変更を適用」は最小の有効な設定を再構築し、「デフォルト設定」はファイル全体をリセットします。',
'agents.modify.applied': 'アプリが管理するフィールドは適用済みで、それ以外のユーザー設定は保持されています。',
'agents.launch.enableFirst': '先に設定変更を適用してください',
'agents.launch.applyFirst': '先に選択中のモデルを適用してください',
'agents.launch.starting': '起動中',
'agents.launch.startCli': 'CLI を起動',
'agents.launch.startApp': 'App を起動',
'agents.launch.start': '{target} を起動',
'agents.launch.unavailable': '起動できません',
'agents.launch.closeChatgpt': 'ChatGPT App を終了',
'agents.launch.closingChatgpt': '終了中',
'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 設定を消去しました。',
'agents.closeApp.title': 'ChatGPT App を終了',
'agents.closeApp.description': 'このコンピューターで実行中の ChatGPT App プロセスとその子プロセスをすべて終了します。生成中の応答や未保存の状態が失われる可能性があります。',
'agents.closeApp.confirm': 'App を終了',
'agents.closeApp.success': 'ChatGPT App を終了しました({count} プロセス)。',
'agents.closeApp.notRunning': 'ChatGPT App は実行されていません。',
'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} 件 · {models}',
'apiAccess.priorityValue': '優先度 {priority}',
'apiAccess.runtimeCredential': '実行時認証情報 {index}…',
'apiAccess.enable': '接続を有効化',
'apiAccess.disable': '接続を無効化',
'apiAccess.status.disabled': '無効',
'apiAccess.status.enabled': '有効',
'apiAccess.toggleAria': '{remark} 接続の{action}スイッチ',
'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.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.reinstallTitle': '現在のバージョンを再インストール',
'kernel.versions.reinstall': '再インストール',
'kernel.versions.noBundled': 'このリリースには組み込みコアが含まれていません',
'kernel.versions.offlineInstall': 'オフラインインストール',
'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.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>>;