UNPKG

i18ntk

Version:

i18n Tool Kit - Zero-dependency internationalization toolkit for setup, scanning, analysis, validation, auto translation, fixing, reporting, and runtime translation loading.

993 lines 178 kB
{ "meta": { "version": "3.1.2", "updated": "2026-05-07" }, "common": { "welcome": "いらっしゃいませ", "hello": "こんにちは", "goodbye": "さようなら", "yes": "はい", "no": "いいえ", "save": "保存", "cancel": "キャンセル", "delete": "消去", "edit": "編集", "loading": "読み込み中...", "offlineTitle": "あなたはオフラインです", "offlineMessage": "インターネット接続を確認してください", "tryReconnect": "再接続してみてください", "logout": "ログアウト", "login": "ログイン", "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}", "initializationCancelled": "❌ ユーザーにより初期化がキャンセルされました。", "translationKeyNotFound": "翻訳キーが見つかりません: {key}", "sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {directory}", "configLoadingFailed": "構成のロードに失敗しました", "invalidSourceDirectory": "無効なソース ディレクトリ: {directory}", "securityViolation": "セキュリティ違反が検出されました", "authenticationFailed": "認証に失敗しました", "sourceEqualsI18nWarn": "⚠️sourceDir は i18nDir と等しい ({sourceDir})。に戻る {fallback} ソーススキャン用。" }, "errorGeneratingStatusSummary": "エラー生成ステータスの概要: {error}", "errorRunningDebugTool": "デバッグ ツールの実行中にエラーが発生しました '{displayName}': {error}", "errorReadingDebugLogs": "デバッグ ログの読み取りエラー: {error}", "errorAnalyzingLogFile": "ログ ファイルの分析中にエラーが発生しました: {error}", "errorAnalyzingTranslationKeys": "翻訳キーの分析中にエラーが発生しました: {error}", "errorAnalyzingTranslationCompleteness": "翻訳の完全性を分析中にエラーが発生しました: {error}", "analyzingTranslationCompleteness": "すべての言語にわたる翻訳の完全性を分析しています...", "i18nDirectoryNotFound": "⚠️ i18n ディレクトリが見つかりません: {i18nDir}", "translationCompletenessAnalysisFailed": "⚠️ 翻訳完全性分析が失敗しました: {error}", "failedToAnalyzeLanguage": "❌ 言語の解析に失敗しました {language}: {error}", "errorReadingI18nDirectory": "❌ i18n ディレクトリの読み取りエラー:", "languageCompletenessTitle": "📈 言語ごとの翻訳の完成度", "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": "設定", "startingSettings": "🎛️ 設定 CLI を開始しています...", "confirm": "確認する", "errorExiting": "終了時にエラーが発生しました。" }, "errors": { "invalidOption": "❌ 無効なオプション: {option}。もう一度試してください。", "readlineClosed": "入力ストリームは閉じられています。非対話型モードで実行されます。", "noPackageJson": "package.json が見つかりません。 i18n フレームワークを自動検出できません。", "noI18nDir": "プロジェクトのルートに i18n ディレクトリが見つかりません。", "noI18nConfig": "プロジェクトのルートに i18n 構成ファイルが見つかりません。", "errorReadingDebugLogs": "デバッグ ログの読み取りエラー: {error}" }, "scanner": { "help_message": "I18n テキスト スキャナーの使用法: ノード i18ntk-scanner.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --output <file> スキャン結果の出力ファイル (デフォルト: ./i18ntk-scanner-report.json) --framework <name> ターゲットとなるフレームワーク (react、vue、angular、vanilla) --patterns <patterns> カスタム正規表現パターン (カンマ区切り) --include-tests スキャンにテスト ファイルを含めます --exclude-dirs <dirs> 除外するディレクトリ (カンマ区切り) --help このヘルプを表示 例: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json", "help_options": { "source_dir": "i18n の問題をスキャンするソース ディレクトリ", "output_dir": "スキャンレポートと結果のディレクトリ", "framework": "ターゲットフレームワーク (react、vue、angular、vanilla)", "patterns": "テキスト検出用のカスタム正規表現パターン", "exclude": "スキャンから除外するファイル パターン", "output_report": "詳細なスキャンレポートを生成する", "min_length": "翻訳の際に考慮すべき最小テキスト長", "max_length": "翻訳の際に考慮すべき最大テキスト長", "include_tests": "スキャンプロセスにテストファイルを含める" }, "starting": "🔍 フレームワークのテキストスキャナーを開始します: {framework}", "sourceDirectory": "📁 スキャンディレクトリ: {sourceDir}", "frameworkDetected": "🎯 検出されたフレームワーク: {framework}", "scanningFiles": "📊 スキャン中 {fileCount} ファイル...", "foundTexts": "📝見つかりました {textCount} 翻訳が必要な文章", "generatingReport": "📊 詳細レポートを生成中...", "reportSaved": "💾 スキャンレポートの保存場所: {reportPath}", "noTextsFound": "✅ ハードコードされた英語テキストは見つかりませんでした", "scanComplete": "🎉 スキャンが正常に完了しました。", "analysisTitle": "🔍 翻訳スキャン分析", "fileSummary": "📄 {file}: {count} テキストが見つかりました", "textLocation": "📍ライン {line}: {text}", "foundText": "見つかった {count} ハードコードされたテキスト インスタンスの可能性", "context": "📝 コンテキスト: {context}", "severity": "⚠️ 重大度: {severity}", "recommendation": "💡お勧め: {recommendation}", "welcome": { "title": "🎯 テキスト スキャナーへようこそ!", "description": "このツールは、ソース コードをスキャンして、翻訳が必要な可能性のあるハードコーディングされた英語テキストを探します。" }, "frameworkPrompt": { "title": "🎯 フレームワークを選択", "available": "利用可能なフレームワーク: React、Vue、Angular、Vanilla", "description": "フレームワークのタイプを入力します (または自動検出するには Enter キーを押します)。", "input": "フレームワーク:" }, "directoryPrompt": { "title": "📁 ソースディレクトリを選択", "current": "現在のディレクトリ: {dir}", "description": "スキャンするディレクトリを入力します (または Enter キーを押して現在のディレクトリを入力します)。", "input": "ディレクトリ:" }, "options": { "includeTests": "テストファイルを含めますか?", "excludeDirs": "除外するディレクトリ (カンマ区切り):", "customPatterns": "スキャンするカスタム パターン (正規表現):" }, "reportGenerated": "スキャンレポートが生成されました: {path}" }, "fixer": { "help_message": "I18n Translation Fixer の使用法: ノード i18ntk-fixer.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./locales) --langages <langs> 修正する言語のカンマ区切りリスト --marks <markers> 未翻訳として扱うカンマ区切りのマーカー --no-backup 自動バックアップ作成をスキップ --help このヘルプを表示 例: node i18ntk-fixer.js --langages de,fr node i18ntk-fixer.js --source-dir=./locales --marks NOT_TRANSLATED node i18ntk-fixer.js --no-backup", "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": "フィクサーの概要:", "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": "ディレクトリ:" }, "backupLocation": "バックアップの場所: {dir}", "completed": "修正が完了しました。", "creatingBackup": "バックアップの作成 {dir}...", "dryRunMode": "ドライランモード: {mode}", "error": "修正に失敗しました: {error}", "fixing": "固定する {language}...", "foundLanguages": "見つかった {count} 言語: {languages}", "languageFixed": "{language}: 修理済み {fixed} キー、スキップされました {skipped}.", "running": "翻訳フィクサーを実行しています...", "totalFixed": "固定合計: {count}" }, "autorun": { "stepAnalyzeTranslations": "翻訳を分析する", "stepCompletedWithIcon": "✅ 完了: {stepName}", "stepValidateTranslations": "翻訳を検証する", "stepRunning": "▶️ステップ {stepNumber}/{totalSteps}: {stepName}", "separator": "=================================================", "stepFailed": "❌ 失敗: {stepName}", "errorLabel": "エラー", "autoRunScriptTitle": "🧪 自動実行ワークフロー", "usageTitle": "使用法", "runAllSteps": "実行: ノード i18ntk-autorun.js", "configureSettingsFirst": "構成: i18ntk-config.json または CLI フラグ", "runSpecificSteps": "--steps=1,3 または --list を使用してステップを表示します", "showHelp": "-- 詳細についてはヘルプを参照してください", "examplesTitle": "例", "configExample": "ノード i18ntk-autorun.js --ui- language=zh", "stepsExample1": "ノード i18ntk-autorun.js --steps=分析、検証", "stepsExample2": "ノード i18ntk-autorun.js --list", "customSettingsConfiguration": "カスタム自動実行設定", "availableSteps": "利用可能なステップ", "startingAutoRunWorkflow": "🚀 自動実行ワークフローを開始しています...", "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": "これで自動実行コマンドを実行できるようになりました。", "configurationFailed": "構成に失敗しました: {error}", "noValidStepNumbers": "有効なステップ番号が指定されていません。", "autoRunFailed": "自動実行に失敗しました: {error}", "stepCompleteTranslations": "完全な翻訳", "stepAnalyzeSizing": "サイジングの分析", "stepCompletedIcon": "✅", "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] ステップ '{stepName}' 走っています...", "stepFailedIcon": "❌", "translationLoadWarning": "警告: ロードできませんでした {lang} 翻訳", "configReadError": "読み取りエラー {file}" }, "analyze": { "help_message": "I18n 変換アナライザーの使用法: ノード i18ntk-analyze.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ (デフォルト: ./src/locales) --output-report 詳細レポートの生成 --output-dir <dir> レポートの出力ディレクトリ (デフォルト: ./reports) --help このヘルプを表示 例: ノード i18ntk-analyze.js --output-report ノード i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales ノード i18ntk-analyze.js --output-dir=./analysis --output-report", "source_directory": "📁 ソースディレクトリ: {sourceDir}", "i18n_directory": "🌐 I18n ディレクトリ: {i18nDir}", "loading_translation_files": "📋 翻訳ファイルを読み込み中...", "sourceDirectoryLabel": "📁 ソースディレクトリ: {sourceDir}", "sourceLanguageLabel": "🌍 ソース言語: {sourceLanguage}", "strictModeLabel": "⚙️ストリクトモード: {mode}", "found_translation_files_count": "✅ 見つかりました {count} 翻訳ファイル", "analyzing_translations": "🔍 翻訳を分析中...", "analysis_completed_successfully": "🎉 分析が正常に完了しました!", "analysis_results": "📊 分析結果", "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% 翻訳済み)", "sample_missing_keys": "欠落しているキーのサンプル:", "missing_key": "- {key}", "and_more_missing": "...そして {count} もっと。", "sample_unused_keys": "未使用のキーのサンプル:", "unused_key": "- {key}", "and_more_unused": "...そして {count} もっと。", "recommendations": "📋 推奨事項", "add_missing_translations": "💡 カバレッジを改善するために、不足している翻訳を追加します。", "remove_unused_translations": "💡 プロジェクトをクリーンな状態に保つために、未使用の翻訳を削除します。", "next_steps": "📋 次のステップ", "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": "ソース言語ディレクトリが見つかりません: {sourceLanguage}", "couldNotParseTarget": "ターゲットファイルを解析できませんでした: {file}", "couldNotParseSource": "ソースファイルを解析できませんでした: {file}", "reportGenerated": "生成されたレポート: {path}", "generateReportPrompt": "レポートの生成を希望しますか?", "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": "ノード i18ntk-usage.js --output-report", "nextStep3": "2. 翻訳を検証します。", "nextStep4": "ノード i18ntk-validate.js", "nextStep5": "3. パターンを分析します。", "nextStep6": "ノード 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} 翻訳 - それらは {percentageDifference}% {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}", "starting_analysis": "分析を開始しています...", "found_files": "見つかった {count} ファイル", "failed_to_parse_language_error": "解析に失敗しました {language} 翻訳: {errorMessage}", "recommendations": { "keys_have_significant_size_variations": "キーのサイズには大きなばらつきがある", "consider_reviewing_translations": "見直しを検討してください {lang} 翻訳 - それらは {percentageDifference}% {comparison} ベースラインよりも", "long_translations_detected": "{lang} もっている {longKeys} より長い翻訳 {threshold} キャラクター - 細分化することを検討してください" }, "detailed_key_analysis_title": "詳細なキー分析", "key_analysis_detail": "{lang}: {length} 文字 ({status}) - {translation}", "key_analysis_header": "鍵: {key}", "status_empty": "空の", "status_long": "長さ", "status_ok": "わかりました" }, "usage": { "help_message": "I18n 使用状況アナライザーの使用法: ノード i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ (デフォルト: ./src/locales) --output-report 詳細レポートの生成 --output-dir <dir> レポートの出力ディレクトリ (デフォルト: ./reports) --help このヘルプを表示 例: ノード i18ntk-usage.js --output-report ノード i18ntk-usage.js --source-dir=./app --i18n-dir=./locales ノード i18ntk-usage.js --output-dir=./analysis --output-report", "source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}", "translationCompletenessTitle": "🌍 翻訳の完全性:", "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} 翻訳ファイル", "errorReadingI18nDirectory": "⚠️ i18n ディレクトリの読み取りエラー: {error}", "pressEnterToReturnToMenu": "📝 Enterを押してメインメニューに戻ります...", "notTranslatedKeysTotal": "⚠️ 未翻訳のキー: {total}", "noSourceFilesFound": "⚠️ ソース ディレクトリにソース ファイルが見つかりません。", "reviewNotTranslatedKeys": "💡 未翻訳のキーを確認する", "analysisCompletedSuccessfully": "🎉 分析が正常に完了しました!", "detectedSourceDirectory": "検出されたソース ディレクトリ: {sourceDir}", "detectedI18nDirectory": "検出された i18n ディレクトリ: {i18nDir}", "fileInfo": "📄 {namespace}: {keys} キー", "failedToAnalyzeUsage": "❌ 使用状況の分析に失敗しました: {error}", "failedToAnalyzeFile": "❌ ファイルの分析に失敗しました: {error}", "failedToExtractKeys": "❌ からキーを抽出できませんでした {filePath}: {error}", "analysisFailedError": "❌ 分析が失敗しました: {error}", "analyzerInitialized": "アナライザーが初期化されました", "analyzerInitFailed": "アナライザーの初期化に失敗しました: {error}", "argsParsed": "解析された引数", "processedFiles": "加工済み {processedFiles} の {totalFiles} ファイル。", "argsParseFailed": "引数の解析に失敗しました: {error}", "translationDiscoveryError": "翻訳検出エラー: {error}", "fileTraversalError": "ファイル トラバーサル エラー: {error}", "sourceEqualsI18nWarn": "{reason}。使用状況分析では、ロケール ファイルをソース コードとしてスキャンしません。", "i18nEqualsSourceWarn": "⚠️ I18n ディレクトリとソースディレクトリは同じです。これにより、分析で問題が発生する可能性があります。", "usageAnalysisFailed": "⚠️ 使用状況分析が失敗しました: {error}", "translationFileParseError": "⚠️ 翻訳ファイルの解析エラー: {error}", "translationKeysLoadError": "⚠️ 翻訳キーの読み込みエラー: {error}", "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% 翻訳済み)", "missingKeysCount": "⚠️ キーがありません: {count}", "analyzingTranslationCompleteness": "翻訳の完全性を分析中...", "unusedKeysCount": "未使用のキー: {count}", "usedKeysCount": "使用したキー: {count}", "availableKeysCount": "利用可能なキー: {count}", "analysisResults": "分析結果:", "i18nDirectoryNotFound": "⚠️ I18n ディレクトリが見つかりません。パスを確認してください。", "sourceDirectoryNotFound": "⚠️ ソースディレクトリが見つかりません: {dir}", "checkUsage": { "title": "🔍 I18NTK 使用状況分析", "analyzing_source_files": "🔍 ソースファイルを分析中...", "source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}", "i18n_directory_thisi18ndir": "📁 i18n ディレクトリ: {i18nDir}", "found_files_in_source": "✅ 見つかりました {numFiles} ソースディレクトリ内のファイル", "no_source_files_found": "⚠️ 指定されたディレクトリにソース ファイルが見つかりません", "processedFiles": "📊 処理済み {processedFiles} の {totalFiles} ファイル", "failedToProcessFile": "❌ 処理に失敗しました", "found_thisusedkeyssize_unique_": "🔍見つかりました {usedKeysSize} 使用される固有のキー", "total_key_usages_totalkeysfoun": "📊 キーの合計使用量: {totalKeysFound}", "loading_available_translation_": "📂 利用可能な翻訳キーを読み込んでいます...", "found_thisavailablekeyssize_av": "✅ 見つかりました {availableKeysSize} 利用可能なキー", "message": "プロジェクト全体での翻訳キーの使用状況を分析しています...", "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}", "translation_completeness_title": "📈 翻訳の完成度", "language_completeness_stats": "{language}: {translated}/{total} キー ({percentage}%)", "n_sample_unused_keys": "🗑️ 未使用キーのサンプル (最初の 5 つ):", "key": "🔑 {key}", "and_unusedkeyslength_5_more": "... そして {count} 未使用のキーが増える", "n_sample_missing_keys": "❌ 欠落しているキーのサンプル (最初の 5 つ):", "and_missingkeyslength_5_more": "... そして {count} 足りない鍵が増える", "n_generating_detailed_report": "📊 詳細レポートを生成中...", "report_saved_reportpath": "📄 レポートが保存されました: {reportPath}", "n_recommendations": "💡 推奨事項:", "consider_removing_unused_trans": "🗑️ バンドルのサイズを減らすために、未使用の翻訳を削除することを検討してください。", "add_missing_translation_keys_t": "➕ 一貫性を維持するために不足している変換キーを追加します", "review_dynamic_keys_manually_t": "🔍 動的キーを手動で確認します (有効である可能性があります)", "all_translation_keys_are_prope": "✅ すべての翻訳キーが適切に使用されています。", "n_next_steps": "🎯 次のステップ:", "2_check_the_detailed_report_fo": "2. 詳細レポートで特定の問題を確認する", "help_message": "I18n 使用状況アナライザーの使用法: ノード i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ (デフォルト: ./src/locales) --output-report 詳細レポートの生成 --output-dir <dir> レポートの出力ディレクトリ (デフォルト: ./reports) --help このヘルプを表示 例: ノード i18ntk-usage.js --output-report ノード i18ntk-usage.js --source-dir=./app --i18n-dir=./locales ノード i18ntk-usage.js --output-dir=./analysis --output-report", "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. 分析を再実行して改善を確認します。", "noSourceFilesFound": "分析するソース ファイルが見つかりません。", "i18nDirectoryNotFound": "I18n ディレクトリが見つかりません: {i18nDir}", "noTranslationLanguagesFound": "翻訳言語が見つかりません。", "failedToAnalyzeFile": "ファイルの解析に失敗しました {filePath}: {error}", "failedToAnalyzeLanguage": "言語の解析に失敗しました {language}: {error}", "translationCompletenessAnalysisFailed": "翻訳完全性分析が失敗しました: {error}", "n": "\\n" }, "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": "ノード i18ntk-usage.js --output-report", "nextStep3": "2. 翻訳を検証します。", "nextStep4": "ノード i18ntk-validate.js", "nextStep5": "3. パターンを分析します。", "nextStep6": "ノード i18ntk-analyze.js", "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!", "runWithoutDryRun": "💡 --dry-run なしで実行して変更を適用します", "deletingOldReport": "🗑️ 古いレポートを削除しています...", "generatingFreshAnalysis": "📊 新しい使用状況分析を生成しています...", "couldNotGenerate": "❌ 使用状況分析を生成できませんでした", "reportNotFound": "📋 使用状況レポートが見つかりません。共通キーを使用する...", "foundMissingKeys": "📋 見つかりました {count} 使用状況分析でキーが欠落している", "couldNotParse": "❌ 使用状況レポートを解析できませんでした。共通キーを使用する..." }, "noTranslationLanguagesFound": "翻訳言語が見つかりません", "failedToAnalyzeLanguage": "言語の分析に失敗しました", "translationCompletenessAnalysisFailed": "翻訳完全性分析が失敗しました", "failedToProcessFile": "ファイルの処理に失敗しました:", "failedToSaveReport": "使用状況レポートの保存に失敗しました: {error}", "i18nDirectoryDoesNotExist": "I18n ディレクトリが存在しません: {dir}", "reportSavedTo": "使用状況レポートの保存場所: {reportPath}", "sourceDirectoryDoesNotExist": "ソースディレクトリが存在しません: {dir}", "noSourceDirectoryConfigured": "(何も設定されていません)" }, "validate": { "help_message": "I18n 変換バリデータの使用法: ノード i18ntk-validate.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ (デフォルト: ./src/locales) --output-report 詳細レポートの生成 --output-dir <dir> レポートの出力ディレクトリ (デフォルト: ./reports) --help このヘルプを表示 例: node i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./analysis --output-report", "title": "🔍 I18n 翻訳バリデーター", "message": "検証プロセスを開始しています...", "sourceDirectory": "📁 ソースディレクトリ: {dir}", "sourceLanguage": "🌍 ソース言語: {sourceLanguage}", "strictMode": "⚙️ストリクトモード: {mode}", "noTargetLanguages": "ターゲット言語が設定されていません。ターゲットの検証をスキップします。 「i18ntk init --langages=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": "使用状況分析の実行を検討してください: ノード 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": "見つかった {count} 内のファイル {language}", "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}", "invalidSourceDirectory": "無効なソース ディレクトリ: {sourceDir}", "invalidSourceLanguageDirectory": "無効なソース言語ディレクトリ: {sourceDir}" }, "adminCli": { "setupPinProtectionTitle": "🔐 管理者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": "🔐 以下の場合に管理者認証が必要です: {operation}", "invalidPinFormat": "❌ PIN の形式が無効です。 PIN は 4 ~ 6 桁である必要があります。", "authenticationSuccess": "✅ 認証に成功しました!", "invalidPinAttemptsRemaining": "❌ PIN が無効です。 {remaining} 残りの試行数。", "authenticationFailedAccessDenied": "❌ 認証に失敗しました。アクセスが拒否されました。", "authenticationError": "❌ 認証エラー: {message}", "pinProtectionNotEnabled": "管理者 PIN 保護は現在有効になっていません。", "disablingPinProtectionTitle": "🔓 管理者PIN保護の無効化", "confirmDisablePinProtection": "管理者 PIN 保護を無効にしてもよろしいですか?", "operationCancelled": "操作はキャンセルされました。", "pinProtectionDisabledSuccess": "✅ 管理者PIN保護が無効になっています。", "disablePinProtectionFailed": "❌ 管理者 PIN 保護を無効にできませんでした。", "errorDisablingPinProtection": "❌ 管理者保護を無効にするエラー: {message}", "adminProtectionStatusTitle": "🔐 管理者の保護ステータス", "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 桁である必要があります (0 ~ 9 の数字のみ)。", "invalid_pin_example": "例: 1234 または 567890", "pins_do_not_match": "❌ PIN が一致しません。", "setup_success": "✅ 管理者PINが正常に設定されました!", "setup_warning": "⚠️ この PIN は安全に保管してください。紛失した場合は回復できません。", "setup_error": "❌ PIN の設定エラー:", "session_expired": "⏰ 非アクティブのため、管理者セッションが期限切れになりました。", "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": "🔐 管理者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": "デバッグ ツールの実行中にエラーが発生しました '{displayName}': {error}", "recentDebugLogs": "📄 最近のデバッグログ", "noDebugLogsFound": "❌ デバッグ ログが見つかりません。", "debugLogsDirectoryNotFound": "❌ デバッグ ログ ディレクトリが見つかりません。", "selectLogPrompt": "表示するログ ファイルを選択してください (1-{count}):", "invalidChoiceSelectRange": "無効な選択です。可能な範囲からお選びください。", "contentOf": "📄の内容 {filename}:", "pressEnterToContinue": "続行するには Enter キーを押してください..." }, "detect_language_mismatches": { "tool_title": "🔍 言語の不一致検出ツール", "separator": "====================================", "analyzing_file": "📄 分析中 {language}.json...", "error_analyzing_file": "❌ エラー分析中 {filename}: {errorMessage}", "results_title": "📊 言語の不一致の検出結果", "results_separator": "=======================================", "summary_title": "📋 概要:", "total_files_analyzed": "分析されたファイルの合計: {totalFiles}", "files_with_mismatches": "不一致のあるファイル: {filesWithMismatches}", "total_mismatches_found": "見つかった不一致の合計: {totalMismatches}", "no_mismatches_found": "✅ 言語の不一致は見つかりませんでした。すべての翻訳は正しい言語で行われているようです。", "detailed_results_title": "🔍 詳細な結果:", "file_mismatch_header": "📄 {filename} ({language})", "mismatches_count": "見つかった {count} 不一致:", "mismatch_details": "{index}。鍵: {key}", "mismatch_value": "価値: \"{value}\"", "mismatch_issue": "問題: {description}", "recommendations_title": "💡 推奨事項:", "recommendation_1": "1. [TRANSLATE] のマークが付いたすべてのエントリを確認して翻訳します。", "recommendation_2": "2. 言語の接頭辞 ([DE]、[FR] など) を適切な翻訳に置き換えます。", "recommendation_3": "3. 英語のテキストを適切なターゲット言語に翻訳します。", "recommendation_4": "4. ユーザーに表示されるすべてのテキストに同等の母国語を使用する", "recommendation_5": "5. 修正を行った後、このツールを再度実行して修正を確認します。", "detailed_report_saved": "📄 詳細レポートの保存場所: {reportPath}", "error_saving_report": "❌ レポートの保存中にエラーが発生しました: {errorMessage}", "auto_fix_mode": "🔧 自動修正モード {dryRun}", "auto_fix_separator": "====================================", "fixed_file": "✅ 修正済み {filename}", "auto_fix_summary_title": "📊 自動修正の概要:", "total_fixes_applied": "適用された修正の合計: {count}", "preview_fixes_title": "🔍 修正のプレビュー:", "fix_details": "{file}: {key} 古い: \"{old}\" 新しい: \"{new}\"", "more_fixes": "... そして {count} さらに修正", "run_with_apply_fixes": "💡 これらの修正を適用するには --apply を指定して実行します", "error_general": "❌ エラー:", "mainDebuggerSystemDiagnostics": "メインデバッガ/システム診断", "exportMissingKeys": "不足しているキーをエクスポートする", "replaceHardcodedConsole": "ハードコードされたコンソールを置き換える", "consoleKeyChecker": "コンソールキーチェッカー", "debugLogs": "デバッグログ", "backToMainMenu": "メインメニューに戻る", "invalidChoiceSelectRange": "❌ 選択が無効です。表示された範囲内の数値を選択してください。", "runningDebugTool": "デバッグ ツールの実行: {displayName}", "debugToolNotFound": "デバッグツール「{toolName}' 見つかりません。", "recentDebugLogs": "最近のデバッグ ログ", "noDebugLogsFound": "デバッグ ログが見つかりません。", "logEntry": "ログエントリ: {timestamp} - {message}", "debugLogsDirectoryNotFound": "デバッグ ログ ディレクトリが見つかりません。" }, "help": { "title": "📊 I18NTK 管理ヘルプ", "usage": "使用法: ノード main/manage/index.js [オプション]", "interactiveMode": "💡 使用: ノー​​ド main/manage/index.js --command=<command> 直接実行の場合", "showHelp": "📖 使用可能なコマンドについては、node main/manage/index.js --help を使用してください。", "availableCommands": "📖 利用可能なコマンド:", "initProject": "🚀 新しい言語を初期化する", "analyzeTranslations": "🔍 翻訳を分析する", "validateTranslations": "✅ 翻訳を検証する", "checkUsage": "📊 キーの使用状況を確認する", "initCommand": "init - 新しい言語を初期化する", "analyzeCommand": "分析 - 翻訳を分析する", "validateCommand": "validate - 翻訳を検証する", "usageCommand": "使用法 - キーの使用法を確認する", "sizingCommand": "sizing - サイジングを分析する", "completeCommand": "complete - 完全な翻訳 (100% カバー)", "summaryCommand": "概要 - プロジェクトのステータスを表示します", "debugCommand": "debug - 翻訳の問題をデバッグします", "scannerCommand": "スキャナ - キーをスキャンします", "translateCommand": "翻訳 - ロケール ファイルを自動翻訳します", "menu": { "pressEnterToContinue": "続行するには Enter キーを押してください...", "title": "🌐 I18NTK管理メニュー", "description": "国際化を管理するための対話型メニュー", "exit": "🚪 終了" }, "commands": { "init": "init - 新しい言語を初期化する", "analyze": "分析 - 翻訳を分析する", "validate": "validate - 翻訳を検証する", "usage": "使用法 - キーの使用法を確認する", "sizing": "sizing - サイジングを分析する", "complete": "complete - 完全な翻訳 (100% カバー)", "summary": "概要 - プロジェクトのステータスを表示します", "debug": "debug - 翻訳の問題をデバッグします" }, "options": { "sourceDir": "--ソースディレクトリ <dir> 分析するソースディレクトリ", "output": "- 出力 <file> レポートの出力ファイル", "verbose": "--verbose, -v 詳細情報を表示", "keepReports": "--keep-reports 既存のレポートを保持します", "deleteReports": "--delete-reports 既存のレポートを削除します", "help": "--help, -h このヘルプを表示する" }, "examples": { "title": "例:", "example1": "ノード i18ntk-manage.js", "example2": "ノード i18ntk-manage.js --source-dir ./locales", "example3": "ノード i18ntk-manage.js --output summary-report.txt", "example4": "ノード i18ntk-manage.js --verbose", "example5": "ノード i18ntk-manage.js --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 管理ツールキット - プロジェクトの初期化", "initializationCancelled": "🚫 ユーザーによって初期化がキャンセルされました。