{
    "common": {
        "save": "保存",
        "cancel": "キャンセル",
        "close": "閉じる",
        "confirm": "確認",
        "clear": "クリア",
        "edit": "編集",
        "delete": "削除",
        "loading": "読み込み中..",
        "new": "新規"
    },
    "nav": {
        "about": "概要",
        "editor": "エディタ",
        "newChat": "新しいチャットを開始",
        "settings": "設定",
        "hidePanel": "チャットパネルを非表示 (Ctrl+B)",
        "showPanel": "チャットパネルを表示 (Ctrl+B)",
        "aiChat": "AI チャット"
    },
    "providers": {
        "useServerDefault": "サーバーデフォルトを使用",
        "openai": "OpenAI",
        "anthropic": "Anthropic",
        "google": "Google",
        "azure": "Azure OpenAI",
        "openrouter": "OpenRouter",
        "deepseek": "DeepSeek",
        "siliconflow": "SiliconFlow"
    },
    "chat": {
        "placeholder": "ダイアグラムを説明するか、ファイルをアップロード...",
        "send": "送信",
        "sending": "送信中...",
        "sendMessage": "メッセージを送信",
        "clearConversation": "会話をクリア",
        "diagramHistory": "ダイアグラム履歴",
        "saveDiagram": "ダイアグラムを保存",
        "uploadFile": "ファイルをアップロード（画像、PDF、テキスト）",
        "minimalStyle": "ミニマル",
        "styledMode": "スタイル付き",
        "minimalTooltip": "高速生成のためミニマルを使用（色なし）",
        "regenerate": "応答を再生成",
        "copyResponse": "応答をコピー",
        "copied": "コピーしました！",
        "failedToCopy": "コピーに失敗しました",
        "goodResponse": "良い応答",
        "badResponse": "悪い応答",
        "clickToEdit": "クリックして編集",
        "editMessage": "メッセージを編集",
        "saveAndSubmit": "保存して送信"
    },
    "examples": {
        "title": "AI でダイアグラムを作成",
        "subtitle": "作成したいものを説明するか、画像をアップロードして複製",
        "quickExamples": "クイック例",
        "paperToDiagram": "論文からダイアグラムへ",
        "paperDescription": ".pdf, .txt, .md, .json, .csv, .py, .js, .ts などをアップロード",
        "animatedDiagram": "アニメーション図",
        "animatedDescription": "アニメーションコネクタ付きの Transformer アーキテクチャを描画",
        "awsArchitecture": "AWS アーキテクチャ",
        "awsDescription": "AWS アイコンでクラウドアーキテクチャ図を作成",
        "replicateFlowchart": "フローチャートを複製",
        "replicateDescription": "既存のフローチャートをアップロードして複製",
        "creativeDrawing": "クリエイティブな描画",
        "creativeDescription": "楽しくてクリエイティブなものを描く",
        "cachedNote": "例はキャッシュされ、即座に応答します",
        "mcpServer": "MCP サーバー",
        "mcpDescription": "Claude Desktop、VS Code、Cursor で使用",
        "preview": "プレビュー"
    },
    "settings": {
        "title": "設定",
        "description": "アプリケーション設定を構成します。",
        "accessCode": "アクセスコード",
        "accessCodePlaceholder": "アクセスコードを入力",
        "accessCodeDescription": "このアプリケーションを使用するために必要です。",
        "aiProvider": "AI プロバイダー設定",
        "aiProviderDescription": "独自の API キーを使用して使用制限を回避できます。キーはブラウザのローカルに保存され、サーバーには保存されません。",
        "provider": "プロバイダー",
        "modelId": "モデル ID",
        "apiKey": "API キー",
        "apiKeyPlaceholder": "あなたの API キー",
        "baseUrl": "ベース URL（オプション）",
        "customEndpoint": "カスタムエンドポイント URL",
        "overrides": "上書き",
        "clearSettings": "設定をクリア",
        "useServerDefault": "サーバーデフォルトを使用",
        "theme": "テーマ",
        "themeDescription": "インターフェースと DrawIO キャンバスのダーク/ライトモード。",
        "drawioStyle": "DrawIO スタイル",
        "drawioStyleDescription": "キャンバススタイル：",
        "switchTo": "切り替え",
        "minimal": "ミニマル",
        "sketch": "スケッチ",
        "closeProtection": "ページ離脱確認",
        "closeProtectionDescription": "ページを離れる際に確認を表示します。"
    },
    "save": {
        "title": "ダイアグラムを保存",
        "description": "形式とファイル名を選択してダイアグラムを保存します。",
        "format": "形式",
        "filename": "ファイル名",
        "filenamePlaceholder": "ファイル名を入力",
        "formats": {
            "drawio": "Draw.io XML",
            "png": "PNG 画像",
            "svg": "SVG 画像"
        }
    },
    "history": {
        "title": "ダイアグラム履歴",
        "description": "AI 修正前に保存された各ダイアグラム。\nダイアグラムをクリックして復元",
        "noHistory": "まだ履歴がありません。メッセージを送信してダイアグラム履歴を作成してください。",
        "version": "バージョン",
        "restoreTo": "バージョン {version} に復元しますか？"
    },
    "dialogs": {
        "clearTitle": "すべてクリアしますか？",
        "clearDescription": "現在の会話をクリアし、ダイアグラムをリセットします。この操作は元に戻せません。",
        "clearEverything": "すべてクリア",
        "clearSuccess": "新しいチャットを開始しました"
    },
    "errors": {
        "maxFiles": "ファイルが多すぎます。最大 {max} 個まで許可されています。",
        "onlyMoreAllowed": "あと {slots} 個のファイルのみ許可されています",
        "fileExceeds": "「{name}」は {size} です（{max}MB を超えています）",
        "unsupportedType": "「{name}」はサポートされていないファイルタイプです",
        "filesRejected": "{count} 個のファイルが拒否されました：",
        "andMore": "...およびさらに {count} 個",
        "invalidAccessCode": "無効または欠落したアクセスコード。設定で入力してください。",
        "networkError": "ネットワークエラー。接続を確認してください。",
        "retryLimit": "自動再試行制限に達しました（{max}）。手動で再試行してください。",
        "validationFailed": "ダイアグラムの検証に失敗しました。再生成してみてください。",
        "malformedXml": "AI が無効なダイアグラム XML を生成しました。再生成してみてください。",
        "failedToProcess": "ダイアグラムの処理に失敗しました。再生成してみてください。",
        "sessionCorrupted": "セッションデータが破損しました。最初からやり直します。",
        "failedToSave": "localStorage へのメッセージの保存に失敗しました",
        "failedToRestore": "localStorage からの復元に失敗しました",
        "failedToPersist": "アンロード前の状態の永続化に失敗しました",
        "failedToExport": "チャートデータの取得エラー",
        "failedToLoadExample": "例の画像の読み込みエラー"
    },
    "quota": {
        "dailyLimit": "1日の割当量に達しました",
        "tokenLimit": "1日のトークン制限に達しました",
        "tpmLimit": "レート制限",
        "tpmMessage": "リクエストが多すぎます。しばらくお待ちください。",
        "messageApi": "おっと — このデモの1日の API 制限に達しました！個人開発者として API コストをすべて負担しているため、持続可能性を保つためにこれらの制限を設定する必要があります。",
        "messageToken": "おっと — このデモの1日のトークン制限に達しました！個人開発者として API コストをすべて負担しているため、持続可能性を保つためにこれらの制限を設定する必要があります。",
        "tip": "<strong>ヒント：</strong>独自の API キーを使用する（設定アイコンをクリック）か、プロジェクトをセルフホストしてこれらの制限を回避できます。",
        "reset": "制限は明日リセットされます。ご理解ありがとうございます！",
        "selfHost": "セルフホスト",
        "sponsor": "スポンサー",
        "learnMore": "詳細 →",
        "usedOf": "{used}/{limit}"
    },
    "tools": {
        "generateDiagram": "ダイアグラムを生成",
        "editDiagram": "ダイアグラムを編集",
        "appendDiagram": "ダイアグラムに追加",
        "complete": "完了",
        "error": "エラー",
        "truncated": "切り捨て"
    },
    "file": {
        "reading": "読み込み中...",
        "chars": "文字",
        "removeFile": "ファイルを削除"
    },
    "reasoning": {
        "thinking": "考え中...",
        "thoughtFor": "{duration} 秒考えました",
        "thoughtBrief": "数秒考えました"
    },
    "about": {
        "modelChange": "モデル変更と利用制限について",
        "walletCrying": "（別名：お財布が悲鳴を上げています）",
        "seekingSponsorship": "スポンサー募集",
        "contactMe": "お問い合わせ",
        "usageNotice": "利用量の増加に伴い、コスト削減のためモデルを Claude から minimax-m2 に変更し、いくつかの利用制限を設けました。詳細は概要ページをご覧ください。"
    },
    "modelConfig": {
        "title": "AIモデル設定",
        "description": "複数のAIプロバイダーとモデルを設定",
        "configure": "設定",
        "addProvider": "プロバイダーを追加",
        "addModel": "モデルを追加",
        "modelId": "モデルID",
        "modelLabel": "表示名",
        "streaming": "ストリーミングを有効",
        "deleteProvider": "プロバイダーを削除",
        "deleteModel": "モデルを削除",
        "noModels": "モデルが設定されていません。モデルを追加してください。",
        "selectProvider": "プロバイダーを選択または追加してください",
        "configureMultiple": "複数のAIプロバイダーを設定して簡単に切り替え",
        "apiKeyStored": "APIキーはブラウザにローカル保存されます",
        "test": "テスト",
        "validationError": "検証に失敗しました",
        "addModelFirst": "検証するには少なくとも1つのモデルを追加してください"
    }
}
