{
  "common": {
    "save": "保存",
    "cancel": "キャンセル",
    "delete": "削除",
    "loading": "読み込み中...",
    "error": "エラーが発生しました",
    "success": "成功",
    "confirm": "よろしいですか？",
    "refresh": "リフレッシュ",
    "close": "閉じる",
    "add": "追加",
    "edit": "編集",
    "search": "検索",
    "back": "戻る",
    "next": "次へ",
    "submit": "送信する",
    "reset": "リセット",
    "copy": "コピー",
    "copied": "コピーしました！",
    "enabled": "有効",
    "disabled": "無効",
    "active": "アクティブ",
    "inactive": "非アクティブ",
    "noData": "利用可能なデータがありません",
    "configure": "設定する",
    "manage": "管理する",
    "name": "名前",
    "actions": "アクション",
    "status": "ステータス",
    "type": "種類",
    "model": "モデル",
    "models": "モデル",
    "provider": "プロバイダー",
    "account": "アカウント",
    "time": "時間",
    "details": "詳細",
    "created": "作成されました",
    "lastUsed": "最後に使用したもの",
    "loadMore": "もっと読み込む",
    "noResults": "結果が見つかりませんでした",
    "reloadPage": "ページをリロードする",
    "connected": "接続済み",
    "disconnected": "切断されました",
    "notConfigured": "未設定",
    "testConnection": "テスト接続",
    "enable": "有効にする",
    "disable": "無効にする",
    "columns": "列",
    "newest": "新しい順",
    "oldest": "古い順",
    "all": "すべて",
    "none": "なし",
    "yes": "はい",
    "no": "いいえ",
    "warning": "警告",
    "note": "注記",
    "free": "無料",
    "skipToContent": "コンテンツにスキップ"
  },
  "sidebar": {
    "home": "ホーム",
    "dashboard": "ダッシュボード",
    "providers": "プロバイダー",
    "combos": "コンボ",
    "usage": "使用法",
    "analytics": "分析",
    "costs": "コスト",
    "health": "健康",
    "limits": "制限と割り当て",
    "cliTools": "CLIツール",
    "media": "メディア",
    "settings": "設定",
    "translator": "翻訳者",
    "docs": "ドキュメント",
    "issues": "問題点",
    "apiManager": "APIマネージャー",
    "logs": "ログ",
    "auditLog": "監査ログ",
    "shutdown": "シャットダウン",
    "restart": "再起動",
    "shutdownConfirm": "オムニルートをシャットダウンしますか?",
    "restartConfirm": "オムニルートを再起動しますか?",
    "version": "v{version}",
    "debug": "デバッグ",
    "system": "システム",
    "help": "ヘルプ",
    "serverDisconnected": "サーバーが切断されました",
    "serverDisconnectedMsg": "プロキシ サーバーが停止しているか、再起動中です。",
    "expandSidebar": "サイドバーを展開する",
    "collapseSidebar": "サイドバーを折りたたむ",
    "themes": "Themes",
    "presetColors": "Popular colors",
    "createTheme": "Create theme",
    "chooseColor": "Pick one color",
    "themeCoral": "Coral",
    "themeBlue": "Blue",
    "themeRed": "Red",
    "themeGreen": "Green",
    "themeViolet": "Violet",
    "themeOrange": "Orange",
    "themeCyan": "Cyan",
    "endpoints": "エンドポイント",
    "playground": "プレイグラウンド",
    "agents": "エージェント",
    "cliToolsShort": "ツール"
  },
  "themesPage": {
    "title": "Themes",
    "description": "Choose a preset theme or create your own with a single color",
    "presetColors": "Popular colors",
    "customTheme": "Custom theme",
    "customThemeDesc": "Click create theme and pick one color",
    "createTheme": "Create theme",
    "activePreset": "Active theme"
  },
  "header": {
    "logout": "ログアウト",
    "language": "言語",
    "providers": "プロバイダー",
    "providerDescription": "AI プロバイダー接続を管理します",
    "combos": "コンボ",
    "comboDescription": "フォールバック付きのモデルコンボ",
    "usage": "使用状況と分析",
    "usageDescription": "API の使用状況、トークンの消費、リクエスト ログを監視します。",
    "analytics": "アナリティクス",
    "analyticsDescription": "チャート、トレンド、評価の洞察",
    "cliTools": "CLIツール",
    "cliToolsDescription": "CLI ツールの構成",
    "home": "ホーム",
    "homeDescription": "オムニルートへようこそ",
    "endpoint": "エンドポイント",
    "endpointDescription": "プロキシエンドポイント、MCP、A2A、APIエンドポイントを管理",
    "settings": "設定",
    "settingsDescription": "設定を管理します",
    "openaiCompatible": "OpenAI対応",
    "anthropicCompatible": "Anthropic 互換",
    "media": "Media",
    "mediaDescription": "Generate images, videos, and music",
    "themes": "Themes",
    "themesDescription": "Choose a color theme for the whole dashboard panel",
    "mcp": "MCP",
    "mcpDescription": "Model Context Protocol server management and tools",
    "a2a": "A2A",
    "a2aDescription": "Agent-to-Agent protocol tasks and observability"
  },
  "home": {
    "quickStart": "クイックスタート",
    "quickStartDesc": "4 ステップでセットアップ完了。プロバイダー接続、モデルルーティング、監視まで一括で行えます。",
    "fullDocs": "完全版ドキュメント",
    "step1Title": "1. APIキーの作成",
    "step1Desc": "<endpoint>Endpoint</endpoint> -> Registered Keys に移動し、環境ごとに 1 つのキーを作成します。",
    "step2Title": "2. プロバイダーを接続",
    "step2Desc": "<providers>Providers</providers> でアカウントを追加します。OAuth、API Key、無料枠に対応しています。",
    "step3Title": "3. クライアントを設定",
    "step3Desc": "IDE または API クライアントの Base URL を {url} に設定します。",
    "step4Title": "4. 監視と最適化",
    "step4Desc": "<logs>リクエストログ</logs> と <analytics>アナリティクス</analytics> でトークン・コスト・エラーを追跡します。",
    "providersOverview": "プロバイダーの概要",
    "configuredOf": "{configured} は {total} の利用可能なプロバイダーで構成されています",
    "noModelsAvailable": "このプロバイダーで利用できるモデルはありません。",
    "configureFirst": "最初に {providers} で接続を構成します",
    "configureProvider": "プロバイダーの構成",
    "modelAvailable": "{count} モデルが利用可能",
    "modelsAvailable": "{count} モデルが利用可能",
    "connectionsActive": "{count} 接続がアクティブです",
    "connectionsActivePlural": "{count} 接続がアクティブです",
    "copyModelName": "モデル名をコピーする",
    "documentation": "ドキュメント",
    "healthMonitor": "ヘルスモニター",
    "reportIssue": "問題を報告する",
    "activeError": "{active} アクティブ · {errors} エラー",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "APIキー",
    "requestsShort": "{count} 件",
    "providerModelsTitle": "{provider} - モデル",
    "copiedModel": "コピーしました: {model}",
    "aliasLabel": "別名"
  },
  "analytics": {
    "title": "分析",
    "overviewDescription": "すべてのプロバイダーとモデルにわたる API 使用パターン、トークン消費量、コスト、アクティビティの傾向を監視します。",
    "evalsDescription": "評価スイートを実行して、LLM エンドポイントをテストおよび検証します。モデルの品質を比較し、回帰を検出し、待ち時間をベンチマークします。",
    "overview": "概要",
    "evals": "エヴァルス"
  },
  "apiManager": {
    "title": "APIキー",
    "createKey": "APIキーの作成",
    "key": "キー",
    "revokeKey": "キーを取り消す",
    "revokeConfirm": "この API キーを取り消してもよろしいですか?",
    "noKeys": "API キーはまだありません",
    "noKeysDesc": "エンドポイントへのリクエストを認証するための最初の API キーを作成します",
    "keyLabel": "キーラベル",
    "permissions": "権限",
    "expiresAt": "有効期限が切れます",
    "never": "決してしない",
    "revoke": "取り消し",
    "showKey": "キーを表示",
    "hideKey": "キーを隠す",
    "copyKey": "APIキーをコピーする",
    "allModels": "全モデル",
    "selectedModels": "選択されたモデル",
    "readOnly": "読み取り専用",
    "fullAccess": "フルアクセス",
    "keyManagement": "APIキー管理",
    "keyManagementDesc": "エンドポイントへのリクエストを認証するための API キーを作成および管理する",
    "totalKeys": "キーの総数",
    "restricted": "制限付き",
    "totalRequests": "総リクエスト数",
    "modelsAvailable": "利用可能なモデル",
    "registeredKeys": "登録されたキー",
    "keysRegistered": "{count} キーが登録されました",
    "keyRegistered": "{count} キーが登録されました",
    "keysSecurityNote": "各キーは使用状況の追跡を分離しており、個別に取り消すことができます。キーは、セキュリティのために作成後にマスクされます。",
    "createFirstKey": "最初のキーを作成する",
    "name": "名前",
    "usage": "使用法",
    "created": "作成されました",
    "actions": "アクション",
    "reqs": "要求",
    "neverUsed": "一度も使用されていない",
    "deleteConfirm": "この API キーを削除しますか?",
    "usageTips": "使用上のヒント",
    "tipAuth": "Authorization ヘッダーの API キーをベアラー YOUR_KEY として使用します",
    "tipSecure": "キーは作成中に一度だけ表示されます - 安全に保管してください",
    "tipSeparate": "異なるクライアントまたは環境に対して個別のキーを作成する",
    "tipRestrict": "セキュリティとコスト管理を向上させるためにキーを特定のモデルに制限する",
    "keyName": "キー名",
    "keyNamePlaceholder": "例: プロダクションキー、開発キー",
    "keyNameDesc": "このキーの目的を識別するためのわかりやすい名前を選択してください",
    "keyCreated": "APIキーが作成されました",
    "keyCreatedSuccess": "キーが正常に作成されました。",
    "keyCreatedNote": "このキーをコピーして保存してください。再度表示されなくなります。",
    "done": "完了",
    "savePermissions": "権限の保存",
    "allowAll": "すべて許可",
    "restrict": "制限する",
    "allowAllInfo": "このキーは、利用可能なすべてのモデルにアクセスできます。",
    "restrictInfo": "このキーは、{total} モデルの {selected} にアクセスできます。",
    "selected": "{count} が選択されました",
    "all": "すべて",
    "clear": "クリア",
    "searchModels": "名前またはプロバイダーでモデルを検索...",
    "noModelsFound": "モデルが見つかりません",
    "keyNameRequired": "キー名は必須です",
    "keyNameTooLong": "キー名は {max} 文字以下である必要があります",
    "keyNameInvalid": "キー名には文字、数字、スペース、ハイフン、アンダースコアのみを含めることができます",
    "invalidKeyName": "無効なキー名です",
    "failedCreateKey": "キーの作成に失敗しました",
    "failedCreateKeyRetry": "キーの作成に失敗しました。もう一度試してください。",
    "invalidKeyId": "無効なキーID",
    "failedDeleteKey": "キーの削除に失敗しました",
    "failedDeleteKeyRetry": "キーの削除に失敗しました。もう一度試してください。",
    "invalidModelsSelection": "無効なモデルの選択",
    "cannotSelectMoreThanModels": "{max} モデルを超えるモデルは選択できません",
    "failedUpdatePermissions": "権限の更新に失敗しました",
    "failedUpdatePermissionsRetry": "権限の更新に失敗しました。もう一度試してください。",
    "unknownProvider": "不明",
    "copyMaskedKey": "マスクされたキーをコピーする",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "最後: {date}",
    "editPermissions": "権限の編集",
    "deleteKey": "削除キー",
    "model": "{count} モデル",
    "models": "{count} モデル",
    "permissionsTitle": "権限: {name}",
    "allowAllDesc": "このキーは、利用可能なすべてのモデルにアクセスできます。",
    "restrictDesc": "このキーは、{totalModels} モデルの {selectedCount} にアクセスできます。",
    "selectedCount": "{count} が選択されました"
  },
  "auditLog": {
    "title": "監査ログ",
    "searchPlaceholder": "検索アクション...",
    "action": "アクション",
    "actor": "俳優",
    "target": "ターゲット",
    "ipAddress": "IPアドレス",
    "timestamp": "タイムスタンプ",
    "noEntries": "監査エントリが見つかりませんでした",
    "filterByAction": "アクションでフィルタリング...",
    "filterByActor": "俳優でフィルター...",
    "filterEntriesAria": "監査ログエントリをフィルタリングする",
    "filterByActionTypeAria": "アクションの種類でフィルタリングする",
    "filterByActorAria": "俳優で絞り込む",
    "refreshAuditLogAria": "監査ログを更新する",
    "tableAria": "監査ログエントリ",
    "failedFetchAuditLog": "監査ログの取得に失敗しました",
    "notAvailable": "—",
    "description": "管理アクションとセキュリティ イベント",
    "showing": "{count} エントリを表示しています (オフセット {offset})",
    "previous": "前へ"
  },
  "media": {
    "title": "メディアプレイグラウンド",
    "subtitle": "画像、動画、音楽を生成",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "生成",
    "generating": "Generating...",
    "loadingModels": "Loading available models...",
    "noModels": "No models available. Configure providers with media capabilities first.",
    "error": "Generation Failed",
    "result": "Result",
    "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
    "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
    "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI."
  },
  "cliTools": {
    "title": "CLIツール",
    "noActiveProviders": "アクティブなプロバイダーはありません",
    "noActiveProvidersDesc": "CLI ツールを設定するには、最初にプロバイダーを追加して接続してください。",
    "mapModels": "地図モデル",
    "testConnection": "テスト接続",
    "connectionStatus": "接続ステータス",
    "configureEndpoint": "エンドポイントの構成",
    "instructions": "指示",
    "modelMapping": "モデルマッピング",
    "baseUrl": "ベースURL",
    "apiKey": "APIキー",
    "configured": "設定済み",
    "notConfigured": "未設定",
    "notInstalled": "インストールされていません",
    "custom": "カスタム",
    "unknown": "不明",
    "lastSavedAt": "最終保存日: {date}",
    "never": "決してしない",
    "justNow": "たった今",
    "minutesAgoShort": "{count}分前",
    "hoursAgoShort": "{count}時間前",
    "daysAgoShort": "{count}日前",
    "monthsAgoShort": "{count} か月前",
    "yearsAgoShort": "{count}年前",
    "runtimeCheckFailed": "実行時チェックに失敗しました",
    "yourApiKeyPlaceholder": "あなたの API キー",
    "modelPlaceholder": "プロバイダー/モデル ID",
    "configurationSaved": "設定が正常に保存されました。",
    "failedToSave": "設定の保存に失敗しました。",
    "noApiKeysCreateOne": "API キーがありません - [キー] ページで API キーを作成します",
    "defaultOmnirouteKey": "sk_omniroute (デフォルト)",
    "selectModel": "モデルの選択",
    "selectModelForAlias": "{alias} のモデルを選択してください",
    "selectModelForTool": "{tool} のモデルを選択してください",
    "select": "選択",
    "clear": "クリア",
    "comingSoon": "近日公開予定",
    "checkingRuntime": "実行時のステータスを確認しています...",
    "guideOnlyIntegration": "ガイドのみの統合 (ローカル ランタイムは不要)",
    "cliRuntimeDetected": "CLI ランタイムが検出され準備完了",
    "cliFoundNotRunnable": "CLI は見つかりましたが、実行できません{reason}",
    "cliRuntimeNotDetected": "CLI ランタイムが検出されない",
    "binary": "バイナリ",
    "configPath": "構成パス",
    "configPathShort": "構成",
    "failedCheckRuntimeStatus": "実行時のステータスの確認に失敗しました。",
    "copy": "コピー",
    "copied": "コピーされました",
    "copyConfig": "構成のコピー",
    "saveConfig": "設定の保存",
    "selectionSaved": "選択内容が保存されました",
    "guide": "ガイド",
    "detected": "検出されました",
    "notReady": "準備ができていません",
    "active": "アクティブ",
    "inactive": "非アクティブ",
    "startMitm": "MITMを開始する",
    "stopMitm": "MITMを停止する",
    "mitmStarted": "MITM は正常に開始されました。",
    "mitmStopped": "MITM は正常に停止しました。",
    "failedStart": "MITMの開始に失敗しました",
    "failedStop": "MITMの停止に失敗しました",
    "saveMappings": "マッピングの保存",
    "mappingsSaved": "マッピングが保存されました!",
    "failedSaveMappings": "マッピングの保存に失敗しました",
    "howItWorks": "仕組み:",
    "antigravityHowWorksDesc": "Antigravity は Google のエンドポイントにリクエストを送信します。 MITM はそれらをインターセプトし、OmniRoute にリダイレクトします。",
    "antigravityStep1": "1. MITM を開始して、OmniRoute 経由でリクエストをルーティングします。",
    "antigravityStep2Prefix": "2.追加",
    "antigravityStep2Suffix": "ホスト ファイルに 127.0.0.1 として追加します。",
    "antigravityStep3": "3. Antigravity を開くと、リクエストがプロキシされます。",
    "sudoPasswordRequiredTitle": "Sudo パスワードが必要です",
    "sudoPasswordHint": "ホスト ファイルとシステム プロキシ設定を変更するには、管理者パスワードが必要です。",
    "enterSudoPassword": "sudoパスワードを入力してください",
    "sudoPasswordRequiredError": "Sudo パスワードが必要です。",
    "cancel": "キャンセル",
    "confirm": "確認する",
    "settingsApplied": "設定が正常に適用されました。",
    "failedApplySettings": "設定の適用に失敗しました",
    "settingsReset": "設定が正常にリセットされました。",
    "failedResetSettings": "設定のリセットに失敗しました",
    "backupRestored": "バックアップが復元されました！",
    "failedRestore": "復元に失敗しました",
    "checkingCli": "{tool} CLI を確認しています...",
    "cliNotRunnable": "{tool} CLI はインストールされていますが、実行できません",
    "cliNotInstalled": "{tool} CLI がインストールされていません",
    "cliNotDetected": "{tool} CLI が検出されませんでした",
    "cliDetectedReady": "{tool} CLI が検出され準備完了",
    "cliFoundFailedHealthcheck": "{tool} CLI が見つかりましたが、ランタイム ヘルスチェック {reason} に失敗しました。",
    "installCliPrompt": "この機能を使用するには、{tool} CLI をインストールしてください。",
    "installCodexPrompt": "自動適用機能を使用するには、Codex CLI をインストールしてください。",
    "hide": "隠す",
    "howToInstall": "インストール方法",
    "installationGuide": "インストールガイド",
    "platforms": "macOS / Linux / Windows:",
    "afterInstallationRun": "インストール後、実行します",
    "toVerify": "確認するために。",
    "current": "現在",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "デフォルトにリセットする",
    "providerModelPlaceholder": "プロバイダー/モデル ID",
    "apply": "申し込む",
    "reset": "リセット",
    "manualConfig": "手動設定",
    "backups": "バックアップ",
    "configBackups": "構成のバックアップ",
    "noBackupsYet": "まだバックアップはありません。バックアップは、適用またはリセットの前に自動的に作成されます。",
    "restore": "復元",
    "backupRestoredReloading": "バックアップが復元されました！ステータスをリロード中...",
    "failedRestoreBackup": "バックアップの復元に失敗しました",
    "applied": "適用されました！",
    "failed": "失敗しました",
    "resetDone": "リセット！",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute は OpenAI 互換プロバイダーとして構成されています",
    "provider": "プロバイダー",
    "model": "モデル",
    "providers": "プロバイダー",
    "auth": "認証",
    "noApiKeysAvailable": "利用可能な API キーがありません",
    "usingDefaultOmniroute": "デフォルトの使用: sk_omniroute",
    "updateConfig": "構成の更新",
    "applyConfig": "構成の適用",
    "noBackupsAvailable": "利用可能なバックアップはありません。",
    "profileSaved": "プロフィール「{name}」を保存しました!",
    "failedSaveProfile": "プロファイルの保存に失敗しました",
    "profileActivated": "プロフィールが有効になりました！",
    "failedActivateProfile": "プロファイルをアクティブ化できませんでした",
    "profiles": "プロフィール",
    "savedProfiles": "保存されたプロファイル",
    "noProfilesYet": "プロファイルはまだ保存されていません。現在の設定を以下のプロファイルとして保存します。",
    "activate": "アクティブ化する",
    "deleteProfile": "プロフィールの削除",
    "profileNamePlaceholder": "プロファイル名 (例: 個人アカウント)",
    "saveCurrent": "現在の保存",
    "codexAuthNotePrefix": "コーデックスの用途",
    "codexAuthNoteMiddle": "と",
    "codexAuthNoteSuffix": "「適用」をクリックして自動設定を行います。",
    "claudeManualConfiguration": "Claude CLI - 手動構成",
    "codexManualConfiguration": "Codex CLI - 手動構成",
    "droidManualConfiguration": "Factory Droid - 手動構成",
    "openClawManualConfiguration": "オープンクロー - 手動設定",
    "clineManualConfiguration": "クライン手動設定",
    "kiloManualConfiguration": "キロコードの手動設定",
    "toolDescriptions": {
      "antigravity": "MITM を備えた Google Antigravity IDE",
      "claude": "Anthropic Claude コード CLI",
      "codex": "OpenAI コーデックス CLI",
      "droid": "ファクトリー ドロイド AI アシスタント",
      "openclaw": "オープンクロー AI アシスタント",
      "cline": "Cline AI コーディング アシスタント CLI",
      "kilo": "Kilo Code AI アシスタント CLI",
      "cursor": "カーソルAIコードエディター",
      "continue": "AIアシスタントを続ける",
      "opencode": "OpenCode AI coding agent (Terminal)",
      "kiro": "Amazon Kiro — AI-powered IDE"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "この機能を使用するには、Cursor Pro アカウントが必要です。",
          "1": "カーソルは独自のサーバーを介してリクエストをルーティングするため、ローカル エンドポイントはサポートされません。設定でクラウドエンドポイントを有効にしてください。"
        },
        "steps": {
          "1": {
            "title": "設定を開く",
            "desc": "設定 -> モデルに移動します"
          },
          "2": {
            "title": "OpenAI APIを有効にする",
            "desc": "「OpenAI API キー」オプションを有効にする"
          },
          "3": {
            "title": "ベースURL"
          },
          "4": {
            "title": "APIキー"
          },
          "5": {
            "title": "カスタムモデルの追加",
            "desc": "「すべてのモデルを表示」→「カスタムモデルを追加」をクリックします。"
          },
          "6": {
            "title": "モデルの選択"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "構成を開く",
            "desc": "Continue 構成ファイルを開く"
          },
          "2": {
            "title": "APIキー"
          },
          "3": {
            "title": "モデルの選択"
          },
          "4": {
            "title": "モデル構成の追加",
            "desc": "次の構成をモデル配列に追加します。"
          }
        }
      },
      "opencode": {
        "steps": {
          "1": {
            "title": "Install OpenCode",
            "desc": "Install via npm: npm install -g opencode-ai"
          },
          "2": {
            "title": "API Key"
          },
          "3": {
            "title": "Set Base URL",
            "desc": "opencode config set baseUrl {{baseUrl}}"
          },
          "4": {
            "title": "Select Model"
          }
        }
      },
      "kiro": {
        "steps": {
          "1": {
            "title": "Open Kiro Settings",
            "desc": "Go to Settings → AI Provider"
          },
          "2": {
            "title": "Base URL",
            "desc": "Paste your OmniRoute endpoint URL"
          },
          "3": {
            "title": "API Key"
          },
          "4": {
            "title": "Select Model"
          }
        }
      }
    }
  },
  "combos": {
    "title": "コンボ",
    "description": "重み付けルーティングとフォールバックのサポートを備えたモデルのコンボを作成する",
    "createCombo": "コンボを作成する",
    "editCombo": "コンボを編集する",
    "deleteCombo": "コンボの削除",
    "noModels": "モデルがありません",
    "noModelsYet": "まだモデルは追加されていません",
    "addModel": "モデルの追加",
    "addModelToCombo": "モデルをコンボに追加",
    "routingStrategy": "ルーティング戦略",
    "maxRetries": "最大再試行回数",
    "timeout": "タイムアウト (ミリ秒)",
    "healthcheck": "ヘルスチェック",
    "priority": "優先順位",
    "fallback": "フォールバック",
    "roundRobin": "ラウンドロビン",
    "random": "ランダム",
    "leastLatency": "最小レイテンシ",
    "comboName": "コンボ名",
    "comboNamePlaceholder": "私のコンボ",
    "deleteConfirm": "このコンボを削除しますか?",
    "noCombosYet": "まだコンボはありません",
    "comboCreated": "コンボが正常に作成されました",
    "comboUpdated": "コンボが正常に更新されました",
    "comboDeleted": "コンボが削除されました",
    "failedCreate": "コンボ作成に失敗しました",
    "failedUpdate": "コンボの更新に失敗しました",
    "errorCreating": "コンボ作成エラー",
    "errorUpdating": "コンボ更新エラー",
    "errorDeleting": "コンボ削除エラー",
    "testFailed": "テストリクエストが失敗しました",
    "failedToggle": "コンボの切り替えに失敗しました",
    "testResults": "テスト結果 — {name}",
    "resolvedBy": "解決者:",
    "more": "+{count} 詳細",
    "reqs": "要求",
    "success": "成功",
    "proxyConfigured": "プロキシが設定されました",
    "copyComboName": "コンボ名をコピーする",
    "enableCombo": "コンボを有効にする",
    "disableCombo": "コンボを無効にする",
    "testCombo": "テストコンボ",
    "duplicate": "重複",
    "proxyConfig": "プロキシ構成",
    "nameRequired": "名前は必須です",
    "nameInvalid": "文字、数字、-、_、/、および のみ。許可される",
    "nameHint": "文字、数字、-、_、/、および 。許可される",
    "priorityDesc": "順次フォールバック: 最初にモデル 1、次にモデル 2 というように試行します。",
    "weightedDesc": "フォールバックを使用して重量パーセントに基づいてトラフィックを分散します。",
    "roundRobinDesc": "循環分散: 各リクエストはローテーションで次のモデルに送信されます。",
    "randomDesc": "均一なランダム選択、その後残りのモデルへのフォールバック",
    "leastUsedDesc": "リクエストが最も少ないモデルを選択し、時間の経過とともに負荷のバランスをとります",
    "costOptimizedDesc": "価格に基づいて最初に最も安価なモデルにルーティングします",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "モデル",
    "autoBalance": "オートバランス",
    "advancedSettings": "詳細設定",
    "retryDelay": "再試行遅延 (ミリ秒)",
    "concurrencyPerModel": "同時実行性 / モデル",
    "queueTimeout": "キューのタイムアウト (ミリ秒)",
    "advancedHint": "グローバルなデフォルトを使用するには、空のままにします。これらはプロバイダーごとの設定をオーバーライドします。",
    "moveUp": "上に移動",
    "moveDown": "下に移動",
    "removeModel": "削除",
    "saving": "保存中...",
    "weighted": "加重",
    "leastUsed": "最も使用頻度の低いもの",
    "costOpt": "コスト最適化",
    "strategyGuideTitle": "How to use this strategy",
    "strategyGuideWhen": "When to use",
    "strategyGuideAvoid": "Avoid when",
    "strategyGuideExample": "Example",
    "strategyGuide": {
      "priority": {
        "when": "You have one preferred model and only want fallback on failure.",
        "avoid": "You need request distribution across models.",
        "example": "Primary coding model with cheaper backup for outages."
      },
      "weighted": {
        "when": "You need controlled traffic split across models.",
        "avoid": "You cannot maintain accurate weights over time.",
        "example": "80% stable model + 20% canary model rollout."
      },
      "round-robin": {
        "when": "You want predictable and even distribution.",
        "avoid": "Models differ too much in latency or cost.",
        "example": "Same model on multiple accounts to spread throughput."
      },
      "random": {
        "when": "You want simple distribution with minimal setup.",
        "avoid": "You need strict traffic guarantees.",
        "example": "Quick prototyping with equivalent models."
      },
      "least-used": {
        "when": "You want adaptive balancing based on live demand.",
        "avoid": "Traffic is too low to benefit from usage balancing.",
        "example": "Mixed workloads where one model often gets overloaded."
      },
      "cost-optimized": {
        "when": "Cost reduction is your top priority.",
        "avoid": "Pricing data is missing or outdated.",
        "example": "Background or batch jobs where lower cost is preferred."
      }
    },
    "advancedHelp": {
      "maxRetries": "How many retries are attempted before failing a request.",
      "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
      "timeout": "Maximum request duration before aborting.",
      "healthcheck": "Skips unhealthy models/providers from routing decisions.",
      "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
      "queueTimeout": "How long a request can wait in queue before timing out."
    },
    "templatesTitle": "Quick templates",
    "templatesDescription": "Apply a starting profile, then adjust models and config.",
    "templateApply": "Apply template",
    "templateHighAvailability": "High availability",
    "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
    "templateCostSaver": "Cost saver",
    "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
    "templateBalanced": "Balanced load",
    "templateBalancedDesc": "Least-used routing to spread demand over time.",
    "usageGuideHide": "Hide",
    "usageGuideDontShowAgain": "Don't show again",
    "usageGuideShow": "Show guide",
    "quickTestTitle": "Combo ready to validate",
    "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
    "testNow": "Test now",
    "pricingCoverage": "Pricing coverage",
    "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
    "pricingAvailable": "Pricing available",
    "pricingMissing": "No pricing",
    "pricingAvailableShort": "priced",
    "pricingMissingShort": "no-price",
    "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
    "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
    "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
    "readinessTitle": "保存する準備はできましたか?",
    "readinessDescription": "このコンボを作成または更新する前に、チェックリストを確認してください。",
    "readinessCheckName": "コンボ名は有効です",
    "readinessCheckModels": "少なくとも 1 つのモデルが選択されています",
    "readinessCheckWeights": "加重合計は 100%",
    "readinessCheckWeightsOptional": "重量ルールは不要です",
    "readinessCheckPricing": "価格データが利用可能です",
    "readinessCheckPricingOptional": "価格設定ルールは不要です",
    "saveBlockedTitle": "次の項目が修正されるまで、保存はブロックされます。",
    "saveBlockName": "コンボ名を定義します。",
    "saveBlockModels": "少なくとも 1 つのモデルを追加します。",
    "saveBlockWeighted": "重みを 100% に設定します (現在: {total}%)。",
    "saveBlockPricing": "少なくとも 1 つのモデルに価格を追加するか、別の戦略を選択してください。",
    "recommendationsLabel": "Recommended setup",
    "applyRecommendations": "Apply recommendations",
    "recommendationsUpdated": "Recommendations updated for {strategy}.",
    "recommendationsApplied": "Recommendations applied to this combo.",
    "strategyRecommendations": {
      "priority": {
        "title": "Fail-safe baseline",
        "description": "Use one primary model and keep fallback chain short and reliable.",
        "tip1": "Put your most reliable model first.",
        "tip2": "Keep 1-2 backup models with similar quality.",
        "tip3": "Use safe retries to absorb transient provider failures."
      },
      "weighted": {
        "title": "Controlled traffic split",
        "description": "Great for canary rollouts and gradual migration between models.",
        "tip1": "Start with conservative split like 90/10.",
        "tip2": "Keep the total at 100% and auto-balance after changes.",
        "tip3": "Monitor success and latency before increasing canary weight."
      },
      "round-robin": {
        "title": "Predictable load sharing",
        "description": "Best when models are equivalent and you need smooth distribution.",
        "tip1": "Use at least 2 models.",
        "tip2": "Set concurrency limits to avoid burst overload.",
        "tip3": "Use queue timeout to fail fast under saturation."
      },
      "random": {
        "title": "Quick spread with low setup",
        "description": "Use when you need simple distribution without strict guarantees.",
        "tip1": "Use models with similar latency profiles.",
        "tip2": "Keep retries enabled to absorb random misses.",
        "tip3": "Prefer this for experimentation, not strict SLAs."
      },
      "least-used": {
        "title": "Adaptive balancing",
        "description": "Routes to less-used models to reduce hotspots over time.",
        "tip1": "Works better under continuous traffic.",
        "tip2": "Combine with health checks for safer balancing.",
        "tip3": "Track per-model usage to validate distribution gains."
      },
      "cost-optimized": {
        "title": "Budget-first routing",
        "description": "Routes to lower-cost models when pricing metadata is available.",
        "tip1": "Ensure pricing coverage for all selected models.",
        "tip2": "Keep a quality fallback for hard prompts.",
        "tip3": "Use for batch/background jobs where cost is the main KPI."
      }
    },
    "templateFreeStack": "Free Stack ($0)",
    "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding."
  },
  "costs": {
    "title": "コスト",
    "budget": "予算",
    "totalCost": "総コスト",
    "breakdown": "コストの内訳",
    "noData": "コストデータなし",
    "byModel": "モデル別",
    "byProvider": "プロバイダー別"
  },
  "endpoint": {
    "title": "APIエンドポイント",
    "available": "利用可能なエンドポイント",
    "cloudProxy": "クラウドプロキシ",
    "disableConfirm": "クラウド プロキシを無効にしてもよろしいですか?",
    "baseUrl": "ベースURL",
    "apiKeyLabel": "APIキー",
    "registeredKeys": "登録されたキー",
    "chatCompletions": "チャットの完了",
    "responses": "応答",
    "listModels": "モデルの一覧表示",
    "usingCloudProxy": "クラウドプロキシの使用",
    "usingLocalServer": "ローカルサーバーの使用",
    "machineId": "マシン ID: {id}...",
    "disableCloud": "クラウドを無効にする",
    "enableCloud": "クラウドを有効にする",
    "modelsAcrossEndpoints": "{endpoints} エンドポイントにわたる {models} モデル",
    "chatDesc": "すべてのプロバイダーとのストリーミングおよび非ストリーミング チャット",
    "embeddings": "埋め込み",
    "embeddingsDesc": "検索および RAG パイプライン用のテキスト埋め込み",
    "imageGeneration": "画像生成",
    "imageDesc": "テキストプロンプトから画像を生成する",
    "rerank": "リランク",
    "rerankDesc": "クエリとの関連性によってドキュメントを再ランク付けする",
    "audioTranscription": "音声文字起こし",
    "audioTranscriptionDesc": "音声ファイルをテキストに変換する (Whisper)",
    "textToSpeech": "テキスト読み上げ",
    "textToSpeechDesc": "テキストを自然な音声に変換する",
    "moderations": "モデレーション",
    "moderationsDesc": "コンテンツの管理と安全性の分類",
    "responsesDesc": "Codexおよび高度なエージェントワークフロー向けOpenAI Responses API",
    "listModelsDesc": "接続されたすべてのプロバイダーの利用可能なモデルを一覧表示",
    "settingsApiDesc": "API経由でOmniRouteの設定を読み取り・変更",
    "settingsApi": "Settings API",
    "categoryCore": "コアAPI",
    "categoryMedia": "メディア＆マルチモーダル",
    "categoryUtility": "ユーティリティ＆管理",
    "enableCloudTitle": "クラウドプロキシを有効にする",
    "whatYouGet": "得られるもの",
    "cloudBenefitAccess": "世界中のどこからでも API にアクセス",
    "cloudBenefitShare": "エンドポイントをチームと簡単に共有",
    "cloudBenefitPorts": "ポートを開いたりファイアウォールを設定したりする必要はありません",
    "cloudBenefitEdge": "高速なグローバルエッジネットワーク",
    "cloudSessionNote": "クラウドは認証セッションを 1 日間保持します。使用されない場合は自動的に削除されます。",
    "cloudUnstableNote": "現在、Claude Code OAuth ではクラウドが不安定になる場合があります。",
    "cloudConnected": "クラウドプロキシが接続されました！",
    "connectingToCloud": "クラウドに接続しています...",
    "verifyingConnection": "接続を確認しています...",
    "connecting": "接続中...",
    "verifying": "確認中...",
    "connected": "つながりました！",
    "disableCloudTitle": "クラウドプロキシを無効にする",
    "disableWarning": "すべての認証セッションはクラウドから削除されます。",
    "syncingData": "最新のデータを同期しています...",
    "disablingCloud": "クラウドを無効にしています...",
    "syncing": "同期中...",
    "disabling": "無効化中...",
    "cloudConnectedVerified": "クラウド プロキシが接続され、確認されました。",
    "connectedVerificationPending": "接続済み — 検証保留中",
    "connectedVerificationPendingWithError": "接続済み — 検証保留中: {error}",
    "cloudDisabledSuccess": "クラウドは正常に無効になりました",
    "syncedSuccess": "正常に同期されました",
    "failedDisable": "クラウドを無効にできませんでした",
    "failedEnable": "クラウドを有効にできませんでした",
    "cloudRequestTimeout": "クラウドリクエストのタイムアウト",
    "cloudRequestFailed": "クラウドリクエストが失敗しました",
    "cloudWorkerUnreachable": "クラウド ワーカーに到達できませんでした。クラウド サービスが実行されていることを確認します (/cloud の npm run dev)。",
    "connectionFailed": "接続に失敗しました",
    "syncFailed": "クラウドデータの同期に失敗しました",
    "providerModelsTitle": "{provider} — モデル",
    "noModelsForProvider": "このプロバイダーで利用できるモデルはありません。",
    "chat": "チャット",
    "embedding": "埋め込み",
    "image": "画像",
    "custom": "カスタム",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "sectionTitle": "Integration Surface",
    "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
    "tabApis": "OpenAI-compatible APIs",
    "tabProtocols": "Protocols",
    "tabsAria": "Endpoint sections",
    "protocolsTitle": "Protocols",
    "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
    "mcpCardTitle": "MCP Server",
    "mcpCardDescription": "Model Context Protocol over stdio",
    "a2aCardTitle": "A2A Server",
    "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
    "protocolToolsLabel": "Tools",
    "protocolTasksLabel": "Tasks",
    "protocolActiveStreamsLabel": "Active streams",
    "protocolLastActivity": "Last activity",
    "quickStart": "Quick Start",
    "openMcpDashboard": "Open MCP management",
    "openA2aDashboard": "Open A2A management",
    "mcpQuickStartTitle": "MCP Quick Start",
    "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
    "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
    "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
    "a2aQuickStartTitle": "A2A Quick Start",
    "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
    "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
    "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
    "completionsLegacy": "Completions (Legacy)",
    "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
  },
  "mcpDashboard": {
    "loading": "Loading MCP dashboard...",
    "activate": "activate",
    "deactivate": "deactivate",
    "confirmSwitchCombo": "{action} コンボ「{combo}」を確認しますか?",
    "switchComboFailed": "コンボ状態の切り替えに失敗しました。",
    "switchComboSuccess": "コンボ「{combo}」を更新しました。",
    "confirmApplyProfile": "復元プロファイル「{profile}」を適用しますか?",
    "applyProfileFailed": "復元プロファイルの適用に失敗しました。",
    "applyProfileSuccess": "プロファイル「{profile}」が適用されました。",
    "confirmResetBreakers": "すべてのサーキットブレーカーをリセットしますか?",
    "resetBreakersFailed": "サーキットブレーカーのリセットに失敗しました。",
    "resetBreakersSuccess": "サーキットブレーカーがリセットされました。",
    "processStatus": "プロセスステータス",
    "online": "オンライン",
    "offline": "オフライン",
    "pid": "PID",
    "sessionUptime": "Session uptime",
    "lastHeartbeat": "Last heartbeat",
    "activity24h": "Activity (24h)",
    "totalCalls": "Total calls",
    "successRate": "Success rate",
    "avgLatency": "Avg latency",
    "topTools": "Top tools",
    "noToolCalls24h": "No tool calls in the last 24 hours.",
    "runtimeDetails": "Runtime details",
    "transport": "Transport",
    "scopesEnforced": "Scopes enforced",
    "yes": "yes",
    "no": "no",
    "lastCall": "Last call",
    "heartbeatPath": "Heartbeat path",
    "operationalControls": "Operational controls",
    "switchCombo": "Switch combo",
    "inactive": "inactive",
    "active": "active",
    "activateCombo": "Activate combo",
    "deactivateCombo": "Deactivate combo",
    "applyResilienceProfile": "Apply resilience profile",
    "profileAggressive": "aggressive",
    "profileBalanced": "balanced",
    "profileConservative": "conservative",
    "applyProfile": "Apply profile",
    "resetCircuitBreakers": "Reset circuit breakers",
    "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
    "resetAllBreakers": "Reset all breakers",
    "toolsAndScopes": "Tools and scopes",
    "tableTool": "Tool",
    "tableScopes": "Scopes",
    "tablePhase": "Phase",
    "tableAudit": "Audit",
    "auditLog": "Audit log",
    "auditSummary": "Calls: {total} | page {page} of {totalPages}",
    "allTools": "All tools",
    "allResults": "All results",
    "success": "Success",
    "failure": "Failure",
    "apiKeyIdPlaceholder": "apiKeyId",
    "loadingAuditEntries": "Loading audit entries...",
    "noAuditEntriesForFilters": "No audit entries found for current filters.",
    "tableTimestamp": "Timestamp",
    "tableDuration": "Duration",
    "tableResult": "Result",
    "tableApiKey": "API key",
    "failed": "failed",
    "previous": "Previous",
    "next": "Next"
  },
  "a2aDashboard": {
    "loading": "Loading A2A dashboard...",
    "confirmCancelTask": "Cancel task {taskId}?",
    "cancelTaskFailed": "Failed to cancel task.",
    "cancelTaskSuccess": "Task {taskId} cancelled.",
    "smokeSendFailed": "message/send smoke test failed.",
    "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
    "smokeSendSuccess": "message/send ok.",
    "smokeStreamFailed": "message/stream smoke test failed.",
    "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
    "smokeStreamNoTaskId": "message/stream finished without task id.",
    "health": "Health",
    "ok": "ok",
    "totalTasks": "Total tasks",
    "activeStreams": "Active streams",
    "lastTask": "Last task",
    "taskStateOverview": "Task state overview",
    "state": {
      "submitted": "submitted",
      "working": "working",
      "completed": "completed",
      "failed": "failed",
      "cancelled": "cancelled"
    },
    "agentCard": "Agent card",
    "version": "Version",
    "url": "URL",
    "capabilities": "Capabilities",
    "agentCardNotAvailable": "Agent card not available.",
    "quickValidation": "Quick validation",
    "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
    "runMessageSend": "Run message/send",
    "runMessageStream": "Run message/stream",
    "taskManagement": "Task management",
    "taskSummary": "{total} tasks | page {page} of {totalPages}",
    "allStates": "all",
    "allSkills": "all skills",
    "loadingTasks": "Loading tasks...",
    "noTasksForFilters": "No tasks found for current filters.",
    "tableTask": "Task",
    "tableSkill": "Skill",
    "tableState": "State",
    "tableUpdated": "Updated",
    "tableActions": "Actions",
    "view": "View",
    "cancel": "Cancel",
    "previous": "Previous",
    "next": "Next",
    "taskDetail": "Task detail",
    "close": "Close",
    "metadata": "Metadata",
    "events": "Events",
    "artifacts": "Artifacts"
  },
  "health": {
    "title": "システムの健全性",
    "description": "OmniRoute インスタンスのリアルタイム監視",
    "healthy": "健康",
    "degraded": "劣化した",
    "down": "ダウン",
    "uptime": "稼働時間",
    "memory": "記憶",
    "memoryRss": "メモリ（RSS）",
    "heap": "ヒープ",
    "cpu": "CPU",
    "database": "データベース",
    "version": "バージョン",
    "lastCheck": "最終チェック",
    "providerHealth": "プロバイダーの健康状態",
    "systemMetrics": "システムメトリクス",
    "tokenHealth": "トークンの健全性",
    "refreshAll": "すべて更新",
    "checkNow": "今すぐチェック",
    "loadingHealth": "健康データをロードしています...",
    "failedToLoad": "健康データのロードに失敗しました: {error}",
    "retry": "再試行",
    "allOperational": "すべてのシステムが稼働中",
    "issuesDetected": "システムの問題が検出されました",
    "updatedAt": "{time} を更新しました",
    "latency": "レイテンシー",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "リクエストの合計",
    "noDataYet": "まだデータがありません",
    "promptCache": "プロンプトキャッシュ",
    "entries": "エントリー",
    "hitRate": "命中率",
    "hitsMisses": "ヒット/ミス",
    "signatureCache": "署名キャッシュ",
    "signatureDefaults": "デフォルト",
    "signatureTool": "ツール",
    "signatureFamily": "家族",
    "signatureSession": "セッション",
    "recovering": "回復中",
    "noCBData": "サーキットブレーカーのデータはありません。最初にいくつかのリクエストを行ってください。",
    "providerHealthStatusAria": "プロバイダーの健康状態",
    "issuesLabel": "検出された問題",
    "operational": "稼働中",
    "providers": "プロバイダー",
    "healthyCount": "{count} は健康です",
    "nodeVersion": "ノード {version}",
    "failures": "{count} 失敗",
    "failuresPlural": "{count} の失敗",
    "lastFailure": "最後",
    "rateLimitStatus": "レート制限ステータス",
    "activeLimiters": "{count} アクティブ リミッター",
    "activeLimitersPlural": "{count} アクティブ リミッター",
    "queued": "キューに入れられました",
    "queuedCount": "{count} がキューに入れられました",
    "running": "走っている",
    "runningCount": "{count} 実行中",
    "ok": "OK",
    "activeLockouts": "アクティブなロックアウト",
    "resetConfirm": "すべてのサーキットブレーカーを正常な状態にリセットしますか?これにより、すべての失敗カウントがクリアされ、すべてのプロバイダーが動作状態に復元されます。",
    "resetAllTitle": "すべてのサーキットブレーカーを正常な状態にリセットします",
    "resetting": "リセット中...",
    "resetAll": "すべてリセット",
    "until": "{time} まで"
  },
  "limits": {
    "title": "制限と割り当て",
    "rateLimit": "レート制限",
    "remaining": "残り",
    "requestsPerMinute": "リクエスト/分",
    "tokensPerMinute": "トークン/分",
    "dailyLimit": "1日あたりの制限"
  },
  "logs": {
    "title": "ログ",
    "requestLogs": "リクエストログ",
    "proxyLogs": "プロキシログ",
    "auditLog": "監査ログ",
    "console": "コンソール",
    "auditLogDesc": "管理アクションとセキュリティ イベント",
    "loading": "読み込み中...",
    "refresh": "リフレッシュ",
    "filterByAction": "アクションでフィルタリング...",
    "filterByActor": "俳優でフィルター...",
    "filterEntriesAria": "監査ログエントリをフィルタリングする",
    "filterByActionTypeAria": "アクションの種類でフィルタリングする",
    "filterByActorAria": "俳優で絞り込む",
    "refreshAuditLogAria": "監査ログを更新する",
    "tableAria": "監査ログエントリ",
    "failedFetchAuditLog": "監査ログの取得に失敗しました",
    "showing": "{count} エントリを表示しています (オフセット {offset})",
    "search": "検索",
    "timestamp": "タイムスタンプ",
    "action": "アクション",
    "actor": "俳優",
    "target": "ターゲット",
    "details": "詳細",
    "ipAddress": "IPアドレス",
    "notAvailable": "—",
    "noEntries": "監査ログエントリが見つかりませんでした",
    "previous": "前へ",
    "next": "次へ"
  },
  "onboarding": {
    "welcome": "ようこそ",
    "security": "セキュリティ",
    "test": "テスト",
    "ready": "準備完了！",
    "setPassword": "パスワードを設定する",
    "addProvider": "最初のプロバイダーを追加する",
    "getStarted": "始めましょう",
    "skip": "スキップ",
    "skipWizard": "ウィザードを完全にスキップする",
    "skipPassword": "パスワード設定をスキップする",
    "skipAndContinue": "スキップして続行",
    "passwordLabel": "パスワード",
    "confirmPassword": "パスワードの確認",
    "enterPassword": "パスワードを入力してください",
    "confirmPasswordPlaceholder": "パスワードの確認",
    "passwordsMismatch": "パスワードが一致しません",
    "setupComplete": "セットアップ完了！",
    "goToDashboard": "ダッシュボードに移動 →",
    "welcomeDesc": "OmniRoute はローカル AI API プロキシです。負荷分散、フェイルオーバー、使用状況追跡を使用して、リクエストを複数の AI プロバイダーにルーティングします。",
    "multiProvider": "マルチプロバイダー",
    "usageTracking": "使用状況の追跡",
    "apiKeyMgmt": "APIキー管理",
    "securityDesc": "ダッシュボードを保護するためにパスワードを設定するか、今はスキップしてください。",
    "providerDesc": "初めての AI プロバイダーに接続します。後でさらに追加することもできます。",
    "apiKeyRequired": "APIキー(必須)",
    "customUrlOptional": "カスタム URL (オプション)",
    "testDesc": "プロバイダー接続が機能することを確認してみましょう。",
    "runTest": "接続テストの実行",
    "testingConnection": "接続をテストしています...",
    "connectionSuccessful": "接続成功！プロバイダーの準備が整いました。",
    "noProviderFound": "プロバイダーが見つかりませんでした。後でダッシュボードから追加できます。",
    "testFailed": "テストは失敗しましたが、これは後で構成できます。",
    "couldNotTest": "現在テストできませんでした。ダッシュボードからテストできます。",
    "doneDesc": "準備は完了です! OmniRoute インスタンスが構成され、AI リクエストをプロキシする準備ができました。",
    "yourEndpoint": "エンドポイント:",
    "continue": "続ける",
    "retry": "再試行",
    "failedSetPassword": "パスワードの設定に失敗しました。もう一度やり直してください。",
    "failedAddProvider": "プロバイダーの追加に失敗しました。もう一度やり直してください。",
    "connectionError": "接続エラー。もう一度試してください。",
    "provider": "プロバイダー"
  },
  "providers": {
    "title": "プロバイダー",
    "addProvider": "プロバイダーの追加",
    "editProvider": "プロバイダーの編集",
    "deleteProvider": "プロバイダーの削除",
    "noProviders": "プロバイダーが構成されていません",
    "modelAvailability": "モデルの入手可能性",
    "accounts": "アカウント",
    "newAccount": "新しいアカウント",
    "deleteConfirm": "このプロバイダーを削除してもよろしいですか?",
    "testing": "テスト中...",
    "testConnection": "テスト接続",
    "testSuccess": "接続成功",
    "testFailed": "接続に失敗しました",
    "available": "利用可能",
    "cooldown": "クールダウン",
    "unavailable": "利用不可",
    "unknown": "不明",
    "oauthLabel": "OAuth",
    "compatibleLabel": "互換性のある",
    "chat": "チャット",
    "responses": "応答",
    "messages": "メッセージ",
    "oauthProviders": "OAuthプロバイダー",
    "freeProviders": "無料プロバイダー",
    "apiKeyProviders": "APIキープロバイダー",
    "compatibleProviders": "API キー互換プロバイダー",
    "testAll": "すべてをテストする",
    "testAllOAuth": "すべての OAuth 接続をテストする",
    "testAllFree": "すべての無料接続をテストする",
    "testAllApiKey": "すべての API キー接続をテストする",
    "testAllCompatible": "すべての互換性のある接続をテストする",
    "connected": "{count} 接続されました",
    "errorCount": "{count} エラー ({code})",
    "errorCountNoCode": "{count} エラー",
    "noConnections": "接続がありません",
    "disabled": "障害者",
    "enableProvider": "プロバイダーを有効にする",
    "disableProvider": "プロバイダーを無効にする",
    "testResults": "テスト結果",
    "noCompatibleYet": "互換性のあるプロバイダーはまだ追加されていません",
    "compatibleHint": "上のボタンを使用して、OpenAI または Anthropic と互換性のあるエンドポイントを追加します",
    "addOpenAICompatible": "OpenAI互換性を追加",
    "addAnthropicCompatible": "人間互換性を追加",
    "addNewProvider": "新しいプロバイダーの追加",
    "backToProviders": "プロバイダーに戻る",
    "configureNewProvider": "アプリケーションで使用する新しい AI プロバイダーを構成します。",
    "providerLabel": "プロバイダー",
    "selectProvider": "プロバイダーを選択してください",
    "selectedProvider": "選択したプロバイダー",
    "authMethod": "認証方法",
    "apiKeyLabel": "APIキー",
    "apiKeyRequired": "APIキーが必要です",
    "selectProviderRequired": "プロバイダーを選択してください",
    "enterApiKey": "API キーを入力してください",
    "apiKeySecure": "API キーは暗号化され、安全に保管されます。",
    "oauth2Connect": "OAuth2で接続する",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "OAuth2 認証を使用してアカウントを接続します。",
    "displayName": "表示名",
    "displayNamePlaceholder": "例: 本番 API、開発環境",
    "displayNameHint": "オプション。この構成を識別するためのフレンドリ名。",
    "active": "アクティブ",
    "activeDescription": "このプロバイダーをアプリケーションで使用できるようにします。",
    "cancel": "キャンセル",
    "createProvider": "プロバイダーの作成",
    "failedCreate": "プロバイダーの作成に失敗しました",
    "errorOccurred": "エラーが発生しました。もう一度試してください。",
    "modelStatus": "モデルステータス",
    "allModelsOperational": "全モデル稼働中",
    "modelsWithIssues": "{count} モデルに問題があります",
    "allModelsNormal": "全機種正常に反応しております。",
    "cooldownCleared": "{model} のクールダウンがクリアされました",
    "failedClearCooldown": "クールダウンをクリアできませんでした",
    "loadingAvailability": "モデルの可用性を読み込んでいます...",
    "clearCooldown": "クリア",
    "clearing": "クリア中...",
    "until": "{time} まで",
    "providerTestFailed": "プロバイダーのテストに失敗しました",
    "modeTest": "{mode} テスト",
    "passedCount": "{count} が合格しました",
    "failedCount": "{count} が失敗しました",
    "testedCount": "{count} テスト済み",
    "millisecondsAbbr": "{value}ms",
    "okShort": "OK",
    "errorShort": "エラー",
    "noActiveConnectionsInGroup": "このグループに対してアクティブな接続が見つかりません。",
    "allTestsPassed": "すべての {total} テストに合格しました",
    "testSummary": "{passed}/{total} は成功、{failed} は失敗",
    "nameLabel": "名前",
    "prefixLabel": "プレフィックス",
    "baseUrlLabel": "ベースURL",
    "apiTypeLabel": "API タイプ",
    "prefixHint": "必須。モデル名の一意の接頭辞。",
    "nameHint": "必須。このノードのわかりやすいラベル。",
    "baseUrlHint": "必須。  プロバイダー API のベース URL。",
    "anthropicPrefixPlaceholder": "ac-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "接続の検証",
    "validating": "検証中...",
    "connectionValid": "接続は有効です!",
    "connectionFailed": "接続に失敗しました。 URLとキーを確認してください。",
    "testKeyLabel": "APIキーをテストする",
    "testKeyPlaceholder": "sk-... (検証のみ)",
    "providerNotFound": "プロバイダーが見つかりません",
    "deleteConnectionConfirm": "この接続を削除しますか?",
    "failedSetAlias": "エイリアスの設定に失敗しました",
    "failedSaveConnection": "接続の保存に失敗しました",
    "failedSaveConnectionRetry": "接続を保存できませんでした。もう一度試してください。",
    "failedRetestConnection": "接続の再テストに失敗しました",
    "deleteCompatibleNodeConfirm": "この {type} 互換ノードを削除しますか?",
    "anthropicCompatibleDetails": "人類互換性の詳細",
    "openaiCompatibleDetails": "OpenAI互換性の詳細",
    "messagesApi": "メッセージAPI",
    "responsesApi": "レスポンスAPI",
    "chatCompletions": "チャットの完了",
    "importingModels": "インポート中...",
    "importFromModels": "/models からインポート",
    "addConnectionToImport": "接続を追加してインポートを有効にします。",
    "noModelsConfigured": "モデルが設定されていません",
    "connectionCount": "{count} 接続",
    "fetchingModels": "利用可能なモデルを取得しています...",
    "failedFetchModels": "モデルの取得に失敗しました",
    "noModelsFound": "モデルが見つかりません",
    "importFailed": "インポートに失敗しました",
    "noNewModelsAdded": "新しいモデルは追加されませんでした。",
    "adding": "追加中...",
    "importingModelsTitle": "モデルのインポート",
    "copyModel": "モデルをコピーする",
    "removeModel": "モデルの削除",
    "rateLimitProtected": "保護されています",
    "rateLimitUnprotected": "保護されていない",
    "enableRateLimitProtection": "クリックしてレート制限保護を有効にします",
    "disableRateLimitProtection": "クリックしてレート制限保護を無効にします",
    "productionKey": "プロダクションキー",
    "enterNewApiKey": "新しいAPIキーを入力してください",
    "optional": "オプション",
    "anthropicCompatibleName": "人間互換性",
    "openaiCompatibleName": "OpenAI対応",
    "failedImportModels": "モデルのインポートに失敗しました",
    "noModelsReturnedFromEndpoint": "/models エンドポイントからモデルが返されませんでした。",
    "importingModelsProgress": "{total} モデルの {current} をインポートしています...",
    "foundModelsStartingImport": "{count} モデルが見つかりました。インポートを開始しています...",
    "importingModelById": "{modelId} をインポートしています...",
    "importSuccessCount": "{count, plural, one {# model} other {# models}} が正常にインポートされました。",
    "noNewModelsAddedExisting": "新しいモデルは追加されませんでした (すべてすでに存在しています)。",
    "importDoneCount": "✓ 完了! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "予期しないエラーが発生しました",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "メッセージ",
    "responsesPath": "応答",
    "chatCompletionsPath": "チャット/補完",
    "add": "追加",
    "edit": "編集",
    "delete": "削除",
    "anthropic": "人間的",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "互換性のあるノードごとに 1 つの接続のみが許可されます。さらに接続が必要な場合は、別のノードを追加します。",
    "connections": "接続",
    "providerProxyTitleConfigured": "プロバイダー プロキシ: {host}",
    "configured": "設定済み",
    "providerProxyConfigureHint": "このプロバイダーのすべての接続に対してプロキシを構成します",
    "providerProxy": "プロバイダープロキシ",
    "noConnectionsYet": "まだ接続がありません",
    "addFirstConnectionHint": "最初の接続を追加して開始します",
    "addConnection": "接続の追加",
    "availableModels": "利用可能なモデル",
    "pageAutoRefresh": "ページは自動的に更新されます...",
    "statusDisabled": "無効化された",
    "statusConnected": "接続されています",
    "statusRuntimeIssue": "ランタイムの問題",
    "statusAuthFailed": "認証に失敗しました",
    "statusRateLimited": "レート制限あり",
    "statusNetworkIssue": "ネットワークの問題",
    "statusTestUnsupported": "テストはサポートされていません",
    "statusUnavailable": "利用不可",
    "statusFailed": "失敗しました",
    "statusError": "エラー",
    "oauthAccount": "OAuth アカウント",
    "errorTypeRuntime": "ローカルランタイム",
    "errorTypeUpstreamAuth": "アップストリーム認証",
    "errorTypeMissingCredential": "資格情報がありません",
    "errorTypeRefreshFailed": "更新に失敗しました",
    "errorTypeTokenExpired": "トークンの有効期限が切れました",
    "errorTypeRateLimited": "レート制限あり",
    "errorTypeUpstreamUnavailable": "上流は利用不可",
    "errorTypeNetworkError": "ネットワークエラー",
    "errorTypeTestUnsupported": "テストはサポートされていません",
    "errorTypeUpstreamError": "上流エラー",
    "proxySourceGlobal": "グローバル",
    "proxySourceProvider": "プロバイダー",
    "proxySourceKey": "キー",
    "proxyConfiguredBySource": "プロキシ ({source}): {host}",
    "autoPriority": "自動: {priority}",
    "proxy": "プロキシ",
    "retestAuthentication": "認証を再テストする",
    "retest": "再テスト",
    "disableConnection": "接続を無効にする",
    "enableConnection": "接続を有効にする",
    "reauthenticateConnection": "この接続を再認証します",
    "proxyConfig": "プロキシ構成",
    "aliasExistsAlert": "エイリアス「{alias}」はすでに存在します。別のモデルを使用するか、既存のエイリアスを編集してください。",
    "openRouterAnyModelHint": "OpenRouter はあらゆるモデルをサポートします。モデルを追加し、すぐにアクセスできるようにエイリアスを作成します。",
    "modelIdFromOpenRouter": "モデルID (OpenRouterから)",
    "openRouterModelPlaceholder": "人間的/クロード-3-作品",
    "customModels": "カスタムモデル",
    "customModelsHint": "デフォルトのリストにないモデル ID を追加します。これらはルーティングに使用できるようになります。",
    "modelId": "モデルID",
    "customModelPlaceholder": "例: gpt-4.5-ターボ",
    "loading": "読み込み中...",
    "removeCustomModel": "カスタムモデルを削除する",
    "noCustomModels": "カスタム モデルはまだ追加されていません。",
    "allSuggestedAliasesExist": "提案されたエイリアスはすべてすでに存在します。別のモデルを選択するか、競合するエイリアスを削除してください。",
    "failedSaveCustomModel": "カスタムモデルの保存に失敗しました",
    "modelAddedSuccess": "モデル {modelId} が正常に追加されました",
    "failedAddModelTryAgain": "モデルの追加に失敗しました。もう一度試してください。",
    "failedSaveImportedModel": "インポートされたモデルをカスタム データベースに保存できませんでした",
    "failedImportModelsTryAgain": "モデルのインポートに失敗しました。もう一度試してください。",
    "failedRemoveModelFromDatabase": "データベースからモデルを削除できませんでした",
    "modelRemovedSuccess": "モデルは正常に削除されました",
    "failedDeleteModelTryAgain": "モデルの削除に失敗しました。もう一度試してください。",
    "compatibleModelsDescription": "{type} 互換モデルを手動で追加するか、/models エンドポイントからインポートします。",
    "anthropicCompatibleModelPlaceholder": "クロード-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "API キーの検証に失敗しました。キーを確認して再試行してください。",
    "addProviderApiKeyTitle": "{provider} API キーを追加",
    "checking": "確認中...",
    "check": "チェックする",
    "valid": "有効",
    "invalid": "無効です",
    "creating": "作成中...",
    "validationChecksAnthropicCompatible": "検証では、API キーを検証することで {provider} をチェックします。",
    "validationChecksOpenAiCompatible": "検証では、ベース URL の /models を介して {provider} がチェックされます。",
    "priorityLabel": "優先順位",
    "saving": "保存中...",
    "save": "保存",
    "editConnection": "接続の編集",
    "accountName": "アカウント名",
    "email": "電子メール",
    "healthCheckMinutes": "ヘルスチェック (分)",
    "healthCheckHint": "プロアクティブなトークンの更新間隔。 0 = 無効。",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "接続のテストに失敗しました",
    "failed": "失敗しました",
    "leaveBlankKeepCurrentApiKey": "現在の API キーを保持するには、空白のままにします。",
    "editCompatibleTitle": "編集 {type} 互換",
    "compatibleBaseUrlHint": "{type} 互換 API のベース URL (/v1 で終わる) を使用します。",
    "apiKeyForCheck": "APIキー（チェック用）",
    "compatibleProdPlaceholder": "{type} 互換性あり (製品)",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once"
  },
  "settings": {
    "title": "設定",
    "general": "一般",
    "security": "セキュリティ",
    "appearance": "外観",
    "routing": "ルーティング",
    "cache": "キャッシュ",
    "resilience": "回復力",
    "systemPrompt": "システムプロンプト",
    "thinkingBudget": "予算を考える",
    "proxy": "プロキシ",
    "pricing": "価格設定",
    "storage": "ストレージ",
    "policies": "ポリシー",
    "ipFilter": "IPフィルター",
    "comboDefaults": "コンボのデフォルト",
    "fallbackChains": "フォールバックチェーン",
    "changePassword": "パスワードの変更",
    "enablePassword": "パスワードを有効にする",
    "darkMode": "ダークモード",
    "lightMode": "ライトモード",
    "systemTheme": "システムテーマ",
    "enableCache": "キャッシュを有効にする",
    "cacheTTL": "キャッシュTTL",
    "maxCacheSize": "最大キャッシュサイズ",
    "clearCache": "キャッシュのクリア",
    "cacheHits": "キャッシュヒット",
    "cacheMisses": "キャッシュミス",
    "hitRate": "命中率",
    "cacheEntries": "キャッシュエントリ",
    "circuitBreaker": "サーキットブレーカー",
    "retryPolicy": "再試行ポリシー",
    "maxRetries": "最大再試行回数",
    "retryDelay": "再試行遅延",
    "timeoutMs": "タイムアウト (ミリ秒)",
    "enableSystemPrompt": "システムプロンプトを有効にする",
    "systemPromptText": "システムプロンプトテキスト",
    "enableThinking": "思考を可能にする",
    "maxThinkingTokens": "最大思考トークン",
    "enableProxy": "プロキシを有効にする",
    "proxyUrl": "プロキシ URL",
    "pricingRates": "価格設定レートの形式",
    "currentPricing": "現在の価格の概要",
    "loadingPricing": "価格データをロードしています...",
    "noPricing": "利用可能な価格データはありません",
    "input": "入力",
    "output": "出力",
    "cached": "キャッシュされた",
    "reasoning": "推論",
    "cacheCreation": "キャッシュの作成",
    "customPricing": "カスタム価格設定",
    "databaseSize": "データベースのサイズ",
    "backupDb": "バックアップデータベース",
    "restoreDb": "データベースの復元",
    "exportData": "データのエクスポート",
    "importData": "データのインポート",
    "clearData": "すべてのデータをクリア",
    "clearDataConfirm": "これにより、すべてのデータが完全に削除されます。本気ですか？",
    "enableRequestLogs": "リクエストログを有効にする",
    "logRetention": "ログの保存期間",
    "ipWhitelist": "IPホワイトリスト",
    "ipBlacklist": "IPブラックリスト",
    "addIP": "IPの追加",
    "savedSuccessfully": "設定が正常に保存されました",
    "ai": "AI",
    "advanced": "上級者向け",
    "localMode": "ローカル モード — すべてのデータはマシンに保存されています",
    "settingsSectionsAria": "設定セクション",
    "switchThemes": "明るいテーマと暗いテーマを切り替える",
    "themeSelectionAria": "テーマの選択",
    "themeLight": "ライト",
    "themeDark": "暗い",
    "themeSystem": "システム",
    "hideHealthLogs": "ヘルスチェックログを非表示にする",
    "hideHealthLogsDesc": "ON の場合、サーバー コンソールで [HealthCheck] メッセージを抑制します",
    "themeAccent": "テーマカラー",
    "themeAccentDesc": "プリセットカラーを選ぶか、1色で独自のテーマを作成します",
    "themeCreate": "テーマを作成",
    "themeCustom": "カスタムテーマ",
    "themeBlue": "青",
    "themeRed": "赤",
    "themeGreen": "緑",
    "themeViolet": "紫",
    "themeOrange": "オレンジ",
    "themeCyan": "シアン",
    "promptCache": "プロンプトキャッシュ",
    "flushCache": "キャッシュのフラッシュ",
    "flushing": "フラッシング…",
    "size": "サイズ",
    "hits": "ヒット曲",
    "evictions": "立ち退き",
    "loadingCacheStats": "キャッシュ統計を読み込み中…",
    "globalProxy": "グローバルプロキシ",
    "globalProxyDesc": "すべての API 呼び出しに対してグローバル送信プロキシを構成します。個々のプロバイダー、コンボ、およびキーはこれをオーバーライドできます。",
    "noGlobalProxy": "グローバル プロキシが構成されていません",
    "globalLabel": "グローバル",
    "configure": "設定する",
    "globalSystemPrompt": "グローバル システム プロンプト",
    "systemPromptDesc": "プロキシレベルですべてのリクエストに挿入されます",
    "saved": "保存されました",
    "systemPromptPlaceholder": "すべてのリクエストに挿入するシステム プロンプトを入力してください...",
    "systemPromptHint": "このプロンプトは、すべてのリクエストのシステム メッセージの先頭に追加されます。グローバルな指示、安全ガイドライン、または応答のフォーマット規則に使用します。",
    "chars": "{count} 文字",
    "thinkingBudgetTitle": "予算を考える",
    "thinkingBudgetDesc": "すべてのリクエストにわたる AI 推論トークンの使用を制御する",
    "passthrough": "パススルー",
    "passthroughDesc": "変更なし – クライアントが思考予算をコントロール",
    "auto": "自動",
    "autoDesc": "すべての思考構成を取り除きます - プロバイダーに決定させます",
    "custom": "カスタム",
    "customDesc": "すべてのリクエストに対して固定のトークン予算を設定する",
    "adaptive": "アダプティブ",
    "adaptiveDesc": "リクエストの複雑さに基づいて予算を調整する",
    "effortNone": "なし（トークン0個）",
    "effortLow": "低 (1,000 トークン)",
    "effortMedium": "中 (10,000 トークン)",
    "effortHigh": "高 (128,000 トークン)",
    "tokenBudget": "トークンの予算",
    "tokens": "トークン",
    "baseEffortLevel": "基本努力レベル",
    "adaptiveHint": "アダプティブ モードは、メッセージ数、ツールの使用状況、プロンプトの長さに基づいて、この基本レベルからスケールします。",
    "requireLogin": "ログインが必要",
    "requireLoginDesc": "ON の場合、ダッシュボードにはパスワードが必要です。 OFFの場合、ログインせずにアクセスします。",
    "currentPassword": "現在のパスワード",
    "enterCurrentPassword": "現在のパスワードを入力してください",
    "newPassword": "新しいパスワード",
    "enterNewPassword": "新しいパスワードを入力してください",
    "confirmPassword": "新しいパスワードを確認する",
    "confirmPasswordPlaceholder": "新しいパスワードを確認します",
    "passwordsNoMatch": "パスワードが一致しません",
    "passwordUpdated": "パスワードが正常に更新されました",
    "failedUpdatePassword": "パスワードの更新に失敗しました",
    "errorOccurred": "エラーが発生しました",
    "updatePassword": "パスワードを更新する",
    "setPassword": "パスワードを設定する",
    "apiEndpointProtection": "APIエンドポイント保護",
    "requireAuthModels": "/models の API キーが必要です",
    "requireAuthModelsDesc": "ON の場合、/v1/models エンドポイントは、認証されていないリクエストに対して 404 を返します。権限のないユーザーによるモデルの発見を防ぎます。",
    "blockedProviders": "ブロックされたプロバイダー",
    "blockedProvidersDesc": "/v1/models 応答から特定のプロバイダーを非表示にします。ブロックされたプロバイダーはモデルのリストに表示されません。",
    "providersBlocked": "{count} プロバイダーが /models からブロックされました",
    "blockProviderTitle": "{provider} をブロックする",
    "unblockProviderTitle": "{provider} のブロックを解除する",
    "routingStrategy": "ルーティング戦略",
    "fillFirst": "最初に入力してください",
    "fillFirstDesc": "優先順位に従ってアカウントを使用する",
    "roundRobin": "ラウンドロビン",
    "roundRobinDesc": "すべてのアカウントを循環する",
    "p2c": "P2C",
    "p2cDesc": "ランダムに 2 つ選択し、より健康的なものを使用してください",
    "random": "ランダム",
    "randomDesc": "リクエストごとにランダムなアカウント",
    "leastUsed": "最も使用されていない",
    "leastUsedDesc": "最も最近使用されていないアカウントを選択する",
    "costOpt": "コストオプション",
    "costOptDesc": "利用可能な最も安いアカウントを優先する",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "スティッキー制限",
    "stickyLimitDesc": "切り替える前のアカウントごとの通話数",
    "modelAliases": "モデルのエイリアス",
    "modelAliasesTitle": "モデルエイリアス",
    "modelAliasesDesc": "モデル名を再マッピングするワイルドカード パターン • * と ? を使用します。",
    "addCustomAlias": "カスタムエイリアスを追加",
    "deprecatedModelId": "非推奨モデルID",
    "newModelId": "新しいモデルID",
    "customAliases": "カスタムエイリアス",
    "builtInAliases": "組み込みエイリアス",
    "backgroundDegradationTitle": "バックグラウンドタスク降格",
    "backgroundDegradationDesc": "バックグラウンドタスク（タイトル、要約）を自動検出し、安価なモデルにルーティング",
    "enableDegradation": "バックグラウンド降格を有効化",
    "enableDegradationHint": "有効にすると、タイトル生成や要約などのバックグラウンドタスクが自動的に安価なモデルにルーティングされます",
    "tasksDetected": "検出されたタスク",
    "degradationMap": "モデル降格マップ",
    "premiumModel": "プレミアムモデル",
    "cheapModel": "安価なモデル",
    "detectionPatterns": "検出パターン",
    "newPattern": "例：\"タイトルを生成\"",
    "aliasPatternPlaceholder": "クロード・ソネット-*",
    "aliasTargetPlaceholder": "クロード・ソネット-4-20250514",
    "pattern": "パターン",
    "targetModel": "対象機種",
    "add": "+追加",
    "session": "セッション",
    "sessionDetailsAria": "セッション詳細",
    "status": "ステータス",
    "authenticated": "認証済み",
    "guest": "ゲスト",
    "loginTime": "ログイン時間",
    "sessionAge": "セッションの経過時間",
    "browser": "ブラウザ",
    "clearLocalData": "ローカルデータのクリア",
    "logout": "ログアウト",
    "clearLocalDataConfirm": "ローカルデータをすべて消去しますか?これにより設定がリセットされます。",
    "unknown": "不明",
    "systemActor": "システム",
    "ipAccessControl": "IPアクセス制御",
    "ipAccessControlDesc": "特定の IP アドレスをブロックまたは許可する",
    "ipModeDisabled": "障害者",
    "ipModeBlacklist": "ブラックリスト",
    "ipModeWhitelist": "ホワイトリスト",
    "ipModeWhitelistPriority": "WL優先",
    "addIpAddress": "IPアドレスの追加",
    "ipAddressPlaceholder": "192.168.1.0/24 または 10.0.*.*",
    "block": "+ブロック",
    "allow": "+ 許可する",
    "blocked": "ブロックされました ({count})",
    "allowed": "許可されています ({count})",
    "temporaryBans": "一時的な禁止 ({count})",
    "minLeft": "残り {min}m",
    "auditLog": "監査ログ",
    "searchAuditLogs": "監査ログを検索します...",
    "failedLoadAuditLog": "監査ログのロードに失敗しました",
    "noAuditEvents": "監査イベントが見つかりませんでした",
    "action": "アクション",
    "actor": "俳優",
    "details": "詳細",
    "time": "時間",
    "fallbackChainsTitle": "フォールバックチェーン",
    "fallbackChainsDesc": "モデルごとにプロバイダーのフォールバック順序を定義する",
    "addChain": "+ チェーンを追加",
    "modelName": "モデル名",
    "modelNamePlaceholder": "クロード・ソネット-4-20250514",
    "providersCommaSeparated": "プロバイダー (カンマ区切り、優先順位順)",
    "providersCommaSeparatedPlaceholder": "人間、オープンナイ、ジェミニ",
    "createChain": "チェーンの作成",
    "noFallbackChains": "フォールバックチェーンなし",
    "noFallbackChainsDesc": "チェーンを作成して、モデルのプロバイダーのフォールバック順序を定義します。",
    "loadingFallbackChains": "フォールバック チェーンをロードしています...",
    "deleteChainConfirm": "「{model}」のフォールバック チェーンを削除しますか?",
    "chainCreated": "{model} 用にチェーンが作成されました",
    "chainDeleted": "{model} のチェーンが削除されました",
    "failedCreateChain": "チェーンの作成に失敗しました",
    "failedDeleteChain": "チェーンの削除に失敗しました",
    "deleteChain": "チェーンの削除",
    "fillModelAndProviders": "モデル名とプロバイダーを入力してください",
    "addAtLeastOneProvider": "少なくとも 1 つのプロバイダーを追加します",
    "comboDefaultsTitle": "コンボのデフォルト",
    "globalComboConfig": "グローバルコンボ構成",
    "defaultStrategy": "デフォルトの戦略",
    "defaultStrategyDesc": "明示的な戦略なしで新しいコンボに適用される",
    "comboStrategyAria": "コンボ戦略",
    "priority": "優先順位",
    "weighted": "加重",
    "maxRetriesLabel": "最大再試行回数",
    "retryDelayLabel": "再試行遅延 (ミリ秒)",
    "timeoutLabel": "タイムアウト (ミリ秒)",
    "healthCheck": "健康診断",
    "healthCheckDesc": "プロバイダーの可用性を事前に確認する",
    "trackMetrics": "メトリクスの追跡",
    "trackMetricsDesc": "コンボごとのリクエストメトリクスを記録する",
    "providerOverrides": "プロバイダーのオーバーライド",
    "providerOverridesDesc": "プロバイダーごとにタイムアウトと再試行をオーバーライドします。プロバイダー設定はグローバルデフォルトをオーバーライドします。",
    "providerMaxRetriesAria": "{provider} 最大再試行回数",
    "providerTimeoutAria": "{provider} タイムアウトミリ秒",
    "removeProviderOverrideAria": "{provider} オーバーライドを削除",
    "newProviderNamePlaceholder": "例:グーグル、オープンナイ...",
    "newProviderNameAria": "新しいプロバイダ名",
    "retries": "再試行",
    "ms": "ミリ秒",
    "saveComboDefaults": "コンボのデフォルトを保存",
    "maxNestingDepth": "最大ネスト深さ",
    "concurrencyPerModel": "同時実行性 / モデル",
    "queueTimeout": "キューのタイムアウト (ミリ秒)",
    "providerProfiles": "プロバイダープロファイル",
    "providerProfilesDesc": "OAuth (セッションベース) プロバイダーと API キー (従量制) プロバイダーの個別の復元設定。 OAuth プロバイダーには、レート制限が低いため、より厳しいしきい値が設定されています。",
    "oauthProviders": "OAuthプロバイダー",
    "apiKeyProviders": "APIキープロバイダー",
    "transientCooldown": "一時的なクールダウン",
    "rateLimitCooldown": "レート制限クールダウン",
    "maxBackoffLevel": "最大バックオフ レベル",
    "cbThreshold": "CB しきい値",
    "cbResetTime": "CBリセット時間",
    "rateLimiting": "レート制限",
    "rateLimitingDesc": "API キープロバイダーは、安全なデフォルトで自動的にレート制限されます。制限は応答ヘッダーから学習され、時間の経過とともに適応されます。",
    "defaultSafetyNet": "デフォルトのセーフティネット",
    "rpm": "回転数",
    "minGap": "最小ギャップ",
    "maxConcurrent": "最大同時実行数",
    "activeLimiters": "アクティブリミッター",
    "noActiveLimiters": "アクティブなレート リミッタはまだありません。",
    "reservoir": "貯水池",
    "running": "ランニング",
    "queued": "キューに入れられました",
    "circuitBreakers": "サーキットブレーカー",
    "breakerStateClosed": "閉店",
    "breakerStateOpen": "開く",
    "breakerStateHalfOpen": "ハーフオープン",
    "tripped": "{count} がトリップしました",
    "healthy": "{count} は健康です",
    "resetAll": "すべてリセット",
    "noCircuitBreakers": "まだサーキットブレーカーが作動していません。これらは、リクエストがコンボ パイプラインを通過するときに自動的に作成されます。",
    "failures": "{count} 回の失敗",
    "policiesLocked": "ポリシーとロックされた識別子",
    "allOperational": "すべてのシステムが稼働中 - ロックアウトやブレーカーの低下はありません",
    "loadingPolicies": "ポリシーを読み込んでいます...",
    "lockedIdentifiers": "ロックされた識別子",
    "unlockedIdentifier": "ロック解除済み: {identifier}",
    "sinceDate": "{date} 以降",
    "forceUnlock": "強制ロック解除",
    "unlocking": "ロックを解除中...",
    "failedUnlock": "ロック解除に失敗しました",
    "failedLoadWithStatus": "ロードに失敗しました: {status}",
    "failedLoadResilience": "復元ステータスのロードに失敗しました",
    "saveFailed": "保存に失敗しました",
    "resetFailed": "リセットに失敗しました",
    "loadingResilience": "回復力ステータスを読み込んでいます...",
    "retry": "再試行",
    "systemStorage": "システムとストレージ",
    "allDataLocal": "すべてのデータはマシン上にローカルに保存されます",
    "databasePath": "データベースのパス",
    "exportDatabase": "データベースのエクスポート",
    "exportAll": "すべてエクスポート (.tar.gz)",
    "importDatabase": "データベースのインポート",
    "confirmDbImport": "データベースのインポートを確認する",
    "confirmDbImportDesc": "これにより、現在のデータがすべて {file} のコンテンツに置き換えられます。インポート前にバックアップが自動的に作成されます。",
    "yesImport": "はい、インポートします",
    "lastBackup": "最後のバックアップ",
    "noBackupYet": "まだバックアップがありません",
    "backupNow": "今すぐバックアップ",
    "backupRestore": "バックアップと復元",
    "viewBackups": "バックアップの表示",
    "hide": "隠す",
    "backupRetentionDesc": "データベースのスナップショットは、復元前とデータ変更時に 15 分ごとに自動的に作成されます。保持: スマート ローテーションによる 24 時間 + 30 日のバックアップ。",
    "loadingBackups": "バックアップを読み込んでいます...",
    "noBackupsYet": "利用可能なバックアップはまだありません。データが変更されると、バックアップが自動的に作成されます。",
    "backupsAvailable": "{count} 個のバックアップが利用可能です",
    "refresh": "リフレッシュ",
    "confirm": "確認しますか？",
    "yes": "はい",
    "no": "いいえ",
    "restore": "復元",
    "invalidFileType": "無効なファイルタイプです。 .sqlite ファイルのみが受け入れられます。",
    "exportFailed": "エクスポートに失敗しました",
    "exportFailedWithError": "エクスポートに失敗しました: {error}",
    "fullExportFailedWithError": "完全なエクスポートに失敗しました: {error}",
    "backupCreated": "バックアップが作成されました: {file}",
    "restoreSuccess": "復元されました！ {connections} 接続、{nodes} ノード、{combos} コンボ、{apiKeys} API キー。",
    "importSuccess": "データベースがインポートされました! {connections} 接続、{nodes} ノード、{combos} コンボ、{apiKeys} API キー。",
    "justNow": "たった今",
    "minutesAgo": "{count}分前",
    "hoursAgo": "{count}時間前",
    "daysAgo": "{count}日前",
    "backupReasonManual": "マニュアル",
    "backupReasonPreRestore": "復元前",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "前回のバックアップ以降変更はありません",
    "backupFailed": "バックアップに失敗しました",
    "restoreFailed": "復元に失敗しました",
    "importFailed": "インポートに失敗しました",
    "errorDuringRestore": "復元中にエラーが発生しました",
    "errorDuringImport": "インポート中にエラーが発生しました",
    "modelPricing": "モデルの価格",
    "modelPricingDesc": "モデルごとにコストレートを設定します。すべてのレートは $/1M トークン単位です。",
    "providers": "プロバイダー",
    "registry": "レジストリ",
    "priced": "価格付き",
    "searchProvidersModels": "プロバイダーまたはモデルを検索...",
    "showAll": "すべて表示",
    "noProvidersMatch": "検索に一致するプロバイダーはありません。",
    "howPricingWorks": "価格設定の仕組み",
    "cacheWrite": "キャッシュ書き込み",
    "unsaved": "未保存",
    "resetDefaults": "デフォルトにリセット",
    "saveProvider": "プロバイダーの保存",
    "saving": "保存中...",
    "model": "モデル",
    "models": "モデル",
    "moreProviders": "{count} 件のプロバイダーが追加されました",
    "withPricing": "価格設定が設定された状態で",
    "policiesCircuitBreakers": "ポリシーとサーキットブレーカー",
    "activeIssuesDetected": "アクティブな問題が検出されました",
    "off": "オフ",
    "resetPricingConfirm": "{provider} のすべての価格をデフォルトにリセットしますか?",
    "pricingDescInput": "入力: モデルに送信されたトークン",
    "pricingDescOutput": "出力: 生成されたトークン",
    "pricingDescCached": "キャッシュ: 再利用された入力 (入力レートの最大 50%)",
    "pricingDescReasoning": "推論: 思考トークン (出力にフォールバック)",
    "pricingDescCacheWrite": "キャッシュ書き込み: キャッシュ エントリの作成 (入力にフォールバック)",
    "pricingDescFormula": "コスト = (入力 × 入力レート) + (出力 × 出力レート) + (キャッシュ × キャッシュ レート) 100 万トークンあたり。",
    "pricingSettingsTitle": "価格設定",
    "totalModels": "トータルモデル",
    "active": "アクティブ",
    "costCalculation": "コスト計算",
    "costCalculationDesc": "コストは、トークンの使用量と各モデルに設定された価格設定レートに基づいて計算されます。",
    "pricingFormat": "価格設定形式",
    "pricingFormatDesc": "すべてのレートは、$/1M トークン (100 万トークンあたりのドル) 単位です。",
    "tokenTypes": "トークンの種類",
    "inputTokenDesc": "標準プロンプトトークン",
    "outputTokenDesc": "完了/応答トークン",
    "cachedTokenDesc": "キャッシュされた入力トークン (通常は入力レートの 50%)",
    "reasoningTokenDesc": "特別な推論/思考トークン (出力レートへのフォールバック)",
    "cacheCreationTokenDesc": "キャッシュ エントリの作成に使用されるトークン (入力レートへのフォールバック)",
    "customPricingNote": "特定のモデルのデフォルトの価格をオーバーライドできます。カスタム オーバーライドは、自動検出された価格設定よりも優先されます。",
    "editPricing": "価格の編集",
    "viewFullDetails": "詳細を表示",
    "themeCoral": "コーラル",
    "cliFingerprint": "CLI Fingerprint Matching",
    "cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
    "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
    "enableFingerprintTitle": "Enable fingerprint for {provider}",
    "disableFingerprintTitle": "Disable fingerprint for {provider}"
  },
  "translator": {
    "title": "翻訳者",
    "metaTitle": "翻訳者の遊び場 |オムニルート",
    "metaDescription": "プロバイダー間の API 形式の変換をデバッグ、テスト、視覚化する",
    "playgroundTitle": "翻訳者の遊び場",
    "playground": "遊び場",
    "realtime": "リアルタイム翻訳アクティビティ",
    "chatTester": "チャットテスター",
    "testBench": "テストベンチ",
    "liveMonitor": "ライブモニター",
    "modeDescriptionPlayground": "任意の API リクエスト本文を貼り付け、OmniRoute がプロバイダー形式間でそれをどのように変換するかを確認します (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "OmniRoute 経由で実際のチャット リクエストを送信し、入力、翻訳されたリクエスト、プロバイダーの応答、翻訳された出力の完全なラウンドトリップを検査します。",
    "modeDescriptionTestBench": "事前定義されたシナリオを実行し、プロバイダーやモデル間の互換性を比較します。",
    "modeDescriptionLiveMonitor": "リクエストが OmniRoute を通過するときに、翻訳イベントをリアルタイムで監視します。",
    "modeDescriptionFallback": "OmniRoute がプロバイダー間で API リクエストを変換する方法をデバッグ、テスト、視覚化します。",
    "recentTranslations": "最近の翻訳",
    "noTranslations": "まだ翻訳はありません",
    "source": "ソース",
    "target": "ターゲット",
    "time": "時間",
    "model": "モデル",
    "status": "ステータス",
    "latency": "レイテンシー",
    "totalTranslations": "総翻訳数",
    "successful": "成功しました",
    "errors": "エラー",
    "avgLatency": "平均遅延時間",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "ライブ — 自動更新",
    "paused": "一時停止中",
    "eventsAppearHint": "リクエストが OmniRoute を流れると、翻訳イベントがここに表示されます。イベントを生成するには、次のいずれかの方法を使用します。",
    "chatTesterTab": "「チャットテスター」タブ",
    "testBenchTab": "「テストベンチ」タブ",
    "externalApiCalls": "外部 API 呼び出し",
    "ideCliIntegrations": "IDE/CLIの統合",
    "inMemoryNote": "注: イベントはメモリ内に保存され、サーバーの再起動時にリセットされます。",
    "ok": "OK",
    "errorShort": "エラー",
    "formatConverter": "フォーマットコンバーター",
    "formatConverterDescription": "JSON リクエスト本文を貼り付けるか入力します。トランスレータはソース形式を自動検出し、ターゲット形式に変換します。これを使用して、OmniRoute が形式間でリクエストを変換する方法 (OpenAI ↔ Claude ↔ Gemini ↔ Response API) をデバッグします。",
    "input": "入力",
    "output": "出力",
    "auto": "自動",
    "swapFormats": "フォーマットを交換する",
    "translateAction": "翻訳する",
    "clear": "クリア",
    "inputPlaceholder": "ここにリクエスト本文を貼り付けるか、下のテンプレートを選択してください...",
    "exampleTemplates": "テンプレートの例",
    "exampleTemplatesHint": "— クリックしてロード",
    "templateLoadHint": "テンプレートはリクエストを {format} 形式でロードします。別の形式でロードするには、ソース形式を変更します。",
    "compatibilityTester": "互換性テスター",
    "compatibilityReport": "互換性レポート",
    "testBenchDescription": "事前定義されたシナリオ (単純なチャット、ツール呼び出しなど) を実行して、翻訳とプロバイダーの互換性を確認します。ソース形式とターゲットプロバイダーを選択し、すべてのテストを実行して互換性の割合を確認します。これを使用して、プロバイダー間で機能する機能を見つけます。",
    "targetProvider": "対象プロバイダー",
    "runAllTests": "すべてのテストを実行する",
    "runTest": "テストの実行",
    "reRun": "再実行",
    "running": "走っています...",
    "passed": "合格しました",
    "failed": "失敗しました",
    "passedIconLabel": "✅ 合格",
    "chunks": "チャンク",
    "scenarioSimpleChat": "簡単なチャット",
    "scenarioToolCalling": "ツール呼び出し",
    "scenarioMultiTurn": "マルチターン",
    "scenarioThinking": "考える",
    "scenarioSystemPrompt": "システムプロンプト",
    "scenarioStreaming": "ストリーミング",
    "templateNames": {
      "simple-chat": "簡単なチャット",
      "tool-calling": "ツール呼び出し",
      "multi-turn": "マルチターン",
      "thinking": "考える",
      "system-prompt": "システムプロンプト",
      "streaming": "ストリーミング"
    },
    "templateDescriptions": {
      "simple-chat": "基本的なテキストメッセージ",
      "tool-calling": "関数/ツールの呼び出し",
      "multi-turn": "歴史との対話",
      "thinking": "拡張された思考/推論",
      "system-prompt": "複雑なシステム命令",
      "streaming": "SSEストリーミングリクエスト"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "あなたは役に立つアシスタントです。",
        "userGreeting": "こんにちは！今日は元気ですか？"
      },
      "toolCalling": {
        "userWeather": "サンパウロの天気は?",
        "toolDescription": "場所の現在の天気を取得する",
        "cityNameDescription": "都市名"
      },
      "multiTurn": {
        "system": "あなたはコーディングアシスタントです。",
        "userInitial": "Python で配列をソートする関数を作成します。",
        "assistantExample": "簡単な並べ替え関数を次に示します。\n\n「」パイソン\ndef sort_array(arr):\n    ソートされた状態で返す(arr)\n「」",
        "userFollowUp": "次に、降順で並べ替えるようにします。"
      },
      "thinking": {
        "question": "最初の 100 個の素数の合計はいくらですか?"
      },
      "systemPrompt": {
        "systemInstruction": "あなたは分散システムを専門とするシニア ソフトウェア エンジニアです。業界のベスト プラクティスを使用して質問に簡潔に答えます。関連する場合は、必ずコード例を提供してください。マークダウンを使用して応答をフォーマットします。",
        "question": "サーキット ブレーカー パターンを実装するにはどうすればよいですか?"
      },
      "streaming": {
        "prompt": "ロボットが絵を描くことを学ぶことについての短い物語を教えてください。"
      }
    },
    "openaiCompatibleLabel": "OpenAI対応",
    "anthropicCompatibleLabel": "人間互換性",
    "noTemplateForFormat": "この形式のテンプレートはありません",
    "translationFailed": "変換に失敗しました: {error}",
    "pipelineDebugger": "パイプラインデバッガー",
    "translationPipeline": "翻訳パイプライン",
    "pipelineVisualization": "パイプラインの可視化",
    "pipelineVisualizationHint": "メッセージを送信して、リクエストが検出→変換→プロバイダー呼び出しまでどのように流れるかを確認します。",
    "chatTesterDescription": "メッセージを特定のクライアント形式で送信し、翻訳パイプラインの各ステップを検査します。",
    "chatTesterFlow": "クライアントリクエスト → フォーマット検出 → OpenAI中間 → プロバイダフォーマット → 応答",
    "clickStepToInspect": "任意のステップをクリックして、その段階のデータを検査します。",
    "clientFormat": "クライアント形式",
    "provider": "プロバイダー",
    "modelPlaceholder": "モデル名を選択または入力します...",
    "sendMessageToSeePipeline": "メッセージを送信して翻訳パイプラインを確認してください",
    "chatMessageHintPrefix": "メッセージの形式は次のようになります。",
    "chatMessageHintSuffix": "リクエストがパイプラインを通じて変換され、選択されたプロバイダーに送信されます。",
    "youWithFormat": "あなた ({format})",
    "assistant": "アシスタント",
    "typeMessage": "メッセージを入力してください...",
    "send": "送信",
    "clientRequest": "クライアントリクエスト",
    "clientRequestDescription": "クライアントが送信するリクエスト本文",
    "formatDetected": "フォーマットが検出されました",
    "formatDetectedDescription": "OmniRoute はリクエスト構造から API 形式を自動検出します",
    "openaiIntermediate": "OpenAI中級者",
    "openaiIntermediateDescription": "すべての形式は最初に OpenAI 形式 (ユニバーサル ブリッジ) に正規化されます。",
    "providerFormat": "プロバイダー形式",
    "providerFormatDescription": "OpenAI 形式はプロバイダーのネイティブ形式に変換されます",
    "providerResponse": "プロバイダーの応答",
    "providerResponseRawDescription": "プロバイダー API からの生の応答",
    "providerResponseSseDescription": "プロバイダー API からの生の SSE ストリーム",
    "unexpectedError": "予期しないエラーが発生しました",
    "error": "エラー",
    "errorMessage": "エラー: {message}",
    "requestFailed": "リクエストが失敗しました",
    "noTextExtracted": "(テキストは抽出されません)",
    "liveMonitorDescriptionPrefix": "API 呼び出しが OmniRoute を通過する際の翻訳イベントを表示します。イベントはメモリ内バッファから取得されます (再起動時にリセットされます)。使用する",
    "liveMonitorDescriptionSuffix": "、またはイベントを生成するための外部 API 呼び出し。"
  },
  "usage": {
    "title": "使用法",
    "loggerTab": "ロガー",
    "proxyTab": "プロキシ",
    "budgetManagement": "予算管理",
    "budgetSaved": "予算制限が保存されました",
    "budgetSaveFailed": "予算を節約できませんでした",
    "loadingBudgetData": "予算データをロードしています...",
    "noApiKeysTitle": "APIキーがありません",
    "noApiKeysDescription": "最初に API キーを追加して、予算制限を設定します。",
    "apiKey": "APIキー",
    "todaysSpend": "今日の支出",
    "thisMonth": "今月",
    "setLimits": "制限を設定する",
    "dailyLimitUsd": "1 日あたりの限度額 (USD)",
    "monthlyLimitUsd": "月間限度額 (USD)",
    "warningThresholdPercent": "警告しきい値 (%)",
    "dailyLimitPlaceholder": "例: 5.00",
    "monthlyLimitPlaceholder": "例: 50.00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "保存制限",
    "budgetOk": "予算は OK — 残り {remaining}",
    "budgetExceeded": "予算を超えています - リクエストはブロックされる可能性があります",
    "totalRequests": "リクエストの合計",
    "noDataYet": "まだデータがありません",
    "latency": "レイテンシー",
    "latencyP50": "p50",
    "latencyP95": "p95",
    "latencyP99": "p99",
    "promptCache": "プロンプトキャッシュ",
    "systemHealth": "システムの健全性",
    "entries": "エントリー",
    "activeCount": "{count} がアクティブです",
    "openCircuitBreakersDetected": "断線ブレーカーが検出されました",
    "hitRate": "命中率",
    "hitsMisses": "ヒット/ミス",
    "circuitBreakers": "サーキットブレーカー",
    "lockedIPs": "ロックされたIP",
    "lockoutsAutoRefreshHint": "モデルごとのレート制限ロック • 自動リフレッシュ 10 秒",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "{time} 残り",
    "howItWorks": "仕組み",
    "howItWorksSubtitle": "評価によって LLM 応答がどのように検証されるかを学びます",
    "define": "定義する",
    "defineStepDescription": "含む、正規表現、完全一致などの戦略を使用して、入力プロンプトと予想される出力基準を含むテスト ケースを作成します。",
    "run": "走る",
    "runStepDescription": "OmniRoute を通じて LLM エンドポイントに対してテスト ケースを実行します。各ケースは実際の API リクエストとして送信されます。",
    "evaluate": "評価する",
    "evaluateStepDescription": "応答は予想される基準と比較されます。遅延メトリクスと詳細なフィードバックを使用して、各ケースの合否を確認します。",
    "evalSuites": "評価スイート",
    "evalSuitesHint": "スイートをクリックしてテスト ケースを表示し、実行して LLM エンドポイントを評価します",
    "evalsLoading": "評価スイートを読み込み中...",
    "noEvalSuitesFound": "Eval スイートが見つかりません",
    "noEvalSuitesDescription": "評価スイートは、API またはコードで定義できます。これらは、contains、regex、完全一致、カスタム関数などの戦略を使用して、予想される結果に対してモデルの出力をテストします。",
    "columnCase": "ケース",
    "columnStatus": "ステータス",
    "columnLatency": "レイテンシー",
    "columnDetails": "詳細",
    "columnModel": "モデル",
    "columnStrategy": "戦略",
    "columnExpected": "期待される",
    "statsSuites": "スイート",
    "statsTestCases": "テストケース",
    "statsModels": "モデル",
    "statsCoverage": "適用範囲",
    "statsStrategiesCount": "{count} 戦略",
    "evaluationStrategies": "評価戦略",
    "modelsUnderTest": "テスト対象のモデル",
    "searchSuitesPlaceholder": "スイートを検索...",
    "passSuffix": "パスする",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "評価の実行",
    "runningProgress": "{current}/{total} を実行中...",
    "passRate": "合格率",
    "summaryBreakdown": "{passed} 成功 · {failed} 失敗 · {total} 合計",
    "passedIconLabel": "✅ 合格",
    "failedIconLabel": "❌ 失敗しました",
    "detailsContains": "内容: 「{term}」",
    "detailsRegex": "正規表現: {pattern}",
    "detailsExpected": "予期される内容: 「{expected}」",
    "noResultsYet": "まだ結果はありません",
    "testCasesCount": "テストケース ({count})",
    "noTestCasesDefined": "テストケースが定義されていません",
    "runEvalHint": "[Run Eval] をクリックして、LLM エンドポイントに対してすべてのケースを実行します。各テストは、OmniRoute を通じて実際のリクエストを送信します。",
    "notifyNoTestCases": "このスイートにはテスト ケースが定義されていません",
    "notifyAllCasesPassed": "すべての {total} 件のケースが合格しました ✅",
    "notifySomeCasesFailed": "{passed}/{total} は成功、{failed} は失敗",
    "notifyEvalRunFailed": "評価の実行に失敗しました",
    "notifyEvalTitle": "評価: {name}",
    "modelEvals": "モデルの評価",
    "evalsHeroDescription": "事前定義された評価スイートを実行して、LLM エンドポイントをテストおよび検証します。各スイートには、OmniRoute を通じて実際のプロンプトを送信し、予想される基準と応答を比較するテスト ケースが含まれており、回帰の検出、モデルの比較、プロバイダー全体での応答品質の確保に役立ちます。",
    "qualityValidation": "品質検証",
    "modelComparison": "モデルの比較",
    "regressionDetection": "回帰の検出",
    "latencyBenchmarks": "レイテンシのベンチマーク",
    "modelLockouts": "モデルのロックアウト",
    "noLockouts": "現在ロックされているモデルはありません",
    "activeSessions": "アクティブなセッション",
    "noSessions": "アクティブなセッションはありません",
    "sessionsHint": "リクエストがプロキシを通過するとセッションが表示されます",
    "sessionsTrackedHint": "リクエストのフィンガープリンティングによって追跡 • 自動リフレッシュ 5 秒",
    "session": "セッション",
    "age": "年齢",
    "requests": "リクエスト",
    "connection": "接続",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "プロバイダーの制限",
    "noProviders": "プロバイダーが接続されていません",
    "connectProvidersForQuota": "OAuth を使用してプロバイダーに接続し、API クォータの制限と使用状況を追跡します。",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "({count} からフィルタリング)",
    "autoRefresh": "自動更新",
    "refreshAll": "すべて更新",
    "loadingQuotas": "読み込み中...",
    "account": "アカウント",
    "modelQuotas": "モデルのクォータ",
    "lastUsed": "最後に使用したもの",
    "actions": "アクション",
    "refreshQuota": "クォータの更新",
    "today": "今日",
    "tomorrow": "明日",
    "dayTimeFormat": "{day}、{time}",
    "inDuration": "{duration} 内",
    "notApplicable": "該当なし",
    "rawPlanWithValue": "未加工のプラン: {plan}",
    "noPlanFromProvider": "プロバイダーからのプランなし",
    "noQuotaData": "クォータ データがありません",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "利用可能なクォータ データがありません",
    "noAccountsForTierFilter": "層フィルターのアカウントが見つかりませんでした",
    "tierAll": "すべて",
    "tierEnterprise": "エンタープライズ",
    "tierTeam": "チーム",
    "tierBusiness": "ビジネス",
    "tierUltra": "ウルトラ",
    "tierPro": "プロ",
    "tierPlus": "プラス",
    "tierFree": "無料",
    "tierUnknown": "不明"
  },
  "modals": {
    "waitingAuth": "承認を待っています",
    "verificationUrl": "認証URL",
    "yourCode": "あなたのコード",
    "remoteAccess": "リモートアクセス:",
    "connectedSuccess": "正常に接続されました!",
    "connectionFailed": "接続に失敗しました",
    "chooseAuthMethod": "認証方法を選択してください:",
    "awsBuilderId": "AWS ビルダー ID",
    "awsIamIdentity": "AWS IAM ID センター",
    "googleAccount": "Googleアカウント",
    "githubAccount": "GitHub アカウント",
    "importToken": "トークンのインポート",
    "pasteToken": "Kiro IDE からリフレッシュ トークンを貼り付けます。",
    "awsRegion": "AWS リージョン",
    "autoDetecting": "トークンを自動検出しています...",
    "readingFromCache": "AWS SSO キャッシュからの読み取り",
    "readingFromCursor": "Cursor IDE データベースからの読み取り",
    "initializing": "初期化中...",
    "pricingConfig": "価格設定",
    "loadingPricing": "価格データをロードしています...",
    "pricingRatesFormat": "価格設定レートの形式",
    "noPricingData": "利用可能な価格データはありません",
    "noModelsFound": "モデルが見つかりません"
  },
  "loggers": {
    "allProviders": "すべてのプロバイダー",
    "allModels": "全モデル",
    "allAccounts": "すべてのアカウント",
    "allApiKeys": "すべての API キー",
    "allTypes": "全種類",
    "allLevels": "すべてのレベル",
    "modelAZ": "モデルA～Z",
    "modelZA": "Z-A型",
    "loadingLogs": "ログを読み込んでいます...",
    "loadingProxyLogs": "プロキシ ログを読み込んでいます...",
    "noLogEntries": "ログエントリが見つかりませんでした",
    "noPayloadData": "このログ エントリに使用できるペイロード データはありません。",
    "proxyEvent": "プロキシイベント",
    "proxy": "プロキシ",
    "level": "レベル",
    "directNative": "ダイレクト（ネイティブ）",
    "combo": "コンボ",
    "inputTokens": "私：",
    "outputTokens": "お:"
  },
  "stats": {
    "usageOverview": "使用方法の概要",
    "outputTokens": "出力トークン",
    "totalCost": "総コスト",
    "usageByModel": "モデル別の使用状況",
    "usageByAccount": "アカウント別の使用状況",
    "failedToLoad": "使用状況統計のロードに失敗しました。",
    "tokenHealth": "トークンの健全性",
    "totalOAuth": "合計 OAuth",
    "healthy": "健康",
    "warning": "警告",
    "errored": "エラーが発生しました",
    "lastCheck": "最終チェック",
    "noData": "データなし",
    "share": "シェアする",
    "unableToLoad": "システムメトリクスをロードできません",
    "product": "製品",
    "resources": "リソース",
    "company": "会社名"
  },
  "auth": {
    "welcome": "ようこそ",
    "signIn": "サインイン",
    "enterPassword": "続行するにはパスワードを入力してください",
    "password": "パスワード",
    "unifiedProxy": "統合 AI API プロキシ",
    "unifiedAiApiProxy": "統合 AI API プロキシ",
    "unifiedAiApiProxyDesc": "単一のエンドポイントを通じて複数の AI プロバイダーにリクエストをルーティングします。負荷分散、フェイルオーバー、使用状況追跡が組み込まれています。",
    "passwordNotEnabled": "パスワード保護が有効になっていません",
    "loading": "読み込み中...",
    "invalidPassword": "無効なパスワード",
    "errorOccurredRetry": "エラーが発生しました。もう一度試してください。",
    "configureInstance": "OmniRoute インスタンスを構成しましょう",
    "runOnboardingWizard": "オンボーディングウィザードを実行して、パスワード設定と最初の AI プロバイダー接続を行います。",
    "startOnboarding": "オンボーディングを開始する",
    "secureYourInstance": "インスタンスを保護する",
    "setPasswordDescription": "パスワードを設定してダッシュボードを保護し、API エンドポイントを不正アクセスから保護します。",
    "configurePassword": "パスワードの設定",
    "continue": "続ける",
    "windowWillClose": "このウィンドウは自動的に閉じます...",
    "closeTabNow": "このタブは今閉じても大丈夫です。",
    "copyUrlManual": "アドレスバーの URL をコピーしてアプリケーションに貼り付けてください。",
    "accessDeniedDescription": "このリソースにアクセスする権限がありません。 API キーを確認するか、管理者に問い合わせてください。",
    "goToDashboard": "ダッシュボードに移動",
    "featureMultiProviderTitle": "マルチプロバイダー",
    "featureMultiProviderDesc": "OpenAI、Anthropic、Google など",
    "featureLoadBalancingTitle": "ロードバランシング",
    "featureLoadBalancingDesc": "リクエストをインテリジェントに分散する",
    "featureUsageTrackingTitle": "使用状況の追跡",
    "featureUsageTrackingDesc": "コストとトークンを監視する",
    "resetPassword": "パスワードのリセット",
    "resetDescription": "ダッシュボードへのアクセスを回復する方法を選択してください",
    "stopServer": "OmniRoute サーバーを停止",
    "processing": "処理中...",
    "pleaseWait": "認証が完了するまでお待ちください。",
    "authSuccess": "認証に成功しました!",
    "copyUrl": "この URL をコピーする",
    "accessDenied": "アクセスが拒否されました",
    "methodCliTitle": "方法 1: CLI のリセット",
    "methodCliDescription": "OmniRoute が実行されているサーバーで次のコマンドを実行します。",
    "methodCliHint": "新しいパスワードを設定するよう求められます。最初にサーバーを停止する必要があります。",
    "methodManualTitle": "方法 2: 手動リセット",
    "methodManualDescription": "データベースからパスワードを削除し、起動時に新しいパスワードを設定します:",
    "setPasswordInYour": "次のファイルで新しいパスワードを設定してください",
    "fileLabelSuffix": "ファイル:",
    "newPasswordPlaceholder": "あなたの新しいパスワード",
    "deleteSettingsFile": "削除",
    "orRemovePasswordHashField": "または、passwordHash フィールドを削除します",
    "restartServerWithNewPassword": "サーバーを再起動すると新しいパスワードが適用されます",
    "backToLogin": "ログインに戻る",
    "forgotPassword": "パスワードをお忘れですか?"
  },
  "landing": {
    "brandName": "オムニルート",
    "navigateHome": "ホームに移動する",
    "toggleMenu": "メニューの切り替え",
    "featuresLink": "特長",
    "docsLink": "ドキュメント",
    "github": "GitHub",
    "versionLive": "v1.0 が公開されました",
    "oneEndpoint": "1 つのエンドポイント",
    "allProviders": "すべての AI プロバイダー",
    "heroDescription": "Web ダッシュボードを備えた AI エンドポイント プロキシ - CLIProxyAPI の JavaScript ポート。 Claude Code、OpenAI Codex、Cline、RooCode、その他の CLI ツールとシームレスに連携します。",
    "getStarted": "始めましょう",
    "viewOnGithub": "GitHub で見る",
    "powerfulFeatures": "強力な機能",
    "featuresSubtitle": "AI インフラストラクチャを管理するために必要なものすべてが 1 か所で構築され、規模に応じて構築されます。",
    "featureUnifiedEndpointTitle": "統合エンドポイント",
    "featureUnifiedEndpointDesc": "単一の標準 API URL を介してすべてのプロバイダーにアクセスします。",
    "featureEasySetupTitle": "簡単セットアップ",
    "featureEasySetupDesc": "npx コマンドを使用すると、数分で起動して実行できます。",
    "featureModelFallbackTitle": "モデルのフォールバック",
    "featureModelFallbackDesc": "障害が発生したり待ち時間が長くなったりすると、プロバイダーを自動的に切り替えます。",
    "featureUsageTrackingTitle": "使用状況の追跡",
    "featureUsageTrackingDesc": "すべてのモデルにわたる詳細な分析とコストの監視。",
    "featureOAuthApiKeysTitle": "OAuth と API キー",
    "featureOAuthApiKeysDesc": "認証情報を 1 つのコンテナーで安全に管理します。",
    "featureCloudSyncTitle": "クラウド同期",
    "featureCloudSyncDesc": "デバイス間で構成を即座に同期します。",
    "featureCliSupportTitle": "CLI のサポート",
    "featureCliSupportDesc": "クロード コード、コーデックス、クライン、カーソルなどで動作します。",
    "featureDashboardTitle": "ダッシュボード",
    "featureDashboardDesc": "リアルタイムのトラフィック分析のためのビジュアル ダッシュボード。",
    "howItWorks": "オムニルートの仕組み",
    "howItWorksDescription": "データはアプリケーションからインテリジェントなルーティング層を介して、ジョブに最適なプロバイダーにシームレスに流れます。",
    "howItWorksStep1Title": "1. CLI と SDK",
    "howItWorksStep1Description": "リクエストはお気に入りのツールまたは統合 SDK から始まります。ベースURLを変更するだけです。",
    "howItWorksStep2Title": "2. オムニルートハブ",
    "howItWorksStep2Description": "私たちのエンジンはプロンプトを分析し、プロバイダーの状態をチェックし、遅延やコストが最小になるようにルートを設定します。",
    "howItWorksStep3Title": "3. AIプロバイダー",
    "howItWorksStep3Description": "リクエストは、OpenAI、Anthropic、Gemini などによって即座に実行されます。",
    "getStartedIn30Seconds": "30 秒で始めましょう",
    "getStartedDescription": "OmniRoute をインストールし、Web ダッシュボードでプロバイダーを構成し、AI リクエストのルーティングを開始します。",
    "installOmniRoute": "オムニルートをインストールする",
    "installStepDescription": "npxコマンドを実行してサーバーを即座に起動します",
    "openDashboard": "ダッシュボードを開く",
    "openDashboardStepDescription": "Webインターフェース経由でプロバイダーとAPIキーを設定する",
    "routeRequests": "ルートリクエスト",
    "routeRequestsStepDescription": "CLI ツールを {endpoint} に指定します。",
    "terminal": "端子",
    "copy": "コピー",
    "copied": "✓ コピーされました",
    "startingOmniRoute": "オムニルートを開始しています...",
    "serverRunningOnLabel": "で実行されているサーバー",
    "dashboardLabel": "ダッシュボード",
    "readyToRoute": "ルートの準備ができました! ✓",
    "configureProvidersNote": "📝 ダッシュボードでプロバイダーを構成するか、環境変数を使用する",
    "dataLocation": "データの場所:",
    "dataLocationMacLinux": " macOS/Linux:",
    "dataLocationWindows": " Windows:",
    "product": "製品",
    "dashboardLink": "ダッシュボード",
    "changelog": "変更履歴",
    "resources": "リソース",
    "documentation": "ドキュメント",
    "npm": "故宮",
    "legal": "法的",
    "mitLicense": "MITライセンス",
    "footerTagline": "AI 生成のための統合エンドポイント。 AI プロバイダーを簡単に接続、ルーティング、管理します。",
    "copyright": "© {year} オムニルート。無断転載を禁じます。",
    "flowToolClaudeCode": "クロード・コード",
    "flowToolOpenAICodex": "OpenAI コーデックス",
    "flowToolCline": "クライン",
    "flowToolCursor": "カーソル",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "人間的",
    "flowProviderGemini": "ジェミニ",
    "flowProviderGithubCopilot": "GitHub コパイロット",
    "interactiveDiagram": "デスクトップ上に表示されるインタラクティブな図",
    "ctaTitle": "AI インフラストラクチャを簡素化する準備はできていますか?",
    "ctaDescription": "OmniRoute との AI 統合を効率化している開発者に加わりましょう。オープンソースで無料で始められます。",
    "startFree": "無料で始める",
    "readDocumentation": "ドキュメントを読む"
  },
  "docs": {
    "title": "ドキュメント",
    "quickStart": "クイックスタート",
    "features": "特長",
    "supportedProviders": "サポートされているプロバイダー",
    "supportedProvidersToc": "プロバイダー",
    "commonUseCases": "一般的な使用例",
    "clientCompatibility": "クライアントの互換性",
    "protocolsToc": "Protocols",
    "apiReference": "APIリファレンス",
    "method": "方法",
    "path": "パス",
    "notes": "注意事項",
    "modelPrefixes": "モデルプレフィックス",
    "prefix": "プレフィックス",
    "troubleshooting": "トラブルシューティング",
    "supportsChat": "チャットと応答の両方のエンドポイントをサポートします。",
    "oauthAutoRefresh": "自動トークン更新を使用した OAuth 接続。",
    "fullStreaming": "すべてのモデルでストリーミングを完全にサポート。",
    "docsLabel": "ドキュメント",
    "docsHeroDescription": "マルチプロバイダー LLM 用の AI ゲートウェイ。 OpenAI、Anthropic、Gemini、GitHub Copilot、Claude Code、Cursor、および 20 以上のプロバイダーに対応する 1 つのエンドポイント。",
    "openDashboard": "ダッシュボードを開く",
    "endpointPage": "エンドポイントページ",
    "github": "GitHub",
    "reportIssue": "レポートの問題",
    "onThisPage": "このページでは",
    "documentationVersion": "ドキュメント - v{version}",
    "quickStartStep1Title": "1. インストールして実行する",
    "quickStartStep1Prefix": "走る",
    "quickStartStep1Middle": "または GitHub からクローンを作成して実行します",
    "quickStartStep2Title": "2. APIキーの作成",
    "quickStartStep2Text": "[エンドポイント] -> [登録済みキー] に移動します。環境ごとに 1 つのキーを生成します。",
    "quickStartStep3Title": "3. プロバイダーに接続する",
    "quickStartStep3Text": "OAuth ログイン、API キー、または無料枠の自動接続を介してプロバイダー アカウントを追加します。",
    "quickStartStep4Title": "4. クライアントベースURLの設定",
    "quickStartStep4Prefix": "IDE または API クライアントを次のように指定します。",
    "quickStartStep4Suffix": "たとえば、プロバイダーのプレフィックスを使用します。",
    "featureRoutingTitle": "マルチプロバイダールーティング",
    "featureRoutingText": "単一の OpenAI 互換エンドポイントを通じて 30 以上の AI プロバイダーにリクエストをルーティングします。チャット、応答、音声、画像 API をサポートします。",
    "featureCombosTitle": "コンボとバランス調整",
    "featureCombosText": "フォールバック チェーンとバランス戦略 (ラウンドロビン、優先順位、ランダム、使用量が最も少ない戦略、コスト最適化) を使用してモデル コンボを作成します。",
    "featureUsageTitle": "使用量とコストの追跡",
    "featureUsageText": "リアルタイムのトークンカウント、プロバイダー/モデルごとのコスト計算、API キーとアカウントごとの詳細な使用量の内訳。",
    "featureAnalyticsTitle": "分析ダッシュボード",
    "featureAnalyticsText": "リクエスト、トークン、エラー、レイテンシ、コスト、およびモデルの人気を時系列でグラフ化した視覚的な分析。",
    "featureHealthTitle": "ヘルスモニタリング",
    "featureHealthText": "ライブヘルスチェック、プロバイダーのステータス、サーキットブレーカーの状態、および指数バックオフによる自動レート制限検出。",
    "featureCliTitle": "CLIツール",
    "featureCliText": "IDE 構成の管理、バックアップのエクスポート/インポート、コーデックス プロファイルの検出、ダッシュボードからの設定の構成を行います。",
    "featureSecurityTitle": "セキュリティとポリシー",
    "featureSecurityText": "API キー認証、IP フィルタリング、プロンプト インジェクション ガード、ドメイン ポリシー、セッション管理、監査ログ。",
    "featureCloudSyncTitle": "クラウド同期",
    "featureCloudSyncText": "構成をCloudflare Workersに同期して、暗号化された認証情報と自動フェイルオーバーによるリモートアクセスを実現します。",
    "providersAcrossConnectionTypes": "{count} プロバイダーは 3 つの接続タイプにまたがります。",
    "manageProviders": "プロバイダーの管理",
    "providersCount": "{count} プロバイダー",
    "providerTypeFree": "無料利用枠",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "APIキー",
    "useCaseSingleEndpointTitle": "多くのプロバイダーに対応する単一のエンドポイント",
    "useCaseSingleEndpointText": "クライアントに 1 つのベース URL を指定し、モデル プレフィックス (例: gh/、cc/、kr/、openai/) によってルーティングします。",
    "useCaseFallbackTitle": "コンボによるフォールバックとモデル切り替え",
    "useCaseFallbackText": "ダッシュボードでコンボ モデルを作成し、プロバイダーが内部でローテーションする間、クライアント構成を安定に保ちます。",
    "useCaseUsageVisibilityTitle": "使用量、コスト、デバッグの可視性",
    "useCaseUsageVisibilityText": "[使用状況] タブと [分析] タブで、プロバイダー、アカウント、API キーごとにトークンとコストを追跡します。",
    "clientCherryStudioTitle": "チェリースタジオ",
    "baseUrlLabel": "ベースURL",
    "chatEndpointLabel": "チャットエンドポイント",
    "modelRecommendationLabel": "モデルの推奨事項: 明示的なプレフィックス",
    "clientCodexTitle": "Codex / GitHub コパイロット モデル",
    "clientCodexBullet1": "モデル ID を使用する",
    "clientCodexBullet2": "Codex ファミリ モデルの自動ルーティング先",
    "clientCodexBullet3": "非コーデックスモデルも継続",
    "clientCursorTitle": "カーソルIDE",
    "clientCursorBullet1": "使用する",
    "clientCursorBullet1Suffix": "カーソルモデルのプレフィックス。",
    "clientCursorBullet2": "OAuth 接続 - プロバイダー ページからログインします。",
    "clientClaudeTitle": "クロード・コード / 反重力",
    "clientClaudeBullet1Prefix": "使用する",
    "clientClaudeBullet1Middle": "（クロード）または",
    "clientClaudeBullet1Suffix": "(反重力) 接頭辞。",
    "protocolsTitle": "Protocols: MCP & A2A",
    "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
    "protocolMcpTitle": "MCP (Model Context Protocol)",
    "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
    "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
    "protocolMcpStep2": "Point your MCP client to stdio transport.",
    "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
    "protocolA2aTitle": "A2A (Agent2Agent)",
    "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
    "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
    "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
    "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
    "protocolTroubleshootingTitle": "Protocol Troubleshooting",
    "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
    "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
    "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
    "endpointChatNote": "OpenAI 互換のチャット エンドポイント (デフォルト)。",
    "endpointResponsesNote": "応答 API エンドポイント (Codex、o シリーズ)。",
    "endpointModelsNote": "接続されているすべてのプロバイダーのモデル カタログ。",
    "endpointAudioNote": "音声転写 (Deepgram、AssemblyAI)。",
    "endpointImagesNote": "画像生成（NanoBanana）。",
    "endpointRewriteChatNote": "/v1 のないクライアント用のヘルパーを書き換えます。",
    "endpointRewriteResponsesNote": "/v1 のない応答のヘルパーを書き換えます。",
    "endpointRewriteModelsNote": "/v1 を使用せずにモデル検出用のヘルパーを書き換えます。",
    "modelPrefixesDescriptionStart": "特定のプロバイダーにルーティングするには、モデル名の前にプロバイダーのプレフィックスを使用します。例:",
    "modelPrefixesDescriptionEnd": "GitHub Copilot にルートします。",
    "provider": "プロバイダー",
    "type": "種類",
    "troubleshootingModelRouting": "クライアントがモデル ルーティングに失敗した場合は、明示的なプロバイダー/モデル (例: gh/gpt-5.1-codex) を使用します。",
    "troubleshootingAmbiguousModels": "あいまいなモデル エラーを受け取った場合は、裸のモデル ID の代わりにプロバイダー プレフィックスを選択してください。",
    "troubleshootingCodexFamily": "GitHub Codex ファミリ モデルの場合、モデルを gh/codex-model として保持します。ルーターは自動的に選択/応答します。",
    "troubleshootingTestConnection": "IDE または外部クライアントからテストする前に、[ダッシュボード] > [プロバイダー] > [接続のテスト] を使用します。",
    "troubleshootingCircuitBreaker": "プロバイダーがサーキット ブレーカーが開いていることを示している場合は、クールダウンするまで待つか、詳細について [ヘルス] ページを確認してください。",
    "troubleshootingOAuth": "OAuth プロバイダーの場合、トークンの有効期限が切れた場合は再認証します。プロバイダー カードのステータス インジケーターを確認します。"
  },
  "legal": {
    "privacyPolicy": "プライバシーポリシー",
    "termsOfService": "利用規約",
    "providerConfigurations": "プロバイダーの構成",
    "apiKeys": "APIキー",
    "usageLogs": "使用ログ",
    "applicationSettings": "アプリケーション設定",
    "viewExportAnalytics": "使用状況分析の表示とエクスポート",
    "clearHistory": "利用履歴はいつでもクリア",
    "configureRetention": "ログ保持ポリシーを構成する",
    "backupRestore": "データベースのバックアップと復元",
    "privacyMetadataTitle": "プライバシーポリシー |オムニルート",
    "privacyMetadataDescription": "OmniRoute AI API プロキシ ルーターのプライバシー ポリシー。",
    "termsMetadataTitle": "利用規約 |オムニルート",
    "termsMetadataDescription": "OmniRoute AI API プロキシ ルーターの利用規約。",
    "backToHome": "家に戻る",
    "lastUpdated": "最終更新日: {date}",
    "policyLastUpdatedDate": "2026 年 2 月 13 日",
    "listSeparator": "-",
    "questionsVisit": "質問がありますか?訪問してください",
    "githubRepository": "GitHub リポジトリ",
    "privacySection1Title": "1. ローカルファーストのアーキテクチャ",
    "privacySection1Text": "OmniRoute はローカルファーストのアプリケーションとして設計されています。すべてのデータの処理と保存は完全にマシン上で行われます。あなたの情報を収集する集中サーバーはありません。",
    "privacySection2Title": "2. 当社が保管するデータ",
    "privacyDataStoredIn": "次のデータはローカルに保存されます。",
    "privacyDataProviderConfigurationsDesc": "接続 URL、プロバイダーの種類、および優先度の設定",
    "privacyDataApiKeysDesc": "AI プロバイダーによる認証のために暗号化され、ローカルに保存されます",
    "privacyDataUsageLogsDesc": "リクエスト数、トークン使用量、モデル名、タイムスタンプ、応答時間",
    "privacyDataApplicationSettingsDesc": "テーマの設定、ルーティング戦略、およびコンボ構成",
    "privacySection3Title": "3. テレメトリなし",
    "privacySection3Text": "OmniRoute は、テレメトリ、分析、またはクラッシュ レポートを収集しません。データが当社または第三者に送信されることはありません。使用パターン、API 呼び出し、構成は完全に非公開のままです。",
    "privacySection4Title": "4. サードパーティの AI プロバイダー",
    "privacySection4Text": "OmniRoute 経由で API 呼び出しを行うと、リクエストは構成した AI プロバイダー (例: OpenAI、Anthropic、Google) に転送されます。これらのプロバイダーには、データの取り扱い方法を規定する独自のプライバシー ポリシーがあります。確認してください:",
    "privacyOpenAiPolicy": "OpenAI プライバシー ポリシー",
    "privacyAnthropicPolicy": "人類のプライバシーポリシー",
    "privacyGooglePolicy": "Google プライバシー ポリシー",
    "privacySection5Title": "5. クラウド同期 (オプション)",
    "privacySection5Text": "オプションのクラウド同期機能を有効にすると、プロバイダー設定と API キーが、設定されたクラウド エンドポイントに送信される場合があります。この機能はデフォルトでは無効になっており、明示的なオプトインが必要です。",
    "privacySection6Title": "6. ロギング",
    "privacyLoggingIntro": "リクエスト ログは、ダッシュボード設定を通じて構成できます。次のことができます。",
    "privacySection7Title": "7. お客様の権利",
    "privacySection7TextStart": "すべてのデータはローカルに保存されるため、完全に制御できます。データはいつでも削除できます。",
    "privacySection7TextEnd": "ディレクトリを使用するか、ダッシュボードのデータベースのバックアップおよび復元機能を使用します。",
    "termsSection1Title": "1. 概要",
    "termsSection1Text": "OmniRoute は、完全にマシン上で動作するローカルファーストの AI API プロキシ ルーターです。負荷分散、フェイルオーバー、使用状況追跡を使用して、リクエストを複数の AI プロバイダーにルーティングします。",
    "termsSection2Title": "2. ユーザーの責任",
    "termsResponsibilityApiKeys": "独自の API キーとサードパーティ AI プロバイダー (OpenAI、Anthropic、Google など) の認証情報の管理はお客様が単独で責任を負います。",
    "termsResponsibilityCompliance": "OmniRoute を通じて API にアクセスする各 AI プロバイダーのサービス規約に従う必要があります。",
    "termsResponsibilitySecurity": "パスワードの設定やネットワーク アクセスの制限など、ローカルの OmniRoute インストールのセキュリティについてはお客様の責任となります。",
    "termsSection3Title": "3. 仕組み",
    "termsSection3Text": "OmniRoute は中間プロキシとして機能します。 OmniRoute に送信された API 呼び出しは変換され、構成された AI プロバイダーに転送されます。 OmniRoute は、必要なプロトコル変換を超えてリクエストや応答の内容を変更しません。",
    "termsSection4Title": "4. データの取り扱い",
    "termsDataStoredLocally": "すべてのデータは、ローカルのマシン上の SQLite データベースに保存されます。",
    "termsNoTransmission": "OmniRoute は、クラウド同期機能を明示的に有効にしない限り、外部サーバーにデータを送信しません。",
    "termsDataLocationText": "使用ログ、API キー、設定は次の場所に保存されます。",
    "termsSection5Title": "5. 免責事項",
    "termsSection5Text": "OmniRoute は、いかなる種類の保証もなく「現状のまま」提供されます。 API の使用、サービスの中断、またはデータの損失によって発生する費用については、当社は責任を負いません。構成のバックアップを常に維持してください。",
    "termsSection6Title": "6. オープンソース",
    "termsSection6Text": "OmniRoute はオープンソース ソフトウェアです。ライセンス条項に基づいて、自由に検査、変更、配布することができます。"
  },
  "endpoints": {
    "tabProxy": "エンドポイント プロキシ",
    "tabApiEndpoints": "APIエンドポイント",
    "apiEndpointsTitle": "APIエンドポイント",
    "apiEndpointsDescription": "他のアプリケーションやサービスから利用可能なバックエンドAPIエンドポイント。",
    "comingSoon": "近日公開",
    "plannedFeatures": "予定されている機能",
    "featureRestApi": "REST APIカタログとインタラクティブなドキュメント",
    "featureWebhooks": "Webhook設定とイベントサブスクリプション",
    "featureSwagger": "OpenAPI / Swagger仕様の自動生成",
    "featureAuth": "エンドポイントごとのAPIキーとOAuthスコープ管理"
  },
  "agents": {
    "title": "CLI Agents",
    "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
    "refresh": "Refresh",
    "installed": "Installed",
    "notFound": "Not Found",
    "builtIn": "Built-in",
    "custom": "Custom",
    "remove": "Remove",
    "addCustomAgent": "Add Custom Agent",
    "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
    "agentName": "Agent Name",
    "binaryName": "Binary Name",
    "versionCommand": "Version Command",
    "spawnArgs": "Spawn Args",
    "addAgent": "Add Agent"
  },
  "autoCombo": {
    "title": "Auto-Combo Engine",
    "statusNormal": "Normal",
    "statusIncident": "Incident Mode",
    "modePack": "Mode Pack",
    "providerScores": "Provider Scores",
    "noAutoCombo": "No auto-combo configured.",
    "excludedProviders": "Excluded Providers",
    "noExclusions": "No providers currently excluded.",
    "factorQuota": "Quota",
    "factorHealth": "Health",
    "factorCost": "Cost",
    "factorLatency": "Latency",
    "factorTaskFit": "Task Fit",
    "factorStability": "Stability",
    "factorTierPriority": "Tier Priority",
    "factorTierPriorityDesc": "Prefers accounts with higher quota tiers (Ultra/Pro over Free)",
    "scoreFactorBreakdown": "Scoring Factors",
    "modePackShipFast": "Ship Fast",
    "modePackCostSaver": "Cost Saver",
    "modePackQualityFirst": "Quality First",
    "modePackOfflineFriendly": "Offline Friendly"
  }
}
