{
  "meta": {
    "version": "1.10.0",
    "updated": "2025-08-16"
  },
  "common": {
    "welcome": "ようこそ",
    "hello": "こんにちは",
    "goodbye": "さようなら",
    "yes": "はい",
    "no": "いいえ",
    "save": "保存",
    "cancel": "キャンセル",
    "delete": "削除",
    "edit": "編集",
    "loading": "読み込み中...",
    "offlineTitle": "オフラインです",
    "offlineMessage": "インターネット接続を確認してください",
    "tryReconnect": "再接続を試みる",
    "logout": "ログアウト",
    "login": "ログイン",
    "amount": "Amount",
    "success": "成功",
    "error": "エラー",
    "warning": "警告",
    "info": "情報：",
    "debug": "デバッグ",
    "progress": "進捗：",
    "remaining": "残り：",
    "total": "合計：",
    "completed": "7. 正常に完了しました！",
    "missing": "不足",
    "partial": "部分的",
    "sameAsSource": "ソースと同じ：",
    "formatMismatch": "形式の不一致：",
    "typeMismatch": "タイプの不一致",
    "structureMismatch": "構造の不一致：",
    "invalidOption": "無効なオプション",
    "separator": "==================================================",
    "initializationFailed": "❌ 初期化に失敗しました: {error}",
    "stackTrace": "スタックトレース: {stack}",
    "pressEnterToContinue": "Enterキーを押して続行...",
    "pressEnterToReturn": "Enterキーを押してメインメニューに戻る...",
    "stepCompleted": "ステップ '{stepName}' が完了しました。",
    "stepFailed": "ステップ '{stepName}' が失敗しました。",
    "runningStep": "ステップを実行中: {stepName}",
    "command": "コマンド: {command}",
    "startingWorkflow": "ワークフローを開始中...",
    "workflowCompleted": "ワークフローが完了しました。",
    "checkReports": "詳細についてはレポートを確認してください。",
    "errorExecutingCommand": "コマンド実行エラー：{error}",
    "genericError": "❌ エラー：{error}",
    "errors": {
      "errors": "エラー：",
      "genericError": "❌ エラー：{error}",
      "initializationFailed": "❌ 初期化に失敗しました: {error}",
      "translationKeyNotFound": "翻訳キーが見つかりません: {key}",
      "sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {directory}",
      "configLoadingFailed": "構成の読み込みに失敗しました",
      "invalidSourceDirectory": "無効なソースディレクトリ: {directory}",
      "securityViolation": "セキュリティ違反が検出されました",
      "authenticationFailed": "認証が失敗しました",
      "sourceEqualsI18nWarn": "⚠️ ソースディレクトリと I18n ディレクトリが等しいため、ソーススキャンを {fallback} にフォールバックします。"
    },
    "errorGeneratingStatusSummary": "ステータスサマリーの生成エラー：{error}",
    "errorRunningDebugTool": "デバッグツール'{displayName}'の実行エラー：{error}",
    "errorReadingDebugLogs": "デバッグログの読み取りエラー：{error}",
    "errorAnalyzingLogFile": "ログファイルの分析エラー：{error}",
    "errorAnalyzingTranslationKeys": "翻訳キーの分析エラー：{error}",
    "errorAnalyzingTranslationCompleteness": "翻訳の完全性分析エラー：{error}",
    "errorAnalyzingTranslationFormat": "翻訳形式の分析エラー：{error}",
    "errorAnalyzingTranslationType": "翻訳タイプの分析エラー：{error}",
    "errorAnalyzingTranslationStructure": "翻訳構造の分析エラー：{error}",
    "errorAnalyzingTranslationFormatMismatch": "翻訳形式の不一致分析エラー：{error}",
    "errorAnalyzingTranslationTypeMismatch": "翻訳タイプの不一致分析エラー：{error}",
    "errorAnalyzingTranslationStructureMismatch": "翻訳構造の不一致分析エラー：{error}",
    "errorAnalyzingTranslationSameAsSource": "ソースと同じ翻訳の分析エラー：{error}",
    "title": "ステータス",
    "nextStep1": "1. 使用状況分析を確認：",
    "nextStep2": "2. 翻訳を検証：",
    "nextStep3": "3. 完全性を分析：",
    "nextStep4": "4. 不足している翻訳を補完：",
    "nextStep5": "5. サマリーレポートを生成：",
    "nextStep6": "6. 翻訳を確認して確定：",
    "generating": "サマリーレポートを生成中...",
    "review": "翻訳をレビュー中...",
    "finalizing": "翻訳を最終調整中...",
    "finalized": "正常に確定されました！",
    "warnings": "警告：",
    "completedKeys": "完了したキー：",
    "missingKeys": "不足しているキー：",
    "partialKeys": "部分的なキー：",
    "home": "ホーム",
    "settings": "設定",
    "confirm": "確認",
    "analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
    "i18nDirectoryNotFound": "⚠️  i18nディレクトリが見つかりません: {i18nDir}",
    "translationCompletenessAnalysisFailed": "⚠️  翻訳の完全性分析が失敗しました: {error}",
    "failedToAnalyzeLanguage": "❌ 言語 {language} の分析に失敗しました: {error}",
    "errorReadingI18nDirectory": "❌ i18nディレクトリの読み取りに失敗しました: {error}",
    "languageCompletenessTitle": "📈 翻訳の完全性を言語別に表示",
    "startingSettings": "🎛️  設定 CLI を開始します..."
  },
  "errors": {
    "readlineClosed": "入力ストリームが閉じられています。非対話モードで実行中です。",
    "noPackageJson": "package.jsonが見つかりません。i18nフレームワークを自動検出できません。",
    "noI18nDir": "プロジェクトルートにi18nディレクトリが見つかりません。",
    "noI18nConfig": "プロジェクトルートにi18n設定ファイルが見つかりません。"
  },
  "fixer": {
    "help_message": "\nI18n Translation Fixer\n\nUsage: node i18ntk-fixer.js [options]\n\nOptions:\n  --source-dir <dir>     Source directory to scan (default: ./locales)\n  --languages <langs>    Comma separated list of languages to fix\n  --markers <markers>    Comma separated markers to treat as untranslated\n  --no-backup           Skip automatic backup creation\n  --help                Show this help\n\nExamples:\n  node i18ntk-fixer.js --languages de,fr\n  node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED\n  node i18ntk-fixer.js --no-backup\n",
    "starting": "🚀 翻訳修正を開始します。言語: {languages}",
    "sourceDirectory": "📁 ソースディレクトリ: {sourceDir}",
    "sourceLanguage": "🔤 ソース言語: {sourceLanguage}",
    "markers": "🏷️  修正するマーカー: {markers}",
    "scanningLanguage": "📊 {language} をスキャン中...",
    "noLanguages": "❌ 修正する言語が指定されていません。",
    "allComplete": "🎉 すべての翻訳が既に完了しています！",
    "fullReportSaved": "📊 完全なレポートが保存されました: {reportPath}",
    "reviewReport": "翻訳修正レポートを確認してください。",
    "backupCreated": "💾 バックアップが正常に作成されました。",
    "applyingFixes": "🔄 修正を適用中...",
    "fixingComplete": "✅ 翻訳修正が完了しました！",
    "operationCancelled": "❌ ユーザーによる操作がキャンセルされました。",
    "analysisTitle": "🔍 翻訳修正分析",
    "analysisSeparator": "==================================================",
    "totalIssues": "🔍 修正可能な問題の合計: {totalIssues}",
    "missingTranslations": "❌ 不足している翻訳: {missing}",
    "placeholderTranslations": "⚠️  プレースホルダー翻訳: {placeholder}",
    "noIssues": "✅ 修正可能な問題が見つかりませんでした。すべての翻訳が完了しています。",
    "detailedIssues": "📋 詳細な問題:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ 不足している翻訳: {source} → {new}",
    "placeholderKey": "⚠️  プレースホルダー翻訳: \"{target}\" → \"{new}\"",
    "moreIssues": "... その他 {count} 件の問題が見つかりました。詳細はレポートファイルを参照してください。",
    "confirmationTitle": "🤔 修正を適用しますか？",
    "confirmationOptions": "選択肢:",
    "optionYes": "y - すべての修正を適用",
    "optionNo": "n - 操作をキャンセル",
    "optionShow": "s - 詳細な問題を表示",
    "choicePrompt": "選択肢を入力 (y/n/s): ",
    "nonInteractiveMode": "⚡ 非対話モードが検出されました。修正を自動的に適用します...",
    "reportGenerated": "📊 修正レポートが生成されました: {path}",
    "summary": {
      "totalIssues": "総問題数: {total}",
      "missingKeys": "不足キー: {missing}",
      "placeholderKeys": "プレースホルダーキー: {placeholder}",
      "languages": "言語: {languages}"
    },
    "welcome": {
      "title": "🎯 翻訳フィクサーへようこそ！",
      "description": "このツールは、壊れた翻訳やプレースホルダーマーカーを言語ファイルから修復するのに役立ちます。"
    },
    "markerPrompt": {
      "title": "🏷️ プレースホルダーマーカーの設定",
      "description": "未翻訳のテキストを示すマーカーを入力してください（カンマ区切り）:",
      "currentDefaults": "デフォルトマーカー: {markers}",
      "input": "マーカー（Enterでデフォルトを使用）: "
    },
    "languagePrompt": {
      "title": "🌍 修復する言語の選択",
      "available": "利用可能な言語: {languages}",
      "description": "修復する言語を入力してください（カンマ区切り）またはEnterですべてを選択:",
      "input": "言語: ",
      "noLanguages": "修復する言語が見つかりませんでした。"
    },
    "directoryPrompt": {
      "title": "📁 ディレクトリの選択",
      "current": "現在のディレクトリ: {dir}",
      "description": "言語ファイルを含むディレクトリを入力してください（またはEnterで現在のディレクトリを使用）:",
      "input": "ディレクトリ: "
    }
  },
  "autorun": {
    "stepAnalyzeTranslations": "翻訳の分析",
    "stepCompletedWithIcon": "✅ ステップ「{stepName}」が完了しました。",
    "stepValidateTranslations": "翻訳の検証",
    "stepRunning": "ステップ「{stepName}」を実行中...",
    "separator": "==================================================",
    "stepFailed": "ステップ「{stepName}」が失敗しました。",
    "errorLabel": "エラー: {error}",
    "autoRunScriptTitle": "Auto-Runスクリプト",
    "usageTitle": "使用法:",
    "runAllSteps": "node i18ntk-autorun.js --all - i18ntk-config.jsonで定義されたすべてのステップを実行",
    "configureSettingsFirst": "node i18ntk-autorun.js --config - ワークフローの設定を構成",
    "runSpecificSteps": "node i18ntk-autorun.js --steps <step_numbers> - 特定のステップを実行 (例: --steps 1,3,5)",
    "showHelp": "node i18ntk-autorun.js --help - ヘルプメッセージを表示",
    "examplesTitle": "例:",
    "configExample": "node i18ntk-autorun.js --config",
    "stepsExample1": "node i18ntk-autorun.js --steps 1,2,3",
    "stepsExample2": "node i18ntk-autorun.js --all",
    "customSettingsConfiguration": "カスタム設定の構成",
    "availableSteps": "利用可能なステップ:",
    "startingAutoRunWorkflow": "Auto-Runワークフローを開始しています...",
    "workflowIncludesSteps": "ワークフローには{count}ステップが含まれています:",
    "missingRequiredFile": "必須ファイルが見つかりません: {file}",
    "workflowStopped": "ワークフローが停止しました。",
    "workflowCompleted": "ワークフローが完了しました。",
    "successfulSteps": "成功したステップ: {count}",
    "failedSteps": "失敗したステップ: {count}",
    "stepInitializeProject": "プロジェクトの初期化",
    "stepCheckUsage": "使用状況のチェック",
    "stepGenerateSummary": "要約レポートを生成中...",
    "runInitializationFirst": "まず初期化を実行してください。",
    "initializationCheckPassed": "初期化チェックが完了しました。",
    "runningStep": "ステップを実行中: {stepName}",
    "commandLabel": "コマンド: {command}",
    "stepCompletedWithTime": "ステップ「{stepName}」が{duration}msで完了しました。",
    "stepCompleted": "ステップ「{stepName}」が完了しました。",
    "stepFailedWithError": "ステップ「{stepName}」がエラーで失敗しました: {error}",
    "requiredStepFailed": "必須ステップが失敗しました。ワークフローを停止します。",
    "optionalStepFailed": "オプションステップが失敗しました。ワークフローを継続します。",
    "stepRequired": "(必須)",
    "stepOptional": "(オプション)",
    "startingExecution": "実行を開始します...",
    "pressEnterToContinue": "続行するにはEnterキーを押してください...",
    "runningSelectedSteps": "選択したステップを実行中...",
    "invalidStepNumber": "無効なステップ番号: {stepNum}",
    "executionReport": "実行レポート:",
    "requiredFailedSteps": "必須ステップの失敗: {count}",
    "stepDetails": "ステップの詳細:",
    "reportSavedTo": "レポートが保存されました: {path}",
    "overallStatusSuccess": "成功",
    "overallStatusFailed": "失敗",
    "overallStatus": "全体のステータス: {status}",
    "pressEnterForDefaults": "既定値を使用するにはEnterキーを押してください。",
    "sourceDirPrompt": "ソースディレクトリを入力してください (デフォルト: {default}): ",
    "sourceLangPrompt": "ソース言語を入力してください (デフォルト: {default}): ",
    "targetLangsPrompt": "ターゲット言語を入力してください (カンマ区切り, デフォルト: {default}): ",
    "translationMarkerPrompt": "翻訳マーカーを入力してください (デフォルト: {default}): ",
    "outputDirPrompt": "レポートの出力ディレクトリを入力してください (デフォルト: {default}): ",
    "settingsUpdatedSuccessfully": "設定が正常に更新されました！",
    "errorConfiguringSettings": "設定構成エラー: {error}",
    "configurationComplete": "構成が完了しました。",
    "runAutoRunCommand": "これでAuto-Runコマンドを実行できます。",
    "configurationFailed": "構成に失敗しました: {error}",
    "noValidStepNumbers": "有効なステップ番号が指定されていません。",
    "autoRunFailed": "Auto-Runが失敗しました: {error}",
    "stepCompleteTranslations": "翻訳の完成",
    "stepAnalyzeSizing": "サイズ分析",
    "stepCompletedIcon": "✅",
    "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] ステップ「{stepName}」を実行中...",
    "stepFailedIcon": "❌",
    "translationLoadWarning": "警告: {lang}の翻訳を読み込めませんでした",
    "configReadError": "{file}の読み込みエラー"
  },
  "analyze": {
    "help_message": "\ni18n 翻訳分析ツール\n\n使い方: node i18ntk-analyze.js [オプション]\n\nオプション:\n  --source-dir <dir>     スキャンするソースディレクトリ（デフォルト: ./locales）\n  --i18n-dir <dir>       I18n ディレクトリ（デフォルト: ./locales）\n  --output-report        詳細レポートを生成する\n  --output-dir <dir>     レポート出力先ディレクトリ（デフォルト: ./i18ntk-reports）\n  --help                 このヘルプを表示する\n\n例:\n  node i18ntk-analyze.js --output-report\n  node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-analyze.js --output-dir=./analysis --output-report\n",
    "source_directory": "📁 ソースディレクトリ: {sourceDir}",
    "i18n_directory": "🌐 I18n ディレクトリ: {i18nDir}",
    "loading_translation_files": "📋 翻訳ファイルを読み込み中...",
    "sourceDirectoryLabel": "📁 ソースディレクトリ: {sourceDir}",
    "sourceLanguageLabel": "🌍 ソース言語: {sourceLanguage}",
    "strictModeLabel": "⚙️ 厳密モード: {mode}\n",
    "found_translation_files_count": "✅ {count} 件の翻訳ファイルを検出しました",
    "analyzing_translations": "🔍 翻訳を分析中...",
    "analysis_completed_successfully": "🎉 分析が正常に完了しました！",
    "analysis_results": "📊 分析結果",
    "language_analysis_stats": "  {language}: {translatedKeys}/{totalKeys} ({percentage}% 翻訳済み)",
    "sample_missing_keys": "\n翻訳が抜けているキーの例:",
    "missing_key": "- {key}",
    "and_more_missing": "...およびさらに {count} 件。",
    "sample_unused_keys": "\n未使用のキーの例:",
    "unused_key": "- {key}",
    "and_more_unused": "...およびさらに {count} 件。",
    "recommendations": "\n📋 推奨事項",
    "add_missing_translations": "💡 カバレッジを改善するために不足している翻訳を追加してください。",
    "remove_unused_translations": "💡 プロジェクトをクリーンに保つために未使用の翻訳を削除してください。",
    "next_steps": "\n📋 次のステップ",
    "review_analysis_results": "1. コンソールまたは生成されたレポートで分析結果を確認します。",
    "run_with_output_report": "2. 詳細レポートを得るには --output-report を付けて実行します。",
    "add_or_remove_translations": "3. 不足している翻訳を追加するか、未使用のものを削除します。",
    "rerun_analysis": "4. 改善を確認するために再度分析を実行します。",
    "analysis_summary": "📊 分析サマリー",
    "source_files_scanned": "スキャンされたソースファイル: {fileCount}",
    "translation_files_checked": "確認された翻訳ファイル: {translationFileCount}",
    "total_keys": "キー合計: {totalKeys}",
    "translated_keys": "翻訳済みキー: {translatedKeys}",
    "missing_keys": "不足しているキー: {missingKeys}",
    "unused_keys": "未使用のキー: {unusedKeys}",
    "translation_coverage": "翻訳カバレッジ: {coverage}%",
    "analysis_passed_for_language": "✅ {language} の分析は合格しました",
    "analysis_failed_for_language": "❌ {language} の分析に失敗しました（不足: {missingKeys}、未使用: {unusedKeys}）",
    "starting": "🔍 翻訳分析を開始しています...",
    "foundLanguages": "📋 分析対象の言語を {count} 件検出しました: {languages}",
    "analyzing": "🔄 {language} を分析中...",
    "reportTitle": "📊 翻訳分析レポート",
    "generated": "生成日時: {timestamp}",
    "status": "ステータス: {translated}/{total} キー ({percentage}% 翻訳済み)",
    "filesAnalyzed": "分析されたファイル: {analyzed}/{total}",
    "keysNeedingTranslation": "翻訳が必要なキー: {count}",
    "fileBreakdown": "📋 ファイル詳細",
    "error": "エラー",
    "completed": "✅ {language} の分析が完了しました",
    "progress": "📊 全体の進捗: {translated}/{total} 言語を処理済み",
    "reportSaved": "   レポートを保存しました: {reportPath}",
    "summary": "📊 分析サマリー",
    "finished": "✅ 分析が正常に完了しました！",
    "statusFileMissing": "❌ 翻訳ファイルが見つかりません",
    "sourceKeys": "📊 ソースキー: {count}",
    "translation": "📊 翻訳: {translated}/{total} ({percentage}%)",
    "structure": "🗂️ 構造: {status}",
    "consistent": "一貫性あり",
    "inconsistent": "一貫性なし",
    "missingKeys": "不足しているキー: {count}",
    "extraKeys": "余分なキー: {count}",
    "issues": "⚠️ 検出された問題: {count}",
    "issueType": {
      "not_translated": "未翻訳: {count}",
      "empty_value": "空の値: {count}",
      "partial_translation": "部分翻訳: {count}",
      "format_mismatch": "形式の不一致: {count}",
      "type_mismatch": "型の不一致: {count}",
      "structure_mismatch": "構造の不一致: {count}",
      "same_as_source": "ソースと同じ: {count}"
    },
    "keysToTranslate": "📋 翻訳すべきキー",
    "key": "キー",
    "english": "英語",
    "needsTranslation": "翻訳が必要",
    "andMoreKeys": "...およびさらに {count} 件のキー。",
    "noLanguages": "⚠️ 対象言語が見つかりませんでした。",
    "languageStats": "{language}: {percentage}% 完了 ({translated}/{total} キー)",
    "invalidReportFilePath": "無効なレポートファイルパス",
    "failedToWriteReportFile": "レポートファイルを安全に書き込めませんでした"
  },
  "complete": {
    "configLoadedSuccessfully": "設定が正常に読み込まれました",
    "configLoadingFailed": "設定の読み込みに失敗しました",
    "sourceLanguageNotFound": "⚠️  ソース言語が見つかりません: {language}",
    "couldNotParseTarget": "⚠️  ターゲット言語の解析中にエラーが発生しました: {error}",
    "couldNotParseSource": "⚠️  ソース言語の解析中にエラーが発生しました: {error}",
    "reportGenerated": "📄 レポートが生成されました: {reportPath}",
    "generateReportPrompt": "📄 レポートを生成しますか？ (y/n): ",
    "title": "🌍 I18NTK 翻訳補完ツール",
    "separator": "============================================================",
    "sourceDir": "📁 ソースディレクトリ：{sourceDir}",
    "sourceLanguage": "🌐 ソース言語：{sourceLanguage}",
    "dryRunMode": "🧪 ドライランモード - 変更は行われません",
    "languages": "🌍 利用可能な言語：{languages}",
    "addingMissingKeys": "➕ 翻訳ファイルに不足しているキーを追加しています...",
    "processing": "🔄 {language} を処理中...",
    "addedKeys": "✅ {count} 件の不足しているキーを追加しました",
    "noChangesNeeded": "✅ {language} には変更の必要はありません",
    "summaryTitle": "📊 補完サマリー",
    "totalChanges": "📝 合計変更：{totalChanges}",
    "languagesProcessed": "🌍 処理済みの言語：{languagesProcessed}",
    "missingKeysAdded": "➕ 追加された不足キー：{missingKeysAdded}",
    "nextStepsTitle": "📋 次のステップ",
    "nextStep1": "1. 使用状況分析を実行：",
    "nextStep2": "    node i18ntk-usage.js --output-report",
    "nextStep3": "2. 翻訳を検証：",
    "nextStep4": "    node i18ntk-validate.js",
    "nextStep5": "3. パターンを分析：",
    "nextStep6": "    node i18ntk-analyze.js",
    "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました！",
    "runWithoutDryRun": "💡 --dry-run を外して実行すると変更が適用されます",
    "deletingOldReport": "🗑️ 古いレポートを削除中...",
    "generatingFreshAnalysis": "📊 新しい使用状況分析を生成中...",
    "couldNotGenerate": "❌ 使用状況分析を生成できませんでした",
    "reportNotFound": "📋 使用レポートが見つかりません。共通のキーを使用しています...",
    "foundMissingKeys": "📋 使用状況分析から {count} 件の不足キーを検出しました",
    "couldNotParse": "❌ 使用レポートの解析に失敗しました。共通のキーを使用しています...",
    "errorDuringCompletion": "❌ 完了中にエラーが発生しました: {error}",
    "fatalError": "❌ 致命的なエラー: {error}",
    "configurationValidationFailed": "構成の検証に失敗しました：必要なフィールドが不足しています"
  },
  "sizing": {
    "separator": "================================================================================",
    "lineSeparator": "--------------------------------------------------------------------------------",
    "analysisStats": "{stats}",
    "sourceDirectoryLabel": "📁 ソースディレクトリ: {sourceDir}",
    "sourceLanguageLabel": "🌍 ソース言語: {sourceLanguage}",
    "strictModeLabel": "⚙️  厳格モード: {mode}",
    "invalidSourceDirectoryError": "無効なソースディレクトリパス: {sourceDir}",
    "sourceDirectoryNotFoundError": "ソースディレクトリが見つかりません: {sourceDir}",
    "invalidOutputDirectoryError": "無効な出力ディレクトリパス: {outputDir}",
    "invalidReportFileError": "無効なレポートファイルパス",
    "problematic_keys": "問題のあるキー: {problematicKeys}",
    "problematicKeysLabel": "問題のあるキー: {problematicKeys}",
    "long_translations": "長い翻訳: {longTranslations}",
    "failedToSaveReportError": "レポートの安全な保存に失敗しました",
    "invalidCsvFileError": "無効な CSV ファイルパス",
    "failedToSaveCsvError": "CSV レポートの安全な保存に失敗しました",
    "fatalError": "❌ サイズ分析に失敗しました: {error}",
    "starting_i18n_sizing_analysis": "i18n サイズ分析を開始しています...",
    "source_directory": "ソースディレクトリ: {sourceDir}",
    "found_languages": "検出された言語: {languages}",
    "analyzing_file_sizes": "ファイルサイズを分析中...",
    "analyzing_translation_content": "翻訳内容を分析中...",
    "generating_size_comparisons": "サイズ比較を生成中...",
    "no_languages_found_for_comparison": "比較用の言語が見つかりません",
    "sizing_analysis_results": "i18n サイズ分析結果",
    "file_sizes_title": "ファイルサイズ",
    "file_sizes_header": "言語    サイズ(KB)  行数  文字数",
    "file_size_row": "{lang}      {sizeKB}      {lines}      {characters}",
    "language_statistics_title": "言語統計",
    "language_stats_header": "言語    キー数  文字数  平均長  最大長  空  長い",
    "language_stats_row": "{lang}      {totalKeys}    {totalCharacters}    {averageKeyLength}    {maxKeyLength}    {emptyKeys}    {longKeys}",
    "size_variations_title": "サイズのばらつき",
    "size_variations_header": "言語    文字差分  差分(%)  問題あり",
    "size_variation_row": "{lang}      {characterDifference}    {percentageDifference}%    {problematic}",
    "problematic_yes": "はい",
    "problematic_no": "いいえ",
    "recommendations_title": "推奨事項",
    "recommendation_item": "{index}. {recommendation}",
    "problematic_key_detail": "  {index}. キー: '{key}' - バリエーション: {variations}",
    "generating_detailed_report": "詳細レポートを生成中...",
    "keysHaveSignificantSizeVariations": "キーに大きなサイズのばらつきがあります",
    "longTranslationsDetected": "${lang} では長さが100文字を超える翻訳が ${data.longKeys} 件検出されました - 分割を検討してください",
    "longer": "より長い",
    "shorter": "より短い",
    "review_translations": "{lang} の翻訳を見直すことを検討してください - ベースラインより {data.percentageDifference}% {data.comparison} です",
    "report_saved_to": "レポートを保存しました: {reportPath}",
    "considerReviewingTranslations": "${lang} の翻訳を見直すことを検討してください - ベースラインより ${data.percentageDifference}% 長くなっています",
    "csv_report_saved_to": "CSV レポートを保存しました: {csvPath}",
    "human_report_saved": "人間が読めるレポートを保存しました: {reportPath}",
    "folder_summary_title": "フォルダー要約",
    "folder_summary_table_header": "言語    サイズ(KB)    キー数    平均長    総文字数",
    "folder_summary_row": "{lang}      {sizeKB}      {totalKeys}    {avgLength}    {totalChars}",
    "language_comparison_title": "言語比較",
    "language_comparison_row": "{lang}: {diff} 文字 ({percent}%) {status}",
    "summary_stats": " 📊 サマリー: {totalLanguages} 言語, {totalKeys} キー - レポートの保存先: {reportPath}",
    "detailedKeysDescription": "コンソールに詳細なキーレベルの分析を表示",
    "too_many_keys_warning": "⚠️ コンソールに表示するにはキーが多すぎます - 完全な分析は詳細レポートファイルを確認してください",
    "no_translation_files_found": "翻訳ファイルが見つかりません",
    "analysis_completed": "分析が完了しました（{duration}ms）",
    "analysis_failed": "分析に失敗しました: {errorMessage}",
    "failed_to_parse_language_error": "{language} の翻訳の解析に失敗しました: {errorMessage}",
    "recommendations": {
      "keys_have_significant_size_variations": "キーに大きなサイズのばらつきがあります",
      "consider_reviewing_translations": "{lang} の翻訳を見直すことを検討してください - ベースラインより {percentageDifference}% {comparison} です",
      "long_translations_detected": "{lang} では長さが {threshold} 文字を超える翻訳が {longKeys} 件検出されました - 分割を検討してください"
    },
    "starting_analysis": "分析を開始します...",
    "found_files": "検出されたファイル: {count}"
  },
  "usage": {
    "help_message": "\nI18n 使用解析ツール\n\n使い方: node i18ntk-usage.js [オプション]\n\nオプション:\n  --source-dir <dir>     スキャンするソースディレクトリ（デフォルト: ./src）\n  --i18n-dir <dir>       I18n ディレクトリ（デフォルト: ./src/locales）\n  --output-report        詳細レポートを生成する\n  --output-dir <dir>     レポートの出力ディレクトリ（デフォルト: ./reports）\n  --help                 このヘルプを表示する\n\n例:\n  node i18ntk-usage.js --output-report\n  node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-usage.js --output-dir=./analysis --output-report\n",
    "source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}",
    "translationCompletenessTitle": "🌍 翻訳の完全性:",
    "failedToExtractKeys": "⚠️  キーの抽出中にエラーが発生しました: {error}",
    "i18n_directory_thisi18ndir": "🌐 I18n ディレクトリ: {i18nDir}",
    "failed_to_parse_filename_error": "⚠️  {fileName} の解析に失敗しました: {errorMessage}",
    "analyzing_source_files": "🔍 ソースファイルを解析中...",
    "found_files_in_source": "📂 ソースディレクトリで {numFiles} 件のファイルを検出",
    "found_thisusedkeyssize_unique_": "🎯 一意の使用中キーを {usedKeysSize} 件検出",
    "total_key_usages_totalkeysfoun": "📊 キーの使用合計: {totalKeysFound}",
    "loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
    "found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
    "foundTranslationFiles": "✅ {count} 件の翻訳ファイルを検出",
    "pressEnterToReturnToMenu": "Enter キーを押してメインメニューに戻ります",
    "notTranslatedKeysTotal": "⚠️  翻訳されていないキー: {total}",
    "noSourceFilesFound": "⚠️  ソースディレクトリにファイルが見つかりません。",
    "reviewNotTranslatedKeys": "💡 翻訳されていないキーを確認してください",
    "analysisCompletedSuccessfully": "🎉 分析が正常に完了しました！",
    "detectedSourceDirectory": "検出されたソースディレクトリ: {sourceDir}",
    "detectedI18nDirectory": "検出された I18n ディレクトリ: {i18nDir}",
    "fileInfo": "   📄 {namespace}: {keys} 件のキー",
    "failedToAnalyzeUsage": "❌ 使用状況の解析に失敗しました: {error}",
    "failedToAnalyzeFile": "❌ ファイルの解析に失敗しました: {error}",
    "analyzerInitialized": "アナライザが初期化されました",
    "analyzerInitFailed": "アナライザの初期化に失敗しました: {error}",
    "argsParsed": "引数を解析しました",
    "processedFiles": "処理済み {processedFiles} 件のファイルから {totalFiles} 件のファイルを処理しました。",
    "argsParseFailed": "引数の解析に失敗しました: {error}",
    "translationDiscoveryError": "翻訳の検出エラー: {error}",
    "fileTraversalError": "ファイル走査エラー: {error}",
    "usageAnalysisFailed": "使用状況分析に失敗しました: {error}",
    "translationFileParseError": "翻訳ファイルの解析エラー: {error}",
    "translationKeysLoadError": "翻訳キーの読み込みエラー: {error}",
    "sourceEqualsI18nWarn": "⚠️  ソースディレクトリと i18n ディレクトリは同じです。分析に問題が発生する可能性があります。",
    "i18nEqualsSourceWarn": "⚠️  I18n ディレクトリとソースディレクトリは同じです。分析に問題が発生する可能性があります。",
    "languageCompletenessStats": "🌍 {language}: {translated}/{total} ({completeness}% 翻訳済み)",
    "missingKeysCount": "⚠️  不足しているキー: {count}",
    "analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
    "unusedKeysCount": "未使用のキー: {count}",
    "usedKeysCount": "使用されたキー: {count}",
    "availableKeysCount": "利用可能なキー: {count}",
    "analysisResults": "分析結果:",
    "i18nDirectoryNotFound": "⚠️  I18n ディレクトリが見つかりません: {dir}",
    "sourceDirectoryNotFound": "⚠️  ソースディレクトリが見つかりません: {dir}",
    "checkUsage": {
      "title": "🔍 I18NTK 使用状況分析",
      "message": "プロジェクト全体の i18n キー使用を分析しています。",
      "help_message": "\nI18n 使用解析ツール\n\n使い方: node i18ntk-usage.js [オプション]\n\nオプション:\n  --source-dir <dir>     スキャンするソースディレクトリ（デフォルト: ./src）\n  --i18n-dir <dir>       I18n ディレクトリ（デフォルト: ./src/locales）\n  --output-report        詳細レポートを生成する\n  --output-dir <dir>     レポートの出力ディレクトリ（デフォルト: ./reports）\n  --help                 このヘルプを表示する\n\n例:\n  node i18ntk-usage.js --output-report\n  node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-usage.js --output-dir=./analysis --output-report\n",
      "source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}",
      "i18n_directory_thisi18ndir": "🌐 I18n ディレクトリ: {i18nDir}",
      "loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
      "found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
      "analyzing_source_files": "🔍 ソースファイルを解析中...",
      "found_files_in_source": "📂 ソースディレクトリで {numFiles} 件のファイルを検出",
      "found_thisusedkeyssize_unique_": "🎯 一意の使用中キーを {usedKeysSize} 件検出",
      "total_key_usages_totalkeysfoun": "📊 キーの使用合計: {totalKeysFound}",
      "translation_completeness_title": "📊 翻訳の完全性",
      "language_completeness_stats": "  {language}: {translated}/{total} ({completeness}% 翻訳済み)",
      "n_sample_unused_keys": "\n未使用のキーの例:",
      "key": "- {key}",
      "and_unusedkeyslength_5_more": "...およびさらに {count} 件。",
      "n_recommendations": "\n📋 推奨事項",
      "consider_removing_unused_trans": "💡 プロジェクトをクリーンに保つために未使用の翻訳を削除することを検討してください。",
      "n_next_steps": "\n📋 次のステップ",
      "1_review_the_analysis_results": "1. コンソールまたは生成されたレポートで分析結果を確認します。",
      "2_run_with_outputreport_for_de": "2. 詳細なレポートを得るには --output-report を付けて実行します。",
      "3_remove_unused_keys_or_add_mi": "3. 未使用のキーを削除するか、欠落しているキーをソースコードに追加します。",
      "4_rerun_analysis_to_verify_imp": "4. 改善を確認するために再度分析を実行します。",
      "usage_analysis_results": "📊 使用状況分析の結果",
      "source_files_scanned_thisfileu": "スキャンされたソースファイル: {fileUsageSize}",
      "available_translation_keys_thi": "利用可能な翻訳キー: {availableKeysSize}",
      "used_translation_keys_thisused": "使用された翻訳キー: {usedKeysSize}",
      "dynamic_keys_detected_dynamick": "検出された動的キー: {dynamicKeysLength}",
      "unused_keys_unusedkeyslength": "未使用のキー: {unusedKeysLength}",
      "missing_keys_missingkeyslength": "不足しているキー: {missingKeysLength}",
      "noSourceFilesFound": "解析するソースファイルが見つかりませんでした。",
      "processedFiles": "{totalFiles} ファイルのうち {processedFiles} を処理済み。",
      "i18nDirectoryNotFound": "I18n ディレクトリが見つかりません: {i18nDir}",
      "noTranslationLanguagesFound": "翻訳言語が見つかりませんでした。",
      "failedToAnalyzeFile": "{filePath} の解析に失敗しました: {error}",
      "failedToAnalyzeLanguage": "{language} の解析に失敗しました: {error}",
      "translationCompletenessAnalysisFailed": "翻訳の完全性分析に失敗しました: {error}",
      "n": "",
      "no_source_files_found": "⚠️  指定されたディレクトリにソースファイルが見つかりません",
      "failedToProcessFile": "❌ ファイルの処理に失敗しました: {filePath}",
      "n_sample_missing_keys": "❌ 不足しているキーのサンプル (最初の 5 件):",
      "and_missingkeyslength_5_more": "... そしてさらに {count} 件の不足しているキー",
      "n_generating_detailed_report": "📊 詳細レポートを生成中...",
      "report_saved_reportpath": "📄 レポートが保存されました: {reportPath}",
      "add_missing_translation_keys_t": "    ➕ 不足している翻訳キーを追加して一貫性を保つ",
      "review_dynamic_keys_manually_t": "    🔍 動的キーを手動で確認 (有効な場合があります)",
      "all_translation_keys_are_prope": "✅ すべての翻訳キーが適切に使用されています！",
      "2_check_the_detailed_report_fo": "    2. 詳細レポートを確認して特定の問題を特定します"
    },
    "complete": {
      "configLoadedSuccessfully": "設定が正常に読み込まれました",
      "configLoadingFailed": "設定の読み込みに失敗しました",
      "title": "🌍 I18NTK 翻訳の補完",
      "separator": "============================================================",
      "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
      "sourceLanguage": "🌐 ソース言語: {sourceLanguage}",
      "dryRunMode": "🧪 ドライランモード - 変更は行われません",
      "languages": "🌍 利用可能な言語: {languages}",
      "addingMissingKeys": "➕ 翻訳ファイルに不足しているキーを追加中...",
      "processing": "🔄 {language} を処理中...",
      "addedKeys": "✅ {count} 件の不足しているキーを追加しました",
      "changeDetails": "📝 {file}: {key}",
      "andMore": "...さらに {count} 件",
      "noChangesNeeded": "✅ {language} には変更の必要がありません",
      "summaryTitle": "📊 補完サマリー",
      "totalChanges": "📝 合計変更: {totalChanges}",
      "languagesProcessed": "🌍 処理された言語: {languagesProcessed}",
      "missingKeysAdded": "➕ 追加された不足キー: {missingKeysAdded}",
      "nextStepsTitle": "📋 次のステップ",
      "nextStep1": "1. 使用状況分析を実行：",
      "nextStep2": "    node i18ntk-usage.js --output-report",
      "nextStep3": "2. 翻訳を検証：",
      "nextStep4": "    node i18ntk-validate.js",
      "nextStep5": "3. パターンを分析：",
      "nextStep6": "    node i18ntk-analyze.js",
      "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました！",
      "runWithoutDryRun": "💡 --dry-run を外して実行すると変更が適用されます",
      "deletingOldReport": "🗑️  古いレポートを削除中...",
      "generatingFreshAnalysis": "📊 新しい使用状況分析を生成中...",
      "couldNotGenerate": "❌ 使用状況分析を生成できませんでした",
      "reportNotFound": "📋 使用レポートが見つかりません。共通キーを使用しています...",
      "foundMissingKeys": "📋 使用状況分析から {count} 件の不足キーを検出しました",
      "couldNotParse": "❌ 使用レポートの解析に失敗しました。共通キーを使用しています..."
    },
    "noTranslationLanguagesFound": "翻訳言語が見つかりませんでした。",
    "failedToAnalyzeLanguage": "{language} の解析に失敗しました: {error}",
    "translationCompletenessAnalysisFailed": "{language} の翻訳完全性分析に失敗しました: {error}",
    "errorReadingI18nDirectory": "⚠️  i18nディレクトリの読み取りに失敗しました: {error}",
    "analysisFailedError": "❌ 分析が失敗しました: {error}"
  },
  "validate": {
    "help_message": "\nI18n 翻訳バリデータ\n\n使い方: node i18ntk-validate.js [オプション]\n\nオプション:\n  --source-dir <dir>     スキャンするソースディレクトリ (デフォルト: ./locales)\n  --i18n-dir <dir>       I18n ディレクトリ (デフォルト: ./locales)\n  --output-report        詳細レポートを生成\n  --output-dir <dir>     レポートの出力ディレクトリ (デフォルト: ./i18ntk-reports)\n  --help                 ヘルプを表示\n\n例:\n  node i18ntk-validate.js --output-report\n  node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-validate.js --output-dir=./analysis --output-report\n",
    "title": "🔍 I18n 翻訳バリデータ",
    "message": "バリデーションプロセスを開始しています…",
    "sourceDirectory": "📁 ソースディレクトリ: {dir}",
    "sourceLanguage": "🌍 ソース言語: {sourceLanguage}",
    "strictMode": "⚙️  厳密モード: {mode}",
    "noTargetLanguages": "ターゲット言語が設定されていません。ターゲットの検証をスキップします。\"i18ntk init --languages=de,fr\" で言語を追加してください。",
    "validatingLanguages": "🌍 バリデート中の言語: {langs}",
    "validatingLanguage": "🔍 言語をバリデートしています: {lang}",
    "filesCount": "📄 ファイル数: {count}",
    "keysCount": "🔑 キー数: {count}",
    "missingFilesCount": "📁 欠落ファイル数: {count}",
    "syntaxErrorsCount": "❌ 構文エラー数: {count}",
    "translationPercentage": "🎯 翻訳率: {percentage}% ({translated}/{total} キー)",
    "validationSummary": "📊 バリデーションサマリー",
    "validation_failed": "❌ バリデーション失敗: {error}",
    "totalErrors": "❌ 合計エラー数: {count}",
    "totalWarnings": "⚠️  合計警告数: {count}",
    "errorsSection": "❌ エラー",
    "warningsSection": "⚠️  警告",
    "recommendationsSection": "💡 推奨事項",
    "fixErrorsFirst": "1. まずすべてのエラーを修正",
    "resolveMissingFilesAndSyntaxErrors": "1. 欠落ファイルと構文エラーを解消",
    "fixStructuralInconsistencies": "2. 構造的不整合を修正",
    "completeMissingTranslations": "3. 欠落している翻訳を補完",
    "rerunValidation": "4. 修正を確認するためにバリデーションを再実行",
    "addressWarnings": "警告に対処して品質を向上",
    "reviewWarnings": "警告を確認し、適宜修正",
    "considerRunningWithStrict": "2. --strict フラグを使用して厳密なバリデーションを検討",
    "allValidationsPassed": "🎉 すべてのバリデーションが成功しました！",
    "considerRunningUsageAnalysis": "使用状況分析を実行することを検討: node i18ntk-usage.js",
    "deletedOldReport": "🗑️  古いバリデーションレポートを削除しました",
    "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
    "i18nDir": "🌐 I18n ディレクトリ: {i18nDir}",
    "loadingTranslationFiles": "📋 翻訳ファイルを読み込んでいます…",
    "foundTranslationFilesCount": "✅ {count} 件の翻訳ファイルを検出しました",
    "analyzingTranslations": "🔍 翻訳を分析中…",
    "validationCompletedSuccessfully": "🎉 バリデーションが正常に完了しました！",
    "validationErrorsFound": "⚠️  バリデーションエラーが見つかりました: {count}",
    "validationWarningsFound": "⚠️  バリデーション警告が見つかりました: {count}",
    "validationPassed": "✅ エラーなしでバリデーションに合格しました",
    "validationFailed": "バリデーション失敗: {error}",
    "startingValidationProcess": "🔍 バリデーションプロセスを開始しています…",
    "validationProcessCompletedSuccessfully": "✅ バリデーションプロセスが正常に完了しました",
    "stackTrace": "スタックトレース: {stack}",
    "authenticationFailed": "❌ 認証に失敗しました。アクセスが拒否されました。",
    "fatalValidationError": "❌ 致命的なバリデーションエラー: {error}",
    "configAccess": "設定をバリデーションのために読み込んでいます",
    "configValidated": "設定が正常に検証されました",
    "configError": "設定エラー: {error}",
    "validatorInit": "I18n バリデータを初期化しています",
    "validatorInitialized": "I18n バリデータが正常に初期化されました",
    "validatorInitError": "バリデータ初期化エラー: {error}",
    "argsParsing": "コマンドライン引数を解析しています",
    "argsParsed": "コマンドライン引数が正常に解析されました",
    "argsParseError": "引数解析エラー: {error}",
    "languagesScan": "利用可能な言語をスキャンしています",
    "languagesFound": "{count} 言語が見つかりました",
    "languagesScanError": "言語スキャンエラー: {error}",
    "filesScan": "{language} のファイルを {count} 件検出",
    "filesScanError": "ファイルスキャンエラー: {error}",
    "jsonValidated": "JSON 構文を検証済み: {filePath}",
    "jsonValidationError": "JSON 構文エラー: {error}",
    "languageValidation": "言語をバリデートしています: {language}",
    "languageValidationError": "言語バリデーションエラー: {error}",
    "fileDeleted": "ファイルを削除しました",
    "runStarted": "バリデーション実行を開始しました",
    "runCompleted": "バリデーション実行が正常に完了しました",
    "runError": "バリデーション実行失敗: {error}",
    "scriptExecution": "スクリプト実行中",
    "validationCompleted": "バリデーション完了",
    "validationError": "バリデーションエラー: {error}",
    "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
    "languageHeader": "🌐 言語: {language}",
    "validationResults": "📊 バリデーション結果",
    "noErrors": "✅ エラーは見つかりませんでした",
    "noWarnings": "✅ 警告は見つかりませんでした",
    "summaryHeader": "📋 全体サマリー",
    "progressIndicator": "⏳ 処理中…",
    "completedIndicator": "✅ 完了",
    "errorIndicator": "❌ エラー",
    "warningIndicator": "⚠️  警告",
    "infoIndicator": "ℹ️  情報",
    "sourceDirNotConfigured": "ソースディレクトリが設定されていません",
    "sourceLanguageNotConfigured": "ソース言語が設定されていません",
    "translationFunctionNotInitialized": "翻訳関数が適切に初期化されていません",
    "sourceLanguageDirectoryNotFound": "ソース言語ディレクトリが見つかりませんでした",
    "specifiedLanguageNotFound": "指定された言語が見つかりませんでした",
    "noJsonFilesFound": "ソースディレクトリに JSON ファイルが見つかりません: {sourceDir}",
    "i18nDirectoryNotFound": "I18n ディレクトリが見つかりません: {i18nDir}",
    "invalidDirectoryPaths": "無効なディレクトリパスが検出されました",
    "invalidSampleFilePath": "無効なサンプルファイルパス",
    "failedToCreateSampleTranslationFile": "サンプル翻訳ファイルの作成に失敗しました",
    "invalidFilePathDetected": "無効なファイルパスが検出されました",
    "failedToWriteFile": "ファイルの書き込みに失敗しました: {filePath}"
  },
  "adminCli": {
    "setupPinProtectionTitle": "\n🔐 管理者PIN保護の設定",
    "setupPinProtectionDescription": "これにより管理操作に4〜6桁のPINが必要になります。",
    "enablePinProtectionPrompt": "管理者PIN保護を有効にしますか？",
    "setupCancelled": "管理者PIN保護の設定がキャンセルされました。",
    "enterPinPrompt": "4〜6桁のPINを入力してください: ",
    "pinFormatError": "❌ PINは4〜6桁でなければなりません。もう一度お試しください。",
    "confirmPinPrompt": "PINを確認してください: ",
    "pinMismatchError": "❌ PINが一致しません。もう一度お試しください。",
    "pinProtectionEnabledSuccess": "✅ 管理者PIN保護が有効になりました！",
    "pinRecoveryWarning": "⚠️ PINを忘れないでください。失われた場合は復旧できません。",
    "setupPinProtectionFailed": "❌ 管理者PIN保護の設定に失敗しました。",
    "errorSettingUpPin": "❌ 管理者PINの設定中にエラーが発生しました: {message}",
    "authRequiredForOperation": "\n🔐 次の操作には管理者認証が必要です: {operation}",
    "invalidPinFormat": "❌ 無効なPIN形式です。PINは4〜6桁である必要があります。",
    "authenticationSuccess": "✅ 認証に成功しました！",
    "invalidPinAttemptsRemaining": "❌ 無効なPINです。残り{remaining}回の試行が可能です。",
    "authenticationFailedAccessDenied": "❌ 認証に失敗しました。アクセスが拒否されました。",
    "authenticationError": "❌ 認証エラー: {message}",
    "pinProtectionNotEnabled": "管理者PIN保護は現在有効になっていません。",
    "disablingPinProtectionTitle": "\n🔓 管理者PIN保護の無効化",
    "confirmDisablePinProtection": "管理者PIN保護を無効にしてもよろしいですか？",
    "operationCancelled": "操作がキャンセルされました。",
    "pinProtectionDisabledSuccess": "✅ 管理者PIN保護が無効化されました。",
    "disablePinProtectionFailed": "❌ 管理者PIN保護の無効化に失敗しました。",
    "errorDisablingPinProtection": "❌ 管理者PIN保護の無効化中にエラーが発生しました: {message}",
    "adminProtectionStatusTitle": "\n🔐 管理者保護のステータス",
    "statusEnabled": "ステータス: ✅ 有効",
    "protectionDetails": "保護: 管理操作には4〜6桁のPINが必要",
    "lockoutDetails": "ロックアウト: 3回の失敗で15分間ロック",
    "statusDisabled": "ステータス: ❌ 無効",
    "noAuthRequired": "保護: 認証は不要",
    "unprotectedRisk": "リスク: 管理操作は保護されていません",
    "errorCheckingAdminStatus": "❌ 管理者ステータスの確認中にエラーが発生しました: {message}",
    "authRequired": "🔐 管理者認証が必要です。",
    "invalidPin": "❌ 無効なPINです。",
    "authSuccess": "✅ 認証に成功しました！",
    "adminPinSetupCli": "admin_pin_setup_cli",
    "adminAuthFailedCli": "admin_auth_failed_cli",
    "adminAuthDisabledCli": "admin_auth_disabled_cli",
    "protectedAccess": "保護されたアクセス: 機密操作には管理者認証が必要です。",
    "enterPin": "管理者PINを入力してください: ",
    "accessGranted": "アクセスが許可されました。"
  },
  "adminPin": {
    "setup_title": "🔐 管理者PIN設定",
    "setup_separator": "============================================================",
    "setup_description": "機密設定へのアクセスのために4〜6桁のPINを作成します。",
    "required_for_title": "このPINは以下の操作に必要です:",
    "required_for_1": "  • セキュリティ設定の変更",
    "required_for_2": "  • 高度な設定の変更",
    "required_for_3": "  • デバッグツールへのアクセス",
    "required_for_4": "  • 設定のリセット",
    "setup_note": "💡 メモ: 入力中はアスタリスク（*）が表示されますが、これはマスク文字です。",
    "setup_digits_only": "   PINには0〜9の数字のみ使用できます。",
    "invalid_pin_length": "❌ 無効なPINです。4〜6桁の数字で入力してください。",
    "invalid_pin_example": "   例: 1234 または 567890",
    "pins_do_not_match": "❌ PINが一致しません。",
    "setup_success": "✅ 管理者PINが正常に設定されました！",
    "setup_warning": "⚠️ このPINを安全に保管してください。失われた場合は復旧できません。",
    "setup_error": "❌ PINの設定中にエラーが発生しました:",
    "session_expired": "\n⏰ 非アクティブのため、管理者セッションの有効期限が切れました。",
    "no_pin_set_setting_up": "⚠️ 管理者PINが設定されていません。PINを設定します...",
    "no_pin_configured_access_denied": "⚠️ 管理者PINが設定されていません。アクセスが拒否されました。",
    "use_admin_settings_to_set_pin": "💡 まず管理設定からPINを設定してください。",
    "locked_out": "🔒 失敗が多すぎたため、管理者アクセスはロックされています。",
    "wait_before_retry": "再試行する前に5分待ってください。",
    "access_granted": "✅ 管理者アクセスが許可されました。",
    "incorrect_pin": "❌ PINが間違っています。残り{attempts}回の試行が可能です。",
    "verify_pin_error": "❌ PINの確認中にエラーが発生しました:",
    "already_configured": "✅ 管理者PINはすでに設定されています。",
    "optional_setup_title": "\n🔐 管理者PIN設定（オプション）",
    "optional_setup_description": "管理者PIN保護を有効にすると、以下の操作でセキュリティが向上します:",
    "setup_prompt": "管理者PINを設定しますか？ (y/N): ",
    "skipping_setup": "⏭️ 管理者PINの設定をスキップしました。後で設定できます。",
    "setup_prompt_error": "❌ PIN設定プロンプト中にエラーが発生しました:",
    "protectedAccess": "保護されたアクセス: 機密操作には管理者認証が必要です。",
    "enterPin": "管理者PINを入力してください: ",
    "accessGranted": "アクセスが許可されました。",
    "invalidPin": "❌ 無効なPINです。もう一度お試しください。",
    "weak_pin_warning": "⚠️ 警告: このPINは弱いか一般的すぎる可能性があります。",
    "weak_pin_suggestion": "💡 さまざまな数字を使用した、より強力なPINを検討してください。",
    "use_anyway_prompt": "それでも使用する場合は「yes」と入力するか、Enterキーを押して別のPINを選択してください: ",
    "enter_new_pin": "新しい管理者PINを入力してください (4〜6桁): ",
    "confirm_pin": "管理者PINを確認してください: ",
    "not_set": "未設定",
    "pin_display_mask": "####"
  },
  "debug": {
    "title": "🔧 デバッグツール",
    "separator": "============================================================",
    "mainDebuggerSystemDiagnostics": "1. システム診断",
    "_consoleTranslationsCheck": "// 2. コンソール翻訳チェック",
    "_exportMissingKeys": "// 3. 欠落翻訳キーをエクスポート",
    "_replaceHardcodedConsole": "// 4. ハードコードされたコンソール文字列を置換",
    "_consoleKeyChecker": "// 5. コンソールキー検査",
    "debugLogs": "2. デバッグログ",
    "backToMainMenu": "0. メインメニューに戻る",
    "selectOption": "デバッグツールを選択してください: ",
    "runningDebugTool": "{displayName}を実行中...",
    "debugToolNotFound": "❌ デバッグツールが見つかりません: {toolName}",
    "errorRunningDebugTool": "⚠️  デバッグツールの実行中にエラーが発生しました: {error}",
    "recentDebugLogs": "📄 最新のデバッグログ",
    "noDebugLogsFound": "❌ デバッグログが見つかりません。",
    "debugLogsDirectoryNotFound": "❌ デバッグログディレクトリが見つかりません。",
    "selectLogPrompt": "表示するログファイルを選択してください (1-{count}): ",
    "invalidChoiceSelectRange": "無効な選択です。範囲内から選択してください。",
    "contentOf": "{filename}の内容:",
    "pressEnterToContinue": "続行するにはEnterキーを押してください..."
  },
  "detect_language_mismatches": {
    "tool_title": "🔍 言語不一致検出ツール",
    "separator": "=====================================\n",
    "analyzing_file": "📄 {language}.json を解析中…",
    "error_analyzing_file": "❌ {filename} の解析エラー: {errorMessage}",
    "results_title": "📊 言語不一致検出結果",
    "results_separator": "========================================\n",
    "summary_title": "📋 サマリー:",
    "total_files_analyzed": "   解析したファイル数: {totalFiles}",
    "files_with_mismatches": "   不一致のあるファイル数: {filesWithMismatches}",
    "total_mismatches_found": "   発見された不一致の総数: {totalMismatches}\n",
    "no_mismatches_found": "✅ 言語不一致は見つかりませんでした！すべての翻訳が正しい言語で記述されています。\n",
    "detailed_results_title": "🔍 詳細結果:\n",
    "file_mismatch_header": "📄 {filename} ({language})",
    "mismatches_count": "   不一致 {count} 件を発見:\n",
    "mismatch_details": "   {index}. キー: {key}",
    "mismatch_value": "      値: \"{value}\"",
    "mismatch_issue": "      問題: {description}",
    "recommendations_title": "💡 推奨事項:\n",
    "recommendation_1": "1. [TRANSLATE] とマークされたエントリをすべて確認し翻訳する",
    "recommendation_2": "2. 言語プレフィックス（例: [DE], [FR]）を適切な翻訳に置き換える",
    "recommendation_3": "3. 英語テキストを対象言語に翻訳する",
    "recommendation_4": "4. すべてのユーザー向けテキストにネイティブ言語の表現を使用する",
    "recommendation_5": "5. 修正後にもう一度ツールを実行し、修正を検証する\n",
    "detailed_report_saved": "📄 詳細レポートを保存しました: {reportPath}\n",
    "error_saving_report": "❌ レポート保存エラー: {errorMessage}\n",
    "auto_fix_mode": "🔧 自動修正モード {dryRun}",
    "auto_fix_separator": "=====================================\n",
    "fixed_file": "✅ {filename} を修正しました",
    "auto_fix_summary_title": "\n📊 自動修正サマリー:",
    "total_fixes_applied": "   適用された修正の総数: {count}",
    "preview_fixes_title": "\n🔍 修正プレビュー:",
    "fix_details": "   {file}: {key}\n     旧: \"{old}\"\n     新: \"{new}\"\n",
    "more_fixes": "   …さらに{count}件の修正\n",
    "run_with_apply_fixes": "💡 --apply フラグを付けて実行するとこれらの修正を適用します\n",
    "error_general": "❌ エラー:",
    "mainDebuggerSystemDiagnostics": "メインデバッガー / システム診断",
    "exportMissingKeys": "欠落キーをエクスポート",
    "replaceHardcodedConsole": "ハードコードされたコンソール文字列を置換",
    "consoleKeyChecker": "コンソールキー検査",
    "debugLogs": "デバッグログ",
    "backToMainMenu": "メインメニューに戻る",
    "invalidChoiceSelectRange": "❌ 無効な選択です。表示された範囲内の番号を選択してください。",
    "runningDebugTool": "デバッグツールを実行中: {displayName}",
    "debugToolNotFound": "デバッグツール '{toolName}' が見つかりません。",
    "recentDebugLogs": "最新のデバッグログ",
    "noDebugLogsFound": "デバッグログが見つかりません。",
    "logEntry": "ログエントリ: {timestamp} - {message}",
    "debugLogsDirectoryNotFound": "デバッグログディレクトリが見つかりません。"
  },
  "help": {
    "title": "📊 I18NTK 管理ヘルプ\n\n",
    "usage": "使用法: node i18ntk-manage.js [options]\n",
    "interactiveMode": "\n💡 直接実行するには: node i18ntk-manage.js --command=<command>\n",
    "showHelp": "\n📖 利用可能なコマンドを見るには: node i18ntk-manage.js --help\n",
    "availableCommands": "\n📖 利用可能なコマンド:\n",
    "initProject": "🚀 新しい言語を初期化",
    "analyzeTranslations": "🔍 翻訳を分析",
    "validateTranslations": "✅ 翻訳を検証",
    "checkUsage": "📊 キー使用状況をチェック",
    "initCommand": "  init      - 新しい言語を初期化",
    "analyzeCommand": "  analyze   - 翻訳を分析",
    "validateCommand": "  validate  - 翻訳を検証",
    "usageCommand": "  usage     - キー使用状況をチェック",
    "sizingCommand": "  sizing    - サイズを分析",
    "completeCommand": "  complete  - 翻訳を完了 (100% カバレッジ)",
    "summaryCommand": "  summary   - プロジェクトのステータスを表示",
    "debugCommand": "  debug     - 翻訳の問題をデバッグ",
    "scannerCommand": "  scanner   - プロジェクトをスキャン",
    "menu": {
      "pressEnterToContinue": "Enterキーを押して続行してください…",
      "title": "\n🌐 I18NTK 管理メニュー\n",
      "description": "国際化管理のためのインタラクティブメニュー\n",
      "exit": "\n🚪 終了"
    },
    "commands": {
      "init": "\n  init      - 新しい言語を初期化",
      "analyze": "  analyze   - 翻訳を分析",
      "validate": "  validate  - 翻訳を検証",
      "usage": "  usage     - キー使用状況をチェック",
      "sizing": "  sizing    - サイズを分析",
      "complete": "  complete  - 翻訳を完了 (100% カバレッジ)",
      "summary": "  summary   - プロジェクトのステータスを表示",
      "debug": "  debug     - 翻訳の問題をデバッグ"
      
    },
    "options": {
      "sourceDir": "\n  --source-dir <dir>     分析するソースディレクトリ",
      "output": "  --output <file>        レポートの出力ファイル",
      "verbose": "  --verbose, -v           詳細情報を表示",
      "keepReports": "  --keep-reports          既存のレポートを保持",
      "deleteReports": "  --delete-reports        既存のレポートを削除",
      "help": "  --help, -h              ヘルプを表示"
    },
    "examples": {
      "title": "\n例:\n",
      "example1": "   node i18ntk-manage.js",
      "example2": "   node i18ntk-manage.js --source-dir ./locales",
      "example3": "   node i18ntk-manage.js --output summary-report.txt",
      "example4": "   node i18ntk-manage.js --verbose",
      "example5": "   node i18ntk-manage.js --command=init --source-dir ./locales --output report.json"
    },
    "features": {
      "initProject": "🚀 新しい言語を初期化",
      "analyzeTranslations": "🔍 翻訳を分析",
      "validateTranslations": "✅ 翻訳を検証",
      "checkUsage": "📊 キー使用状況をチェック",
      "completeTranslations": "🎯 翻訳を完了 (100% カバレッジ)",
      "showSizing": "📏 サイズを分析",
      "runWorkflow": "🔄 フルワークフローを実行",
      "showStatus": "📋 プロジェクトのステータスを表示",
      "deleteReports": "🗑️  すべてのレポートを削除",
      "changeLanguage": "🌍 UI言語を変更",
      "settings": "⚙️  設定",
      "showHelp": "❓ ヘルプ",
      "debugTools": "🔧 デバッグツール"
    },
    "messages": {
      "selectOption": "オプションを選択してください:",
      "invalidOption": "❌ 無効なオプションです。もう一度お試しください。",
      "operationCompleted": "✅ 操作が正常に完了しました！",
      "pressEnter": "Enterキーを押して続行してください…",
      "goodbye": "👋 さようなら！",
      "unknownCommand": "不明なコマンド: {command}",
      "nonInteractive": "⚠️ 非インタラクティブモードが検出されました。メニューは参照用のみです。"
    },
    "i18n_helper": {
      "translation_file_not_found": "翻訳ファイルが見つかりません: {translationFile}",
      "error_loading_translations": "翻訳の読み込みエラー: {errorMessage}",
      "translation_not_found": "キーに対する翻訳が見つかりません: {key}",
      "translation_key_not_string": "翻訳キーが文字列ではありません: {key}",
      "error_reading_locales_directory": "ロケールディレクトリの読み込みエラー: {errorMessage}"
    }
  },
  "init": {
    "initializationTitle": "🚀 i18n 管理ツールキット – プロジェクト初期化",
    "sourceDirectoryLabel": "📁 ソースディレクトリ: {dir}",
    "createdSourceLanguageDirectory": "✅ ソース言語ディレクトリを作成しました: {dir}",
    "requiredTitle": "初期化が必要です",
    "requiredBody": "このコマンドを実行する前にプロジェクトを初期化する必要があります。",
    "promptRunNow": "今すぐ初期化を実行しますか？(y/N): ",
    "sourceLanguageLabel": "🌍 ソース言語: {language}",
    "detectedI18nFrameworks": "🔍 検出されたi18nフレームワーク: {frameworks}",
    "pinMustBe4Digits": "🔐 PIN は4桁の数字でなければなりません。",
    "existingDirectoriesFound": "📁 既存の翻訳ディレクトリが見つかりました:",
    "useExistingDirectoryPrompt": "既存のディレクトリを使用しますか？ (y/n)",
    "selectDirectoryPrompt": "ディレクトリを選択してください (番号を入力) (または '新しいディレクトリを作成' を選択):",
    "enterNewDirectoryName": "新しいディレクトリ名を入力してください:",
    "createdNewDirectory": "✅ 新しいディレクトリを作成しました: {dir}",
    "directoryAlreadyExists": "⚠️  ディレクトリが既に存在します: {dir}",
    "invalidDirectoryName": "⚠️  無効なディレクトリ名です。",
    "usingExistingDirectory": "使用中のディレクトリ: {dir}",
    "adminPinSetupOptional": "🔐 管理者PINの設定はオプションです（セキュリティのため推奨）",
    "adminPinSeparator": "------------------------------",
    "adminPinDescription1": "管理者PIN：セキュアなアクセスのための4桁の数字",
    "adminPinDescription2": "PIN設定をスキップする場合は空白のままにしてください",
    "adminPinDescription3": "以降のすべての操作でPINが必要になります",
    "adminPinDescription4": "PINの設定が完了しました",
    "adminPinSetupPrompt": "管理者PIN（4桁）を入力するか、スキップする場合は空白のままにしてください：",
    "skippingAdminPinSetup": "管理者PINの設定をスキップしています...",
    "settingUpAdminPin": "🔐 管理者PINの設定...",
    "enterAdminPin": "管理者PINを入力してください:",
    "confirmAdminPin": "管理者PINを確認してください:",
    "pinMismatch": "PINが一致しません。もう一度お試しください。",
    "adminPinSetupSuccess": "🔐 管理者PINの設定が成功しました！",
    "adminPinSetupFailure": "🔐 管理者PINの設定が失敗しました。もう一度お試しください。",
    "adminProtectionEnabled": "🔐 管理者保護が有効になりました。すべての操作はPIN認証が必要になります。",
    "adminProtectionDisabled": "🔐 管理者保護が無効になりました。すべての操作はPIN認証なしで利用可能になりました。",
    "autoDetectedI18nDirectory": "📂 自動検出されたi18nディレクトリ: {directory}",
    "initializingProject": "⚙️  プロジェクト設定を初期化中…",
    "createdSampleTranslationFile": "✅ サンプル翻訳ファイルを作成しました: {file}",
    "languageSelectionTitle": "🌐 言語設定",
    "available": "利用可能",
    "defaultLanguages": "📝 デフォルト言語: {languages}",
    "enterLanguageCodes": "🎯 対象言語コードを入力してください (カンマ区切り 例: de, es, fr, ru):",
    "targetLanguages": "🌍 対象言語",
    "foundSourceFiles": "📄 分析対象として {count} 件のソースファイルを検出",
    "processingLanguage": "🔄 言語を処理中: {language}",
    "fileProcessingResult": "✅ {file} を処理しました: {translated}/{total} キー ({percentage}%)",
    "overallProgress": "📊 全体進捗: {translated}/{total} キー処理済み ({percentage}%)",
    "initializationSummaryTitle": "📋 初期化サマリー",
    "languageSummary": "{icon} {name} ({code}): {percentage}% 完了",
    "languageFiles": "   📄 ファイル数: {count}",
    "languageKeys": "   🔤 キー: {translated}/{total}",
    "languageMissing": "   ⚠️ 欠落: {count}",
    "initializationCompletedSuccessfully": "🎉 プロジェクトの初期化が完了しました！",
    "nextStepsTitle": "🚀 次のステップ",
    "nextStep1": "1. locales/ ディレクトリの生成された翻訳ファイルを確認する",
    "nextStep2": "2. 各対象言語の翻訳を追加する",
    "nextStep3": "3. 'npm run i18ntk' を再実行して翻訳を検証する",
    "detectedFrameworks": "✅ 検出されたi18nフレームワーク: {frameworks}",
    "setup": {
      "title": "設定",
      "question": "設定質問",
      "opt_single": "単一ファイル",
      "opt_modular": "モジュール",
      "opt_existing": "既存",
      "choice_prompt": "選択肢を入力してください:",
      "opt_confirm": "確認",
      "opt_cancel": "キャンセル",
      "apply_all_prompt": "この構造をすべての言語に適用しますか？(y/N): ",
      "per_language_intro": "言語ごとに個別に設定することを選択しました。利用可能な言語は以下の通りです：",
      "available_languages": "利用可能な言語: {languages}",
      "include_prompt": "含める言語コードをカンマ区切りで入力してください（例: 'de,fr,es'）: "
    },
    "warnings": {
      "noPackageJson": "package.json が見つかりません。i18nフレームワークを自動検出できません。"
    },
    "errorsPackageJsonRead": "⚠️  package.json の読み込み中にエラーが発生しました: {error}",
    "errorsNoFramework": "i18nフレームワークが検出されませんでした。インストールするか手動で指定してください。",
    "suggestions": {
      "noFramework": "i18nフレームワークが検出されませんでした。以下のいずれかの使用を検討してください：",
      "installFramework": "フレームワークをインストールするには次を実行: npm install <パッケージ名>"
    },
    "frameworks": {
      "react": "- React i18next (react-i18next)",
      "vue": "- Vue i18n (vue-i18n)",
      "i18next": "- i18next (i18next)",
      "nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
      "svelte": "- Svelte i18n (svelte-i18n)"
    },
    "continueWithoutI18nPrompt": "i18nフレームワークが検出されません。続行しますか？ (y/N): ",
    "detectedI18nFramework": "検出されたi18nフレームワーク: {frameworks}",
    "existingDirectoryItem": "  {index}. {location}",
    "usingExistingStructure": "既存の構造を使用: {dir}",
    "creatingSourceDirectory": "ソースディレクトリを作成中: {dir}",
    "creatingSourceLanguageDirectory": "ソース言語ディレクトリを作成中: {dir}",
    "errors": {
      "errorExecutingCommand": "⚠️  コマンドの実行中にエラーが発生しました: {error}",
      "sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {dir}",
      "sourceLanguageDirectoryNotFound": "ソース言語ディレクトリが見つかりません: {dir}",
      "noJsonFilesInSourceDirectory": "ソースディレクトリにJSONファイルが見つかりません: {dir}",
      "invalidFilePathDetected": "無効なファイルパスが検出されました",
      "initializationFailed": "初期化に失敗しました: {error}"
    },
    "processingFile": "{language} の {file} を処理中…",
    "fileAlreadyExistsMerging": "{file} は既に存在します。新しいキーをマージ中。",
    "createdNewFile": "新しいファイルを作成しました: {file}",
    "updatedFile": "ファイルを更新しました: {file}",
    "skippingExcludedFile": "{language} の {file} は除外リストにあるためスキップされました。"
  },
  "language": {
    "title": "🌍 言語を変更",
    "separator": "============================================================",
    "current": "現在の言語: {language}",
    "available": "利用可能な言語:",
    "languageOption": "{index}. {displayName}{current}",
    "backToMainMenu": "メインメニューに戻る",
    "prompt": "言語を選択してください (0-8):",
    "cancelled": "言語変更がキャンセルされました。",
    "invalid": "無効な選択です。もう一度お試しください。",
    "changed": "言語が {language} に変更されました",
    "pressEnterToContinue": "続行するにはEnterキーを押してください…"
  },
  "maintainLanguagePurity": {
    "workflow_title": "🚀 言語純度維持ワークフロー",
    "step1_title": "📊 STEP 1: 初期言語純度評価",
    "step2_title": "\n🔧 STEP 2: 言語不一致の検出と自動修正",
    "step3_title": "\n🌐 STEP 3: 自動翻訳の適用",
    "step4_title": "\n✅ STEP 4: 最終言語純度評価",
    "workflow_error": "❌ ワークフローエラー: {errorMessage}",
    "running_initial_validation": "初期言語純度検証を実行中…",
    "initial_assessment_complete": "✅ 初期評価完了: {count} 件の違反を検出\n",
    "initial_assessment_warnings": "⚠️  初期評価は警告付きで完了しました\n",
    "detecting_fixing_mismatches": "言語不一致の検出と修正を実行中…",
    "detection_complete_applying_fixes": "検出完了。自動修正を適用中…",
    "mismatch_fixes_complete": "✅ 言語不一致の修正完了: {count} 件の修正を適用\n",
    "mismatch_fixes_warnings": "⚠️  言語不一致の修正は警告付きで完了しました\n",
    "applying_automatic_translations": "自動翻訳を適用中…",
    "translation_preview_complete": "翻訳プレビュー完了。翻訳を適用中…"
  },
  "menu": {
    "title": "🌐 I18NTK 管理メニュー",
    "separator": "============================================================",
    "options": {
      "init": "🚀 新しい言語を初期化",
      "analyze": "🔍 翻訳を分析",
      "validate": "✅ 翻訳を検証",
      "usage": "📊 キー使用状況をチェック",
      "complete": "🎯 翻訳を完了 (100% カバレッジ)",
      "sizing": "📏 サイズを分析",
      "fix": "🛠️  プレースホルダー翻訳を修正",
      "workflow": "🔄 フルワークフローを実行",
      "status": "📋 プロジェクトステータスを表示",
      "delete": "🗑️  すべてのレポートを削除",
      "language": "🌍 UI言語を変更",
      "settings": "⚙️  設定",
      "help": "❓ ヘルプ",
      "debug": "🔧 デバッグツール",
      "scanner": "🔍 i18n問題をスキャン",
      "exit": "🚪 終了"
    },
    "update": "📦 パッケージを更新",
    "goodbye": "👋 さようなら！",
    "invalidChoice": "❌ 無効な選択です。0〜15 を選択してください。",
    "returning": "🔄 メインメニューに戻ります…",
    "invalidOption": "❌ 無効なオプションです。もう一度お試しください。",
    "nonInteractiveModeWarning": "⚠️ 非対話モードが検出されました。メニューは参照用です。",
    "useDirectExecution": "💡 直接実行するには: node main/i18ntk-manage.js --command=<command>",
    "useHelpForCommands": "📖 コマンドを見るには: node main/i18ntk-manage.js --help",
    "returnToMainMenu": "Enterキーでメインメニューに戻ります。",
    "pressEnterToContinue": "Enterキーを押して続行してください…",
    "selectOptionPrompt": "オプションを選択してください:",
    "selectDebugToolPrompt": "デバッグツールを選択してください:",
    "selectLogPrompt": "ログファイルを選択してください (1-{count}):",
    "autoDetectedI18nDirectory": "📂 自動検出されたi18nディレクトリ: {directory}",
    "executingCommand": "コマンドを実行中: {command}",
    "unknownCommand": "不明なコマンド: {command}",
    "languageOption": "  {index}. {displayName}{current}",
    "debugTools": {
      "1": "ログファイル分析",
      "2": "翻訳キー使用状況分析",
      "3": "翻訳完了度分析",
      "4": "翻訳フォーマット分析",
      "5": "翻訳タイプ分析",
      "6": "翻訳構造分析"
    },
    "native_translations": {
      "exact_translation_found": "  ✅ {keyPath}: {value}",
      "no_exact_translation": "  ⚠️ '{keyPath}' の完全一致翻訳が見つかりません。類似キー:",
      "similar_key": "    - {key} ({similarity}% 一致)",
      "processing_language_files": "🔄 {count} 件の言語ファイルを処理中…\n",
      "file_not_found": "⚠️ ファイルが見つかりません: {file}",
      "processing_translations": "🌍 {code} の翻訳を処理中…",
      "backup_created": "📋 バックアップを作成しました: {filename}",
      "error_parsing_json": "❌ {code}.json の解析エラー: {errorMessage}",
      "existing_keys_found": "📊 {code}: {count} 件の既存キーを検出",
      "error_writing_json": "❌ {code}.json の書き込みエラー: {errorMessage}",
      "translations_replaced": "📊 {code}: {count} 件の翻訳を置換",
      "translation_replacement_complete": "\n✅ 翻訳置換が完了しました！",
      "total_replacements": "📊 置換総数: {count}",
      "dry_run_mode": "\n⚠️ DRY RUNモード - ファイルは変更されません",
      "tool_title": "🌍 ネイティブ翻訳リプレーサ v1.10.1",
      "tool_separator": "======================================\n",
      "dry_run_warning": "⚠️ DRY RUNモードで実行中 - ファイルは変更されません\n",
      "error_during_replacement": "❌ 翻訳置換中にエラーが発生しました:"
    }
  },
  "config": {
    "dirFallbackWarning": "⚠️ ディレクトリ {dir} が見つかりません。{fallback} を使用します。",
    "dirInvalidError": "❌ 無効なディレクトリ: {dir}"
  },
  "operations": {
    "completed": "✅ 操作が正常に完了しました！",
    "deleteReportsTitle": "🗑️ レポート & ログの削除",
    "scanningForFiles": "🔍 削除対象ファイルをスキャン中…",
    "noFilesFoundToDelete": "✅ 削除対象ファイルはありません。",
    "availableDirectories": "📁 利用可能なディレクトリ:",
    "allDirectories": "すべてのディレクトリ",
    "andMore": "その他 {count} 件",
    "cancelOption": "キャンセル",
    "cancelReportOption": "キャンセル / メニューに戻る",
    "invalidSelection": "❌ 無効な選択です。",
    "foundFilesInSelectedDirectories": "📊 選択されたディレクトリで{count} 件のファイルを検出:",
    "deletionOptions": "🗑️ 削除オプション:",
    "deleteAllFiles": "すべてのファイルを削除",
    "keepLast3Files": "最後の3ファイルを保持",
    "keepLast5Files": "最後の5ファイルを保持",
    "noFilesToDelete": "✅ 削除するファイルはありません。",
    "filesToDeleteCount": "📋 削除予定のファイル数: {count}",
    "filesToKeepCount": "📋 保持するファイル数: {count}",
    "confirmDeletion": "⚠️ これらのファイルを削除してもよろしいですか？ (y/N):",
    "deletedFile": "✅ 削除: {filename}",
    "failedToDeleteFile": "❌ {filename} の削除に失敗しました: {error}",
    "cancelled": "❌ 操作がキャンセルされました。",
    "init": {
      "title": "🚀 新しい言語を初期化"
    },
    "usage": {
      "title": "📊 キー使用状況をチェック",
      "noUsedKeysHint": "翻訳が見つかりましたが、ソースで使用されていません。--source-dir と translationPatterns を確認してください。"
    },
    "analyze": {
      "title": "🔍 翻訳を分析"
    },
    "validate": {
      "title": "✅ 翻訳を検証"
    },
    "settings": {
      "title": "⚙️  設定管理",
      "separator": "============================================================"
    },
    "complete": {
      "deletingOldReport": "🗑️  古い使用状況レポートを削除中",
      "generatingFreshAnalysis": "🔄 新しい使用状況分析を生成中…",
      "couldNotGenerate": "⚠️  使用状況分析を生成できませんでした。共通の欠落キーを使用します。",
      "reportNotFound": "⚠️  使用状況レポートが見つかりません。新しい分析を生成中…",
      "foundMissingKeys": "🔍 使用状況分析で{count} 件の欠落キーを検出",
      "couldNotParse": "⚠️  使用状況レポートを解析できませんでした。共通の欠落キーを使用します。",
      "title": "🎯 翻訳の完了",
      "separator": "============================================================",
      "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
      "sourceLanguage": "🔤 ソース言語: {sourceLanguage}",
      "dryRunMode": "🧪 DRY RUNモード - ファイルは変更されません",
      "languages": "🎯 対象言語: {languages}",
      "addingMissingKeys": "➕ 欠落キーを翻訳ファイルに追加中…",
      "processing": "🔄 {language} を処理中…",
      "addedKeys": "✅ {count} 件のキーを追加しました",
      "changeDetails": "📝 {file}: {key}",
      "noChangesNeeded": "✅ {language} に変更は必要ありません",
      "summaryTitle": "📊 完了サマリー",
      "totalChanges": "📝 総変更数: {totalChanges}",
      "languagesProcessed": "🌐 処理済み言語数: {languagesProcessed}",
      "missingKeysAdded": "➕ 追加された欠落キー: {missingKeysAdded}",
      "nextStepsTitle": "📋 次のステップ",
      "nextStep1": "1. 使用状況分析を実行:",
      "nextStep2": "2. 翻訳を検証:",
      "nextStep3": "3. 完了度を分析:",
      "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました！",
      "runWithoutDryRun": "💡 --dry-runなしで実行して変更を適用",
      "pressEnterToContinue": "Enterキーを押して続行してください…"
    },
    "updatePackage": {
      "title": "📦 i18n-toolkit パッケージを更新",
      "description": "npmの最新バージョンにi18n-toolkitパッケージを更新します。",
      "command": "実行コマンド",
      "confirm": "更新を実行してもよろしいですか？ (y/N): ",
      "updating": "パッケージを更新中…しばらくお待ちください。",
      "success": "✅ i18n-toolkit が正常に更新されました！",
      "error": "❌ i18n-toolkit の更新に失敗しました",
      "cancelled": "❌ 更新がキャンセルされました。"
    }
  },
  "security": {
    "pathValidationFailed": "パス検証に失敗しました",
    "invalidInputType": "無効な入力タイプです",
    "pathTraversalAttempt": "パストラバーサルの試行が検出されました",
    "pathValidated": "✅ パスが正常に検証されました",
    "pathValidationError": "パス検証エラー",
    "fileTooLarge": "セキュリティ: ファイルが大きすぎます: {filePath}",
    "fileReadError": "セキュリティ: ファイル読み取りエラー: {errorMessage}",
    "contentTooLargeForFile": "セキュリティ: ファイルに対してコンテンツが大きすぎます: {filePath}",
    "fileWriteError": "セキュリティ: ファイル書き込みエラー: {errorMessage}",
    "jsonStringTooLarge": "セキュリティ: JSON文字列が大きすぎます",
    "jsonParseError": "セキュリティ: JSON解析エラー: {errorMessage}",
    "inputContainsDisallowedCharacters": "セキュリティ: 入力に許可されない文字が含まれています",
    "unknownCommandArgument": "セキュリティ: 不明なコマンド引数: {key}",
    "unknown_command_argument": "セキュリティ: 不明なコマンド引数: {key}",
    "unknownConfigKey": "セキュリティ: 不明な設定キー: {key}",
    "unknown_config_key": "セキュリティ: 不明な設定キー: {key}",
    "securityAlert": "[SECURITY ALERT] {timestamp}: {event}",
    "contentTooLarge": "セキュリティ: ファイルに対してコンテンツが大きすぎます: {validatedPath}",
    "inputDisallowedCharacters": "セキュリティ: 入力に許可されない文字が含まれています",
    "unknownCommandArg": "不明なコマンド引数です",
    "logMessage": "[SECURITY {level}] {timestamp}: {event}",
    "alertMessage": "[SECURITY ALERT] {timestamp}: {event}",
    "securityWarning": "[SECURITY WARNING] {timestamp}: {event}",
    "json_parse_error": "セキュリティ: JSON解析エラー: {errorMessage}",
    "file_too_large": "セキュリティ: ファイルが大きすぎます",
    "file_read_error": "セキュリティ: ファイル読み取りエラー",
    "content_too_large_for_file": "セキュリティ: ファイルに対してコンテンツが大きすぎます",
    "file_write_error": "セキュリティ: ファイル書き込みエラー",
    "json_string_too_large": "セキュリティ: JSON文字列が大きすぎます",
    "security_alert": "セキュリティ: アラート"
  },
  "settings-cli": {
    "settings": {
      "mainMenu": {
        "title": "メインメニュー:",
        "uiSettings": "UI設定",
        "uiSettingsDesc": "言語、テーマ、インターフェイスオプション",
        "directorySettings": "ディレクトリ設定",
        "directorySettingsDesc": "ソースおよび出力ディレクトリパス",
        "scriptDirectorySettings": "スクリプトディレクトリ設定",
        "scriptDirectorySettingsDesc": "各スクリプト操作のディレクトリパス",
        "processingSettings": "処理設定",
        "processingSettingsDesc": "バッチサイズ、同時実行数、パフォーマンス",
        "advancedSettings": "詳細設定",
        "advancedSettingsDesc": "検証、ログ、エキスパートオプション",
        "viewAllSettings": "すべての設定を表示",
        "viewAllSettingsDesc": "現在の構成を表示",
        "importExport": "インポート/エクスポート",
        "importExportDesc": "設定のバックアップと復元",
        "resetToDefaults": "デフォルトにリセット",
        "resetToDefaultsDesc": "工場出荷時設定に戻す",
        "reportBug": "バグを報告",
        "reportBugDesc": "GitHubで問題を報告",
        "saveChanges": "変更を保存",
        "saveChangesDesc": "現在の設定をファイルに保存",
        "updatePackage": "パッケージを更新",
        "updatePackageDesc": "npmを介してi18n-toolkitパッケージを更新",
        "help": "ヘルプ",
        "helpDesc": "詳細なヘルプ情報を表示",
        "quit": "終了",
        "quitDesc": "設定から終了（必要に応じて保存確認）",
        "unsavedChangesWarning": "⚠️  保存されていない変更があります",
        "saveChangesBeforeQuit": "終了前に変更を保存しますか？ (y/N): ",
        "selectOption": "オプションを選択してください: ",
        "goodbyeMessage": "i18n設定マネージャーをご利用いただきありがとうございます！"
      },
      "goodbyeMessage": "i18n設定マネージャーをご利用いただきありがとうございます！",
      "relativePathHint": "このディレクトリからの相対パスを使用 (例: ./src/i18n/locales)",
      "currentDirectory": "現在のプロジェクトディレクトリ"
    },
    "settings_manager": {
      "error_loading_settings": "❌ 設定の読み込みエラー:",
      "error_saving_settings": "❌ 設定の保存エラー:",
      "error_setting_value": "❌ 値の設定エラー:",
      "missing_required_setting": "❌ 必須設定がありません: {prop}",
      "invalid_language": "❌ 無効な言語です: {language}",
      "invalid_source_language": "❌ 無効なソース言語です: {sourceLanguage}",
      "default_languages_must_be_array": "❌ defaultLanguages は配列でなければなりません",
      "invalid_date_format": "❌ 無効な日付形式です: {dateFormat}. 有効な形式: {validFormats}",
      "invalid_time_format": "❌ 無効な時間形式です: {timeFormat}. 有効な形式: {validFormats}",
      "notifications_types_must_be_object": "❌ notifications.types はオブジェクトでなければなりません",
      "exclude_files_must_be_array": "❌ excludeFiles は配列でなければなりません",
      "exclude_dirs_must_be_array": "❌ excludeDirs は配列でなければなりません",
      "include_extensions_must_be_array": "❌ includeExtensions は配列でなければなりません",
      "invalid_batch_size": "❌ 無効なバッチサイズです。正の数でなければなりません",
      "invalid_max_concurrent_files": "❌ 無効な同時処理ファイル数です。正の数でなければなりません",
      "invalid_sizing_threshold": "❌ 無効なサイズしきい値です。正の数でなければなりません",
      "invalid_timeout": "❌ 無効なタイムアウトです。最低1000ms以上でなければなりません",
      "invalid_sizing_format": "❌ 無効なサイズ形式です: {sizingFormat}. 有効な形式: {validFormats}",
      "error_validating_settings": "❌ 設定の検証エラー:",
      "backup_created": "📋 バックアップを作成しました: {backupPath}",
      "error_creating_backup": "❌ バックアップ作成エラー:",
      "language_not_supported": "言語 '{language}' はサポートされていません。利用可能: {availableLanguages}",
      "ui_language_set": "🌍 UI言語が設定されました: {language}"
    }
  },
  "settings": {
    "title": "⚙️ 設定管理",
    "separator": "============================================================",
    "goodbyeMessage": "i18ntk設定マネージャーをご利用いただきありがとうございます！",
    "relativePathHint": "このディレクトリからの相対パスを使用 (例: ./src/i18n/locales)",
    "currentDirectory": "現在のプロジェクトディレクトリ",
    "pin": "PIN:",
    "reportBug": {
      "title": "バグを報告",
      "description": "発生した問題やバグを報告する",
      "guidance": "バグを報告するには、以下の手順に従ってください：",
      "checkLogs": "1. 最近のデバッグログでエラーを確認する",
      "documentIssue": "2. 再現手順と共に問題を文書化する",
      "contactSupport": "3. サポートまたは適切な報告チャンネルに連絡する",
      "completed": "✅ バグ報告プロセスが完了しました",
      "instructions": "上記の手順に従ってバグを報告してください。"
    },
    "mainMenu": {
      "title": "メインメニュー:",
      "uiSettings": "UI設定",
      "uiSettingsDesc": "言語、テーマ、インターフェイスオプション",
      "directorySettings": "ディレクトリ設定",
      "directorySettingsDesc": "翻訳ファイルのソースおよび出力ディレクトリ",
      "processingSettings": "処理設定",
      "processingSettingsDesc": "バッチサイズ、同時実行、およびパフォーマンス",
      "advancedSettings": "詳細設定",
      "advancedSettingsDesc": "検証、ログ、およびエキスパートオプション",
      "viewAllSettings": "すべての設定を表示",
      "viewAllSettingsDesc": "現在の構成を表示",
      "importExport": "インポート/エクスポート",
      "updatePackage": "パッケージを更新",
      "updatePackageDesc": "npmを介してi18n-toolkitパッケージを更新",
      "importExportDesc": "設定のバックアップと復元",
      "resetToDefaults": "デフォルトにリセット",
      "resetToDefaultsDesc": "工場出荷時設定に戻す",
      "reportBug": "バグを報告",
      "reportBugDesc": "発生した問題やバグを報告する",
      "saveChanges": "変更を保存",
      "saveChangesDesc": "現在の設定をファイルに保存",
      "help": "ヘルプ",
      "helpDesc": "詳細なヘルプ情報を表示",
      "quit": "終了",
      "quitDesc": "設定を終了（必要に応じて保存確認あり）",
      "unsavedChangesWarning": "⚠️  保存されていない変更があります",
      "saveChangesBeforeQuit": "終了前に変更を保存しますか？ (y/N): ",
      "selectOption": "オプションを選択してください: ",
      "goodbyeMessage": "i18n設定マネージャーをご利用いただきありがとうございます！",
      "selectSettingPrompt": "編集する設定を選択してください（戻るには 'b'）: ",
      "enterNewValue": "新しい値を入力してください: ",
      "updatedSuccessfully": "{setting} が正常に更新されました！",
      "scriptDirectorySettings": "スクリプトディレクトリ設定",
      "scriptDirectoryDesc": "各スクリプトのカスタムディレクトリを指定します",
      "scriptDirectorySettingsDesc": "設定しない場合はグローバル設定が使用されます。",
      "currentDirectory": "現在のプロジェクトディレクトリ",
      "securitySettings": "セキュリティ設定",
      "securitySettingsDesc": "管理者PINとその他のセキュリティオプション",
      "backupSettings": "バックアップ設定",
      "backupSettingsDesc": "バックアップおよび復元の設定を行う"
    },
    "updatePackage": {
      "title": "パッケージを更新",
      "description": "npmを介してi18n-toolkitパッケージを更新します",
      "command": "npm update i18ntk -g",
      "success": "更新が正常に完了しました。",
      "failed": "更新に失敗しました。",
      "prompt": "パッケージを更新しますか？ (y/N): ",
      "promptDesc": "注: 最新バージョンに更新します。",
      "confirm": "y",
      "cancelled": "更新がキャンセルされました。"
    },
    "admin": {
      "selectOption": "オプションを選択してください: ",
      "updateSuccess": "管理者PINが正常に更新されました！",
      "updateFailed": "管理者PINの更新に失敗しました。",
      "protectionRemoved": "管理者PIN保護が解除されました。",
      "configSuccess": "管理者PINが正常に設定されました！",
      "configFailed": "管理者PINの設定に失敗しました。",
      "setupPinPrompt": "管理者PINを設定しますか？ (y/N): ",
      "pinUpdatedSuccess": "管理者PINが正常に更新されました！",
      "pinUpdatedFailed": "管理者PINの更新に失敗しました。",
      "pinRemoved": "管理者PIN保護が解除されました。",
      "pinConfiguredSuccess": "管理者PINが正常に設定されました！",
      "pinConfiguredFailed": "管理者PINの設定に失敗しました。",
      "accessDenied": "❌ アクセスが拒否されました。メニューに戻ります。",
      "setupPin": "🔐 管理者PINを設定中…",
      "setupFailed": "❌ 管理者PINの設定に失敗しました。設定は変更されませんでした。",
      "pinConfigured": "📌 管理者PINは現在設定されています。",
      "options": "オプション:",
      "changePin": "1) 既存のPINを変更",
      "removePin": "2) PIN保護を解除",
      "cancel": "3) キャンセル",
      "verifyCurrentPin": "\n🔐 まず現在のPINを確認してください:",
      "settingNewPin": "\n🔄 新しいPINを設定中…",
      "verifyToRemove": "\n🔐 保護解除するには現在のPINを確認してください:",
      "noPinConfigured": "🔓 現在管理者PINは設定されていません。",
      "pinBenefits": "管理者PINを設定すると以下が保護されます:",
      "benefitSecurity": "• セキュリティ設定の変更",
      "benefitAdvanced": "• 詳細設定の変更",
      "benefitDebug": "• デバッグツールへのアクセス",
      "benefitReset": "• 設定のリセット",
      "setupCancelled": "⏭️  管理者PIN設定がキャンセルされました。",
      "operationCancelled": "❌ 操作がキャンセルされました。",
      "startingSettings": "🎛️  設定CLIを開始しています…",
      "authRequired": "🔒 次の操作には管理者認証が必要です: {label}",
      "pinSetupTitle": "管理者PIN設定",
      "browserOpenFailed": "ブラウザを自動で開けませんでした。",
      "manualVisit": "手動で次のURLにアクセスしてください: {url}",
      "browserOpened": "✅ ブラウザを正常に開きました！"
    },
    "importExport": {
      "title": "インポート/エクスポート",
      "export": "エクスポート",
      "import": "インポート",
      "backup": "バックアップ",
      "enterFilename": "ファイル名を入力してください (デフォルトはEnter): ",
      "exportSuccess": "設定を {file} にエクスポートしました",
      "exportFailed": "設定のエクスポートに失敗しました: {error}",
      "importFilename": "インポートするファイル名を入力してください: ",
      "fileNotFound": "ファイルが見つかりません。",
      "invalidFormat": "無効な設定ファイル形式です。",
      "confirmImport": "これにより現在の設定が上書きされます。続行しますか？ (y/N): ",
      "importSuccess": "設定を正常にインポートしました。",
      "importFailed": "設定のインポートに失敗しました: {error}",
      "backupSuccess": "バックアップを作成しました: {file}",
      "backupFailed": "バックアップの作成に失敗しました: {error}"
    },
    "selectOption": "オプションを選択してください: ",
    "resetToDefaultsTitle": "デフォルトにリセット",
    "resetWarning1": "⚠️  この操作は元に戻せません。",
    "resetWarning2": "⚠️  デフォルト設定にリセットします。",
    "resetConfirm": "続行してもよろしいですか？ (y/N): ",
    "resetSuccess": "設定をデフォルトにリセットしました。",
    "resetFailed": "設定のリセットに失敗しました: {error}",
    "resetDone": "設定がデフォルトにリセットされました。",
    "resetScriptDirsDone": "スクリプトディレクトリがシステムのデフォルトにリセットされました。",
    "saveSuccess": "設定を正常に保存しました。",
    "saveFailed": "設定の保存に失敗しました。",
    "saveError": "⚠️  設定の保存に失敗しました。",
    "pressEnter": "Enterキーを押して続行してください…",
    "initFailed": "設定の初期化に失敗しました: {error}",
    "invalidValueFormat": "無効な値の形式です。",
    "help": {
      "title": "設定ヘルプ",
      "navigationTitle": "ナビゲーション",
      "navigation1": "1. 一般設定 - UI言語、テーマ、基本設定を行う",
      "navigation2": "2. ディレクトリ設定 - 翻訳ファイルのソースおよび出力ディレクトリを設定",
      "navigation3": "3. 処理設定 - バッチサイズ、同時実行、パフォーマンスオプションを設定",
      "navigation4": "4. 詳細設定 - 検証、ログ記録、エキスパート設定を行う",
      "categoriesTitle": "設定カテゴリ",
      "categoryUI": "• UI設定: インターフェイス言語、カラーテーマ、表示設定",
      "categoryDirectory": "• ディレクトリ設定: ソースファイル位置およびレポート出力ディレクトリ",
      "categoryProcessing": "• 処理設定: バッチ処理、ファイル制限、パフォーマンス調整",
      "categoryAdvanced": "• 詳細設定: デバッグモード、監査ログ、セキュリティオプション",
      "envVarsTitle": "環境変数",
      "envVar1": "• I18N_SOURCE_DIR: デフォルトのソースディレクトリを上書き",
      "envVar2": "• I18N_OUTPUT_DIR: デフォルトの出力ディレクトリを上書き",
      "envVar3": "• I18N_DEBUG: デバッグモードを有効化 (true/false)",
      "cliUsageTitle": "CLI使用例",
      "cliUsage1": "• npx i18ntk --settings: インタラクティブ設定メニューを開く",
      "cliUsage2": "• npx i18ntk --settings --lang ja: 日本語で設定メニューを開く",
      "cliUsage3": "• npx i18ntk --reset-settings: すべての設定をデフォルトにリセット",
      "navigation": "数字キーで選択、'b'で戻る",
      "editing": "プロンプトが出たら新しい値を入力、Enterで現状維持",
      "saving": "終了前に 's' で変更を保存",
      "reset": "オプション7で全設定をデフォルトにリセット"
    },
    "categories": {
      "uiSettings": "UI設定",
      "directorySettings": "ディレクトリ設定",
      "processingSettings": "処理設定",
      "advancedSettings": "詳細設定",
      "scriptDirectorySettings": "スクリプトディレクトリ設定",
      "securitySettings": "セキュリティ設定"
    },
    "security": {
      "title": "🔐 セキュリティ設定",
      "description": "管理者PIN保護およびセキュリティオプションを構成",
      "currentPin": "現在のPIN:",
      "pinConfigured": "✅ 設定済み",
      "pinNotConfigured": "❌ 未設定",
      "pinDisplay": "PIN表示:",
      "menu": {
        "enableDisable": "1) 管理者PINの有効化/無効化",
        "setupChange": "2) 管理者PINの設定/変更",
        "sessionTimeout": "3) セッションタイムアウト",
        "maxAttempts": "4) 最大失敗試行回数",
        "lockoutDuration": "5) ロックアウト時間",
        "back": "b) メインメニューに戻る"
      },
      "prompts": {
        "enablePin": "管理者PIN保護を有効にしますか？ (y/N): ",
        "disablePin": "管理者PIN保護を無効にしますか？ (y/N): ",
        "enterTimeout": "セッションタイムアウトを分単位で入力してください: ",
        "enterMaxAttempts": "最大失敗試行回数を入力してください: ",
        "enterLockoutDuration": "ロックアウト時間を分単位で入力してください: "
      },
      "messages": {
        "pinEnabled": "管理者PIN保護が有効になりました",
        "pinDisabled": "管理者PIN保護が無効になりました",
        "timeoutUpdated": "セッションタイムアウトが {minutes} 分に更新されました",
        "maxAttemptsUpdated": "最大失敗試行回数が {attempts} 回に更新されました",
        "lockoutDurationUpdated": "ロックアウト時間が {minutes} 分に更新されました"
      }
    },
    "fields": {
      "backup.enabled": {
        "label": "バックアップを有効にする",
        "description": "設定の自動バックアップを有効にする",
        "help": "バックアップ機能を有効/無効にする"
      },
      "backup.singleFileMode": {
        "label": "単一ファイルモード",
        "description": "バックアップを単一ファイルに使用する",
        "help": "設定を単一のバックアップファイルにバックアップする"
      },
      "backup.singleBackupFile": {
        "label": "バックアップファイルパス",
        "description": "バックアップファイルのパス",
        "help": "単一のバックアップファイルのパス"
      },
      "backup.retentionDays": {
        "label": "バックアップ保持期間",
        "description": "バックアップファイルを保持する日数",
        "help": "古いバックアップファイルを保持する日数"
      },
      "backup.maxBackups": {
        "label": "バックアップファイルの最大数",
        "description": "保持する最大のバックアップファイル数",
        "help": "保持する最大のバックアップファイル数"
      },
      "backup.confirm": {
        "label": "バックアップを確認する",
        "description": "バックアップ操作を確認する",
        "help": "バックアップ操作を確認する"
      },
      "i18nDir": {
        "label": "I18nディレクトリ",
        "description": "翻訳ファイルを含むディレクトリ",
        "current": "現在: {value}",
        "help": "翻訳ファイルがあるディレクトリへのパス"
      },
      "projectRoot": {
        "label": "プロジェクトルート",
        "description": "プロジェクトのルートディレクトリ",
        "current": "現在: {value}",
        "help": "プロジェクトのルートディレクトリへのパス"
      },
      "checkUsage": {
        "usage_analysis_failed": "使用状況分析に失敗しました",
        "usage_analysis_success": "使用状況分析が成功しました",
        "usage_analysis_complete": "使用状況分析が完了しました",
        "usage_analysis_in_progress": "使用状況分析を実行中です",
        "usage_analysis_started": "使用状況分析を開始しました",
        "usage_analysis_skipped": "使用状況分析をスキップしました"
      },
      "language": {
        "label": "インターフェイス言語",
        "description": "ユーザーインターフェイスの言語",
        "current": "現在: {value}",
        "help": "希望するインターフェイス言語を選択してください"
      },
      "scriptDirectories": {
        "analyzeLabel": "解析スクリプトディレクトリ",
        "analyzeHelp": "問題のあるスクリプトディレクトリを解析します",
        "completeLabel": "完了セットアップディレクトリ",
        "initLabel": "初期化スクリプトディレクトリ",
        "manageLabel": "管理スクリプトディレクトリ",
        "sizingLabel": "サイズ設定スクリプトディレクトリ",
        "summaryLabel": "要約レポートディレクトリ",
        "usageLabel": "使用状況レポートディレクトリ",
        "validateLabel": "検証スクリプトディレクトリ"
      },
      "theme": {
        "label": "カラーテーマ",
        "description": "UIテーマの設定",
        "current": "現在: {value}",
        "help": "ライトまたはダークテーマを選択してください"
      },
      "dateFormat": {
        "label": "日付形式",
        "description": "日付表示の形式",
        "current": "現在: {value}",
        "help": "レポートの日付表示方法を選択してください"
      },
      "notifications": {
        "enabled": {
          "label": "通知を有効にする",
          "description": "デスクトップ通知を表示",
          "current": "現在: {value}",
          "help": "操作完了時にデスクトップ通知を有効にします"
        }
      },
      "sourceDir": {
        "label": "ソースディレクトリ",
        "description": "翻訳ファイルを含むディレクトリ",
        "current": "現在: {value}",
        "help": "ソース翻訳ファイルがあるディレクトリへのパスを指定してください"
      },
      "sourceLanguage": {
        "label": "ソース言語",
        "description": "翻訳の基礎となる言語",
        "current": "現在: {value}",
        "help": "翻訳の基となる主要な言語を指定してください"
      },
      "outputDir": {
        "label": "出力ディレクトリ",
        "description": "生成されたレポートのディレクトリ",
        "current": "現在: {value}",
        "help": "レポートや処理済みファイルを保存する場所を指定してください"
      },
      "batchSize": {
        "label": "バッチサイズ",
        "description": "一度に処理するアイテム数",
        "current": "現在: {value}",
        "help": "1バッチあたりに処理するファイル数を指定してください"
      },
      "maxConcurrentFiles": {
        "label": "同時処理ファイル数",
        "description": "同時に処理する最大ファイル数",
        "current": "現在: {value}",
        "help": "同時に処理するファイルの最大数を指定してください"
      },
      "sizingThreshold": {
        "label": "サイズしきい値 (%)",
        "description": "サイズ変動警告のしきい値",
        "current": "現在: {value}%",
        "help": "サイズ不一致を検出するためのパーセンテージしきい値を指定してください"
      },
      "strictMode": {
        "label": "厳格検証モード",
        "description": "厳格検証モードを有効にする",
        "current": "現在: {value}",
        "help": "翻訳ファイルの厳格検証を有効にします"
      },
      "enableAuditLog": {
        "label": "監査ログを有効にする",
        "description": "すべての翻訳変更を記録する",
        "current": "現在: {value}",
        "help": "翻訳ファイルに対するすべての変更をログに残します"
      },
      "backupBeforeChanges": {
        "label": "自動バックアップ",
        "description": "変更前にバックアップを作成する",
        "current": "現在: {value}",
        "help": "変更を加える前に自動的にバックアップを作成します"
      },
      "advanced_maxConcurrentFiles": {
        "label": "同時処理ファイル数",
        "description": "同時に処理する最大ファイル数",
        "current": "現在: {value}",
        "help": "同時に処理するファイルの最大数を指定してください"
      },
      "advanced_strictMode": {
        "label": "厳格検証モード",
        "description": "厳格検証モードを有効にする",
        "current": "現在: {value}",
        "help": "翻訳ファイルの厳格検証を有効にします"
      },
      "adminPinEnabled": {
        "label": "管理者PIN保護",
        "description": "機密設定に管理者PIN認証を要求する",
        "current": "現在: {value}",
        "help": "セキュリティおよび詳細設定を変更する際に管理者PINを要求します"
      },
      "sessionTimeout": {
        "label": "セッションタイムアウト",
        "description": "管理者セッションのタイムアウト（分）",
        "current": "現在: {value} 分",
        "help": "再認証が必要になるまで管理者セッションを維持する時間を指定してください"
      },
      "maxFailedAttempts": {
        "label": "最大失敗試行回数",
        "description": "ロックアウト前の最大PIN失敗試行回数",
        "current": "現在: {value} 回",
        "help": "一時ロックアウト前に許可するPIN失敗回数を指定してください"
      },
      "lockoutDuration": {
        "label": "ロックアウト期間",
        "description": "失敗後のロックアウト期間（分）",
        "current": "現在: {value} 分",
        "help": "最大失敗試行後にシステムがロックされる時間を指定してください"
      },
      "scriptDirectories_analyze": {
        "label": "解析スクリプトディレクトリ",
        "description": "解析スクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "解析スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_complete": {
        "label": "完了セットアップディレクトリ",
        "description": "完了セットアップスクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "完了セットアップスクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_init": {
        "label": "初期化スクリプトディレクトリ",
        "description": "初期化スクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "初期化スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_manage": {
        "label": "管理スクリプトディレクトリ",
        "description": "管理スクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "管理スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_sizing": {
        "label": "サイズ設定スクリプトディレクトリ",
        "description": "サイズ設定スクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "サイズ設定スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_summary": {
        "label": "要約レポートディレクトリ",
        "description": "要約レポートスクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "要約レポートスクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_usage": {
        "label": "使用状況レポートディレクトリ",
        "description": "使用状況レポートスクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "使用状況レポートスクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "scriptDirectories_validate": {
        "label": "検証スクリプトディレクトリ",
        "description": "検証スクリプト用のカスタムディレクトリ",
        "current": "現在: {value}",
        "help": "検証スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
      },
      "security_adminPinEnabled": {
        "label": "管理者PIN保護",
        "description": "機密設定に管理者PIN認証を要求する",
        "current": "現在: {value}",
        "help": "セキュリティおよび詳細設定を変更する際に管理者PINを要求します"
      },
      "fields": {
        "adminPinEnabled": {
          "label": "管理者 PIN の保護",
          "description": "機密設定に管理者PIN認証を有効にする",
          "help": "セキュリティと詳細設定の変更には管理者PINが必要です"
        }
      },
      "security_pinProtection_enabled": {
        "label": "PIN保護",
        "description": "機密設定に PIN 保護を有効にする",
        "current": "現在: {value}",
        "help": "セキュリティと詳細設定の変更にはPINが必要です"
      },
      "pinProtection_configure": {
        "label": "PIN保護スクリプトの設定",
        "description": "PIN保護が必要なスクリプトを設定する",
        "help": "PIN認証が必要な個別のスクリプトを選択"
      },
      "pinProtection_debugMenu": {
        "label": "デバッグツールメニュー",
        "description": "デバッグツールメニューにPINを要求",
        "current": "現在: {value}",
        "help": "デバッグツールへのアクセスにPIN保護を有効にする"
      },
      "pinProtection_deleteReports": {
        "label": "レポートの削除",
        "description": "レポート削除にPINを要求",
        "current": "現在: {value}",
        "help": "レポートの削除にPIN保護を有効にする"
      },
      "pinProtection_summaryReports": {
        "label": "サマリーレポート",
        "description": "サマリーレポートにPINを要求",
        "current": "現在: {value}",
        "help": "サマリーレポートの生成にPIN保護を有効にする"
      },
      "pinProtection_settingsMenu": {
        "label": "設定メニュー",
        "description": "設定メニューにPINを要求",
        "current": "現在: {value}",
        "help": "設定へのアクセスにPIN保護を有効にする"
      },
      "pinProtection_initScript": {
        "label": "初期化スクリプト",
        "description": "初期化スクリプトにPINを要求",
        "current": "現在: {value}",
        "help": "初期化スクリプトの実行にPIN保護を有効にする"
      },
      "pinProtection_resetDefaults": {
        "label": "PIN保護をリセット",
        "description": "すべてのPIN保護設定をデフォルトにリセット",
        "help": "すべてのスクリプト保護を工場出荷時の値にリセット"
      },
      "removeUiLanguages": {
        "label": "Remove UI Languages",
        "description": "Remove UI languages that are not installed",
        "help": "Remove UI languages that are not installed on the system"
      },
      "${helperKey}": {
        "help": "ヘルプ"
      }
    },
    "actions": {
      "editSetting": "{setting} を編集: ",
      "settingUpdated": "✅ {setting} が正常に更新されました！",
      "invalidValue": "❌ 無効な値です。もう一度お試しください。",
      "pressEnter": "Enterキーを押して続行してください…",
      "backToMenu": "メインメニューに戻る",
      "saveSuccess": "✅ 設定が正常に保存されました！",
      "saveFailed": "❌ 設定の保存に失敗しました: {error}",
      "resetConfirm": "すべての設定をデフォルトにリセットしてもよろしいですか？ (y/N): ",
      "resetSuccess": "✅ 設定がデフォルトにリセットされました！",
      "importSuccess": "✅ 設定が正常にインポートされました！",
      "exportSuccess": "✅ 設定が正常にエクスポートされました！",
      "fileNotFound": "❌ ファイルが見つかりません: {path}",
      "invalidFormat": "❌ 無効な設定ファイル形式です",
      "pinProtectionUpdated": "✅ {script} のPIN保護が正常に更新されました！",
      "pinProtectionReset": "✅ すべてのPIN保護設定がデフォルトにリセットされました！",
      "pinProtectionConfigure": "個別スクリプトのPIN保護を設定",
      "pinProtectionSelectScript": "PIN保護を切り替えるスクリプトを選択してください: ",
      "pinProtectionCurrentStatus": "現在のステータス: {status}",
      "pinProtectionEnabled": "有効",
      "pinProtectionDisabled": "無効",
      "pinProtectionToggle": "PIN保護を切り替え",
      "pinProtectionResetAll": "すべてをデフォルトにリセット",
      "pinProtectionBack": "セキュリティ設定に戻る"
    },
    "themes": {
      "light": "ライト",
      "dark": "ダーク",
      "system": "システム"
    },
    "languages": {
      "en": "English",
      "de": "Deutsch",
      "es": "Español",
      "fr": "Français",
      "ru": "Русский",
      "ja": "日本語",
      "zh": "中文"
    },
    "viewAll": {
      "title": "すべての設定を表示"
    },
    "current": "現在",
    "back": "メインメニューに戻る",
    "selectSettingPrompt": "編集する設定を選択してください（戻る: b、リセット: r）: ",
    "invalidOption": "❌ 無効なオプションです。",
    "editing": "編集中",
    "enterNewValue": "新しい値を入力してください（Enterで現在の値を保持、'default'でシステムデフォルトを使用）: ",
    "validOptions": "有効なオプション",
    "updatedSuccessfully": "が正常に更新されました！",
    "noHelp": "この設定のヘルプはありません",
    "resetScriptDirectories": "デフォルト値にリセット",
    "resetScriptDirectoriesTitle": "スクリプトディレクトリをデフォルトにリセット",
    "resetScriptDirectoriesWarning1": "これによりすべてのスクリプトディレクトリ設定がシステムデフォルトに戻ります。",
    "resetScriptDirectoriesWarning2": "すべてのカスタムディレクトリパスがクリアされます。この操作は取り消せません。",
    "resetScriptDirectoriesConfirm": "Are you sure you want to reset all script directories to defaults? (y/N): ",
    "backup": {
      "title": "バックアップ設定",
      "description": "現在の設定をファイルにバックアップ",
      "confirm": "現在の設定をバックアップしますか？ (y/N): ",
      "success": "✅ 設定を {backupFile} にバックアップしました",
      "failed": "❌ 設定のバックアップに失敗しました: {error}",
      "enabled": "有効",
      "enabledHelp": "バックアップ機能の有効/無効を切り替え",
      "singleFileMode": "単一ファイルモード",
      "singleFileModeHelp": "設定を単一ファイルにバックアップ",
      "singleBackupFile": "単一バックアップファイル",
      "singleBackupFileHelp": "単一バックアップファイルのパス",
      "retentionDays": "保持日数",
      "retentionDaysHelp": "古いバックアップファイルを保持する日数",
      "maxBackups": "最大バックアップ数",
      "maxBackupsHelp": "保持する最大バックアップファイル数",
      "confirmHelp": "バックアップ操作の確認",
      "confirmYes": "はい",
      "confirmNo": "いいえ"
    },
    "startingSettings": "設定を開始します..."
  },
  "summary": {
    "separator": "============================================================",
    "configurationTitle": "🔧 設定:",
    "sourceLanguage": "   ソース言語: {sourceLanguage}",
    "supportedExtensions": "   対応拡張子: {extensions}",
    "excludedFiles": "   除外ファイル: {files}",
    "reportContent": "\n{report}",
    "fatalError": "❌ 致命的エラー: {error}",
    "helpTitle": "📊 I18NTK サマリーレポートジェネレーター",
    "helpDescription": "i18nフォルダ構造を分析し、主要統計、ファイル構造解析、検証チェックを含む包括的なサマリーレポートを生成します。",
    "helpUsage": "使用法: node i18ntk-summary.js [options]",
    "helpOptions": "  --source-dir <dir>     分析するソースディレクトリ",
    "helpSourceDir": "  --source-dir <dir>     分析するソースディレクトリ",
    "helpOutput": "  --output <file>        レポートの出力ファイル",
    "helpVerbose": "  --verbose, -v           詳細情報を表示",
    "helpKeepReports": "  --keep-reports          既存のレポートを保持",
    "helpDeleteReports": "  --delete-reports        既存のレポートを削除",
    "helpHelp": "  --help, -h              ヘルプを表示",
    "helpExamples": "\n例:",
    "helpExample1": "   node i18ntk-summary.js",
    "helpExample2": "   node i18ntk-summary.js --source-dir ./locales",
    "helpExample3": "   node i18ntk-summary.js --output summary-report.txt",
    "helpExample4": "   node i18ntk-summary.js --verbose",
    "helpExample5": "   node i18ntk-summary.js --source-dir ./locales --output report.json",
    "couldNotReadFile": "⚠️  ファイルを読み取れませんでした: {filePath}",
    "couldNotParseJSFile": "⚠️  JS/TS ファイルを解析できませんでした: {filePath}",
    "errorReadingFile": "⚠️  ファイル読み取りエラー {filePath}: {error}",
    "analyzingFolder": "\n🔍 フォルダ構造を分析中…\n",
    "noLanguageDirectoriesFound": "\n❌ 指定されたソースディレクトリに言語ディレクトリが見つかりません。\n",
    "foundLanguages": "\n✅ 言語を {count} 個検出: {languages}\n",
    "referenceLanguageFiles": "\n📁 参照言語 '{language}' は {count} 個のファイルがあります\n",
    "analyzingLanguage": "\n🌍 言語を分析中: {language}",
    "keysInFiles": "\n📊 {files} 個のファイルで合計 {keys} 個のキーを検出\n",
    "checkingInconsistentKeys": "\n🔍 言語間のキー不一致をチェック中…",
    "generatingSummaryReport": "\n📝 サマリーレポートを生成中…\n",
    "reportTitle": "\n📊 I18NTK サマリーレポート\n",
    "generated": "\n生成日時: {timestamp}\n",
    "sourceDirectory": "\nソースディレクトリ: {dir}\n",
    "overview": "\n📈 概要",
    "languagesCount": "言語数: {count}",
    "totalFiles": "ファイル総数: {count}",
    "totalKeys": "キー総数: {count}",
    "avgKeysPerLanguage": "言語あたり平均キー数: {count}",
    "languagesBreakdown": "\n🌍 言語別内訳",
    "languageBreakdown": "{language}: {files} ファイル, {keys} キー",
    "fileStructure": "\n📁 ファイル構造",
    "fileKeys": "{file}: {keys} キー",
    "missingInLanguages": "   ⚠️ 以下で欠落: {languages}",
    "issuesFound": "\n❌ 検出された問題",
    "missingFiles": "📁 欠落ファイル:",
    "emptyFiles": "📄 空のファイル:",
    "malformedFiles": "⚠️ 構文不正ファイル:",
    "duplicateKeys": "🔑 重複キー:",
    "inconsistentKeys": "🔍 不一致キー:",
    "missingKeys": "   欠落: {keys}{more}",
    "extraKeys": "   余分: {keys}{more}",
    "noIssuesFound": "\n✅ 問題は見つかりませんでした",
    "allFilesConsistent": "すべての翻訳ファイルは言語間で一貫しています。",
    "recommendations": "\n💡 推奨事項",
    "createMissingFiles": "• 欠落した翻訳ファイルを作成する",
    "addContentToEmptyFiles": "• 空の翻訳ファイルに内容を追加する",
    "fixMalformedFiles": "• 不正な JSON/JS ファイルを修正する",
    "removeDuplicateKeys": "• ファイルから重複キーを削除する",
    "synchronizeKeys": "• すべての言語でキーを同期する",
    "splitLargeFiles": "• 大きなファイルを小さな名前空間に分割することを検討する",
    "addMoreLanguages": "• 言語を追加することを検討する",
    "nextSteps": "🎯 次のステップ",
    "nextStep1": "1. 上記で検出された問題を修正する",
    "nextStep2": "2. 検証を実行して一貫性を確認する",
    "nextStep3": "3. 詳細検証には i18ntk-validate の使用を検討する",
    "nextStep4": "4. 定期的なモニタリングを推奨",
    "couldNotFindI18nDirectory": "❌ i18n ディレクトリが見つかりません。--source-dir を指定してください。",
    "sourceDirectoryDoesNotExist": "❌ ソースディレクトリが存在しません: {dir}",
    "i18nSummaryReportGenerator": "📊 I18NTK サマリーレポートジェネレーター",
    "analysisComplete": "\n✅ 分析完了",
    "analyzedLanguages": "\n📊 分析済み言語数: {count}",
    "processedFiles": "\n📁 処理済みファイル数: {count}",
    "foundTranslationKeys": "\n🔑 検出された翻訳キー数: {count}\n",
    "foundIssues": "\n❌ 検出された問題数: {count}\n",
    "noIssuesConsole": "\n✅ 問題は見つかりませんでした - すべてのファイルが一貫しています！\n",
    "errorDuringAnalysis": "❌ 分析中のエラー: {error}",
    "usageReportTitle": "📊 I18NTK 使用状況レポート",
    "usageReportGenerated": "生成日時: {timestamp}",
    "usageReportSourceDir": "ソースディレクトリ: {sourceDir}",
    "usageReportI18nDir": "I18n ディレクトリ: {i18nDir}",
    "usageReportSummary": "📈 概要",
    "usageReportSourceFilesScanned": "スキャン済みソースファイル数: {count}",
    "usageReportTranslationFilesFound": "見つかった翻訳ファイル数: {count}",
    "usageReportAvailableKeys": "利用可能な翻訳キー数: {count}",
    "usageReportUsedKeys": "使用された翻訳キー数: {count}",
    "usageReportDynamicKeys": "動的翻訳キー数: {count}",
    "usageReportUnusedKeys": "未使用翻訳キー数: {count}",
    "usageReportMissingKeys": "欠落翻訳キー数: {count}",
    "usageReportNotTranslatedKeys": "未翻訳キー数: {count}",
    "usageReportTranslationCompleteness": "🌍 翻訳完了度",
    "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
    "usageReportNotTranslatedInLanguage": "   未翻訳: {count} キー",
    "usageReportTranslationFilesDiscovered": "📁 翻訳ファイル一覧",
    "usageReportFileInfo": "{relativePath} (名前空間: {namespace}, タイプ: {type})",
    "usageReportUnusedTranslationKeys": "🗑️ 未使用の翻訳キー",
    "usageReportUnusedKeysDescription": "これらのキーは翻訳ファイルに存在しますがソースコードで使用されていません:",
    "usageReportUnusedKey": "• {key}",
    "usageReportMoreUnusedKeys": "   …およびさらに {count} 件",
    "usageReportMissingTranslationKeys": "❌ 欠落した翻訳キー",
    "usageReportMissingKeysDescription": "これらのキーはソースコードで使用されていますが翻訳ファイルに存在しません:",
    "usageReportMissingKey": "• {key}",
    "usageReportUsedIn": "   使用先: {filePath}",
    "usageReportMoreFiles": "   …およびさらに {count} 件のファイル",
    "usageReportDynamicTranslationKeys": "⚡ 動的翻訳キー",
    "usageReportDynamicKeysDescription": "これらのキーは動的に（実行時に）構築されて使用されています:",
    "usageReportDynamicKey": "• {key}",
    "usageReportFileUsageBreakdown": "📊 ファイル使用状況内訳",
    "usageReportFileUsage": "{filePath}: {count} キー",
    "status": {
      "generating": "⏳ 生成中…",
      "completed": "✅ 完了"
    },
    "help": {
      "usage": "使用法: node i18ntk-manage.js [options]",
      "interactiveMode": "💡 直接実行するには: node i18ntk-manage.js --command=<command>",
      "initProject": "🚀 新しい言語を初期化",
      "analyzeTranslations": "🔍 翻訳を分析",
      "validateTranslations": "✅ 翻訳を検証",
      "checkUsage": "📊 キー使用状況をチェック",
      "showHelp": "📖 利用可能なコマンドを見るには: node i18ntk-manage.js --help",
      "availableCommands": "📖 利用可能なコマンド:",
      "initCommand": "  init      - 新しい言語を初期化",
      "analyzeCommand": "  analyze   - 翻訳を分析",
      "validateCommand": "  validate  - 翻訳を検証",
      "usageCommand": "  usage     - キー使用状況をチェック",
      "sizingCommand": "  sizing    - サイズを分析",
      "completeCommand": "  complete  - 翻訳を完了 (100% カバレッジ)",
      "summaryCommand": "  summary   - プロジェクトステータスを表示",
      "debugCommand": "  debug     - 翻訳の問題をデバッグ",
      "scannerCommand": "  scanner   - 🔍 i18nの問題をスキャン"
    },
    "test_complete_system": {
      "starting_test": "🧪 完全システムテストを開始します\n",
      "separator": "＝",
      "testing_ui_translations": "\n📝 UI翻訳をテスト中…",
      "testing_settings_manager": "\n⚙️  設定マネージャーをテスト中…",
      "testing_main_scripts": "\n🔧 メインスクリプトをテスト中…",
      "checking_translation_consistency": "\n🌐 翻訳の一貫性をチェック中…",
      "non_critical_missing_keys": "ℹ️ {file}: 重大ではない欠落キー {count} 件",
      "extra_keys": "ℹ️ {file}: 余分なキー {count} 件",
      "generating_report": "\n📊 レポートを生成中…",
      "final_test_report_title": "📋 最終テストレポート",
      "passed": "✅ 合格: {passed}",
      "failed": "❌ 不合格: {failed}",
      "warnings": "⚠️  警告: {warnings}",
      "missing_translations_title": "\n🔍 欠落翻訳 ({count} 件):",
      "missing_translation_key": "   - {key}",
      "missing_translations_more": "   …さらに {count} 件",
      "errors_title": "\n❌ エラー:",
      "error_message": "   - {error}",
      "overall_status": "\n📊 全体ステータス: {status}",
      "success_message": "✅ {message}",
      "failure_message": "❌ {message}",
      "failure_error_message": "   {errorMessage}",
      "warning_message": "⚠️  {message}",
      "test_runner_failed": "❌ テストランナーが失敗しました:",
      "recommendations": {
        "add_missing_translation_keys": "一貫性を保つために欠落した翻訳キーを追加してください",
        "fix_failing_scripts": "デプロイ前にテストに失敗したスクリプトを修正してください",
        "review_warning_messages": "警告メッセージを確認して対処してください",
        "system_ready_for_deployment": "システムはデプロイの準備が整っています"
      },
      "hardcodedTexts": {
        "addMissingTranslationKeys": "一貫性を保つために欠落した翻訳キーを追加してください",
        "fixFailingScripts": "デプロイ前にテストに失敗したスクリプトを修正してください",
        "reviewWarningMessages": "警告メッセージを確認して対処してください",
        "systemReadyForDeployment": "システムはデプロイの準備が整っています"
      }
    },
    "testConsoleI18n": {
      "found_target_file": "対象ファイルを検出しました: {fileName}",
      "scanning_files_for_console_statements": "コンソールステートメントをスキャンしています…",
      "found_javascript_files": "JavaScriptファイルを {count} 件検出しました。",
      "console_i18n_analysis_results": "コンソール I18n 分析結果",
      "total_console_statements": "コンソールステートメント総数: {count}",
      "translated_statements": "翻訳済みステートメント: {count}",
      "hardcoded_statements": "ハードコードされたステートメント: {count}",
      "translation_coverage": "翻訳カバレッジ: {percentage}%",
      "coverage_by_file": "ファイルごとのカバレッジ:",
      "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
      "hardcoded_console_statements": "ハードコードされたコンソールステートメント:",
      "file_header": "ファイル: {file}",
      "line_statement": "  行 {line}: {statement}",
      "suggested_key": "    推奨キー: {key}",
      "suggested_replacement": "    推奨置換: {replacement}",
      "recommendations": "推奨事項:",
      "recommendation_1": "1. ハードコードされた文字列を i18n.t() 呼び出しに置き換えてください。",
      "recommendation_2": "2. 関連する翻訳JSONファイルに新しいキーを追加してください。",
      "recommendation_3": "3. すべてのコンソールメッセージがユーザー向けで翻訳が必要であることを確認してください。",
      "recommendation_4": "4. 動的メッセージにはテンプレートリテラルまたは文字列連結を使用し、変数を i18n.t() に渡してください。",
      "translation_keys_to_add": "追加する翻訳キーの提案:",
      "add_keys_instruction": "以下のJSON構造を翻訳ファイルにコピーしてください:",
      "perfect_translation_coverage": "完璧な翻訳カバレッジ！",
      "all_statements_using_translation": "すべてのコンソールステートメントが翻訳システムを使用しています。",
      "i18n_console_translation_checker": "I18n コンソール翻訳チェッカー",
      "script_description_line1": "このスクリプトはすべてのJavaScriptファイルをスキャンしコンソール文を検出します",
      "script_description_line2": "翻訳システムを使用しているかどうかをチェックします。",
      "analysis_completed_in_duration": "分析完了まで {duration} 秒かかりました。",
      "report_saved_to_path": "レポートを次の場所に保存しました: {path}",
      "found_hardcoded_messages": "ハードコードされたメッセージを {count} 件検出しました。エラーコード1で終了します。",
      "all_console_messages_use_translation": "すべてのコンソールメッセージが翻訳を使用しています。コード0で終了します。",
      "consoleTranslationsCheck": "コンソール翻訳チェック"
    },
    "translate_mismatches": {
      "title": "🌐 翻訳ヘルパー {dryRun}",
      "separator": "=====================================\n",
      "processing_file": "📄 {language}.json を処理中…",
      "translation_summary_title": "\n📊 翻訳サマリー:",
      "total_translations_applied": "   適用された翻訳総数: {totalTranslations}",
      "run_with_apply_instruction": "\n💡 --apply フラグを付けて実行するとこれらの翻訳を適用します\n",
      "no_translation_mappings": "   ⚠️  {language} に利用可能な翻訳マッピングがありません",
      "translation_applied": "   ✅ {key}: \"{oldValue}\" → \"{newValue}\"",
      "saved_translations": "   💾 {count} 件の翻訳を {filename} に保存しました",
      "found_translatable_items": "   🔍 翻訳可能な項目を {count} 件検出",
      "no_automatic_translations": "   ✨ 自動翻訳は利用できません",
      "error_processing_file": "   ❌ {filename} の処理中にエラー: {errorMessage}",
      "coverage_report_title": "📊 翻訳カバレッジレポート",
      "coverage_report_separator": "===============================\n",
      "file_header": "📄 {filename}:",
      "total_keys": "   キー総数: {total}",
      "translated_keys": "   翻訳済み: {translated}",
      "untranslated_markers": "   未翻訳マーカー: {untranslated}",
      "contains_english": "   英語を含む: {hasEnglish}",
      "coverage_percentage": "   カバレッジ: {coverage}%\n",
      "error_general": "❌ エラー:",
      "use_help": "使用法情報は --help を参照してください"
    }
  },
  "ui": {
    "autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {path}",
    "executingCommand": "🔄 コマンドを実行中: {command}",
    "unknownCommand": "❌ 不明なコマンド: {command}",
    "errorExecutingCommand": "❌ コマンド実行エラー: {error}",
    "errorLoadingTranslationFile": "❌ '{language}' の翻訳ファイル読み込みエラー: {error}",
    "errorSavingLanguagePreference": "❌ 言語設定の保存エラー: {error}",
    "noActiveReadlineInterface": "❌ readline インターフェイスが利用できません",
    "uiLanguageUpdated": "🌍 UI 言語を {language} に更新しました",
    "selectOptionPrompt": "オプションを選択してください:",
    "pressEnterToReturn": "メインメニューに戻るには Enter キーを押してください…",
    "detectedSourceDirectory": "検出されたソースディレクトリ: {sourceDir}",
    "detectedI18nDirectory": "検出された i18n ディレクトリ: {directory}",
    "toolkitTitle": "🌍 i18ntk - エンタープライズ i18n 管理ツールキット",
    "versionInfo": "📦 バージョン: {version}",
    "releaseDate": "📅 リリース日: {date}",
    "maintainer": "👤 メンテナー: {maintainer}",
    "nodeVersion": "🔧 Node.js: {version}",
    "license": "📄 ライセンス: {license}",
    "whatsNew": "✨ v{version} の新機能:",
    "changeItem": "   {change}",
    "documentation": "📚 ドキュメント: {url}",
    "issues": "🐛 イシュートラッカー: {url}",
    "versionInfoUnavailable": "i18ntk のバージョン情報が利用できません",
    "versionInfoError": "エラー: {error}"
  },
  "validateLanguagePurity": {
    "phrase_debug_tools": "デバッグツール",
    "phrase_settings": "設定",
    "phrase_configuration": "構成",
    "phrase_invalid_choice": "無効な選択",
    "phrase_please_select": "選択してください",
    "phrase_back_to_main_menu": "メインメニューに戻る",
    "phrase_error": "エラー",
    "phrase_warning": "警告",
    "phrase_success": "成功",
    "phrase_failed": "失敗",
    "phrase_loading": "読み込み中",
    "phrase_saving": "保存中",
    "phrase_full_system_debug": "システム全体デバッグ",
    "phrase_configuration_debug": "構成デバッグ",
    "phrase_translation_debug": "翻訳デバッグ",
    "phrase_performance_debug": "パフォーマンスデバッグ",
    "phrase_admin_pin_setup": "管理者PIN設定",
    "phrase_enter_admin_pin": "管理者PINを入力",
    "phrase_confirm_admin_pin": "管理者PINを確認",
    "phrase_authentication_failed": "認証に失敗しました",
    "phrase_access_denied": "アクセス拒否",
    "phrase_security_log": "セキュリティログ",
    "language_german": "ドイツ語",
    "language_french": "フランス語",
    "language_spanish": "スペイン語",
    "language_russian": "ロシア語",
    "language_japanese": "日本語",
    "language_chinese": "中国語",
    "validator_title": "🔍 言語純度バリデーター",
    "validating_file": "📄 {language}.json ({name}) を検証中…",
    "valid_file_message": "   ✅ 有効 - 言語純度違反なし",
    "invalid_file_message": "   ❌ 無効 - 違反 {count} 件検出",
    "no_validation_rules": "{language} 用の検証ルールが定義されていません",
    "error_reading_file": "ファイル読み取りエラー: {errorMessage}",
    "issue_forbidden_marker": "禁止マーカーを含んでいます: {marker}",
    "issue_english_phrase": "英語フレーズを含んでいます: \"{phrase}\"",
    "issue_english_words": "英語の単語を含んでいます: {words}",
    "issue_missing_cyrillic": "長いテキストにはロシア語用にキリル文字を含める必要があります",
    "issue_missing_japanese": "長いテキストには日本語文字を含める必要があります",
    "issue_missing_chinese": "長いテキストには中国語文字を含める必要があります",
    "summary_title": "📊 検証サマリー",
    "overall_results_header": "📋 総合結果:",
    "total_files_validated": "   検証ファイル数: {count}",
    "valid_files": "   有効ファイル数: {count}",
    "invalid_files": "   無効ファイル数: {count}",
    "total_violations": "   総違反数: {count}\n",
    "violations_by_file_header": "❌ ファイル別違反一覧:\n"
  },
  "workflow": {
    "title": "ワークフロー管理",
    "description": "i18n ワークフローを管理します。",
    "select_workflow_file": "実行するワークフローファイルを選択してください:",
    "no_workflow_files": "ワークフローディレクトリにファイルが見つかりません。",
    "invalid_selection": "無効な選択です。ワークフローファイルの番号を入力してください。",
    "workflow_execution_started": "ワークフローを開始します: {workflowName}",
    "workflow_execution_completed": "ワークフロー完了: {workflowName}",
    "workflow_execution_failed": "ワークフロー失敗: {workflowName} - {error}",
    "workflow_cancelled": "ワークフロー実行がキャンセルされました。",
    "press_enter_to_continue": "Enter キーを押して続行してください！",
    "starting": "🚀 ワークフローを開始します…",
    "completed": "✅ ワークフローが正常に完了しました！",
    "checkReports": "📄 詳細はレポートを確認してください。",
    "exitingCompleted": "📝 ワークフロー完了。終了します…",
    "summary": {
      "title": "📋 ワークフローサマリー",
      "separator": "===================",
      "completedAt": "🕐 完了日時: {timestamp}",
      "initialViolations": "📊 初期違反数: {count}",
      "finalViolations": "📉 最終違反数: {count}",
      "totalFixes": "🔧 適用された修正総数: {count}",
      "improvement": "📈 改善率: {percentage}%",
      "stepResults": "📝 ステップ結果:\n",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "   違反数: {count}",
      "fixesApplied": "   適用修正数: {count}",
      "nextSteps": "💡 次のステップ:\n",
      "congratulations": "🎉 おめでとうございます！すべてのロケールファイルの言語純度が完璧になりました！",
      "cicdIntegration": "✅ CI/CD パイプラインへのバリデーター統合を検討してください",
      "automatedChecks": "✅ 新しい翻訳に対する自動チェックを設定してください",
      "greatProgress": "🎯 ほとんどの問題が解決されました。素晴らしい進捗です！",
      "manualReview": "🔍 残りの違反を手動で確認してください",
      "addMappings": "🌐 エッジケース用の翻訳マッピングを追加することを検討してください",
      "goodProgress": "📈 良好な進捗ですが、さらなる作業が必要です。",
      "expandMappings": "🔧 自動翻訳マッピングの拡充を検討してください",
      "professionalReview": "👥 複雑な翻訳の手動レビューを検討してください",
      "runAgain": "🔄 マッピングを追加後にワークフローを再実行してください",
      "limitedProgress": "⚠️  限定的な進捗です。手動介入が必要な場合があります。",
      "reviewMappings": "🔍 翻訳マッピングを確認し、欠落を追加してください",
      "professionalServices": "👥 プロの翻訳サービスを検討してください",
      "checkIssues": "🔧 ロケールファイルの体系的な問題を確認してください",
      "success": "✅",
      "warning": "⚠️"
    }
  },
  "consoleI18nTester": {
    "found_target_file": "ターゲットファイルが見つかりました",
    "scanning_files_for_console_statements": "コンソールステートメントのファイルをスキャン中",
    "found_javascript_files": "JavaScriptファイルが見つかりました",
    "console_i18n_analysis_results": "コンソールi18n分析結果",
    "total_console_statements": "コンソールステートメント合計",
    "translated_statements": "翻訳済みステートメント",
    "hardcoded_statements": "ハードコードされたステートメント",
    "translation_coverage": "翻訳カバレッジ",
    "coverage_by_file": "ファイル別カバレッジ",
    "file_coverage_stats": "ファイルカバレッジ統計",
    "hardcoded_console_statements": "ハードコードされたコンソールステートメント",
    "file_header": "ファイルヘッダー",
    "line_statement": "行ステートメント",
    "suggested_key": "推奨キー",
    "suggested_replacement": "推奨される置換",
    "recommendations": "推奨事項",
    "recommendation_1": "推奨事項1",
    "recommendation_2": "推奨事項2",
    "recommendation_3": "推奨事項3",
    "recommendation_4": "推奨事項4",
    "translation_keys_to_add": "追加する翻訳キー",
    "add_keys_instruction": "キー追加の手順",
    "perfect_translation_coverage": "完全な翻訳カバレッジ",
    "all_statements_using_translation": "すべてのステートメントが翻訳を使用中",
    "i18n_console_translation_checker": "i18nコンソール翻訳チェッカー",
    "script_description_line1": "スクリプトの説明1",
    "script_description_line2": "スクリプトの説明2",
    "analysis_completed_in_duration": "分析が完了しました（所要時間）",
    "report_saved_to_path": "レポートが保存されました：パス",
    "found_hardcoded_messages": "ハードコードされたメッセージが見つかりました",
    "all_console_messages_use_translation": "すべてのコンソールメッセージが翻訳を使用しています"
  },
  "\\nSelect directory to clean (0-${availableDirs": {
    "length + 1}): ": ""
  },
  "exportTranslations": {
    "createdDirectory": "ディレクトリを作成しました",
    "foundFiles": "ファイルが見つかりました",
    "createdTemplate": "テンプレートを作成しました",
    "skippedExisting": "既存をスキップしました",
    "title": "タイトル",
    "creatingTemplates": "テンプレートを作成中",
    "summary": "サマリー",
    "summaryLanguages": "言語サマリー",
    "summaryFilesPerLanguage": "言語ごとのファイル数",
    "summaryTotalFiles": "合計ファイル数",
    "success": "成功",
    "location": "場所",
    "nextSteps": "次のステップ"
  },
  ")) {\n          console": {
    "log(": "ログ("
  },
  "dashboard": {
    "title": "タイトル",
    "overview": "概要"
  },
  "auth": {
    "title": "タイトル",
    "email": "メール",
    "password": "パスワード",
    "signIn": "サインイン",
    "forgotPassword": "パスワードを忘れた",
    "signUp": "サインアップ"
  },
  "scanner": {
    "title": "🕵️ i18n テキストスキャナー",
    "description": "ソースファイル内のハードコードされた英語テキストをスキャンします",
    "usage": "使用方法: i18ntk-scanner [オプション]",
    "foundText": "{count} 件のハードコードされた英語テキストが見つかりました",
    
    "options": {
      "sourceDir": "スキャンするディレクトリ",
      "outputDir": "レポート出力ディレクトリ",
      "patterns": "カスタム正規表現パターン",
      "framework": "フレームワーク (react, vue, angular, vanilla)",
      "extensions": "スキャンするファイル拡張子",
      "exclude": "除外するパターン",
      "minLength": "スキャンするテキストの最小長",
      "maxLength": "スキャンするテキストの最大長"
    },
    "status": {
      "scanning": "🔍 ファイルをスキャン中...",
      "analyzing": "📊 検出されたテキストを分析中...",
      "generating": "📄 レポートを生成中...",
      "complete": "✅ スキャンが完了しました",
      "found": "🎯 {count} 個の翻訳が必要な項目を検出しました"
    },
    "results": {
      "title": "📊 スキャン結果",
      "summary": "サマリー",
      "filesScanned": "スキャンしたファイル数",
      "textItemsFound": "検出したテキスト項目数",
      "uniqueTexts": "一意のテキスト",
      "filesWithText": "テキストを含むファイル数",
      "exportLocation": "エクスポート先"
    },
    "prompts": {
      "selectFramework": "フレームワークを選択してください:",
      "enterSourceDir": "ソースディレクトリを入力してください",
      "enterOutputDir": "出力ディレクトリを入力してください",
      "confirmScan": "スキャンを開始しますか？",
      "saveReport": "レポートを保存しますか？"
    },
    "errors": {
      "invalidDirectory": "無効なディレクトリです",
      "noFilesFound": "スキャンするファイルが見つかりませんでした",
      "scanFailed": "スキャンに失敗しました",
      "exportFailed": "レポートのエクスポートに失敗しました"
    },
    "help": {
      "examples": "使用例:",
      "example1": "i18ntk-scanner --source-dir ./src --framework react",
      "example2": "i18ntk-scanner --patterns 'console\\.log\\s*\\([^)]*'",
      "example3": "i18ntk-scanner --extensions js,ts,tsx --min-length 3"
    },
    "help_options": {
      "source_dir": "スキャンするディレクトリ",
      "output_dir": "結果出力ファイル",
      "framework": "対象フレームワーク (react, vue, angular, vanilla)",
      "patterns": "カスタム正規表現パターン (カンマ区切り)",
      "exclude": "除外するディレクトリ (カンマ区切り)",
      "output_report": "レポート出力ファイル",
      "min_length": "含めるテキストの最小長",
      "max_length": "含めるテキストの最大長",
      "include_tests": "テストファイルをスキャンに含める"
    }
  }
}