i18ntk 3.1.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,19 +4,19 @@
4
4
  "updated": "2026-05-07"
5
5
  },
6
6
  "common": {
7
- "welcome": "ようこそ",
7
+ "welcome": "いらっしゃいませ",
8
8
  "hello": "こんにちは",
9
9
  "goodbye": "さようなら",
10
10
  "yes": "はい",
11
11
  "no": "いいえ",
12
12
  "save": "保存",
13
13
  "cancel": "キャンセル",
14
- "delete": "削除",
14
+ "delete": "消去",
15
15
  "edit": "編集",
16
16
  "loading": "読み込み中...",
17
- "offlineTitle": "オフラインです",
17
+ "offlineTitle": "あなたはオフラインです",
18
18
  "offlineMessage": "インターネット接続を確認してください",
19
- "tryReconnect": "再接続を試みる",
19
+ "tryReconnect": "再接続してみてください",
20
20
  "logout": "ログアウト",
21
21
  "login": "ログイン",
22
22
  "amount": "額",
@@ -28,118 +28,118 @@
28
28
  "progress": "進捗:",
29
29
  "remaining": "残り:",
30
30
  "total": "合計:",
31
- "completed": "7. 正常に完了しました!",
32
- "missing": "不足",
31
+ "completed": "7. 無事完了しました!",
32
+ "missing": "ない",
33
33
  "partial": "部分的",
34
- "sameAsSource": "ソースと同じ:",
35
- "formatMismatch": "形式の不一致:",
36
- "typeMismatch": "タイプの不一致",
37
- "structureMismatch": "構造の不一致:",
34
+ "sameAsSource": "ソースと同じ:",
35
+ "formatMismatch": "形式の不一致:",
36
+ "typeMismatch": "タイプの不一致:",
37
+ "structureMismatch": "構造の不一致:",
38
38
  "invalidOption": "無効なオプション",
39
- "separator": "==================================================",
39
+ "separator": "=================================================",
40
40
  "initializationFailed": "❌ 初期化に失敗しました: {error}",
41
41
  "stackTrace": "スタックトレース: {stack}",
42
- "pressEnterToContinue": "Enterキーを押して続行...",
43
- "pressEnterToReturn": "Enterキーを押してメインメニューに戻る...",
44
- "stepCompleted": "ステップ '{stepName}' が完了しました。",
45
- "stepFailed": "ステップ '{stepName}' が失敗しました。",
46
- "runningStep": "ステップを実行中: {stepName}",
47
- "command": "コマンド: {command}",
48
- "startingWorkflow": "ワークフローを開始中...",
42
+ "pressEnterToContinue": "続行するには Enter キーを押してください...",
43
+ "pressEnterToReturn": "Enterを押してメインメニューに戻ります...",
44
+ "stepCompleted": "ステップ '{stepName}』が完成しました。",
45
+ "stepFailed": "ステップ '{stepName}' 失敗した。",
46
+ "runningStep": "実行ステップ: {stepName}",
47
+ "command": "指示: {command}",
48
+ "startingWorkflow": "ワークフローを開始しています...",
49
49
  "workflowCompleted": "ワークフローが完了しました。",
50
50
  "checkReports": "詳細についてはレポートを確認してください。",
51
- "errorExecutingCommand": "コマンド実行エラー:{error}",
52
- "genericError": "❌ エラー:{error}",
51
+ "errorExecutingCommand": "コマンド実行エラー: {error}",
52
+ "genericError": "❌ エラー: {error}",
53
53
  "errors": {
54
- "errors": "エラー:",
55
- "genericError": "❌ エラー:{error}",
54
+ "errors": "エラー:",
55
+ "genericError": "❌ エラー: {error}",
56
56
  "initializationFailed": "❌ 初期化に失敗しました: {error}",
57
57
  "initializationCancelled": "❌ ユーザーにより初期化がキャンセルされました。",
58
58
  "translationKeyNotFound": "翻訳キーが見つかりません: {key}",
59
59
  "sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {directory}",
60
- "configLoadingFailed": "構成の読み込みに失敗しました",
61
- "invalidSourceDirectory": "無効なソースディレクトリ: {directory}",
60
+ "configLoadingFailed": "構成のロードに失敗しました",
61
+ "invalidSourceDirectory": "無効なソース ディレクトリ: {directory}",
62
62
  "securityViolation": "セキュリティ違反が検出されました",
63
- "authenticationFailed": "認証が失敗しました",
64
- "sourceEqualsI18nWarn": "⚠️ ソースディレクトリと I18n ディレクトリが等しいため、ソーススキャンを {fallback} にフォールバックします。"
63
+ "authenticationFailed": "認証に失敗しました",
64
+ "sourceEqualsI18nWarn": "⚠️sourceDir i18nDir と等しい ({sourceDir})。に戻る {fallback} ソーススキャン用。"
65
65
  },
66
- "errorGeneratingStatusSummary": "ステータスサマリーの生成エラー:{error}",
67
- "errorRunningDebugTool": "デバッグツール'{displayName}'の実行エラー:{error}",
68
- "errorReadingDebugLogs": "デバッグログの読み取りエラー:{error}",
69
- "errorAnalyzingLogFile": "ログファイルの分析エラー:{error}",
70
- "errorAnalyzingTranslationKeys": "翻訳キーの分析エラー:{error}",
71
- "errorAnalyzingTranslationCompleteness": "翻訳の完全性分析エラー:{error}",
72
- "analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
73
- "i18nDirectoryNotFound": "⚠️ i18nディレクトリが見つかりません: {i18nDir}",
74
- "translationCompletenessAnalysisFailed": "⚠️ 翻訳の完全性分析が失敗しました: {error}",
75
- "failedToAnalyzeLanguage": "❌ 言語 {language} の分析に失敗しました: {error}",
76
- "errorReadingI18nDirectory": "❌ i18nディレクトリの読み取りに失敗しました: {error}",
77
- "languageCompletenessTitle": "📈 翻訳の完全性を言語別に表示",
78
- "errorAnalyzingTranslationFormat": "翻訳形式の分析エラー:{error}",
79
- "errorAnalyzingTranslationType": "翻訳タイプの分析エラー:{error}",
80
- "errorAnalyzingTranslationStructure": "翻訳構造の分析エラー:{error}",
81
- "errorAnalyzingTranslationFormatMismatch": "翻訳形式の不一致分析エラー:{error}",
82
- "errorAnalyzingTranslationTypeMismatch": "翻訳タイプの不一致分析エラー:{error}",
83
- "errorAnalyzingTranslationStructureMismatch": "翻訳構造の不一致分析エラー:{error}",
84
- "errorAnalyzingTranslationSameAsSource": "ソースと同じ翻訳の分析エラー:{error}",
85
- "title": "ステータス",
86
- "nextStep1": "1. 使用状況分析を確認:",
87
- "nextStep2": "2. 翻訳を検証:",
88
- "nextStep3": "3. 完全性を分析:",
89
- "nextStep4": "4. 不足している翻訳を補完:",
90
- "nextStep5": "5. サマリーレポートを生成:",
91
- "nextStep6": "6. 翻訳を確認して確定:",
92
- "generating": "サマリーレポートを生成中...",
66
+ "errorGeneratingStatusSummary": "エラー生成ステータスの概要: {error}",
67
+ "errorRunningDebugTool": "デバッグ ツールの実行中にエラーが発生しました '{displayName}': {error}",
68
+ "errorReadingDebugLogs": "デバッグ ログの読み取りエラー: {error}",
69
+ "errorAnalyzingLogFile": "ログ ファイルの分析中にエラーが発生しました: {error}",
70
+ "errorAnalyzingTranslationKeys": "翻訳キーの分析中にエラーが発生しました: {error}",
71
+ "errorAnalyzingTranslationCompleteness": "翻訳の完全性を分析中にエラーが発生しました: {error}",
72
+ "analyzingTranslationCompleteness": "すべての言語にわたる翻訳の完全性を分析しています...",
73
+ "i18nDirectoryNotFound": "⚠️ i18n ディレクトリが見つかりません: {i18nDir}",
74
+ "translationCompletenessAnalysisFailed": "⚠️ 翻訳完全性分析が失敗しました: {error}",
75
+ "failedToAnalyzeLanguage": "❌ 言語の解析に失敗しました {language}: {error}",
76
+ "errorReadingI18nDirectory": "❌ i18n ディレクトリの読み取りエラー:",
77
+ "languageCompletenessTitle": "📈 言語ごとの翻訳の完成度",
78
+ "errorAnalyzingTranslationFormat": "翻訳形式の分析中にエラーが発生しました: {error}",
79
+ "errorAnalyzingTranslationType": "翻訳タイプの分析中にエラーが発生しました: {error}",
80
+ "errorAnalyzingTranslationStructure": "翻訳構造の分析中にエラーが発生しました: {error}",
81
+ "errorAnalyzingTranslationFormatMismatch": "翻訳形式の不一致を分析中にエラーが発生しました: {error}",
82
+ "errorAnalyzingTranslationTypeMismatch": "翻訳タイプの不一致を分析中にエラーが発生しました: {error}",
83
+ "errorAnalyzingTranslationStructureMismatch": "翻訳構造の不一致を分析中にエラーが発生しました: {error}",
84
+ "errorAnalyzingTranslationSameAsSource": "ソースと同じ翻訳の分析中にエラーが発生しました: {error}",
85
+ "title": "状態",
86
+ "nextStep1": "1. 使用状況分析を確認します。",
87
+ "nextStep2": "2. 翻訳を検証します。",
88
+ "nextStep3": "3. 完全性を分析します。",
89
+ "nextStep4": "4. 不足している翻訳を完了します。",
90
+ "nextStep5": "5. 概要レポートを生成します。",
91
+ "nextStep6": "6. 翻訳を確認して最終決定します。",
92
+ "generating": "概要レポートを生成しています...",
93
93
  "review": "翻訳をレビュー中...",
94
- "finalizing": "翻訳を最終調整中...",
95
- "finalized": "正常に確定されました!",
96
- "warnings": "警告:",
97
- "completedKeys": "完了したキー:",
98
- "missingKeys": "不足しているキー:",
99
- "partialKeys": "部分的なキー:",
100
- "home": "ホーム",
94
+ "finalizing": "翻訳を仕上げています...",
95
+ "finalized": "無事に完成しました!",
96
+ "warnings": "警告:",
97
+ "completedKeys": "完成したキー:",
98
+ "missingKeys": "不足しているキー:",
99
+ "partialKeys": "部分的なキー:",
100
+ "home": "",
101
101
  "settings": "設定",
102
- "startingSettings": "🎛️ 設定 CLI を開始します...",
103
- "confirm": "確認",
104
- "errorExiting": "終了中にエラーが発生しました。"
102
+ "startingSettings": "🎛️ 設定 CLI を開始しています...",
103
+ "confirm": "確認する",
104
+ "errorExiting": "終了時にエラーが発生しました。"
105
105
  },
106
106
  "errors": {
107
107
  "invalidOption": "❌ 無効なオプション: {option}。もう一度試してください。",
108
- "readlineClosed": "入力ストリームが閉じられています。非対話モードで実行中です。",
109
- "noPackageJson": "package.jsonが見つかりません。i18nフレームワークを自動検出できません。",
110
- "noI18nDir": "プロジェクトルートにi18nディレクトリが見つかりません。",
111
- "noI18nConfig": "プロジェクトルートにi18n設定ファイルが見つかりません。",
108
+ "readlineClosed": "入力ストリームは閉じられています。非対話型モードで実行されます。",
109
+ "noPackageJson": "package.json が見つかりません。 i18n フレームワークを自動検出できません。",
110
+ "noI18nDir": "プロジェクトのルートに i18n ディレクトリが見つかりません。",
111
+ "noI18nConfig": "プロジェクトのルートに i18n 構成ファイルが見つかりません。",
112
112
  "errorReadingDebugLogs": "デバッグ ログの読み取りエラー: {error}"
113
113
  },
114
114
  "scanner": {
115
- "help_message": "I18n テキスト スキャナの使用法: node i18ntk-scanner.js [options] Options: --source-dir <dir> Source directory to scan (default: ./src) --output <file> Output file for scan results (default: ./i18ntk-scanner-report.json) --framework <name> Framework to target (react, vue, angular, vanilla) --patterns <patterns> Custom regex patterns (comma-separated) --include-tests Include test files in scan --exclude-dirs <dirs> Directories to exclude (comma-separated) --help Show this help Examples: 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",
115
+ "help_message": "I18n テキスト スキャナーの使用法: ノード i18ntk-scanner.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --output <file> スキャン結果の出力ファイル (デフォルト: ./i18ntk-scanner-report.json) --framework <name> ターゲットとなるフレームワーク (reactvueangularvanilla) --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",
116
116
  "help_options": {
117
- "source_dir": "スキャンするディレクトリ",
118
- "output_dir": "結果出力ファイル",
119
- "framework": "対象フレームワーク (react, vue, angular, vanilla)",
120
- "patterns": "カスタム正規表現パターン (カンマ区切り)",
121
- "exclude": "除外するディレクトリ (カンマ区切り)",
122
- "output_report": "レポート出力ファイル",
123
- "min_length": "含めるテキストの最小長",
124
- "max_length": "含めるテキストの最大長",
125
- "include_tests": "テストファイルをスキャンに含める"
117
+ "source_dir": "i18n の問題をスキャンするソース ディレクトリ",
118
+ "output_dir": "スキャンレポートと結果のディレクトリ",
119
+ "framework": "ターゲットフレームワーク (reactvueangularvanilla)",
120
+ "patterns": "テキスト検出用のカスタム正規表現パターン",
121
+ "exclude": "スキャンから除外するファイル パターン",
122
+ "output_report": "詳細なスキャンレポートを生成する",
123
+ "min_length": "翻訳の際に考慮すべき最小テキスト長",
124
+ "max_length": "翻訳の際に考慮すべき最大テキスト長",
125
+ "include_tests": "スキャンプロセスにテストファイルを含める"
126
126
  },
127
- "starting": "🔍 フレームワークのテキスト スキャナーを開始しています: {framework}",
127
+ "starting": "🔍 フレームワークのテキストスキャナーを開始します: {framework}",
128
128
  "sourceDirectory": "📁 スキャンディレクトリ: {sourceDir}",
129
129
  "frameworkDetected": "🎯 検出されたフレームワーク: {framework}",
130
- "scanningFiles": "📊 {fileCount} ファイルをスキャンしています...",
131
- "foundTexts": "📝 翻訳が必要な{textCount}テキストが見つかりました",
130
+ "scanningFiles": "📊 スキャン中 {fileCount} ファイル...",
131
+ "foundTexts": "📝見つかりました {textCount} 翻訳が必要な文章",
132
132
  "generatingReport": "📊 詳細レポートを生成中...",
133
- "reportSaved": "💾 スキャンレポートの保存先: {reportPath}",
133
+ "reportSaved": "💾 スキャンレポートの保存場所: {reportPath}",
134
134
  "noTextsFound": "✅ ハードコードされた英語テキストは見つかりませんでした",
135
135
  "scanComplete": "🎉 スキャンが正常に完了しました。",
136
136
  "analysisTitle": "🔍 翻訳スキャン分析",
137
- "fileSummary": "📄 {file}: {count} 個のテキストが見つかりました",
138
- "textLocation": "📍 {line} 行目: {text}",
139
- "foundText": "{count} 件のハードコードされた英語テキストが見つかりました",
137
+ "fileSummary": "📄 {file}: {count} テキストが見つかりました",
138
+ "textLocation": "📍ライン {line}: {text}",
139
+ "foundText": "見つかった {count} ハードコードされたテキスト インスタンスの可能性",
140
140
  "context": "📝 コンテキスト: {context}",
141
141
  "severity": "⚠️ 重大度: {severity}",
142
- "recommendation": "💡 推奨事項: {recommendation}",
142
+ "recommendation": "💡お勧め: {recommendation}",
143
143
  "welcome": {
144
144
  "title": "🎯 テキスト スキャナーへようこそ!",
145
145
  "description": "このツールは、ソース コードをスキャンして、翻訳が必要な可能性のあるハードコーディングされた英語テキストを探します。"
@@ -161,582 +161,582 @@
161
161
  "excludeDirs": "除外するディレクトリ (カンマ区切り):",
162
162
  "customPatterns": "スキャンするカスタム パターン (正規表現):"
163
163
  },
164
- "reportGenerated": "生成されたスキャン レポート: {path}"
164
+ "reportGenerated": "スキャンレポートが生成されました: {path}"
165
165
  },
166
166
  "fixer": {
167
- "help_message": "I18n 変換フィクサーの使用法: node i18ntk-fixer.js [options] Options: --source-dir <dir> Source directory to scan (default: ./locales) --languages <langs> Comma separated list of languages to fix --markers <markers> Comma separated markers to treat as untranslated --no-backup Skip automatic backup creation --help Show this help Examples: node i18ntk-fixer.js --languages de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
168
- "starting": "🚀 翻訳修正を開始します。言語: {languages}",
167
+ "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",
168
+ "starting": "🚀 言語の翻訳修正を開始します: {languages}",
169
169
  "sourceDirectory": "📁 ソースディレクトリ: {sourceDir}",
170
170
  "sourceLanguage": "🔤 ソース言語: {sourceLanguage}",
171
- "markers": "🏷️ 修正するマーカー: {markers}",
172
- "scanningLanguage": "📊 {language} をスキャン中...",
173
- "noLanguages": "❌ 修正する言語が指定されていません。",
174
- "allComplete": "🎉 すべての翻訳が既に完了しています!",
175
- "fullReportSaved": "📊 完全なレポートが保存されました: {reportPath}",
176
- "reviewReport": "翻訳修正レポートを確認してください。",
171
+ "markers": "🏷️ 修正するマーカー: {markers}",
172
+ "scanningLanguage": "📊 スキャン中 {language}...",
173
+ "noLanguages": "❌ 修正対象の言語が指定されていません。",
174
+ "allComplete": "🎉 すべての翻訳はすでに完了しています!",
175
+ "fullReportSaved": "📊 完全なレポートの保存場所: {reportPath}",
176
+ "reviewReport": "続行する前にレポートを確認してください。",
177
177
  "backupCreated": "💾 バックアップが正常に作成されました。",
178
- "applyingFixes": "🔄 修正を適用中...",
179
- "fixingComplete": "✅ 翻訳修正が完了しました!",
180
- "operationCancelled": "❌ ユーザーによる操作がキャンセルされました。",
178
+ "applyingFixes": "🔄 修正を適用しています...",
179
+ "fixingComplete": "✅ 翻訳修正完了!",
180
+ "operationCancelled": "❌ ユーザーによって操作がキャンセルされました。",
181
181
  "analysisTitle": "🔍 翻訳修正分析",
182
- "analysisSeparator": "==================================================",
183
- "totalIssues": "🔍 修正可能な問題の合計: {totalIssues}",
184
- "missingTranslations": "不足している翻訳: {missing}",
185
- "placeholderTranslations": "⚠️ プレースホルダー翻訳: {placeholder}",
186
- "noIssues": "✅ 修正可能な問題が見つかりませんでした。すべての翻訳が完了しています。",
182
+ "analysisSeparator": "=================================================",
183
+ "totalIssues": "見つかった問題の合計: {totalIssues}",
184
+ "missingTranslations": "不足している翻訳: {missing}",
185
+ "placeholderTranslations": "プレースホルダーの翻訳: {placeholder}",
186
+ "noIssues": "✅ 問題は見つかりませんでした。すべての翻訳が完了しました。",
187
187
  "detailedIssues": "📋 詳細な問題:",
188
188
  "detailedSeparator": "--------------------------------------------------",
189
189
  "filePath": "📄 {file} → {path}",
190
- "missingKey": "❌ 不足している翻訳: {source} → {new}",
191
- "placeholderKey": "⚠️ プレースホルダー翻訳: \"{target}\" → \"{new}\"",
192
- "moreIssues": "... その他 {count} 件の問題が見つかりました。詳細はレポートファイルを参照してください。",
193
- "confirmationTitle": "🤔 修正を適用しますか?",
194
- "confirmationOptions": "選択肢:",
195
- "optionYes": "y - すべての修正を適用",
196
- "optionNo": "n - 操作をキャンセル",
197
- "optionShow": "s - 詳細な問題を表示",
198
- "choicePrompt": "選択肢を入力 (y/n/s):",
199
- "nonInteractiveMode": "⚡ 非対話モードが検出されました。修正を自動的に適用します...",
200
- "reportGenerated": "📊 修正レポートが生成されました: {path}",
190
+ "missingKey": "❌ 欠落: {source} → {new}",
191
+ "placeholderKey": "⚠️ プレースホルダー: \"{target}\" → \"{new}\"",
192
+ "moreIssues": "... そして {count} さらに問題が発生します。詳細については、レポート ファイルを確認してください。",
193
+ "confirmationTitle": "🤔 これらの修正を続行しますか?",
194
+ "confirmationOptions": "オプション:",
195
+ "optionYes": "y - はい、すべての修正を適用します",
196
+ "optionNo": "n - いいえ、操作をキャンセルします",
197
+ "optionShow": "s - 詳細な問題を表示する",
198
+ "choicePrompt": "あなたの選択 (y/n/s):",
199
+ "nonInteractiveMode": "⚡ 非対話型モードが検出されました - 修正を自動的に適用しています...",
200
+ "reportGenerated": "📊 フィクサーレポートが生成されました: {path}",
201
201
  "summary": "フィクサーの概要:",
202
202
  "welcome": {
203
- "title": "🎯 翻訳フィクサーへようこそ!",
204
- "description": "このツールは、壊れた翻訳やプレースホルダーマーカーを言語ファイルから修復するのに役立ちます。"
203
+ "title": "🎯 翻訳フィクサーへようこそ!",
204
+ "description": "このツールは、ロケール ファイル全体の壊れた翻訳とプレースホルダーを修正するのに役立ちます。"
205
205
  },
206
206
  "markerPrompt": {
207
- "title": "🏷️ プレースホルダーマーカーの設定",
208
- "description": "未翻訳のテキストを示すマーカーを入力してください(カンマ区切り):",
209
- "currentDefaults": "デフォルトマーカー: {markers}",
210
- "input": "マーカー(Enterでデフォルトを使用):"
207
+ "title": "🏷️ プレースホルダーマーカーを構成する",
208
+ "description": "未翻訳のテキストを示すマーカーを入力します (カンマ区切り):",
209
+ "currentDefaults": "デフォルトのマーカー: {markers}",
210
+ "input": "マーカー (またはデフォルトの場合は Enter キーを押します):"
211
211
  },
212
212
  "languagePrompt": {
213
- "title": "🌍 修復する言語の選択",
213
+ "title": "🌍 修正する言語を選択してください",
214
214
  "available": "利用可能な言語: {languages}",
215
- "description": "修復する言語を入力してください(カンマ区切り)またはEnterですべてを選択:",
215
+ "description": "修正する言語を入力するか (カンマ区切り)、すべてに対して Enter キーを押します。",
216
216
  "input": "言語:",
217
- "noLanguages": "修復する言語が見つかりませんでした。"
217
+ "noLanguages": "修正できる言語が見つかりません。"
218
218
  },
219
219
  "directoryPrompt": {
220
- "title": "📁 ディレクトリの選択",
220
+ "title": "📁 ディレクトリを選択",
221
221
  "current": "現在のディレクトリ: {dir}",
222
- "description": "言語ファイルを含むディレクトリを入力してください(またはEnterで現在のディレクトリを使用):",
223
- "input": "ディレクトリ:"
222
+ "description": "ロケール ファイルを含むディレクトリを入力します (または Enter キーを押して現在のディレクトリを選択します)。",
223
+ "input": "ディレクトリ:"
224
224
  },
225
225
  "backupLocation": "バックアップの場所: {dir}",
226
226
  "completed": "修正が完了しました。",
227
- "creatingBackup": "{dir} にバックアップを作成しています...",
227
+ "creatingBackup": "バックアップの作成 {dir}...",
228
228
  "dryRunMode": "ドライランモード: {mode}",
229
- "error": "修正が失敗しました: {error}",
230
- "fixing": "{language} を修正しています...",
231
- "foundLanguages": "{count} 言語が見つかりました: {languages}",
232
- "languageFixed": "{language}: {fixed} キーを修正し、{skipped} をスキップしました。",
229
+ "error": "修正に失敗しました: {error}",
230
+ "fixing": "固定する {language}...",
231
+ "foundLanguages": "見つかった {count} 言語: {languages}",
232
+ "languageFixed": "{language} 修理済み {fixed} キー、スキップされました {skipped}.",
233
233
  "running": "翻訳フィクサーを実行しています...",
234
- "totalFixed": "合計修正数: {count}"
234
+ "totalFixed": "固定合計: {count}"
235
235
  },
236
236
  "autorun": {
237
- "stepAnalyzeTranslations": "翻訳の分析",
238
- "stepCompletedWithIcon": "✅ ステップ「{stepName}」が完了しました。",
239
- "stepValidateTranslations": "翻訳の検証",
240
- "stepRunning": "ステップ「{stepName}」を実行中...",
241
- "separator": "==================================================",
242
- "stepFailed": "ステップ「{stepName}」が失敗しました。",
243
- "errorLabel": "エラー: {error}",
244
- "autoRunScriptTitle": "Auto-Runスクリプト",
245
- "usageTitle": "使用法:",
246
- "runAllSteps": "node i18ntk-autorun.js --all - i18ntk-config.jsonで定義されたすべてのステップを実行",
247
- "configureSettingsFirst": "node i18ntk-autorun.js --config - ワークフローの設定を構成",
248
- "runSpecificSteps": "node i18ntk-autorun.js --steps <step_numbers> - 特定のステップを実行 (例: --steps 1,3,5)",
249
- "showHelp": "node i18ntk-autorun.js --help - ヘルプメッセージを表示",
250
- "examplesTitle": "例:",
251
- "configExample": "node i18ntk-autorun.js --config",
252
- "stepsExample1": "node i18ntk-autorun.js --steps 1,2,3",
253
- "stepsExample2": "node i18ntk-autorun.js --all",
254
- "customSettingsConfiguration": "カスタム設定の構成",
255
- "availableSteps": "利用可能なステップ:",
256
- "startingAutoRunWorkflow": "Auto-Runワークフローを開始しています...",
257
- "workflowIncludesSteps": "ワークフローには{count}ステップが含まれています:",
258
- "missingRequiredFile": "必須ファイルが見つかりません: {file}",
259
- "workflowStopped": "ワークフローが停止しました。",
260
- "workflowCompleted": "ワークフローが完了しました。",
261
- "successfulSteps": "成功したステップ: {count}",
237
+ "stepAnalyzeTranslations": "翻訳を分析する",
238
+ "stepCompletedWithIcon": "✅ 完了: {stepName}",
239
+ "stepValidateTranslations": "翻訳を検証する",
240
+ "stepRunning": "▶️ステップ {stepNumber}/{totalSteps}: {stepName}",
241
+ "separator": "=================================================",
242
+ "stepFailed": "❌ 失敗: {stepName}",
243
+ "errorLabel": "エラー",
244
+ "autoRunScriptTitle": "🧪 自動実行ワークフロー",
245
+ "usageTitle": "使用法",
246
+ "runAllSteps": "実行: ノード i18ntk-autorun.js",
247
+ "configureSettingsFirst": "構成: i18ntk-config.json または CLI フラグ",
248
+ "runSpecificSteps": "--steps=1,3 または --list を使用してステップを表示します",
249
+ "showHelp": "-- 詳細についてはヘルプを参照してください",
250
+ "examplesTitle": "",
251
+ "configExample": "ノード i18ntk-autorun.js --ui- language=zh",
252
+ "stepsExample1": "ノード i18ntk-autorun.js --steps=分析、検証",
253
+ "stepsExample2": "ノード i18ntk-autorun.js --list",
254
+ "customSettingsConfiguration": "カスタム自動実行設定",
255
+ "availableSteps": "利用可能なステップ",
256
+ "startingAutoRunWorkflow": "🚀 自動実行ワークフローを開始しています...",
257
+ "workflowIncludesSteps": "ワークフローには以下が含まれます {count} 手順:",
258
+ "missingRequiredFile": "必要なファイルがありません: {file}",
259
+ "workflowStopped": "障害によりワークフローが停止しました。",
260
+ "workflowCompleted": "🎉 ワークフローが完了しました!",
261
+ "successfulSteps": "成功した手順: {count}",
262
262
  "failedSteps": "失敗したステップ: {count}",
263
263
  "stepInitializeProject": "プロジェクトの初期化",
264
- "stepCheckUsage": "使用状況のチェック",
265
- "stepGenerateSummary": "要約レポートを生成中...",
266
- "runInitializationFirst": "まず初期化を実行してください。",
267
- "initializationCheckPassed": "初期化チェックが完了しました。",
268
- "runningStep": "ステップを実行中: {stepName}",
269
- "commandLabel": "コマンド: {command}",
270
- "stepCompletedWithTime": "ステップ「{stepName}」が{duration}msで完了しました。",
271
- "stepCompleted": "ステップ「{stepName}」が完了しました。",
272
- "stepFailedWithError": "ステップ「{stepName}」がエラーで失敗しました: {error}",
273
- "requiredStepFailed": "必須ステップが失敗しました。ワークフローを停止します。",
274
- "optionalStepFailed": "オプションステップが失敗しました。ワークフローを継続します。",
275
- "stepRequired": "(必須)",
264
+ "stepCheckUsage": "キーの使用状況を確認する",
265
+ "stepGenerateSummary": "概要レポートの生成",
266
+ "runInitializationFirst": "最初に初期化を実行してください。",
267
+ "initializationCheckPassed": "初期化チェックに合格しました。",
268
+ "runningStep": "実行ステップ: {stepName}",
269
+ "commandLabel": "指示: {command}",
270
+ "stepCompletedWithTime": "ステップ '{stepName}で完了しました {duration}MS。",
271
+ "stepCompleted": "ステップ '{stepName}』が完成しました。",
272
+ "stepFailedWithError": "ステップ '{stepName}' エラーで失敗しました: {error}",
273
+ "requiredStepFailed": "必要なステップが失敗しました。ワークフローを停止しています。",
274
+ "optionalStepFailed": "オプションのステップが失敗しました。継続的なワークフロー。",
275
+ "stepRequired": "(必須)",
276
276
  "stepOptional": "(オプション)",
277
- "startingExecution": "実行を開始します...",
278
- "pressEnterToContinue": "続行するにはEnterキーを押してください...",
277
+ "startingExecution": "実行を開始しています...",
278
+ "pressEnterToContinue": "続行するには Enter キーを押してください...",
279
279
  "runningSelectedSteps": "選択したステップを実行中...",
280
280
  "invalidStepNumber": "無効なステップ番号: {stepNum}",
281
281
  "executionReport": "実行レポート:",
282
- "requiredFailedSteps": "必須ステップの失敗: {count}",
282
+ "requiredFailedSteps": "必要な手順が失敗しました: {count}",
283
283
  "stepDetails": "ステップの詳細:",
284
- "reportSavedTo": "レポートが保存されました: {path}",
284
+ "reportSavedTo": "レポートの保存場所: {path}",
285
285
  "overallStatusSuccess": "成功",
286
- "overallStatusFailed": "失敗",
287
- "overallStatus": "全体のステータス: {status}",
288
- "pressEnterForDefaults": "既定値を使用するにはEnterキーを押してください。",
289
- "sourceDirPrompt": "ソースディレクトリを入力してください (デフォルト: {default}):",
286
+ "overallStatusFailed": "失敗した",
287
+ "overallStatus": "全体的なステータス: {status}",
288
+ "pressEnterForDefaults": "Enter キーを押して、プロンプトのデフォルト設定を使用します。",
289
+ "sourceDirPrompt": "ソース ディレクトリを入力してください (デフォルト: {default}):",
290
290
  "sourceLangPrompt": "ソース言語を入力してください (デフォルト: {default}):",
291
- "targetLangsPrompt": "ターゲット言語を入力してください (カンマ区切り, デフォルト: {default}):",
291
+ "targetLangsPrompt": "ターゲット言語を入力します (カンマ区切り、デフォルト: {default}):",
292
292
  "translationMarkerPrompt": "翻訳マーカーを入力してください (デフォルト: {default}):",
293
293
  "outputDirPrompt": "レポートの出力ディレクトリを入力してください (デフォルト: {default}):",
294
- "settingsUpdatedSuccessfully": "設定が正常に更新されました!",
295
- "errorConfiguringSettings": "設定構成エラー: {error}",
296
- "configurationComplete": "構成が完了しました。",
297
- "runAutoRunCommand": "これでAuto-Runコマンドを実行できます。",
294
+ "settingsUpdatedSuccessfully": "設定が正常に更新されました。",
295
+ "errorConfiguringSettings": "設定の構成中にエラーが発生しました: {error}",
296
+ "configurationComplete": "設定が完了しました。",
297
+ "runAutoRunCommand": "これで自動実行コマンドを実行できるようになりました。",
298
298
  "configurationFailed": "構成に失敗しました: {error}",
299
299
  "noValidStepNumbers": "有効なステップ番号が指定されていません。",
300
- "autoRunFailed": "Auto-Runが失敗しました: {error}",
301
- "stepCompleteTranslations": "翻訳の完成",
302
- "stepAnalyzeSizing": "サイズ分析",
300
+ "autoRunFailed": "自動実行に失敗しました: {error}",
301
+ "stepCompleteTranslations": "完全な翻訳",
302
+ "stepAnalyzeSizing": "サイジングの分析",
303
303
  "stepCompletedIcon": "✅",
304
- "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] ステップ「{stepName}」を実行中...",
304
+ "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] ステップ '{stepName}' 走っています...",
305
305
  "stepFailedIcon": "❌",
306
- "translationLoadWarning": "警告: {lang}の翻訳を読み込めませんでした",
307
- "configReadError": "{file}の読み込みエラー"
306
+ "translationLoadWarning": "警告: ロードできませんでした {lang} 翻訳",
307
+ "configReadError": "読み取りエラー {file}"
308
308
  },
309
309
  "analyze": {
310
- "help_message": "i18n 翻訳分析ツール 使い方: node i18ntk-analyze.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ(デフォルト: ./locales) --i18n-dir <dir> I18n ディレクトリ(デフォルト: ./locales--output-report 詳細レポートを生成する --output-dir <dir> レポート出力先ディレクトリ(デフォルト: ./i18ntk-reports--help このヘルプを表示する 例: node i18ntk-analyze.js --output-report node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales node i18ntk-analyze.js --output-dir=./analysis --output-report",
310
+ "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",
311
311
  "source_directory": "📁 ソースディレクトリ: {sourceDir}",
312
312
  "i18n_directory": "🌐 I18n ディレクトリ: {i18nDir}",
313
313
  "loading_translation_files": "📋 翻訳ファイルを読み込み中...",
314
314
  "sourceDirectoryLabel": "📁 ソースディレクトリ: {sourceDir}",
315
315
  "sourceLanguageLabel": "🌍 ソース言語: {sourceLanguage}",
316
- "strictModeLabel": "⚙️ 厳密モード: {mode}",
317
- "found_translation_files_count": "✅ {count} 件の翻訳ファイルを検出しました",
316
+ "strictModeLabel": "⚙️ストリクトモード: {mode}",
317
+ "found_translation_files_count": "✅ 見つかりました {count} 翻訳ファイル",
318
318
  "analyzing_translations": "🔍 翻訳を分析中...",
319
- "analysis_completed_successfully": "🎉 分析が正常に完了しました!",
319
+ "analysis_completed_successfully": "🎉 分析が正常に完了しました!",
320
320
  "analysis_results": "📊 分析結果",
321
321
  "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% 翻訳済み)",
322
- "sample_missing_keys": "翻訳が抜けているキーの例:",
322
+ "sample_missing_keys": "欠落しているキーのサンプル:",
323
323
  "missing_key": "- {key}",
324
- "and_more_missing": "...およびさらに {count} 件。",
325
- "sample_unused_keys": "未使用のキーの例:",
324
+ "and_more_missing": "...そして {count} もっと。",
325
+ "sample_unused_keys": "未使用のキーのサンプル:",
326
326
  "unused_key": "- {key}",
327
- "and_more_unused": "...およびさらに {count} 件。",
327
+ "and_more_unused": "...そして {count} もっと。",
328
328
  "recommendations": "📋 推奨事項",
329
- "add_missing_translations": "💡 カバレッジを改善するために不足している翻訳を追加してください。",
330
- "remove_unused_translations": "💡 プロジェクトをクリーンに保つために未使用の翻訳を削除してください。",
329
+ "add_missing_translations": "💡 カバレッジを改善するために、不足している翻訳を追加します。",
330
+ "remove_unused_translations": "💡 プロジェクトをクリーンな状態に保つために、未使用の翻訳を削除します。",
331
331
  "next_steps": "📋 次のステップ",
332
332
  "review_analysis_results": "1. コンソールまたは生成されたレポートで分析結果を確認します。",
333
- "run_with_output_report": "2. 詳細レポートを得るには --output-report を付けて実行します。",
334
- "add_or_remove_translations": "3. 不足している翻訳を追加するか、未使用のものを削除します。",
335
- "rerun_analysis": "4. 改善を確認するために再度分析を実行します。",
336
- "analysis_summary": "📊 分析サマリー",
337
- "source_files_scanned": "スキャンされたソースファイル: {fileCount}",
338
- "translation_files_checked": "確認された翻訳ファイル: {translationFileCount}",
339
- "total_keys": "キー合計: {totalKeys}",
340
- "translated_keys": "翻訳済みキー: {translatedKeys}",
333
+ "run_with_output_report": "2. --output-report を指定して実行すると、詳細なレポートが表示されます。",
334
+ "add_or_remove_translations": "3. 不足している翻訳を追加するか、未使用の翻訳を削除します。",
335
+ "rerun_analysis": "4. 分析を再実行して改善を確認します。",
336
+ "analysis_summary": "📊 分析の概要",
337
+ "source_files_scanned": "スキャンされたソース ファイル: {fileCount}",
338
+ "translation_files_checked": "チェックされた翻訳ファイル: {translationFileCount}",
339
+ "total_keys": "キーの合計: {totalKeys}",
340
+ "translated_keys": "翻訳されたキー: {translatedKeys}",
341
341
  "missing_keys": "不足しているキー: {missingKeys}",
342
342
  "unused_keys": "未使用のキー: {unusedKeys}",
343
- "translation_coverage": "翻訳カバレッジ: {coverage}%",
344
- "analysis_passed_for_language": "✅ {language} の分析は合格しました",
345
- "analysis_failed_for_language": "❌ {language} の分析に失敗しました(不足: {missingKeys}、未使用: {unusedKeys}",
343
+ "translation_coverage": "翻訳範囲: {coverage}%",
344
+ "analysis_passed_for_language": "✅ 分析に合格しました {language}",
345
+ "analysis_failed_for_language": "❌ 分析に失敗しました {language} ({missingKeys} ない、 {unusedKeys} 未使用)",
346
346
  "starting": "🔍 翻訳分析を開始しています...",
347
- "foundLanguages": "📋 分析対象の言語を {count} 件検出しました: {languages}",
348
- "analyzing": "🔄 {language} を分析中...",
347
+ "foundLanguages": "📋 見つかりました {count} 分析する言語: {languages}",
348
+ "analyzing": "🔄 分析中 {language}...",
349
349
  "reportTitle": "📊 翻訳分析レポート",
350
- "generated": "生成日時: {timestamp}",
351
- "status": "ステータス: {translated}/{total} キー ({percentage}% 翻訳済み)",
350
+ "generated": "生成されるもの: {timestamp}",
351
+ "status": "状態: {translated}/{total} キー ({percentage}% 翻訳済み)",
352
352
  "filesAnalyzed": "分析されたファイル: {analyzed}/{total}",
353
353
  "keysNeedingTranslation": "翻訳が必要なキー: {count}",
354
- "fileBreakdown": "📋 ファイル詳細",
354
+ "fileBreakdown": "📋 ファイルの内訳",
355
355
  "error": "エラー",
356
- "completed": "✅ {language} の分析が完了しました",
357
- "progress": "📊 全体の進捗: {translated}/{total} 言語を処理済み",
358
- "reportSaved": "レポートを保存しました: {reportPath}",
359
- "summary": "📊 分析サマリー",
360
- "finished": "✅ 分析が正常に完了しました!",
361
- "statusFileMissing": "❌ 翻訳ファイルが見つかりません",
356
+ "completed": "✅ 分析が完了しました {language}",
357
+ "progress": "📊 全体的な進捗状況: {translated}/{total} 処理される言語",
358
+ "reportSaved": "保存されたレポート: {reportPath}",
359
+ "summary": "📊 分析の概要",
360
+ "finished": "✅ 分析が正常に完了しました。",
361
+ "statusFileMissing": "❌ 翻訳ファイルがありません",
362
362
  "sourceKeys": "📊 ソースキー: {count}",
363
363
  "translation": "📊 翻訳: {translated}/{total} ({percentage}%)",
364
364
  "structure": "🗂️ 構造: {status}",
365
- "consistent": "一貫性あり",
366
- "inconsistent": "一貫性なし",
365
+ "consistent": "一貫性のある",
366
+ "inconsistent": "一貫性がない",
367
367
  "missingKeys": "不足しているキー: {count}",
368
- "extraKeys": "余分なキー: {count}",
369
- "issues": "⚠️ 検出された問題: {count}",
368
+ "extraKeys": "追加のキー: {count}",
369
+ "issues": "⚠️ 見つかった問題: {count}",
370
370
  "issueType": {
371
371
  "not_translated": "未翻訳: {count}",
372
372
  "empty_value": "空の値: {count}",
373
- "partial_translation": "部分翻訳: {count}",
373
+ "partial_translation": "部分的な翻訳: {count}",
374
374
  "format_mismatch": "形式の不一致: {count}",
375
375
  "type_mismatch": "型の不一致: {count}",
376
376
  "structure_mismatch": "構造の不一致: {count}",
377
377
  "same_as_source": "ソースと同じ: {count}"
378
378
  },
379
- "keysToTranslate": "📋 翻訳すべきキー",
380
- "key": "キー",
379
+ "keysToTranslate": "📋 翻訳するキー",
380
+ "key": "",
381
381
  "english": "英語",
382
- "needsTranslation": "翻訳が必要",
383
- "andMoreKeys": "...およびさらに {count} 件のキー。",
384
- "noLanguages": "⚠️ 対象言語が見つかりませんでした。",
385
- "languageStats": "{language}: {percentage}% 完了 ({translated}/{total} キー)",
386
- "invalidReportFilePath": "無効なレポートファイルパス",
387
- "failedToWriteReportFile": "レポートファイルを安全に書き込めませんでした"
382
+ "needsTranslation": "翻訳が必要です",
383
+ "andMoreKeys": "...そして {count} さらに多くのキー。",
384
+ "noLanguages": "⚠️ ターゲット言語が見つかりません。",
385
+ "languageStats": "{language}: {percentage} 完了 {translated}/{total} キー)",
386
+ "invalidReportFilePath": "無効なレポート ファイル パス",
387
+ "failedToWriteReportFile": "レポート ファイルを安全に書き込めませんでした"
388
388
  },
389
389
  "complete": {
390
- "configLoadedSuccessfully": "設定が正常に読み込まれました",
391
- "configLoadingFailed": "設定の読み込みに失敗しました",
392
- "sourceLanguageNotFound": "⚠️ ソース言語が見つかりません: {language}",
393
- "couldNotParseTarget": "⚠️ ターゲット言語の解析中にエラーが発生しました: {error}",
394
- "couldNotParseSource": "⚠️ ソース言語の解析中にエラーが発生しました: {error}",
395
- "reportGenerated": "📄 レポートが生成されました: {reportPath}",
396
- "generateReportPrompt": "📄 レポートを生成しますか? (y/n):",
397
- "title": "🌍 I18NTK 翻訳補完ツール",
398
- "separator": "============================================================",
399
- "sourceDir": "📁 ソースディレクトリ:{sourceDir}",
400
- "sourceLanguage": "🌐 ソース言語:{sourceLanguage}",
390
+ "configLoadedSuccessfully": "設定が正常にロードされました",
391
+ "configLoadingFailed": "構成のロードに失敗しました",
392
+ "sourceLanguageNotFound": "ソース言語ディレクトリが見つかりません: {sourceLanguage}",
393
+ "couldNotParseTarget": "ターゲットファイルを解析できませんでした: {file}",
394
+ "couldNotParseSource": "ソースファイルを解析できませんでした: {file}",
395
+ "reportGenerated": "生成されたレポート: {path}",
396
+ "generateReportPrompt": "レポートの生成を希望しますか?",
397
+ "title": "🌍 I18NTK翻訳完了",
398
+ "separator": "======================================================",
399
+ "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
400
+ "sourceLanguage": "🌐 ソース言語: {sourceLanguage}",
401
401
  "dryRunMode": "🧪 ドライランモード - 変更は行われません",
402
- "languages": "🌍 利用可能な言語:{languages}",
403
- "addingMissingKeys": "➕ 翻訳ファイルに不足しているキーを追加しています...",
404
- "processing": "🔄 {language} を処理中...",
405
- "addedKeys": "✅ {count} 件の不足しているキーを追加しました",
406
- "noChangesNeeded": "✅ {language} には変更の必要はありません",
407
- "summaryTitle": "📊 補完サマリー",
408
- "totalChanges": "📝 合計変更:{totalChanges}",
409
- "languagesProcessed": "🌍 処理済みの言語:{languagesProcessed}",
410
- "missingKeysAdded": "➕ 追加された不足キー:{missingKeysAdded}",
402
+ "languages": "🌍 利用可能な言語: {languages}",
403
+ "addingMissingKeys": "➕ 不足しているキーを翻訳ファイルに追加しています...",
404
+ "processing": "🔄 処理中 {language}...",
405
+ "addedKeys": "✅ 追加されました {count} 鍵がありません",
406
+ "noChangesNeeded": "✅ 変更は必要ありません {language}",
407
+ "summaryTitle": "📊 完成概要",
408
+ "totalChanges": "📝 合計の変更: {totalChanges}",
409
+ "languagesProcessed": "🌍 処理される言語: {languagesProcessed}",
410
+ "missingKeysAdded": "➕ 不足しているキーが追加されました: {missingKeysAdded}",
411
411
  "nextStepsTitle": "📋 次のステップ",
412
- "nextStep1": "1. 使用状況分析を実行:",
413
- "nextStep2": "node i18ntk-usage.js --output-report",
414
- "nextStep3": "2. 翻訳を検証:",
415
- "nextStep4": "node i18ntk-validate.js",
416
- "nextStep5": "3. パターンを分析:",
417
- "nextStep6": "node i18ntk-analyze.js",
418
- "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!",
419
- "runWithoutDryRun": "💡 --dry-run を外して実行すると変更が適用されます",
420
- "deletingOldReport": "🗑️ 古いレポートを削除中...",
421
- "generatingFreshAnalysis": "📊 新しい使用状況分析を生成中...",
412
+ "nextStep1": "1. 使用状況分析を実行します。",
413
+ "nextStep2": "ノード i18ntk-usage.js --output-report",
414
+ "nextStep3": "2. 翻訳を検証します。",
415
+ "nextStep4": "ノード i18ntk-validate.js",
416
+ "nextStep5": "3. パターンを分析します。",
417
+ "nextStep6": "ノード i18ntk-analyze.js",
418
+ "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!",
419
+ "runWithoutDryRun": "💡 --dry-run なしで実行して変更を適用します",
420
+ "deletingOldReport": "🗑️ 古いレポートを削除しています...",
421
+ "generatingFreshAnalysis": "📊 新しい使用状況分析を生成しています...",
422
422
  "couldNotGenerate": "❌ 使用状況分析を生成できませんでした",
423
- "reportNotFound": "📋 使用レポートが見つかりません。共通のキーを使用しています...",
424
- "foundMissingKeys": "📋 使用状況分析から {count} 件の不足キーを検出しました",
425
- "couldNotParse": "❌ 使用レポートの解析に失敗しました。共通のキーを使用しています...",
426
- "errorDuringCompletion": "❌ 完了中にエラーが発生しました: {error}",
423
+ "reportNotFound": "📋 使用状況レポートが見つかりません。共通キーを使用する...",
424
+ "foundMissingKeys": "📋 見つかりました {count} 使用状況分析でキーが欠落している",
425
+ "couldNotParse": "❌ 使用状況レポートを解析できませんでした。共通キーを使用する...",
426
+ "errorDuringCompletion": "❌ 完了時のエラー: {error}",
427
427
  "fatalError": "❌ 致命的なエラー: {error}",
428
- "configurationValidationFailed": "構成の検証に失敗しました:必要なフィールドが不足しています"
428
+ "configurationValidationFailed": "構成の検証に失敗しました: 必須フィールドが欠落しています"
429
429
  },
430
430
  "sizing": {
431
- "separator": "================================================================================",
431
+ "separator": "=========================================================================",
432
432
  "lineSeparator": "--------------------------------------------------------------------------------",
433
433
  "analysisStats": "{stats}",
434
434
  "sourceDirectoryLabel": "📁 ソースディレクトリ: {sourceDir}",
435
435
  "sourceLanguageLabel": "🌍 ソース言語: {sourceLanguage}",
436
- "strictModeLabel": "⚙️ 厳格モード: {mode}",
437
- "invalidSourceDirectoryError": "無効なソースディレクトリパス: {sourceDir}",
436
+ "strictModeLabel": "⚙️ストリクトモード: {mode}",
437
+ "invalidSourceDirectoryError": "無効なソース ディレクトリ パス: {sourceDir}",
438
438
  "sourceDirectoryNotFoundError": "ソースディレクトリが見つかりません: {sourceDir}",
439
- "invalidOutputDirectoryError": "無効な出力ディレクトリパス: {outputDir}",
440
- "invalidReportFileError": "無効なレポートファイルパス",
439
+ "invalidOutputDirectoryError": "無効な出力ディレクトリ パス: {outputDir}",
440
+ "invalidReportFileError": "無効なレポート ファイル パス",
441
441
  "problematic_keys": "問題のあるキー: {problematicKeys}",
442
442
  "problematicKeysLabel": "問題のあるキー: {problematicKeys}",
443
443
  "long_translations": "長い翻訳: {longTranslations}",
444
- "failedToSaveReportError": "レポートの安全な保存に失敗しました",
445
- "invalidCsvFileError": "無効な CSV ファイルパス",
446
- "failedToSaveCsvError": "CSV レポートの安全な保存に失敗しました",
447
- "fatalError": "❌ サイズ分析に失敗しました: {error}",
448
- "starting_i18n_sizing_analysis": "i18n サイズ分析を開始しています...",
444
+ "failedToSaveReportError": "レポートを安全に保存できませんでした",
445
+ "invalidCsvFileError": "CSV ファイルのパスが無効です",
446
+ "failedToSaveCsvError": "CSV レポートを安全に保存できませんでした",
447
+ "fatalError": "❌ サイズ分析が失敗しました: {error}",
448
+ "starting_i18n_sizing_analysis": "i18n のサイジング分析を開始しています...",
449
449
  "source_directory": "ソースディレクトリ: {sourceDir}",
450
- "found_languages": "検出された言語: {languages}",
450
+ "found_languages": "見つかった言語: {languages}",
451
451
  "analyzing_file_sizes": "ファイルサイズを分析中...",
452
452
  "analyzing_translation_content": "翻訳内容を分析中...",
453
- "generating_size_comparisons": "サイズ比較を生成中...",
454
- "no_languages_found_for_comparison": "比較用の言語が見つかりません",
455
- "sizing_analysis_results": "i18n サイズ分析結果",
453
+ "generating_size_comparisons": "サイズ比較を生成しています...",
454
+ "no_languages_found_for_comparison": "比較対象の言語が見つかりません",
455
+ "sizing_analysis_results": "I18n サイジング分析結果",
456
456
  "file_sizes_title": "ファイルサイズ",
457
- "file_sizes_header": "言語 サイズ(KB) 行数 文字数",
458
- "file_size_row": "{lang} {sizeKB} {lines} {characters}",
457
+ "file_sizes_header": "言語サイズ(KB) 行数 文字数",
458
+ "file_size_row": "{lang} {sizeKB} {lines} {characters}",
459
459
  "language_statistics_title": "言語統計",
460
- "language_stats_header": "言語 キー数 文字数 平均長 最大長 空 長い",
461
- "language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
462
- "size_variations_title": "サイズのばらつき",
463
- "size_variations_header": "言語 文字差分 差分(%) 問題あり",
464
- "size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
460
+ "language_stats_header": "言語キーの文字 平均長 最大長 空の長い",
461
+ "language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
462
+ "size_variations_title": "サイズバリエーション",
463
+ "size_variations_header": "言語の文字差分 % 差分に問題があります",
464
+ "size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
465
465
  "problematic_yes": "はい",
466
466
  "problematic_no": "いいえ",
467
467
  "recommendations_title": "推奨事項",
468
- "recommendation_item": "{index} {recommendation}",
469
- "problematic_key_detail": "{index}. キー: '{key}' - バリエーション: {variations}",
470
- "generating_detailed_report": "詳細レポートを生成中...",
471
- "keysHaveSignificantSizeVariations": "キーに大きなサイズのばらつきがあります",
472
- "longTranslationsDetected": "${lang} では長さが100文字を超える翻訳が ${data.longKeys} 件検出されました - 分割を検討してください",
473
- "longer": "より長い",
474
- "shorter": "より短い",
475
- "review_translations": "{lang} の翻訳を見直すことを検討してください - ベースラインより {data.percentageDifference}% {data.comparison} です",
476
- "report_saved_to": "レポートを保存しました: {reportPath}",
477
- "considerReviewingTranslations": "${lang} の翻訳を見直すことを検討してください - ベースラインより ${data.percentageDifference}% 長くなっています",
478
- "csv_report_saved_to": "CSV レポートを保存しました: {csvPath}",
479
- "human_report_saved": "人間が読めるレポートを保存しました: {reportPath}",
480
- "folder_summary_title": "フォルダー要約",
481
- "folder_summary_table_header": "言語 サイズ(KB) キー数 平均長 総文字数",
482
- "folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
483
- "language_comparison_title": "言語比較",
468
+ "recommendation_item": "{index}. {recommendation}",
469
+ "problematic_key_detail": "{index}。鍵: '{key}' - バリエーション: {variations}",
470
+ "generating_detailed_report": "詳細レポートを生成しています...",
471
+ "keysHaveSignificantSizeVariations": "キーのサイズには大きなばらつきがある",
472
+ "longTranslationsDetected": "${lang} 100 文字を超える ${data.longKeys} 翻訳があります - 分割することを検討してください",
473
+ "longer": "もっと長く",
474
+ "shorter": "短い",
475
+ "review_translations": "見直しを検討してください {lang} 翻訳 - それらは {percentageDifference}% {comparison} ベースラインよりも",
476
+ "report_saved_to": "レポートの保存場所: {reportPath}",
477
+ "considerReviewingTranslations": "見直しを検討してください ${lang} 翻訳 - ベースラインより ${data.percentageDifference}% 長くなります",
478
+ "csv_report_saved_to": "CSV レポートの保存場所: {csvPath}",
479
+ "human_report_saved": "読みやすいレポートが保存されました: {reportPath}",
480
+ "folder_summary_title": "フォルダーの概要",
481
+ "folder_summary_table_header": "言語サイズ(KB) キーの平均長さ 合計文字数",
482
+ "folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
483
+ "language_comparison_title": "言語の比較",
484
484
  "language_comparison_row": "{lang}: {diff} 文字 ({percent}%) {status}",
485
- "summary_stats": "📊 サマリー: {totalLanguages} 言語, {totalKeys} キー - レポートの保存先: {reportPath}",
486
- "detailedKeysDescription": "コンソールに詳細なキーレベルの分析を表示",
487
- "too_many_keys_warning": "⚠️ コンソールに表示するにはキーが多すぎます - 完全な分析は詳細レポートファイルを確認してください",
488
- "no_translation_files_found": "翻訳ファイルが見つかりません",
489
- "analysis_completed": "分析が完了しました({duration}ms)",
490
- "analysis_failed": "分析に失敗しました: {errorMessage}",
491
- "starting_analysis": "分析を開始します...",
492
- "found_files": "検出されたファイル: {count}",
493
- "failed_to_parse_language_error": "{language} の翻訳の解析に失敗しました: {errorMessage}",
485
+ "summary_stats": "📊 概要: {totalLanguages} 言語、 {totalKeys} キー - レポートの保存先 {reportPath}",
486
+ "detailedKeysDescription": "コンソールに詳細なキーレベル分析を表示する",
487
+ "too_many_keys_warning": "⚠️ キーが多すぎてコンソールに表示できません - 完全な分析については詳細なレポート ファイルを確認してください",
488
+ "no_translation_files_found": "翻訳ファイルが見つかりませんでした",
489
+ "analysis_completed": "に分析が完了しました {duration}MS",
490
+ "analysis_failed": "分析が失敗しました: {errorMessage}",
491
+ "starting_analysis": "分析を開始しています...",
492
+ "found_files": "見つかった {count} ファイル",
493
+ "failed_to_parse_language_error": "解析に失敗しました {language} 翻訳: {errorMessage}",
494
494
  "recommendations": {
495
- "keys_have_significant_size_variations": "キーに大きなサイズのばらつきがあります",
496
- "consider_reviewing_translations": "{lang} の翻訳を見直すことを検討してください - ベースラインより {percentageDifference}% {comparison} です",
497
- "long_translations_detected": "{lang} では長さが {threshold} 文字を超える翻訳が {longKeys} 件検出されました - 分割を検討してください"
495
+ "keys_have_significant_size_variations": "キーのサイズには大きなばらつきがある",
496
+ "consider_reviewing_translations": "見直しを検討してください {lang} 翻訳 - それらは {percentageDifference}% {comparison} ベースラインよりも",
497
+ "long_translations_detected": "{lang} もっている {longKeys} より長い翻訳 {threshold} キャラクター - 細分化することを検討してください"
498
498
  },
499
499
  "detailed_key_analysis_title": "詳細なキー分析",
500
500
  "key_analysis_detail": "{lang}: {length} 文字 ({status}) - {translation}",
501
- "key_analysis_header": "キー: {key}",
501
+ "key_analysis_header": "鍵: {key}",
502
502
  "status_empty": "空の",
503
503
  "status_long": "長さ",
504
504
  "status_ok": "わかりました"
505
505
  },
506
506
  "usage": {
507
- "help_message": "I18n 使用解析ツール 使い方: node i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ(デフォルト: ./src--i18n-dir <dir> I18n ディレクトリ(デフォルト: ./src/locales--output-report 詳細レポートを生成する --output-dir <dir> レポートの出力ディレクトリ(デフォルト: ./reports--help このヘルプを表示する 例: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
507
+ "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",
508
508
  "source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}",
509
509
  "translationCompletenessTitle": "🌍 翻訳の完全性:",
510
510
  "i18n_directory_thisi18ndir": "🌐 I18n ディレクトリ: {i18nDir}",
511
- "failed_to_parse_filename_error": "⚠️ {fileName} の解析に失敗しました: {errorMessage}",
512
- "analyzing_source_files": "🔍 ソースファイルを解析中...",
513
- "found_files_in_source": "📂 ソースディレクトリで {numFiles} 件のファイルを検出",
514
- "found_thisusedkeyssize_unique_": "🎯 一意の使用中キーを {usedKeysSize} 件検出",
515
- "total_key_usages_totalkeysfoun": "📊 キーの使用合計: {totalKeysFound}",
516
- "loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
517
- "found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
518
- "foundTranslationFiles": "✅ {count} 件の翻訳ファイルを検出",
519
- "errorReadingI18nDirectory": "⚠️ i18nディレクトリの読み取りに失敗しました: {error}",
520
- "pressEnterToReturnToMenu": "Enter キーを押してメインメニューに戻ります",
521
- "notTranslatedKeysTotal": "⚠️ 翻訳されていないキー: {total}",
522
- "noSourceFilesFound": "⚠️ ソースディレクトリにファイルが見つかりません。",
523
- "reviewNotTranslatedKeys": "💡 翻訳されていないキーを確認してください",
524
- "analysisCompletedSuccessfully": "🎉 分析が正常に完了しました!",
525
- "detectedSourceDirectory": "検出されたソースディレクトリ: {sourceDir}",
526
- "detectedI18nDirectory": "検出された I18n ディレクトリ: {i18nDir}",
527
- "fileInfo": "📄 {namespace}: {keys} 件のキー",
528
- "failedToAnalyzeUsage": "❌ 使用状況の解析に失敗しました: {error}",
529
- "failedToAnalyzeFile": "❌ ファイルの解析に失敗しました: {error}",
530
- "failedToExtractKeys": "⚠️ キーの抽出中にエラーが発生しました: {error}",
511
+ "failed_to_parse_filename_error": "⚠️ 解析に失敗しました {fileName}: {errorMessage}",
512
+ "analyzing_source_files": "🔍 ソースファイルを分析中...",
513
+ "found_files_in_source": "📂 見つかりました {numFiles} ソースディレクトリ内のファイル",
514
+ "found_thisusedkeyssize_unique_": "🎯 見つかりました {usedKeysSize} 使用される固有のキー",
515
+ "total_key_usages_totalkeysfoun": "📊 キーの合計使用量: {totalKeysFound}",
516
+ "loading_available_translation_": "📋 利用可能な翻訳キーをロード中...",
517
+ "found_thisavailablekeyssize_av": "✅ 見つかりました {availableKeysSize} 利用可能なキー",
518
+ "foundTranslationFiles": "✅ 見つかりました {count} 翻訳ファイル",
519
+ "errorReadingI18nDirectory": "⚠️ i18n ディレクトリの読み取りエラー: {error}",
520
+ "pressEnterToReturnToMenu": "📝 Enterを押してメインメニューに戻ります...",
521
+ "notTranslatedKeysTotal": "⚠️ 未翻訳のキー: {total}",
522
+ "noSourceFilesFound": "⚠️ ソース ディレクトリにソース ファイルが見つかりません。",
523
+ "reviewNotTranslatedKeys": "💡 未翻訳のキーを確認する",
524
+ "analysisCompletedSuccessfully": "🎉 分析が正常に完了しました!",
525
+ "detectedSourceDirectory": "検出されたソース ディレクトリ: {sourceDir}",
526
+ "detectedI18nDirectory": "検出された i18n ディレクトリ: {i18nDir}",
527
+ "fileInfo": "📄 {namespace}: {keys} キー",
528
+ "failedToAnalyzeUsage": "❌ 使用状況の分析に失敗しました: {error}",
529
+ "failedToAnalyzeFile": "❌ ファイルの分析に失敗しました: {error}",
530
+ "failedToExtractKeys": " からキーを抽出できませんでした {filePath}: {error}",
531
531
  "analysisFailedError": "❌ 分析が失敗しました: {error}",
532
- "analyzerInitialized": "アナライザが初期化されました",
533
- "analyzerInitFailed": "アナライザの初期化に失敗しました: {error}",
534
- "argsParsed": "引数を解析しました",
535
- "processedFiles": "処理済み {processedFiles} 件のファイルから {totalFiles} 件のファイルを処理しました。",
532
+ "analyzerInitialized": "アナライザーが初期化されました",
533
+ "analyzerInitFailed": "アナライザーの初期化に失敗しました: {error}",
534
+ "argsParsed": "解析された引数",
535
+ "processedFiles": "加工済み {processedFiles} {totalFiles} ファイル。",
536
536
  "argsParseFailed": "引数の解析に失敗しました: {error}",
537
- "translationDiscoveryError": "翻訳の検出エラー: {error}",
538
- "fileTraversalError": "ファイル走査エラー: {error}",
539
- "sourceEqualsI18nWarn": "⚠️ ソースディレクトリと i18n ディレクトリは同じです。分析に問題が発生する可能性があります。",
540
- "i18nEqualsSourceWarn": "⚠️ I18n ディレクトリとソースディレクトリは同じです。分析に問題が発生する可能性があります。",
541
- "usageAnalysisFailed": "使用状況分析に失敗しました: {error}",
542
- "translationFileParseError": "翻訳ファイルの解析エラー: {error}",
543
- "translationKeysLoadError": "翻訳キーの読み込みエラー: {error}",
544
- "languageCompletenessStats": "🌍 {language}: {translated}/{total} ({completeness}% 翻訳済み)",
545
- "missingKeysCount": "⚠️ 不足しているキー: {count}",
537
+ "translationDiscoveryError": "翻訳検出エラー: {error}",
538
+ "fileTraversalError": "ファイル トラバーサル エラー: {error}",
539
+ "sourceEqualsI18nWarn": "⚠️ Source ディレクトリと i18n ディレクトリは同じです。これにより、分析で問題が発生する可能性があります。",
540
+ "i18nEqualsSourceWarn": "⚠️ I18n ディレクトリとソースディレクトリは同じです。これにより、分析で問題が発生する可能性があります。",
541
+ "usageAnalysisFailed": "⚠️ 使用状況分析が失敗しました: {error}",
542
+ "translationFileParseError": "⚠️ 翻訳ファイルの解析エラー: {error}",
543
+ "translationKeysLoadError": "⚠️ 翻訳キーの読み込みエラー: {error}",
544
+ "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% 翻訳済み)",
545
+ "missingKeysCount": "⚠️ キーがありません: {count}",
546
546
  "analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
547
547
  "unusedKeysCount": "未使用のキー: {count}",
548
- "usedKeysCount": "使用されたキー: {count}",
548
+ "usedKeysCount": "使用したキー: {count}",
549
549
  "availableKeysCount": "利用可能なキー: {count}",
550
550
  "analysisResults": "分析結果:",
551
- "i18nDirectoryNotFound": "⚠️ I18n ディレクトリが見つかりません: {dir}",
552
- "sourceDirectoryNotFound": "⚠️ ソースディレクトリが見つかりません: {dir}",
551
+ "i18nDirectoryNotFound": "⚠️ I18n ディレクトリが見つかりません。パスを確認してください。",
552
+ "sourceDirectoryNotFound": "⚠️ ソースディレクトリが見つかりません: {dir}",
553
553
  "checkUsage": {
554
554
  "title": "🔍 I18NTK 使用状況分析",
555
- "analyzing_source_files": "🔍 ソースファイルを解析中...",
555
+ "analyzing_source_files": "🔍 ソースファイルを分析中...",
556
556
  "source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}",
557
- "i18n_directory_thisi18ndir": "🌐 I18n ディレクトリ: {i18nDir}",
558
- "found_files_in_source": "📂 ソースディレクトリで {numFiles} 件のファイルを検出",
559
- "no_source_files_found": "⚠️ 指定されたディレクトリにソースファイルが見つかりません",
560
- "processedFiles": "{totalFiles} ファイルのうち {processedFiles} を処理済み。",
561
- "failedToProcessFile": "❌ ファイルの処理に失敗しました: {filePath}",
562
- "found_thisusedkeyssize_unique_": "🎯 一意の使用中キーを {usedKeysSize} 件検出",
563
- "total_key_usages_totalkeysfoun": "📊 キーの使用合計: {totalKeysFound}",
564
- "loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
565
- "found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
566
- "message": "プロジェクト全体の i18n キー使用を分析しています。",
567
- "usage_analysis_results": "📊 使用状況分析の結果",
568
- "source_files_scanned_thisfileu": "スキャンされたソースファイル: {fileUsageSize}",
569
- "available_translation_keys_thi": "利用可能な翻訳キー: {availableKeysSize}",
570
- "used_translation_keys_thisused": "使用された翻訳キー: {usedKeysSize}",
571
- "dynamic_keys_detected_dynamick": "検出された動的キー: {dynamicKeysLength}",
572
- "unused_keys_unusedkeyslength": "未使用のキー: {unusedKeysLength}",
573
- "missing_keys_missingkeyslength": "不足しているキー: {missingKeysLength}",
574
- "translation_completeness_title": "📊 翻訳の完全性",
575
- "language_completeness_stats": "{language}: {translated}/{total} ({completeness}% 翻訳済み)",
576
- "n_sample_unused_keys": "未使用のキーの例:",
577
- "key": "- {key}",
578
- "and_unusedkeyslength_5_more": "...およびさらに {count} 件。",
579
- "n_sample_missing_keys": "❌ 不足しているキーのサンプル (最初の 5 ):",
580
- "and_missingkeyslength_5_more": "... そしてさらに {count} 件の不足しているキー",
557
+ "i18n_directory_thisi18ndir": "📁 i18n ディレクトリ: {i18nDir}",
558
+ "found_files_in_source": " 見つかりました {numFiles} ソースディレクトリ内のファイル",
559
+ "no_source_files_found": "⚠️ 指定されたディレクトリにソース ファイルが見つかりません",
560
+ "processedFiles": "📊 処理済み {processedFiles} {totalFiles} ファイル",
561
+ "failedToProcessFile": "❌ 処理に失敗しました",
562
+ "found_thisusedkeyssize_unique_": "🔍見つかりました {usedKeysSize} 使用される固有のキー",
563
+ "total_key_usages_totalkeysfoun": "📊 キーの合計使用量: {totalKeysFound}",
564
+ "loading_available_translation_": "📂 利用可能な翻訳キーを読み込んでいます...",
565
+ "found_thisavailablekeyssize_av": "✅ 見つかりました {availableKeysSize} 利用可能なキー",
566
+ "message": "プロジェクト全体での翻訳キーの使用状況を分析しています...",
567
+ "usage_analysis_results": "📊 使用状況分析結果",
568
+ "source_files_scanned_thisfileu": "📁 スキャンされたソースファイル: {fileUsageSize}",
569
+ "available_translation_keys_thi": "利用可能な翻訳キー: {availableKeysSize}",
570
+ "used_translation_keys_thisused": "🔍 使用した翻訳キー: {usedKeysSize}",
571
+ "dynamic_keys_detected_dynamick": " 動的キーが検出されました: {dynamicKeysLength}",
572
+ "unused_keys_unusedkeyslength": "🗑️ 未使用のキー: {unusedKeysLength}",
573
+ "missing_keys_missingkeyslength": " キーが見つからない: {missingKeysLength}",
574
+ "translation_completeness_title": "📈 翻訳の完成度",
575
+ "language_completeness_stats": "{language}: {translated}/{total} キー ({percentage}%)",
576
+ "n_sample_unused_keys": "🗑️ 未使用キーのサンプル (最初の 5 つ):",
577
+ "key": "🔑 {key}",
578
+ "and_unusedkeyslength_5_more": "... そして {count} 未使用のキーが増える",
579
+ "n_sample_missing_keys": "❌ 欠落しているキーのサンプル (最初の 5 ):",
580
+ "and_missingkeyslength_5_more": "... そして {count} 足りない鍵が増える",
581
581
  "n_generating_detailed_report": "📊 詳細レポートを生成中...",
582
582
  "report_saved_reportpath": "📄 レポートが保存されました: {reportPath}",
583
- "n_recommendations": "📋 推奨事項",
584
- "consider_removing_unused_trans": "💡 プロジェクトをクリーンに保つために未使用の翻訳を削除することを検討してください。",
585
- "add_missing_translation_keys_t": "➕ 不足している翻訳キーを追加して一貫性を保つ",
586
- "review_dynamic_keys_manually_t": "🔍 動的キーを手動で確認 (有効な場合があります)",
587
- "all_translation_keys_are_prope": "✅ すべての翻訳キーが適切に使用されています!",
588
- "n_next_steps": "📋 次のステップ",
589
- "2_check_the_detailed_report_fo": "2. 詳細レポートを確認して特定の問題を特定します",
590
- "help_message": "I18n 使用解析ツール 使い方: node i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ(デフォルト: ./src--i18n-dir <dir> I18n ディレクトリ(デフォルト: ./src/locales--output-report 詳細レポートを生成する --output-dir <dir> レポートの出力ディレクトリ(デフォルト: ./reports--help このヘルプを表示する 例: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
583
+ "n_recommendations": "💡 推奨事項:",
584
+ "consider_removing_unused_trans": "🗑️ バンドルのサイズを減らすために、未使用の翻訳を削除することを検討してください。",
585
+ "add_missing_translation_keys_t": "➕ 一貫性を維持するために不足している変換キーを追加します",
586
+ "review_dynamic_keys_manually_t": "🔍 動的キーを手動で確認します (有効である可能性があります)",
587
+ "all_translation_keys_are_prope": "✅ すべての翻訳キーが適切に使用されています。",
588
+ "n_next_steps": "🎯 次のステップ:",
589
+ "2_check_the_detailed_report_fo": "2. 詳細レポートで特定の問題を確認する",
590
+ "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",
591
591
  "1_review_the_analysis_results": "1. コンソールまたは生成されたレポートで分析結果を確認します。",
592
- "2_run_with_outputreport_for_de": "2. 詳細なレポートを得るには --output-report を付けて実行します。",
593
- "3_remove_unused_keys_or_add_mi": "3. 未使用のキーを削除するか、欠落しているキーをソースコードに追加します。",
594
- "4_rerun_analysis_to_verify_imp": "4. 改善を確認するために再度分析を実行します。",
595
- "noSourceFilesFound": "解析するソースファイルが見つかりませんでした。",
592
+ "2_run_with_outputreport_for_de": "2. --output-report を指定して実行すると、詳細なレポートが表示されます。",
593
+ "3_remove_unused_keys_or_add_mi": "3. 未使用のキーを削除するか、不足しているキーをソース コードに追加します。",
594
+ "4_rerun_analysis_to_verify_imp": "4. 分析を再実行して改善を確認します。",
595
+ "noSourceFilesFound": "分析するソース ファイルが見つかりません。",
596
596
  "i18nDirectoryNotFound": "I18n ディレクトリが見つかりません: {i18nDir}",
597
- "noTranslationLanguagesFound": "翻訳言語が見つかりませんでした。",
598
- "failedToAnalyzeFile": "{filePath} の解析に失敗しました: {error}",
599
- "failedToAnalyzeLanguage": "{language} の解析に失敗しました: {error}",
600
- "translationCompletenessAnalysisFailed": "翻訳の完全性分析に失敗しました: {error}",
597
+ "noTranslationLanguagesFound": "翻訳言語が見つかりません。",
598
+ "failedToAnalyzeFile": "ファイルの解析に失敗しました {filePath}: {error}",
599
+ "failedToAnalyzeLanguage": "言語の解析に失敗しました {language}: {error}",
600
+ "translationCompletenessAnalysisFailed": "翻訳完全性分析が失敗しました: {error}",
601
601
  "n": "\\n"
602
602
  },
603
603
  "complete": {
604
- "configLoadedSuccessfully": "設定が正常に読み込まれました",
605
- "configLoadingFailed": "設定の読み込みに失敗しました",
606
- "title": "🌍 I18NTK 翻訳の補完",
607
- "separator": "============================================================",
604
+ "configLoadedSuccessfully": "設定が正常にロードされました",
605
+ "configLoadingFailed": "構成のロードに失敗しました",
606
+ "title": "🌍 I18NTK翻訳完了",
607
+ "separator": "======================================================",
608
608
  "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
609
609
  "sourceLanguage": "🌐 ソース言語: {sourceLanguage}",
610
610
  "dryRunMode": "🧪 ドライランモード - 変更は行われません",
611
611
  "languages": "🌍 利用可能な言語: {languages}",
612
- "addingMissingKeys": "➕ 翻訳ファイルに不足しているキーを追加中...",
613
- "processing": "🔄 {language} を処理中...",
614
- "addedKeys": "✅ {count} 件の不足しているキーを追加しました",
612
+ "addingMissingKeys": "➕ 不足しているキーを翻訳ファイルに追加しています...",
613
+ "processing": "🔄 処理中 {language}...",
614
+ "addedKeys": "✅ 追加されました {count} 鍵がありません",
615
615
  "changeDetails": "📝 {file}: {key}",
616
- "andMore": "...さらに {count} ",
617
- "noChangesNeeded": "✅ {language} には変更の必要がありません",
618
- "summaryTitle": "📊 補完サマリー",
619
- "totalChanges": "📝 合計変更: {totalChanges}",
620
- "languagesProcessed": "🌍 処理された言語: {languagesProcessed}",
621
- "missingKeysAdded": "➕ 追加された不足キー: {missingKeysAdded}",
616
+ "andMore": "...そして {count} もっと",
617
+ "noChangesNeeded": "✅ 変更は必要ありません {language}",
618
+ "summaryTitle": "📊 完成概要",
619
+ "totalChanges": "📝 合計の変更: {totalChanges}",
620
+ "languagesProcessed": "🌍 処理される言語: {languagesProcessed}",
621
+ "missingKeysAdded": "➕ 不足しているキーが追加されました: {missingKeysAdded}",
622
622
  "nextStepsTitle": "📋 次のステップ",
623
- "nextStep1": "1. 使用状況分析を実行:",
624
- "nextStep2": "node i18ntk-usage.js --output-report",
625
- "nextStep3": "2. 翻訳を検証:",
626
- "nextStep4": "node i18ntk-validate.js",
627
- "nextStep5": "3. パターンを分析:",
628
- "nextStep6": "node i18ntk-analyze.js",
629
- "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!",
630
- "runWithoutDryRun": "💡 --dry-run を外して実行すると変更が適用されます",
631
- "deletingOldReport": "🗑️ 古いレポートを削除中...",
632
- "generatingFreshAnalysis": "📊 新しい使用状況分析を生成中...",
623
+ "nextStep1": "1. 使用状況分析を実行します。",
624
+ "nextStep2": "ノード i18ntk-usage.js --output-report",
625
+ "nextStep3": "2. 翻訳を検証します。",
626
+ "nextStep4": "ノード i18ntk-validate.js",
627
+ "nextStep5": "3. パターンを分析します。",
628
+ "nextStep6": "ノード i18ntk-analyze.js",
629
+ "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!",
630
+ "runWithoutDryRun": "💡 --dry-run なしで実行して変更を適用します",
631
+ "deletingOldReport": "🗑️ 古いレポートを削除しています...",
632
+ "generatingFreshAnalysis": "📊 新しい使用状況分析を生成しています...",
633
633
  "couldNotGenerate": "❌ 使用状況分析を生成できませんでした",
634
- "reportNotFound": "📋 使用レポートが見つかりません。共通キーを使用しています...",
635
- "foundMissingKeys": "📋 使用状況分析から {count} 件の不足キーを検出しました",
636
- "couldNotParse": "❌ 使用レポートの解析に失敗しました。共通キーを使用しています..."
634
+ "reportNotFound": "📋 使用状況レポートが見つかりません。共通キーを使用する...",
635
+ "foundMissingKeys": "📋 見つかりました {count} 使用状況分析でキーが欠落している",
636
+ "couldNotParse": "❌ 使用状況レポートを解析できませんでした。共通キーを使用する..."
637
637
  },
638
- "noTranslationLanguagesFound": "翻訳言語が見つかりませんでした。",
639
- "failedToAnalyzeLanguage": "{language} の解析に失敗しました: {error}",
640
- "translationCompletenessAnalysisFailed": "{language} の翻訳完全性分析に失敗しました: {error}",
638
+ "noTranslationLanguagesFound": "翻訳言語が見つかりません",
639
+ "failedToAnalyzeLanguage": "言語の分析に失敗しました",
640
+ "translationCompletenessAnalysisFailed": "翻訳完全性分析が失敗しました",
641
641
  "failedToProcessFile": "ファイルの処理に失敗しました:",
642
642
  "failedToSaveReport": "使用状況レポートの保存に失敗しました: {error}",
643
643
  "i18nDirectoryDoesNotExist": "I18n ディレクトリが存在しません: {dir}",
644
- "reportSavedTo": "使用状況レポートの保存先: {reportPath}",
645
- "sourceDirectoryDoesNotExist": "ソース ディレクトリが存在しません: {dir}"
644
+ "reportSavedTo": "使用状況レポートの保存場所: {reportPath}",
645
+ "sourceDirectoryDoesNotExist": "ソースディレクトリが存在しません: {dir}"
646
646
  },
647
647
  "validate": {
648
- "help_message": "I18n 翻訳バリデータ 使い方: node i18ntk-validate.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ (デフォルト: ./locales) --i18n-dir <dir> I18n ディレクトリ (デフォルト: ./locales) --output-report 詳細レポートを生成 --output-dir <dir> レポートの出力ディレクトリ (デフォルト: ./i18ntk-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",
649
- "title": "🔍 I18n 翻訳バリデータ",
650
- "message": "バリデーションプロセスを開始しています…",
648
+ "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",
649
+ "title": "🔍 I18n 翻訳バリデーター",
650
+ "message": "検証プロセスを開始しています...",
651
651
  "sourceDirectory": "📁 ソースディレクトリ: {dir}",
652
652
  "sourceLanguage": "🌍 ソース言語: {sourceLanguage}",
653
- "strictMode": "⚙️ 厳密モード: {mode}",
654
- "noTargetLanguages": "ターゲット言語が設定されていません。ターゲットの検証をスキップします。\"i18ntk init --languages=de,fr\" で言語を追加してください。",
655
- "validatingLanguages": "🌍 バリデート中の言語: {langs}",
656
- "validatingLanguage": "🔍 言語をバリデートしています: {lang}",
657
- "filesCount": "📄 ファイル数: {count}",
658
- "keysCount": "🔑 キー数: {count}",
659
- "missingFilesCount": "📁 欠落ファイル数: {count}",
660
- "syntaxErrorsCount": "❌ 構文エラー数: {count}",
661
- "translationPercentage": "🎯 翻訳率: {percentage}% ({translated}/{total} キー)",
662
- "validationSummary": "📊 バリデーションサマリー",
663
- "validation_failed": "❌ バリデーション失敗: {error}",
653
+ "strictMode": "⚙️ストリクトモード: {mode}",
654
+ "noTargetLanguages": "ターゲット言語が設定されていません。ターゲットの検証をスキップします。 「i18ntk init --langages=de,fr」で言語を追加します。",
655
+ "validatingLanguages": "🌍 言語の検証: {langs}",
656
+ "validatingLanguage": "🔍 言語の検証: {lang}",
657
+ "filesCount": "📄 ファイル: {count}",
658
+ "keysCount": "🔑 キー: {count}",
659
+ "missingFilesCount": "📁 不足しているファイル: {count}",
660
+ "syntaxErrorsCount": "❌ 構文エラー: {count}",
661
+ "translationPercentage": "🎯 翻訳: {percentage}% ({translated}/{total} キー)",
662
+ "validationSummary": "📊 検証の概要",
663
+ "validation_failed": "❌ 検証に失敗しました: {error}",
664
664
  "totalErrors": "❌ 合計エラー数: {count}",
665
- "totalWarnings": "⚠️ 合計警告数: {count}",
665
+ "totalWarnings": "⚠️ 警告の総数: {count}",
666
666
  "errorsSection": "❌ エラー",
667
- "warningsSection": "⚠️ 警告",
667
+ "warningsSection": "⚠️ 警告",
668
668
  "recommendationsSection": "💡 推奨事項",
669
- "fixErrorsFirst": "1. まずすべてのエラーを修正",
670
- "resolveMissingFilesAndSyntaxErrors": "1. 欠落ファイルと構文エラーを解消",
671
- "fixStructuralInconsistencies": "2. 構造的不整合を修正",
672
- "completeMissingTranslations": "3. 欠落している翻訳を補完",
673
- "rerunValidation": "4. 修正を確認するためにバリデーションを再実行",
674
- "addressWarnings": "警告に対処して品質を向上",
675
- "reviewWarnings": "警告を確認し、適宜修正",
676
- "considerRunningWithStrict": "2. --strict フラグを使用して厳密なバリデーションを検討",
677
- "allValidationsPassed": "🎉 すべてのバリデーションが成功しました!",
678
- "considerRunningUsageAnalysis": "使用状況分析を実行することを検討: node i18ntk-usage.js",
679
- "deletedOldReport": "🗑️ 古いバリデーションレポートを削除しました",
669
+ "fixErrorsFirst": "1.最初にすべてのエラーを修正します",
670
+ "resolveMissingFilesAndSyntaxErrors": "1. 不足しているファイルと構文エラーを解決する",
671
+ "fixStructuralInconsistencies": "2. 構造的な矛盾を修正する",
672
+ "completeMissingTranslations": "3. 不足している翻訳を完了する",
673
+ "rerunValidation": "4. 検証を再実行して修正を確認する",
674
+ "addressWarnings": "品質を向上させるために警告に対処する",
675
+ "reviewWarnings": "警告を確認し、必要に応じて修正します",
676
+ "considerRunningWithStrict": "2. より厳密な検証を行うには、--strict フラグを使用して実行することを検討してください。",
677
+ "allValidationsPassed": "🎉 すべての検証に合格しました!",
678
+ "considerRunningUsageAnalysis": "使用状況分析の実行を検討してください: ノード i18ntk-usage.js",
679
+ "deletedOldReport": "🗑️ 古い検証レポートを削除しました",
680
680
  "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
681
681
  "i18nDir": "🌐 I18n ディレクトリ: {i18nDir}",
682
- "loadingTranslationFiles": "📋 翻訳ファイルを読み込んでいます…",
683
- "foundTranslationFilesCount": "✅ {count} 件の翻訳ファイルを検出しました",
684
- "analyzingTranslations": "🔍 翻訳を分析中…",
685
- "validationCompletedSuccessfully": "🎉 バリデーションが正常に完了しました!",
686
- "validationErrorsFound": "⚠️ バリデーションエラーが見つかりました: {count}",
687
- "validationWarningsFound": "⚠️ バリデーション警告が見つかりました: {count}",
688
- "validationPassed": "✅ エラーなしでバリデーションに合格しました",
689
- "validationFailed": "バリデーション失敗: {error}",
690
- "startingValidationProcess": "🔍 バリデーションプロセスを開始しています…",
691
- "validationProcessCompletedSuccessfully": "✅ バリデーションプロセスが正常に完了しました",
682
+ "loadingTranslationFiles": "📋 翻訳ファイルを読み込み中...",
683
+ "foundTranslationFilesCount": "✅ 見つかりました {count} 翻訳ファイル",
684
+ "analyzingTranslations": "🔍 翻訳を分析中...",
685
+ "validationCompletedSuccessfully": "🎉 検証が正常に完了しました。",
686
+ "validationErrorsFound": "⚠️ 検証エラーが見つかりました: {count}",
687
+ "validationWarningsFound": "⚠️ 検証警告が見つかりました: {count}",
688
+ "validationPassed": "✅ エラーなしで検証に合格しました",
689
+ "validationFailed": "検証が失敗しました: {error}",
690
+ "startingValidationProcess": "🔍 検証プロセスを開始しています...",
691
+ "validationProcessCompletedSuccessfully": "✅ 検証プロセスが正常に完了しました",
692
692
  "stackTrace": "スタックトレース: {stack}",
693
693
  "authenticationFailed": "❌ 認証に失敗しました。アクセスが拒否されました。",
694
- "fatalValidationError": "❌ 致命的なバリデーションエラー: {error}",
695
- "configAccess": "設定をバリデーションのために読み込んでいます",
696
- "configValidated": "設定が正常に検証されました",
697
- "configError": "設定エラー: {error}",
698
- "validatorInit": "I18n バリデータを初期化しています",
699
- "validatorInitialized": "I18n バリデータが正常に初期化されました",
694
+ "fatalValidationError": "❌ 致命的な検証エラー: {error}",
695
+ "configAccess": "検証のための構成へのアクセス",
696
+ "configValidated": "構成は正常に検証されました",
697
+ "configError": "構成エラー: {error}",
698
+ "validatorInit": "I18n バリデーターを初期化しています",
699
+ "validatorInitialized": "I18n バリデーターが正常に初期化されました",
700
700
  "validatorInitError": "バリデータ初期化エラー: {error}",
701
- "argsParsing": "コマンドライン引数を解析しています",
701
+ "argsParsing": "コマンドライン引数の解析",
702
702
  "argsParsed": "コマンドライン引数が正常に解析されました",
703
703
  "argsParseError": "引数解析エラー: {error}",
704
704
  "languagesScan": "利用可能な言語をスキャンしています",
705
- "languagesFound": "{count} 言語が見つかりました",
706
- "languagesScanError": "言語スキャンエラー: {error}",
707
- "filesScan": "{language} のファイルを {count} 件検出",
705
+ "languagesFound": "見つかった {count} 言語",
706
+ "languagesScanError": "言語スキャン エラー: {error}",
707
+ "filesScan": "見つかった {count} 内のファイル {language}",
708
708
  "filesScanError": "ファイルスキャンエラー: {error}",
709
- "jsonValidated": "JSON 構文を検証済み: {filePath}",
710
- "jsonValidationError": "JSON 構文エラー: {error}",
711
- "languageValidation": "言語をバリデートしています: {language}",
712
- "languageValidationError": "言語バリデーションエラー: {error}",
713
- "fileDeleted": "ファイルを削除しました",
714
- "runStarted": "バリデーション実行を開始しました",
715
- "runCompleted": "バリデーション実行が正常に完了しました",
716
- "runError": "バリデーション実行失敗: {error}",
717
- "scriptExecution": "スクリプト実行中",
718
- "validationCompleted": "バリデーション完了",
719
- "validationError": "バリデーションエラー: {error}",
709
+ "jsonValidated": "検証された JSON 構文: {filePath}",
710
+ "jsonValidationError": "JSON 検証エラー: {error}",
711
+ "languageValidation": "言語を検証しています: {language}",
712
+ "languageValidationError": "言語検証エラー: {error}",
713
+ "fileDeleted": "ファイルが削除されました",
714
+ "runStarted": "検証の実行を開始します",
715
+ "runCompleted": "検証の実行が正常に完了しました",
716
+ "runError": "検証の実行が失敗しました: {error}",
717
+ "scriptExecution": "スクリプトの実行",
718
+ "validationCompleted": "検証が完了しました",
719
+ "validationError": "検証エラー: {error}",
720
720
  "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
721
721
  "languageHeader": "🌐 言語: {language}",
722
- "validationResults": "📊 バリデーション結果",
722
+ "validationResults": "📊 検証結果",
723
723
  "noErrors": "✅ エラーは見つかりませんでした",
724
724
  "noWarnings": "✅ 警告は見つかりませんでした",
725
- "summaryHeader": "📋 全体サマリー",
726
- "progressIndicator": "⏳ 処理中…",
725
+ "summaryHeader": "📋 全体的な概要",
726
+ "progressIndicator": "⏳ 処理中...",
727
727
  "completedIndicator": "✅ 完了",
728
728
  "errorIndicator": "❌ エラー",
729
- "warningIndicator": "⚠️ 警告",
730
- "infoIndicator": "ℹ️ 情報",
731
- "sourceDirNotConfigured": "ソースディレクトリが設定されていません",
729
+ "warningIndicator": "⚠️警告",
730
+ "infoIndicator": "ℹ️ 情報",
731
+ "sourceDirNotConfigured": "ソースディレクトリが構成されていません",
732
732
  "sourceLanguageNotConfigured": "ソース言語が設定されていません",
733
- "translationFunctionNotInitialized": "翻訳関数が適切に初期化されていません",
734
- "sourceLanguageDirectoryNotFound": "ソース言語ディレクトリが見つかりませんでした",
735
- "specifiedLanguageNotFound": "指定された言語が見つかりませんでした",
736
- "noJsonFilesFound": "ソースディレクトリに JSON ファイルが見つかりません: {sourceDir}",
733
+ "translationFunctionNotInitialized": "翻訳関数が正しく初期化されていません",
734
+ "sourceLanguageDirectoryNotFound": "ソース言語ディレクトリが見つかりません",
735
+ "specifiedLanguageNotFound": "指定された言語が見つかりません",
736
+ "noJsonFilesFound": "ソース ディレクトリに JSON ファイルが見つかりません: {sourceDir}",
737
737
  "i18nDirectoryNotFound": "I18n ディレクトリが見つかりません: {i18nDir}",
738
- "invalidDirectoryPaths": "無効なディレクトリパスが検出されました",
739
- "invalidSampleFilePath": "無効なサンプルファイルパス",
738
+ "invalidDirectoryPaths": "無効なディレクトリ パスが検出されました",
739
+ "invalidSampleFilePath": "サンプルファイルのパスが無効です",
740
740
  "failedToCreateSampleTranslationFile": "サンプル翻訳ファイルの作成に失敗しました",
741
741
  "invalidFilePathDetected": "無効なファイルパスが検出されました",
742
742
  "failedToWriteFile": "ファイルの書き込みに失敗しました: {filePath}",
@@ -745,777 +745,777 @@
745
745
  },
746
746
  "adminCli": {
747
747
  "setupPinProtectionTitle": "🔐 管理者PIN保護の設定",
748
- "setupPinProtectionDescription": "これにより管理操作に46桁のPINが必要になります。",
749
- "enablePinProtectionPrompt": "管理者PIN保護を有効にしますか?",
750
- "setupCancelled": "管理者PIN保護の設定がキャンセルされました。",
751
- "enterPinPrompt": "46桁のPINを入力してください:",
752
- "pinFormatError": "❌ PINは46桁でなければなりません。もう一度お試しください。",
753
- "confirmPinPrompt": "PINを確認してください:",
754
- "pinMismatchError": "❌ PINが一致しません。もう一度お試しください。",
755
- "pinProtectionEnabledSuccess": "✅ 管理者PIN保護が有効になりました!",
756
- "pinRecoveryWarning": "⚠️ PINを忘れないでください。失われた場合は復旧できません。",
757
- "setupPinProtectionFailed": "❌ 管理者PIN保護の設定に失敗しました。",
758
- "errorSettingUpPin": "❌ 管理者PINの設定中にエラーが発生しました: {message}",
759
- "authRequiredForOperation": "🔐 次の操作には管理者認証が必要です: {operation}",
760
- "invalidPinFormat": "❌ 無効なPIN形式です。PINは46桁である必要があります。",
761
- "authenticationSuccess": "✅ 認証に成功しました!",
762
- "invalidPinAttemptsRemaining": "❌ 無効なPINです。残り{remaining}回の試行が可能です。",
748
+ "setupPinProtectionDescription": "これには、管理操作のために 46 桁の PIN が必要になります。",
749
+ "enablePinProtectionPrompt": "管理者 PIN 保護を有効にしますか?",
750
+ "setupCancelled": "管理者 PIN 保護の設定がキャンセルされました。",
751
+ "enterPinPrompt": "46 桁の PIN を入力してください:",
752
+ "pinFormatError": "❌ PIN 46 桁である必要があります。もう一度試してください。",
753
+ "confirmPinPrompt": "PIN を確認します:",
754
+ "pinMismatchError": "❌ PIN が一致しません。もう一度試してください。",
755
+ "pinProtectionEnabledSuccess": "✅ 管理者 PIN 保護が正常に有効になりました。",
756
+ "pinRecoveryWarning": "⚠️ PIN を覚えておいてください - 紛失した場合は回復できません。",
757
+ "setupPinProtectionFailed": "❌ 管理者 PIN 保護のセットアップに失敗しました。",
758
+ "errorSettingUpPin": "❌ 管理者 PIN の設定中にエラーが発生しました: {message}",
759
+ "authRequiredForOperation": "🔐 以下の場合に管理者認証が必要です: {operation}",
760
+ "invalidPinFormat": "❌ PIN の形式が無効です。 PIN 46 桁である必要があります。",
761
+ "authenticationSuccess": "✅ 認証に成功しました!",
762
+ "invalidPinAttemptsRemaining": "❌ PIN が無効です。 {remaining} 残りの試行数。",
763
763
  "authenticationFailedAccessDenied": "❌ 認証に失敗しました。アクセスが拒否されました。",
764
764
  "authenticationError": "❌ 認証エラー: {message}",
765
- "pinProtectionNotEnabled": "管理者PIN保護は現在有効になっていません。",
765
+ "pinProtectionNotEnabled": "管理者 PIN 保護は現在有効になっていません。",
766
766
  "disablingPinProtectionTitle": "🔓 管理者PIN保護の無効化",
767
- "confirmDisablePinProtection": "管理者PIN保護を無効にしてもよろしいですか?",
768
- "operationCancelled": "操作がキャンセルされました。",
769
- "pinProtectionDisabledSuccess": "✅ 管理者PIN保護が無効化されました。",
770
- "disablePinProtectionFailed": "❌ 管理者PIN保護の無効化に失敗しました。",
771
- "errorDisablingPinProtection": "❌ 管理者PIN保護の無効化中にエラーが発生しました: {message}",
772
- "adminProtectionStatusTitle": "🔐 管理者保護のステータス",
767
+ "confirmDisablePinProtection": "管理者 PIN 保護を無効にしてもよろしいですか?",
768
+ "operationCancelled": "操作はキャンセルされました。",
769
+ "pinProtectionDisabledSuccess": "✅ 管理者PIN保護が無効になっています。",
770
+ "disablePinProtectionFailed": "❌ 管理者 PIN 保護を無効にできませんでした。",
771
+ "errorDisablingPinProtection": "❌ 管理者保護を無効にするエラー: {message}",
772
+ "adminProtectionStatusTitle": "🔐 管理者の保護ステータス",
773
773
  "statusEnabled": "ステータス: ✅ 有効",
774
- "protectionDetails": "保護: 管理操作には46桁のPINが必要",
775
- "lockoutDetails": "ロックアウト: 3回の失敗で15分間ロック",
774
+ "protectionDetails": "保護: 管理操作には 46 桁の PIN が必要です",
775
+ "lockoutDetails": "ロックアウト: 3 回の試行失敗 = 15 分間のロックアウト",
776
776
  "statusDisabled": "ステータス: ❌ 無効",
777
- "noAuthRequired": "保護: 認証は不要",
778
- "unprotectedRisk": "リスク: 管理操作は保護されていません",
779
- "errorCheckingAdminStatus": "❌ 管理者ステータスの確認中にエラーが発生しました: {message}",
777
+ "noAuthRequired": "保護: 認証は必要ありません",
778
+ "unprotectedRisk": "リスク: 管理操作が保護されていない",
779
+ "errorCheckingAdminStatus": "❌ 管理ステータスのチェック中にエラーが発生しました: {message}",
780
780
  "authRequired": "🔐 管理者認証が必要です。",
781
- "invalidPin": "❌ 無効なPINです。",
782
- "authSuccess": "✅ 認証に成功しました!",
781
+ "invalidPin": "❌ PIN が無効です。",
782
+ "authSuccess": "✅ 認証に成功しました!",
783
783
  "adminPinSetupCli": "admin_pin_setup_cli",
784
784
  "adminAuthFailedCli": "admin_auth_failed_cli",
785
785
  "adminAuthDisabledCli": "admin_auth_disabled_cli",
786
- "protectedAccess": "保護されたアクセス: 機密操作には管理者認証が必要です。",
787
- "enterPin": "管理者PINを入力してください:",
786
+ "protectedAccess": "保護されたアクセス: 機密性の高い操作には管理者認証が必要です。",
787
+ "enterPin": "管理者 PIN を入力してください:",
788
788
  "accessGranted": "アクセスが許可されました。"
789
789
  },
790
790
  "adminPin": {
791
- "setup_title": "🔐 管理者PIN設定",
792
- "setup_separator": "============================================================",
793
- "setup_description": "機密設定へのアクセスのために46桁のPINを作成します。",
794
- "required_for_title": "このPINは以下の操作に必要です:",
791
+ "setup_title": "🔐 管理者PINの設定",
792
+ "setup_separator": "======================================================",
793
+ "setup_description": "管理者が機密設定にアクセスするために、46 桁の PIN を作成します。",
794
+ "required_for_title": "この PIN は次の場合に必要になります。",
795
795
  "required_for_1": "• セキュリティ設定の変更",
796
- "required_for_2": "• 高度な設定の変更",
796
+ "required_for_2": "• 詳細設定の変更",
797
797
  "required_for_3": "• デバッグツールへのアクセス",
798
- "required_for_4": "• 設定のリセット",
799
- "setup_note": "💡 メモ: 入力中はアスタリスク(*)が表示されますが、これはマスク文字です。",
800
- "setup_digits_only": "PINには09の数字のみ使用できます。",
801
- "invalid_pin_length": "❌ 無効なPINです。46桁の数字で入力してください。",
798
+ "required_for_4": "• 設定をリセットする",
799
+ "setup_note": "💡 注: 入力するとアスタリスク (*) が表示されます。これらは単なるマスキング文字です。",
800
+ "setup_digits_only": "PIN 数字として受け入れられるのは 09 の数字のみです。",
801
+ "invalid_pin_length": "❌ PIN が無効です。 46 桁である必要があります (0 ~ 9 の数字のみ)。",
802
802
  "invalid_pin_example": "例: 1234 または 567890",
803
- "pins_do_not_match": "❌ PINが一致しません。",
804
- "setup_success": "✅ 管理者PINが正常に設定されました!",
805
- "setup_warning": "⚠️ このPINを安全に保管してください。失われた場合は復旧できません。",
806
- "setup_error": "❌ PINの設定中にエラーが発生しました:",
807
- "session_expired": "⏰ 非アクティブのため、管理者セッションの有効期限が切れました。",
808
- "no_pin_set_setting_up": "⚠️ 管理者PINが設定されていません。PINを設定します...",
809
- "no_pin_configured_access_denied": "⚠️ 管理者PINが設定されていません。アクセスが拒否されました。",
810
- "use_admin_settings_to_set_pin": "💡 まず管理設定からPINを設定してください。",
811
- "locked_out": "🔒 失敗が多すぎたため、管理者アクセスはロックされています。",
812
- "wait_before_retry": "再試行する前に5分待ってください。",
803
+ "pins_do_not_match": "❌ PIN が一致しません。",
804
+ "setup_success": "✅ 管理者PINが正常に設定されました!",
805
+ "setup_warning": "⚠️ この PIN は安全に保管してください。紛失した場合は回復できません。",
806
+ "setup_error": "❌ PIN の設定エラー:",
807
+ "session_expired": "⏰ 非アクティブのため、管理者セッションが期限切れになりました。",
808
+ "no_pin_set_setting_up": "⚠️ 管理者PINが設定されていません。 PIN を設定中...",
809
+ "no_pin_configured_access_denied": "⚠️ 管理者 PIN が設定されていません。アクセスが拒否されました。",
810
+ "use_admin_settings_to_set_pin": "💡 まず管理者設定を使用して PIN を設定します。",
811
+ "locked_out": "🔒 試行失敗が多すぎるため、管理者アクセスがロックされています。",
812
+ "wait_before_retry": "5 分待ってから再試行してください。",
813
813
  "access_granted": "✅ 管理者アクセスが許可されました。",
814
- "incorrect_pin": "❌ PINが間違っています。残り{attempts}回の試行が可能です。",
815
- "verify_pin_error": "❌ PINの確認中にエラーが発生しました:",
814
+ "incorrect_pin": "❌ PIN が間違っています。 {attempts} 残りの試行数。",
815
+ "verify_pin_error": "❌ PIN の検証中にエラーが発生しました:",
816
816
  "already_configured": "✅ 管理者PINはすでに設定されています。",
817
- "optional_setup_title": "🔐 管理者PIN設定(オプション)",
818
- "optional_setup_description": "管理者PIN保護を有効にすると、以下の操作でセキュリティが向上します:",
819
- "setup_prompt": "管理者PINを設定しますか? (y/N):",
820
- "skipping_setup": "⏭️ 管理者PINの設定をスキップしました。後で設定できます。",
821
- "setup_prompt_error": "❌ PIN設定プロンプト中にエラーが発生しました:",
822
- "protectedAccess": "保護されたアクセス: 機密操作には管理者認証が必要です。",
823
- "enterPin": "管理者PINを入力してください:",
817
+ "optional_setup_title": "🔐 管理者PINの設定(オプション)",
818
+ "optional_setup_description": "管理者 PIN 保護により、次のような機密性の高い操作に対するセキュリティが追加されます。",
819
+ "setup_prompt": "管理者PINを設定しますか? (y/N):",
820
+ "skipping_setup": "⏭️ 管理者 PIN の設定をスキップします。後から設定で設定することもできます。",
821
+ "setup_prompt_error": "❌ PIN 設定プロンプト中のエラー:",
822
+ "protectedAccess": "保護されたアクセス: 機密性の高い操作には管理者認証が必要です。",
823
+ "enterPin": "管理者 PIN を入力してください:",
824
824
  "accessGranted": "アクセスが許可されました。",
825
- "invalidPin": "❌ 無効なPINです。もう一度お試しください。",
826
- "weak_pin_warning": "⚠️ 警告: このPINは弱いか一般的すぎる可能性があります。",
827
- "weak_pin_suggestion": "💡 さまざまな数字を使用した、より強力なPINを検討してください。",
828
- "use_anyway_prompt": "それでも使用する場合は「yes」と入力するか、Enterキーを押して別のPINを選択してください:",
829
- "enter_new_pin": "新しい管理者PINを入力してください (46桁):",
830
- "confirm_pin": "管理者PINを確認してください:",
825
+ "invalidPin": "❌ PIN が無効です。もう一度試してください。",
826
+ "weak_pin_warning": "⚠️ 警告: この PIN は弱いか、一般的なもののようです。",
827
+ "weak_pin_suggestion": "💡 さまざまな桁のより強力な PIN の使用を検討してください。",
828
+ "use_anyway_prompt": "とにかく使用する場合は「yes」と入力するか、Enter キーを押して別の PIN を選択します。",
829
+ "enter_new_pin": "新しい管理者 PIN (46 桁) を入力してください:",
830
+ "confirm_pin": "管理者PINを確認します:",
831
831
  "not_set": "未設定",
832
832
  "pin_display_mask": "####"
833
833
  },
834
834
  "debug": {
835
835
  "title": "🔧 デバッグツール",
836
- "separator": "============================================================",
836
+ "separator": "======================================================",
837
837
  "mainDebuggerSystemDiagnostics": "1. システム診断",
838
838
  "_consoleTranslationsCheck": "// 2. コンソール翻訳チェック",
839
- "_exportMissingKeys": "// 3. 欠落翻訳キーをエクスポート",
840
- "_replaceHardcodedConsole": "// 4. ハードコードされたコンソール文字列を置換",
841
- "_consoleKeyChecker": "// 5. コンソールキー検査",
839
+ "_exportMissingKeys": "// 3. 不足している翻訳キーをエクスポートする",
840
+ "_replaceHardcodedConsole": "// 4. ハードコードされたコンソール文字列を置換する",
841
+ "_consoleKeyChecker": "// 5. コンソールキーチェッカー",
842
842
  "debugLogs": "2. デバッグログ",
843
843
  "backToMainMenu": "0. メインメニューに戻る",
844
- "selectOption": "デバッグツールを選択してください:",
845
- "runningDebugTool": "{displayName}を実行中...",
846
- "debugToolNotFound": "❌ デバッグツールが見つかりません: {toolName}",
847
- "errorRunningDebugTool": "⚠️ デバッグツールの実行中にエラーが発生しました: {error}",
848
- "recentDebugLogs": "📄 最新のデバッグログ",
849
- "noDebugLogsFound": "❌ デバッグログが見つかりません。",
850
- "debugLogsDirectoryNotFound": "❌ デバッグログディレクトリが見つかりません。",
851
- "selectLogPrompt": "表示するログファイルを選択してください (1-{count}):",
852
- "invalidChoiceSelectRange": "無効な選択です。範囲内から選択してください。",
853
- "contentOf": "{filename}の内容:",
854
- "pressEnterToContinue": "続行するにはEnterキーを押してください..."
844
+ "selectOption": "デバッグ ツールを選択します。",
845
+ "runningDebugTool": "ランニング {displayName}...",
846
+ "debugToolNotFound": "❌ デバッグ ツールが見つかりません: {toolName}",
847
+ "errorRunningDebugTool": "デバッグ ツールの実行中にエラーが発生しました '{displayName}': {error}",
848
+ "recentDebugLogs": "📄 最近のデバッグログ",
849
+ "noDebugLogsFound": "❌ デバッグ ログが見つかりません。",
850
+ "debugLogsDirectoryNotFound": "❌ デバッグ ログ ディレクトリが見つかりません。",
851
+ "selectLogPrompt": "表示するログ ファイルを選択してください (1-{count}):",
852
+ "invalidChoiceSelectRange": "無効な選択です。可能な範囲からお選びください。",
853
+ "contentOf": "📄の内容 {filename}:",
854
+ "pressEnterToContinue": "続行するには Enter キーを押してください..."
855
855
  },
856
856
  "detect_language_mismatches": {
857
- "tool_title": "🔍 言語不一致検出ツール",
858
- "separator": "=====================================",
859
- "analyzing_file": "📄 {language}.json を解析中…",
860
- "error_analyzing_file": "❌ {filename} の解析エラー: {errorMessage}",
861
- "results_title": "📊 言語不一致検出結果",
862
- "results_separator": "========================================",
863
- "summary_title": "📋 サマリー:",
864
- "total_files_analyzed": "解析したファイル数: {totalFiles}",
865
- "files_with_mismatches": "不一致のあるファイル数: {filesWithMismatches}",
866
- "total_mismatches_found": "発見された不一致の総数: {totalMismatches}",
867
- "no_mismatches_found": "✅ 言語不一致は見つかりませんでした!すべての翻訳が正しい言語で記述されています。",
868
- "detailed_results_title": "🔍 詳細結果:",
857
+ "tool_title": "🔍 言語の不一致検出ツール",
858
+ "separator": "====================================",
859
+ "analyzing_file": "📄 分析中 {language}.json...",
860
+ "error_analyzing_file": "❌ エラー分析中 {filename}: {errorMessage}",
861
+ "results_title": "📊 言語の不一致の検出結果",
862
+ "results_separator": "=======================================",
863
+ "summary_title": "📋 概要:",
864
+ "total_files_analyzed": "分析されたファイルの合計: {totalFiles}",
865
+ "files_with_mismatches": "不一致のあるファイル: {filesWithMismatches}",
866
+ "total_mismatches_found": "見つかった不一致の合計: {totalMismatches}",
867
+ "no_mismatches_found": "✅ 言語の不一致は見つかりませんでした。すべての翻訳は正しい言語で行われているようです。",
868
+ "detailed_results_title": "🔍 詳細な結果:",
869
869
  "file_mismatch_header": "📄 {filename} ({language})",
870
- "mismatches_count": "不一致 {count} 件を発見:",
871
- "mismatch_details": "{index}. キー: {key}",
872
- "mismatch_value": "値: \"{value}\"",
873
- "mismatch_issue": "問題: {description}",
870
+ "mismatches_count": "見つかった {count} 不一致:",
871
+ "mismatch_details": "{index}。鍵: {key}",
872
+ "mismatch_value": "価値: \"{value}\"",
873
+ "mismatch_issue": "問題: {description}",
874
874
  "recommendations_title": "💡 推奨事項:",
875
- "recommendation_1": "1. [TRANSLATE] とマークされたエントリをすべて確認し翻訳する",
876
- "recommendation_2": "2. 言語プレフィックス(例: [DE], [FR])を適切な翻訳に置き換える",
877
- "recommendation_3": "3. 英語テキストを対象言語に翻訳する",
878
- "recommendation_4": "4. すべてのユーザー向けテキストにネイティブ言語の表現を使用する",
879
- "recommendation_5": "5. 修正後にもう一度ツールを実行し、修正を検証する",
880
- "detailed_report_saved": "📄 詳細レポートを保存しました: {reportPath}",
881
- "error_saving_report": "❌ レポート保存エラー: {errorMessage}",
875
+ "recommendation_1": "1. [TRANSLATE] のマークが付いたすべてのエントリを確認して翻訳します。",
876
+ "recommendation_2": "2. 言語の接頭辞 ([DE][FR] など) を適切な翻訳に置き換えます。",
877
+ "recommendation_3": "3. 英語のテキストを適切なターゲット言語に翻訳します。",
878
+ "recommendation_4": "4. ユーザーに表示されるすべてのテキストに同等の母国語を使用する",
879
+ "recommendation_5": "5. 修正を行った後、このツールを再度実行して修正を確認します。",
880
+ "detailed_report_saved": "📄 詳細レポートの保存場所: {reportPath}",
881
+ "error_saving_report": "❌ レポートの保存中にエラーが発生しました: {errorMessage}",
882
882
  "auto_fix_mode": "🔧 自動修正モード {dryRun}",
883
- "auto_fix_separator": "=====================================",
884
- "fixed_file": "✅ {filename} を修正しました",
885
- "auto_fix_summary_title": "📊 自動修正サマリー:",
886
- "total_fixes_applied": "適用された修正の総数: {count}",
887
- "preview_fixes_title": "🔍 修正プレビュー:",
888
- "fix_details": "{file}: {key} 旧: \"{old}\" 新: \"{new}\"",
889
- "more_fixes": "…さらに{count}件の修正",
890
- "run_with_apply_fixes": "💡 --apply フラグを付けて実行するとこれらの修正を適用します",
883
+ "auto_fix_separator": "====================================",
884
+ "fixed_file": "✅ 修正済み {filename}",
885
+ "auto_fix_summary_title": "📊 自動修正の概要:",
886
+ "total_fixes_applied": "適用された修正の合計: {count}",
887
+ "preview_fixes_title": "🔍 修正のプレビュー:",
888
+ "fix_details": "{file}: {key} 古い: \"{old}\" 新しい: \"{new}\"",
889
+ "more_fixes": "... そして {count} さらに修正",
890
+ "run_with_apply_fixes": "💡 これらの修正を適用するには --apply を指定して実行します",
891
891
  "error_general": "❌ エラー:",
892
- "mainDebuggerSystemDiagnostics": "メインデバッガー / システム診断",
893
- "exportMissingKeys": "欠落キーをエクスポート",
894
- "replaceHardcodedConsole": "ハードコードされたコンソール文字列を置換",
895
- "consoleKeyChecker": "コンソールキー検査",
892
+ "mainDebuggerSystemDiagnostics": "メインデバッガ/システム診断",
893
+ "exportMissingKeys": "不足しているキーをエクスポートする",
894
+ "replaceHardcodedConsole": "ハードコードされたコンソールを置き換える",
895
+ "consoleKeyChecker": "コンソールキーチェッカー",
896
896
  "debugLogs": "デバッグログ",
897
897
  "backToMainMenu": "メインメニューに戻る",
898
- "invalidChoiceSelectRange": "❌ 無効な選択です。表示された範囲内の番号を選択してください。",
899
- "runningDebugTool": "デバッグツールを実行中: {displayName}",
900
- "debugToolNotFound": "デバッグツール '{toolName}' が見つかりません。",
901
- "recentDebugLogs": "最新のデバッグログ",
902
- "noDebugLogsFound": "デバッグログが見つかりません。",
898
+ "invalidChoiceSelectRange": "❌ 選択が無効です。表示された範囲内の数値を選択してください。",
899
+ "runningDebugTool": "デバッグ ツールの実行: {displayName}",
900
+ "debugToolNotFound": "デバッグツール「{toolName}' 見つかりません。",
901
+ "recentDebugLogs": "最近のデバッグ ログ",
902
+ "noDebugLogsFound": "デバッグ ログが見つかりません。",
903
903
  "logEntry": "ログエントリ: {timestamp} - {message}",
904
- "debugLogsDirectoryNotFound": "デバッグログディレクトリが見つかりません。"
904
+ "debugLogsDirectoryNotFound": "デバッグ ログ ディレクトリが見つかりません。"
905
905
  },
906
906
  "help": {
907
907
  "title": "📊 I18NTK 管理ヘルプ",
908
- "usage": "使用法: node i18ntk-manage.js [options]",
909
- "interactiveMode": "💡 直接実行するには: node i18ntk-manage.js --command=<command>",
910
- "showHelp": "📖 利用可能なコマンドを見るには: node i18ntk-manage.js --help",
908
+ "usage": "使用法: ノード main/manage/index.js [オプション]",
909
+ "interactiveMode": "💡 使用: ノー​​ド main/manage/index.js --command=<command> 直接実行の場合",
910
+ "showHelp": "📖 使用可能なコマンドについては、node main/manage/index.js --help を使用してください。",
911
911
  "availableCommands": "📖 利用可能なコマンド:",
912
- "initProject": "🚀 新しい言語を初期化",
913
- "analyzeTranslations": "🔍 翻訳を分析",
914
- "validateTranslations": "✅ 翻訳を検証",
915
- "checkUsage": "📊 キー使用状況をチェック",
916
- "initCommand": "init - 新しい言語を初期化",
917
- "analyzeCommand": "analyze - 翻訳を分析",
918
- "validateCommand": "validate - 翻訳を検証",
919
- "usageCommand": "usage - キー使用状況をチェック",
920
- "sizingCommand": "sizing - サイズを分析",
921
- "completeCommand": "complete - 翻訳を完了 (100% カバレッジ)",
922
- "summaryCommand": "summary - プロジェクトのステータスを表示",
923
- "debugCommand": "debug - 翻訳の問題をデバッグ",
924
- "scannerCommand": "scanner - プロジェクトをスキャン",
925
- "translateCommand": "translate - 自動翻訳 (ベータ版)",
912
+ "initProject": "🚀 新しい言語を初期化する",
913
+ "analyzeTranslations": "🔍 翻訳を分析する",
914
+ "validateTranslations": "✅ 翻訳を検証する",
915
+ "checkUsage": "📊 キーの使用状況を確認する",
916
+ "initCommand": "init - 新しい言語を初期化する",
917
+ "analyzeCommand": "分析 - 翻訳を分析する",
918
+ "validateCommand": "validate - 翻訳を検証する",
919
+ "usageCommand": "使用法 - キーの使用法を確認する",
920
+ "sizingCommand": "sizing - サイジングを分析する",
921
+ "completeCommand": "complete - 完全な翻訳 (100% カバー)",
922
+ "summaryCommand": "概要 - プロジェクトのステータスを表示します",
923
+ "debugCommand": "debug - 翻訳の問題をデバッグします",
924
+ "scannerCommand": "スキャナ - キーをスキャンします",
925
+ "translateCommand": "翻訳 - ロケール ファイルを自動翻訳します (ベータ版)",
926
926
  "menu": {
927
- "pressEnterToContinue": "Enterキーを押して続行してください…",
928
- "title": "🌐 I18NTK 管理メニュー",
929
- "description": "国際化管理のためのインタラクティブメニュー",
927
+ "pressEnterToContinue": "続行するには Enter キーを押してください...",
928
+ "title": "🌐 I18NTK管理メニュー",
929
+ "description": "国際化を管理するための対話型メニュー",
930
930
  "exit": "🚪 終了"
931
931
  },
932
932
  "commands": {
933
- "init": "init - 新しい言語を初期化",
934
- "analyze": "analyze - 翻訳を分析",
935
- "validate": "validate - 翻訳を検証",
936
- "usage": "usage - キー使用状況をチェック",
937
- "sizing": "sizing - サイズを分析",
938
- "complete": "complete - 翻訳を完了 (100% カバレッジ)",
939
- "summary": "summary - プロジェクトのステータスを表示",
940
- "debug": "debug - 翻訳の問題をデバッグ"
933
+ "init": "init - 新しい言語を初期化する",
934
+ "analyze": "分析 - 翻訳を分析する",
935
+ "validate": "validate - 翻訳を検証する",
936
+ "usage": "使用法 - キーの使用法を確認する",
937
+ "sizing": "sizing - サイジングを分析する",
938
+ "complete": "complete - 完全な翻訳 (100% カバー)",
939
+ "summary": "概要 - プロジェクトのステータスを表示します",
940
+ "debug": "debug - 翻訳の問題をデバッグします"
941
941
  },
942
942
  "options": {
943
- "sourceDir": "--source-dir <dir> 分析するソースディレクトリ",
944
- "output": "--output <file> レポートの出力ファイル",
945
- "verbose": "--verbose, -v 詳細情報を表示",
946
- "keepReports": "--keep-reports 既存のレポートを保持",
947
- "deleteReports": "--delete-reports 既存のレポートを削除",
948
- "help": "--help, -h ヘルプを表示"
943
+ "sourceDir": "--ソースディレクトリ <dir> 分析するソースディレクトリ",
944
+ "output": "- 出力 <file> レポートの出力ファイル",
945
+ "verbose": "--verbose, -v 詳細情報を表示",
946
+ "keepReports": "--keep-reports 既存のレポートを保持します",
947
+ "deleteReports": "--delete-reports 既存のレポートを削除します",
948
+ "help": "--help, -h このヘルプを表示する"
949
949
  },
950
950
  "examples": {
951
951
  "title": "例:",
952
- "example1": "node i18ntk-manage.js",
953
- "example2": "node i18ntk-manage.js --source-dir ./locales",
954
- "example3": "node i18ntk-manage.js --output summary-report.txt",
955
- "example4": "node i18ntk-manage.js --verbose",
956
- "example5": "node i18ntk-manage.js --command=init --source-dir ./locales --output report.json"
952
+ "example1": "ノード i18ntk-manage.js",
953
+ "example2": "ノード i18ntk-manage.js --source-dir ./locales",
954
+ "example3": "ノード i18ntk-manage.js --output summary-report.txt",
955
+ "example4": "ノード i18ntk-manage.js --verbose",
956
+ "example5": "ノード i18ntk-manage.js --source-dir ./locales --output report.json"
957
957
  },
958
958
  "features": {
959
- "initProject": "🚀 新しい言語を初期化",
960
- "analyzeTranslations": "🔍 翻訳を分析",
961
- "validateTranslations": "✅ 翻訳を検証",
962
- "checkUsage": "📊 キー使用状況をチェック",
963
- "completeTranslations": "🎯 翻訳を完了 (100% カバレッジ)",
964
- "showSizing": "📏 サイズを分析",
965
- "runWorkflow": "🔄 フルワークフローを実行",
959
+ "initProject": "🚀 新しい言語を初期化する",
960
+ "analyzeTranslations": "🔍 翻訳を分析する",
961
+ "validateTranslations": "✅ 翻訳を検証する",
962
+ "checkUsage": "📊 キーの使用状況を確認する",
963
+ "completeTranslations": "🎯 完全な翻訳 (100% カバー)",
964
+ "showSizing": "📏 サイズを分析する",
965
+ "runWorkflow": "🔄 完全なワークフローを実行する",
966
966
  "showStatus": "📋 プロジェクトのステータスを表示",
967
- "deleteReports": "🗑️ すべてのレポートを削除",
968
- "changeLanguage": "🌍 UI言語を変更",
969
- "settings": "⚙️ 設定",
967
+ "deleteReports": "🗑️ すべてのレポートを削除する",
968
+ "changeLanguage": "🌍 UI言語を変更する",
969
+ "settings": "⚙️設定",
970
970
  "showHelp": "❓ ヘルプ",
971
971
  "debugTools": "🔧 デバッグツール"
972
972
  },
973
973
  "messages": {
974
974
  "selectOption": "オプションを選択してください:",
975
- "invalidOption": "❌ 無効なオプションです。もう一度お試しください。",
976
- "operationCompleted": "✅ 操作が正常に完了しました!",
977
- "pressEnter": "Enterキーを押して続行してください…",
975
+ "invalidOption": "無効なオプションです。もう一度試してください。",
976
+ "operationCompleted": "✅ 操作は正常に完了しました。",
977
+ "pressEnter": "続行するには Enter キーを押してください...",
978
978
  "goodbye": "👋 さようなら!",
979
979
  "unknownCommand": "不明なコマンド: {command}",
980
- "nonInteractive": "⚠️ 非インタラクティブモードが検出されました。メニューは参照用のみです。"
980
+ "nonInteractive": "⚠️ 非対話型モードが検出されました。参考のために表示されているメニューです。"
981
981
  },
982
982
  "i18n_helper": {
983
983
  "translation_file_not_found": "翻訳ファイルが見つかりません: {translationFile}",
984
984
  "error_loading_translations": "翻訳の読み込みエラー: {errorMessage}",
985
- "translation_not_found": "キーに対する翻訳が見つかりません: {key}",
986
- "translation_key_not_string": "翻訳キーが文字列ではありません: {key}",
987
- "error_reading_locales_directory": "ロケールディレクトリの読み込みエラー: {errorMessage}"
985
+ "translation_not_found": "キーの翻訳が見つかりません: {key}",
986
+ "translation_key_not_string": "翻訳キーが文字列に解決されません: {key}",
987
+ "error_reading_locales_directory": "ロケール ディレクトリの読み取りエラー: {errorMessage}"
988
988
  }
989
989
  },
990
990
  "init": {
991
- "initializationTitle": "🚀 i18n 管理ツールキット プロジェクト初期化",
991
+ "initializationTitle": "🚀 i18n 管理ツールキット - プロジェクトの初期化",
992
992
  "initializationCancelled": "🚫 ユーザーによって初期化がキャンセルされました。",
993
993
  "sourceDirectoryLabel": "📁 ソースディレクトリ: {dir}",
994
994
  "requiredTitle": "初期化が必要です",
995
- "requiredBody": "このコマンドを実行する前にプロジェクトを初期化する必要があります。",
996
- "promptRunNow": "今すぐ初期化を実行しますか?(y/N):",
995
+ "requiredBody": "このコマンドを実行する前に、このプロジェクトを初期化する必要があります。",
996
+ "promptRunNow": "今すぐ初期化を実行しますか? (y/N):",
997
997
  "sourceLanguageLabel": "🌍 ソース言語: {language}",
998
- "detectedI18nFrameworks": "🔍 検出されたi18nフレームワーク: {frameworks}",
999
- "pinMustBe4Digits": "🔐 PIN は4桁の数字でなければなりません。",
998
+ "detectedI18nFrameworks": "🔍 検出された i18n フレームワーク: {frameworks}",
999
+ "pinMustBe4Digits": "🔐 PIN は 4 桁である必要があります。",
1000
1000
  "existingDirectoriesFound": "📁 既存の翻訳ディレクトリが見つかりました:",
1001
- "useExistingDirectoryPrompt": "既存のディレクトリを使用しますか? (y/n)",
1002
- "selectDirectoryPrompt": "ディレクトリを選択してください (番号を入力) (または '新しいディレクトリを作成' を選択):",
1003
- "enterNewDirectoryName": "新しいディレクトリ名を入力してください:",
1001
+ "useExistingDirectoryPrompt": "既存のディレクトリを使用しますか? (はい/いいえ)",
1002
+ "selectDirectoryPrompt": "番号を入力してディレクトリを選択します (または、[新しいディレクトリを作成] を選択します)",
1003
+ "enterNewDirectoryName": "新しい翻訳ディレクトリの名前を入力してください",
1004
1004
  "createdNewDirectory": "✅ 新しいディレクトリを作成しました: {dir}",
1005
- "directoryAlreadyExists": "⚠️ ディレクトリが既に存在します: {dir}",
1006
- "invalidDirectoryName": "⚠️ 無効なディレクトリ名です。",
1007
- "usingExistingDirectory": "使用中のディレクトリ: {dir}",
1008
- "adminPinSetupOptional": "🔐 管理者PINの設定はオプションです(セキュリティのため推奨)",
1005
+ "directoryAlreadyExists": "⚠️ ディレクトリはすでに存在します: {dir}",
1006
+ "invalidDirectoryName": "❌ 無効なディレクトリ名が指定されました。",
1007
+ "usingExistingDirectory": "既存のディレクトリを使用する: {dir}",
1008
+ "adminPinSetupOptional": "🔐 管理者PINの設定はオプション(セキュリティのために推奨)",
1009
1009
  "adminPinSeparator": "------------------------------",
1010
- "adminPinDescription1": "管理者PIN:セキュアなアクセスのための4桁の数字",
1011
- "adminPinDescription2": "PIN設定をスキップする場合は空白のままにしてください",
1012
- "adminPinDescription3": "以降のすべての操作でPINが必要になります",
1013
- "adminPinDescription4": "PINの設定が完了しました",
1014
- "adminPinSetupPrompt": "管理者PIN4桁)を入力するか、スキップする場合は空白のままにしてください:",
1015
- "skippingAdminPinSetup": "管理者PINの設定をスキップしています...",
1016
- "settingUpAdminPin": "🔐 管理者PINの設定...",
1010
+ "adminPinDescription1": "管理者PIN: 安全なアクセスのための4桁の番号",
1011
+ "adminPinDescription2": "PIN の設定をスキップするには空白のままにします",
1012
+ "adminPinDescription3": "PIN を設定すると、今後のすべての安全なアクションに PIN が必要になります。",
1013
+ "adminPinDescription4": "PIN を安全に保管するために AES-256-GCM 暗号化が使用されます。",
1014
+ "adminPinSetupPrompt": "管理者 PIN (4 桁) を入力するか、空白のままにしてスキップします:",
1015
+ "skippingAdminPinSetup": "管理者 PIN の設定をスキップしています...",
1016
+ "settingUpAdminPin": "🔐 管理者PINを設定中...",
1017
1017
  "enterAdminPin": "管理者PINを入力してください:",
1018
- "confirmAdminPin": "管理者PINを確認してください:",
1019
- "pinMismatch": "PINが一致しません。もう一度お試しください。",
1020
- "adminPinSetupSuccess": "🔐 管理者PINの設定が成功しました!",
1021
- "adminPinSetupFailure": "🔐 管理者PINの設定が失敗しました。もう一度お試しください。",
1022
- "adminProtectionEnabled": "🔐 管理者保護が有効になりました。すべての操作はPIN認証が必要になります。",
1023
- "adminProtectionDisabled": "🔐 管理者保護が無効になりました。すべての操作はPIN認証なしで利用可能になりました。",
1024
- "autoDetectedI18nDirectory": "📂 自動検出されたi18nディレクトリ: {directory}",
1025
- "initializingProject": "⚙️ プロジェクト設定を初期化中…",
1026
- "createdSampleTranslationFile": "✅ サンプル翻訳ファイルを作成しました: {file}",
1018
+ "confirmAdminPin": "管理者 PIN を確認します:",
1019
+ "pinMismatch": "PIN が一致しません。もう一度試してください。",
1020
+ "adminPinSetupSuccess": "🔐 管理者PINの設定が成功しました!",
1021
+ "adminPinSetupFailure": "🔐 管理者PINの設定に失敗しました。もう一度試してください。",
1022
+ "adminProtectionEnabled": "🔐 管理者保護が有効になっています。すべての操作には PIN 認証が必要です。",
1023
+ "adminProtectionDisabled": "🔐 管理者保護が無効になっています。すべてのアクションは PIN なしで実行できるようになりました。",
1024
+ "autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {directory}",
1025
+ "initializingProject": "⚙️ プロジェクト構成を初期化しています...",
1026
+ "createdSampleTranslationFile": "✅ 作成されたサンプル翻訳ファイル: {file}",
1027
1027
  "languageSelectionTitle": "🌐 言語設定",
1028
1028
  "available": "利用可能",
1029
- "defaultLanguages": "📝 デフォルト言語: {languages}",
1030
- "enterLanguageCodes": "🎯 対象言語コードを入力してください (カンマ区切り 例: de, es, fr, ru):",
1029
+ "defaultLanguages": "📝 デフォルトの言語: {languages}",
1030
+ "enterLanguageCodes": "🎯 ターゲット言語コードを入力します (カンマ区切り、例: deesfrru):",
1031
1031
  "targetLanguages": "🌍 対象言語",
1032
- "foundSourceFiles": "📄 分析対象として {count} 件のソースファイルを検出",
1033
- "processingLanguage": "🔄 言語を処理中: {language}",
1034
- "fileProcessingResult": "✅ {file} を処理しました: {translated}/{total} キー ({percentage}%)",
1035
- "overallProgress": "📊 全体進捗: {translated}/{total} キー処理済み ({percentage}%)",
1036
- "initializationSummaryTitle": "📋 初期化サマリー",
1037
- "languageSummary": "{icon} {name} ({code}): {percentage}% 完了",
1038
- "languageFiles": "📄 ファイル数: {count}",
1032
+ "foundSourceFiles": "📄 見つかりました {count} 分析するソースファイル",
1033
+ "processingLanguage": "🔄 処理言語: {language}",
1034
+ "fileProcessingResult": "✅ 加工済み {file}: {translated}/{total} キー ({percentage}%)",
1035
+ "overallProgress": "📊 全体的な進捗状況: {translated}/{total} 処理されたキー ({percentage}%)",
1036
+ "initializationSummaryTitle": "📋 初期化の概要",
1037
+ "languageSummary": "{icon} {name} ({code}): {percentage} 完了",
1038
+ "languageFiles": "📄 ファイル: {count}",
1039
1039
  "languageKeys": "🔤 キー: {translated}/{total}",
1040
- "languageMissing": "⚠️ 欠落: {count}",
1041
- "initializationCompletedSuccessfully": "🎉 プロジェクトの初期化が完了しました!",
1040
+ "languageMissing": "⚠️ 不足しているもの: {count}",
1041
+ "initializationCompletedSuccessfully": "🎉 プロジェクトの初期化が正常に完了しました!",
1042
1042
  "nextStepsTitle": "🚀 次のステップ",
1043
- "nextStep1": "1. locales/ ディレクトリの生成された翻訳ファイルを確認する",
1044
- "nextStep2": "2. 各対象言語の翻訳を追加する",
1045
- "nextStep3": "3. 'npm run i18ntk' を再実行して翻訳を検証する",
1046
- "detectedFrameworks": "✅ 検出されたi18nフレームワーク: {frameworks}",
1043
+ "nextStep1": "1. locales/ ディレクトリに生成された翻訳ファイルを確認します。",
1044
+ "nextStep2": "2. 各ターゲット言語の翻訳を追加します",
1045
+ "nextStep3": "3. npm run i18ntk」を再度実行して翻訳を検証します",
1046
+ "detectedFrameworks": "✅ 検出された i18n フレームワーク: {frameworks}",
1047
1047
  "setup": {
1048
1048
  "title": "設定",
1049
- "question": "設定質問",
1049
+ "question": "セットアップの質問",
1050
1050
  "opt_single": "単一ファイル",
1051
- "opt_modular": "モジュール",
1051
+ "opt_modular": "モジュラー",
1052
1052
  "opt_existing": "既存",
1053
- "choice_prompt": "選択肢を入力してください:",
1054
- "opt_confirm": "確認",
1053
+ "choice_prompt": "オプションを選択してください:",
1054
+ "opt_confirm": "確認する",
1055
1055
  "opt_cancel": "キャンセル",
1056
- "apply_all_prompt": "この構造をすべての言語に適用しますか?(y/N):",
1057
- "per_language_intro": "言語ごとに個別に設定することを選択しました。利用可能な言語は以下の通りです:",
1056
+ "apply_all_prompt": "この構造をすべての言語に適用しますか? (y/N):",
1057
+ "per_language_intro": "言語を個別に構成することを選択しました。利用可能な言語は次のとおりです。",
1058
1058
  "available_languages": "利用可能な言語: {languages}",
1059
- "include_prompt": "含める言語コードをカンマ区切りで入力してください(例: 'de,fr,es'):"
1059
+ "include_prompt": "含める言語コードをカンマで区切って入力します (例: 「de,fr,es」):"
1060
1060
  },
1061
1061
  "warnings": {
1062
- "noPackageJson": "package.json が見つかりません。i18nフレームワークを自動検出できません。"
1062
+ "noPackageJson": "package.json が見つかりません。 i18n フレームワークを自動検出できません。"
1063
1063
  },
1064
- "errorsPackageJsonRead": "⚠️ package.json の読み込み中にエラーが発生しました: {error}",
1065
- "errorsNoFramework": "i18nフレームワークが検出されませんでした。インストールするか手動で指定してください。",
1064
+ "errorsPackageJsonRead": "package.json の読み取りエラー: {error}",
1065
+ "errorsNoFramework": "i18n フレームワークが検出されませんでした。いずれかをインストールするか、手動で指定してください。",
1066
1066
  "suggestions": {
1067
- "noFramework": "i18nフレームワークが検出されませんでした。以下のいずれかの使用を検討してください:",
1068
- "installFramework": "フレームワークをインストールするには次を実行: npm install <パッケージ名>"
1067
+ "noFramework": "i18n フレームワークが検出されませんでした。次のいずれかの使用を検討してください。",
1068
+ "installFramework": "フレームワークをインストールするには、npm install <package-name> を実行します。"
1069
1069
  },
1070
1070
  "frameworks": {
1071
1071
  "react": "- React i18next (react-i18next)",
1072
1072
  "vue": "- Vue i18n (vue-i18n)",
1073
1073
  "i18next": "- i18next (アイ18ネクスト)",
1074
- "nuxt": "- Nuxt ??? (@nuxtjs/i18n)",
1074
+ "nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
1075
1075
  "svelte": "- Svelte i18n (svelte-i18n)"
1076
1076
  },
1077
- "continueWithoutI18nPrompt": "i18nフレームワークが検出されません。続行しますか? (y/N):",
1078
- "detectedI18nFramework": "検出されたi18nフレームワーク: {frameworks}",
1079
- "existingDirectoryItem": "{index} {location}",
1080
- "usingExistingStructure": "既存の構造を使用: {dir}",
1081
- "creatingSourceDirectory": "ソースディレクトリを作成中: {dir}",
1082
- "creatingSourceLanguageDirectory": "ソース言語ディレクトリを作成中: {dir}",
1077
+ "continueWithoutI18nPrompt": "i18n フレームワークが検出されませんでした。何もせずに続行しますか? (y/N):",
1078
+ "detectedI18nFramework": "検出された i18n フレームワーク: {frameworks}",
1079
+ "existingDirectoryItem": "{index}. {location}",
1080
+ "usingExistingStructure": "既存の構造を使用する: {dir}",
1081
+ "creatingSourceDirectory": "ソースディレクトリの作成: {dir}",
1082
+ "creatingSourceLanguageDirectory": "ソース言語ディレクトリの作成: {dir}",
1083
1083
  "errors": {
1084
- "errorExecutingCommand": "⚠️ コマンドの実行中にエラーが発生しました: {error}",
1084
+ "errorExecutingCommand": "コマンド実行エラー: {error}",
1085
1085
  "sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {dir}",
1086
1086
  "sourceLanguageDirectoryNotFound": "ソース言語ディレクトリが見つかりません: {dir}",
1087
- "noJsonFilesInSourceDirectory": "ソースディレクトリにJSONファイルが見つかりません: {dir}",
1087
+ "noJsonFilesInSourceDirectory": "ソース ディレクトリに JSON ファイルが見つかりません: {dir}",
1088
1088
  "invalidFilePathDetected": "無効なファイルパスが検出されました",
1089
1089
  "initializationFailed": "初期化に失敗しました: {error}",
1090
1090
  "noFramework": "i18n フレームワークが検出されませんでした。汎用モードで続行します。",
1091
1091
  "packageJsonRead": "package.json の読み取り中にエラーが発生しました。"
1092
1092
  },
1093
- "processingFile": "{language} {file} を処理中…",
1094
- "fileAlreadyExistsMerging": "{file} は既に存在します。新しいキーをマージ中。",
1093
+ "processingFile": "処理 {file} のために {language}...",
1094
+ "fileAlreadyExistsMerging": "ファイル {file} すでに存在します。新しいキーをマージします。",
1095
1095
  "createdNewFile": "新しいファイルを作成しました: {file}",
1096
- "updatedFile": "ファイルを更新しました: {file}",
1097
- "skippingExcludedFile": "{language} {file} は除外リストにあるためスキップされました。",
1096
+ "updatedFile": "更新されたファイル: {file}",
1097
+ "skippingExcludedFile": "スキップ {file} のために {language} 除外されるので。",
1098
1098
  "continuingWithoutAdminPin": "管理者 PIN を設定せずに続行します。",
1099
- "createdSourceLanguageDirectory": " ソース言語ディレクトリを作成しました: {dir}",
1100
- "errorSettingUpAdminPin": "管理者 PIN の設定エラー: {error}",
1099
+ "createdSourceLanguageDirectory": "作成されたソース言語ディレクトリ: {dir}",
1100
+ "errorSettingUpAdminPin": "管理者 PIN の設定中にエラーが発生しました: {error}",
1101
1101
  "noTargetLanguagesSpecified": "ターゲット言語が指定されていません。",
1102
- "translationFilesCreatedWarning": "翻訳ファイルはプレースホルダーを使用して作成されました。実稼働環境で使用する前に確認してください。",
1103
- "warningCannotReadSourceDir": "警告: ソース ディレクトリ {dir}: {error} を読み取れません",
1102
+ "translationFilesCreatedWarning": "翻訳ファイルはプレースホルダーを使用して作成されました。本番環境で使用する前に確認してください。",
1103
+ "warningCannotReadSourceDir": "警告: ソース ディレクトリを読み取れません {dir}: {error}",
1104
1104
  "warningInvalidLanguageCodes": "警告: 無効な言語コードは無視されます: {languages}",
1105
1105
  "warningProceedingWithoutFramework": "i18n フレームワークが検出されないまま続行します。"
1106
1106
  },
1107
1107
  "language": {
1108
- "title": "🌍 言語を変更",
1109
- "separator": "============================================================",
1108
+ "title": "🌍 言語を変更する",
1109
+ "separator": "======================================================",
1110
1110
  "current": "現在の言語: {language}",
1111
1111
  "available": "利用可能な言語:",
1112
- "languageOption": "{index} {displayName}{current}",
1112
+ "languageOption": "{index}. {displayName}{current}",
1113
1113
  "backToMainMenu": "メインメニューに戻る",
1114
- "prompt": "言語を選択してください (0-8):",
1114
+ "prompt": "言語を選択します (08):",
1115
1115
  "cancelled": "言語変更がキャンセルされました。",
1116
- "invalid": "無効な選択です。もう一度お試しください。",
1117
- "changed": "言語が {language} に変更されました",
1116
+ "invalid": "無効な選択です。もう一度試してください。",
1117
+ "changed": "言語が次のように変更されました: {language}",
1118
1118
  "changeFailed": "言語の変更に失敗しました: {error}",
1119
- "pressEnterToContinue": "続行するにはEnterキーを押してください…"
1119
+ "pressEnterToContinue": "続行するには Enter キーを押してください..."
1120
1120
  },
1121
1121
  "maintainLanguagePurity": {
1122
1122
  "workflow_title": "🚀 言語純度維持ワークフロー",
1123
- "step1_title": "📊 STEP 1: 初期言語純度評価",
1124
- "step2_title": "🔧 STEP 2: 言語不一致の検出と自動修正",
1125
- "step3_title": "🌐 STEP 3: 自動翻訳の適用",
1126
- "step4_title": "✅ STEP 4: 最終言語純度評価",
1123
+ "step1_title": "📊 ステップ 1: 初期の言語純度評価",
1124
+ "step2_title": "🔧 ステップ 2: 言語の不一致を検出して自動修正する",
1125
+ "step3_title": "🌐 ステップ 3: 自動翻訳を適用する",
1126
+ "step4_title": "✅ ステップ 4: 最終的な言語純度評価",
1127
1127
  "workflow_error": "❌ ワークフローエラー: {errorMessage}",
1128
- "running_initial_validation": "初期言語純度検証を実行中…",
1129
- "initial_assessment_complete": "✅ 初期評価完了: {count} 件の違反を検出",
1130
- "initial_assessment_warnings": "⚠️ 初期評価は警告付きで完了しました",
1131
- "detecting_fixing_mismatches": "言語不一致の検出と修正を実行中…",
1132
- "detection_complete_applying_fixes": "検出完了。自動修正を適用中…",
1133
- "mismatch_fixes_complete": "✅ 言語不一致の修正完了: {count} 件の修正を適用",
1134
- "mismatch_fixes_warnings": "⚠️ 言語不一致の修正は警告付きで完了しました",
1135
- "applying_automatic_translations": "自動翻訳を適用中…",
1136
- "translation_preview_complete": "翻訳プレビュー完了。翻訳を適用中…"
1128
+ "running_initial_validation": "初期の言語純度検証を実行しています...",
1129
+ "initial_assessment_complete": "✅ 初期評価が完了しました: {count} 違反が見つかりました",
1130
+ "initial_assessment_warnings": "⚠️ 初期評価は警告付きで完了しました",
1131
+ "detecting_fixing_mismatches": "言語の不一致を検出して修正しています...",
1132
+ "detection_complete_applying_fixes": "検出が完了しました。自動修正を適用しています...",
1133
+ "mismatch_fixes_complete": "✅ 言語の不一致の修正が完了しました: {count} 修正が適用されました",
1134
+ "mismatch_fixes_warnings": "⚠️ 言語の不一致の修正は警告付きで完了しました",
1135
+ "applying_automatic_translations": "自動翻訳を適用しています...",
1136
+ "translation_preview_complete": "翻訳プレビューが完了しました。翻訳を適用しています..."
1137
1137
  },
1138
1138
  "menu": {
1139
- "title": "🌐 I18NTK 管理メニュー",
1140
- "separator": "============================================================",
1139
+ "title": "🌐 I18NTK管理メニュー",
1140
+ "separator": "======================================================",
1141
1141
  "options": {
1142
- "init": "🚀 新しい言語を初期化",
1143
- "analyze": "🔍 翻訳を分析",
1144
- "validate": "✅ 翻訳を検証",
1145
- "usage": "📊 キー使用状況をチェック",
1146
- "complete": "🎯 翻訳を完了 (100% カバレッジ)",
1147
- "sizing": "📏 サイズを分析",
1148
- "fix": "🛠️ プレースホルダー翻訳を修正",
1149
- "scanner": "🔍 i18n問題をスキャン",
1142
+ "init": "🚀 新しい言語を初期化する",
1143
+ "analyze": "🔍 翻訳を分析する",
1144
+ "validate": "✅ 翻訳を検証する",
1145
+ "usage": "📊 キーの使用状況を確認する",
1146
+ "complete": "🎯 完全な翻訳 (100% カバー)",
1147
+ "sizing": "📏 サイズを分析する",
1148
+ "fix": "🛠️ プレースホルダーの翻訳を修正",
1149
+ "scanner": "🔍 i18n の問題をスキャンする",
1150
1150
  "translate": "🌐 自動翻訳 (ベータ版)",
1151
- "workflow": "🔄 フルワークフローを実行",
1152
- "status": "📋 プロジェクトステータスを表示",
1153
- "delete": "🗑️ すべてのレポートを削除",
1154
- "language": "🌍 UI言語を変更",
1155
- "settings": "⚙️ 設定",
1151
+ "workflow": "🔄 完全なワークフローを実行する",
1152
+ "status": "📋 プロジェクトのステータスを表示",
1153
+ "delete": "🗑️ すべてのレポートを削除する",
1154
+ "language": "🌍 UI言語を変更する",
1155
+ "settings": "⚙️設定",
1156
1156
  "help": "❓ ヘルプ",
1157
1157
  "debug": "🔧 デバッグツール",
1158
1158
  "exit": "🚪 終了"
1159
1159
  },
1160
- "update": "📦 パッケージを更新",
1160
+ "update": "📦アップデートパッケージ",
1161
1161
  "goodbye": "👋 さようなら!",
1162
- "invalidChoice": " 無効な選択です。015 を選択してください。",
1163
- "returning": "🔄 メインメニューに戻ります…",
1164
- "invalidOption": "❌ 無効なオプションです。もう一度お試しください。",
1165
- "nonInteractiveModeWarning": "⚠️ 非対話モードが検出されました。メニューは参照用です。",
1166
- "useDirectExecution": "💡 直接実行するには: node main/i18ntk-manage.js --command=<command>",
1167
- "useHelpForCommands": "📖 コマンドを見るには: node main/i18ntk-manage.js --help",
1168
- "returnToMainMenu": "Enterキーでメインメニューに戻ります。",
1169
- "pressEnterToContinue": "Enterキーを押して続行してください…",
1162
+ "invalidChoice": "無効な選択です。 015を選択してください。",
1163
+ "returning": "メインメニューに戻る...",
1164
+ "invalidOption": "無効なオプションです。もう一度試してください。",
1165
+ "nonInteractiveModeWarning": "非対話型モードが検出されました。参考のために表示されているメニューです。",
1166
+ "useDirectExecution": "使用: ノー​​ド main/manage/index.js --command=<command> 直接実行の場合。",
1167
+ "useHelpForCommands": "使用可能なコマンドについては、node main/manage/index.js --help を使用してください。",
1168
+ "returnToMainMenu": "Enter を押してメインメニューに戻ります。",
1169
+ "pressEnterToContinue": "続行するには Enter キーを押してください...",
1170
1170
  "selectOptionPrompt": "オプションを選択してください:",
1171
- "selectDebugToolPrompt": "デバッグツールを選択してください:",
1172
- "selectLogPrompt": "ログファイルを選択してください (1-{count}):",
1173
- "autoDetectedI18nDirectory": "📂 自動検出されたi18nディレクトリ: {directory}",
1174
- "executingCommand": "コマンドを実行中: {command}",
1171
+ "selectDebugToolPrompt": "デバッグ ツールを選択します。",
1172
+ "selectLogPrompt": "ログ ファイルを選択します (1-{count}):",
1173
+ "autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {directory}",
1174
+ "executingCommand": "コマンドの実行: {command}",
1175
1175
  "unknownCommand": "不明なコマンド: {command}",
1176
- "languageOption": "{index} {displayName}{current}",
1176
+ "languageOption": "{index}. {displayName}{current}",
1177
1177
  "debugTools": {
1178
- "1": "ログファイル分析",
1179
- "2": "翻訳キー使用状況分析",
1180
- "3": "翻訳完了度分析",
1181
- "4": "翻訳フォーマット分析",
1182
- "5": "翻訳タイプ分析",
1183
- "6": "翻訳構造分析"
1178
+ "1": "ログファイルの分析",
1179
+ "2": "翻訳キーの使用状況の分析",
1180
+ "3": "翻訳完全性分析",
1181
+ "4": "翻訳形式の分析",
1182
+ "5": "翻訳タイプの分析",
1183
+ "6": "翻訳構造解析"
1184
1184
  },
1185
1185
  "native_translations": {
1186
1186
  "exact_translation_found": "✅ {keyPath}: {value}",
1187
- "no_exact_translation": "⚠️ '{keyPath}' の完全一致翻訳が見つかりません。類似キー:",
1188
- "similar_key": "- {key} ({similarity}% 一致)",
1189
- "processing_language_files": "🔄 {count} 件の言語ファイルを処理中…",
1187
+ "no_exact_translation": "⚠️「」の正確な翻訳はありません{keyPath}'、同様のキーが見つかりました:",
1188
+ "similar_key": "- {key} ({similarity} マッチ)",
1189
+ "processing_language_files": "🔄 処理中 {count} 言語ファイル...",
1190
1190
  "file_not_found": "⚠️ ファイルが見つかりません: {file}",
1191
- "processing_translations": "🌍 {code} の翻訳を処理中…",
1192
- "backup_created": "📋 バックアップを作成しました: {filename}",
1193
- "error_parsing_json": "❌ {code}.json の解析エラー: {errorMessage}",
1194
- "existing_keys_found": "📊 {code}: {count} 件の既存キーを検出",
1195
- "error_writing_json": "❌ {code}.json の書き込みエラー: {errorMessage}",
1196
- "translations_replaced": "📊 {code}: {count} 件の翻訳を置換",
1197
- "translation_replacement_complete": "✅ 翻訳置換が完了しました!",
1198
- "total_replacements": "📊 置換総数: {count}",
1199
- "dry_run_mode": "⚠️ DRY RUNモード - ファイルは変更されません",
1200
- "tool_title": "🌍 ネイティブ翻訳リプレーサ v1.10.1",
1201
- "tool_separator": "======================================",
1202
- "dry_run_warning": "⚠️ DRY RUNモードで実行中 - ファイルは変更されません",
1203
- "error_during_replacement": "❌ 翻訳置換中にエラーが発生しました:"
1191
+ "processing_translations": "🌍 処理中 {code} 翻訳...",
1192
+ "backup_created": "📋 バックアップが作成されました: {filename}",
1193
+ "error_parsing_json": "❌ 解析エラー {code}.json: {errorMessage}",
1194
+ "existing_keys_found": "📊 {code} 見つかった {count} 既存のキー",
1195
+ "error_writing_json": "❌ 書き込みエラー {code}.json: {errorMessage}",
1196
+ "translations_replaced": "📊 {code}: {count} 翻訳が置き換えられました",
1197
+ "translation_replacement_complete": "✅ 翻訳交換完了!",
1198
+ "total_replacements": "📊 総交換数: {count}",
1199
+ "dry_run_mode": "⚠️ ドライランモード - ファイルは変更されていません",
1200
+ "tool_title": "🌍 ネイティブ翻訳置換 v1.9.1",
1201
+ "tool_separator": "=====================================",
1202
+ "dry_run_warning": "⚠️ DRY RUN モードで実行 - ファイルは変更されません",
1203
+ "error_during_replacement": "❌ 翻訳置換中のエラー:"
1204
1204
  }
1205
1205
  },
1206
1206
  "config": {
1207
- "dirFallbackWarning": "⚠️ ディレクトリ {dir} が見つかりません。{fallback} を使用します。",
1207
+ "dirFallbackWarning": "⚠️ディレクトリ {dir} 見つかりません。使用する {fallback}.",
1208
1208
  "dirInvalidError": "❌ 無効なディレクトリ: {dir}"
1209
1209
  },
1210
1210
  "operations": {
1211
- "completed": "✅ 操作が正常に完了しました!",
1212
- "deleteReportsTitle": "🗑️ レポート & ログの削除",
1213
- "scanningForFiles": "🔍 削除対象ファイルをスキャン中…",
1214
- "noFilesFoundToDelete": "✅ 削除対象ファイルはありません。",
1211
+ "completed": "✅ 操作は正常に完了しました。",
1212
+ "deleteReportsTitle": "🗑️ レポートとログを削除する",
1213
+ "scanningForFiles": "🔍 削除するファイルをスキャンしています...",
1214
+ "noFilesFoundToDelete": "✅ 削除するファイルが見つかりません。",
1215
1215
  "availableDirectories": "📁 利用可能なディレクトリ:",
1216
1216
  "allDirectories": "すべてのディレクトリ",
1217
- "andMore": "その他 {count} 件",
1217
+ "andMore": "さらに...",
1218
1218
  "cancelOption": "キャンセル",
1219
- "cancelReportOption": "キャンセル / メニューに戻る",
1220
- "invalidSelection": "❌ 無効な選択です。",
1221
- "foundFilesInSelectedDirectories": "📊 選択されたディレクトリで{count} 件のファイルを検出:",
1219
+ "cancelReportOption": "キャンセル/メニューに戻る",
1220
+ "invalidSelection": "❌ 選択が無効です。",
1221
+ "foundFilesInSelectedDirectories": "📊 見つかりました {count} 選択したディレクトリ内のファイル:",
1222
1222
  "deletionOptions": "🗑️ 削除オプション:",
1223
- "deleteAllFiles": "すべてのファイルを削除",
1224
- "keepLast3Files": "最後の3ファイルを保持",
1225
- "keepLast5Files": "最後の5ファイルを保持",
1223
+ "deleteAllFiles": "すべてのファイルを削除する",
1224
+ "keepLast3Files": "最新の 3 ファイルを保存 (日付順)",
1225
+ "keepLast5Files": "最新の 5 ファイルを保存 (日付順)",
1226
1226
  "noFilesToDelete": "✅ 削除するファイルはありません。",
1227
- "filesToDeleteCount": "📋 削除予定のファイル数: {count}",
1228
- "filesToKeepCount": "📋 保持するファイル数: {count}",
1229
- "confirmDeletion": "⚠️ これらのファイルを削除してもよろしいですか? (y/N):",
1230
- "deletedFile": "✅ 削除: {filename}",
1231
- "failedToDeleteFile": "❌ {filename} の削除に失敗しました: {error}",
1227
+ "filesToDeleteCount": "📋 削除するファイル: {count}",
1228
+ "filesToKeepCount": "📋 保存するファイル: {count}",
1229
+ "confirmDeletion": "⚠️ これらのファイルを削除してもよろしいですか? (y/N):",
1230
+ "deletedFile": "✅ 削除されました: {filename}",
1231
+ "failedToDeleteFile": "❌ 削除に失敗しました {filename}: {error}",
1232
1232
  "cancelled": "❌ 操作がキャンセルされました。",
1233
1233
  "init": {
1234
- "title": "🚀 新しい言語を初期化"
1234
+ "title": "🚀 新しい言語を初期化する"
1235
1235
  },
1236
1236
  "usage": {
1237
- "title": "📊 キー使用状況をチェック",
1238
- "noUsedKeysHint": "翻訳が見つかりましたが、ソースで使用されていません。--source-dir と translationPatterns を確認してください。"
1237
+ "title": "📊 キーの使用状況を確認する",
1238
+ "noUsedKeysHint": "翻訳は見つかりましたが、原文では使用されていません。 --source-dir と translationPatterns を確認してください。"
1239
1239
  },
1240
1240
  "analyze": {
1241
- "title": "🔍 翻訳を分析"
1241
+ "title": "🔍 翻訳を分析する"
1242
1242
  },
1243
1243
  "validate": {
1244
- "title": "✅ 翻訳を検証"
1244
+ "title": "✅ 翻訳を検証する"
1245
1245
  },
1246
1246
  "settings": {
1247
- "title": "⚙️ 設定管理",
1248
- "separator": "============================================================"
1247
+ "title": "⚙️設定管理",
1248
+ "separator": "======================================================"
1249
1249
  },
1250
1250
  "complete": {
1251
- "deletingOldReport": "🗑️ 古い使用状況レポートを削除中",
1252
- "generatingFreshAnalysis": "🔄 新しい使用状況分析を生成中…",
1253
- "couldNotGenerate": "⚠️ 使用状況分析を生成できませんでした。共通の欠落キーを使用します。",
1254
- "reportNotFound": "⚠️ 使用状況レポートが見つかりません。新しい分析を生成中…",
1255
- "foundMissingKeys": "🔍 使用状況分析で{count} 件の欠落キーを検出",
1256
- "couldNotParse": "⚠️ 使用状況レポートを解析できませんでした。共通の欠落キーを使用します。",
1257
- "title": "🎯 翻訳の完了",
1258
- "separator": "============================================================",
1251
+ "deletingOldReport": "🗑️ 新しい分析のために古い使用状況レポートを削除しています",
1252
+ "generatingFreshAnalysis": "🔄 新しい使用状況分析を生成しています...",
1253
+ "couldNotGenerate": "⚠️ 使用状況分析を生成できませんでした。一般的な欠落キーの使用。",
1254
+ "reportNotFound": "⚠️使用レポートが見つかりません。新しい分析を生成しています...",
1255
+ "foundMissingKeys": "🔍見つかりました {count} 使用状況分析でキーが欠落している",
1256
+ "couldNotParse": "⚠️ 使用状況レポートを解析できませんでした。一般的な欠落キーの使用。",
1257
+ "title": "🎯 翻訳を完了する",
1258
+ "separator": "======================================================",
1259
1259
  "sourceDir": "📁 ソースディレクトリ: {sourceDir}",
1260
1260
  "sourceLanguage": "🔤 ソース言語: {sourceLanguage}",
1261
- "dryRunMode": "🧪 DRY RUNモード - ファイルは変更されません",
1261
+ "dryRunMode": "🧪 ドライランモード - ファイルは変更されません",
1262
1262
  "languages": "🎯 対象言語: {languages}",
1263
- "addingMissingKeys": "➕ 欠落キーを翻訳ファイルに追加中…",
1264
- "processing": "🔄 {language} を処理中…",
1265
- "addedKeys": "✅ {count} 件のキーを追加しました",
1263
+ "addingMissingKeys": "➕ 不足しているキーを翻訳ファイルに追加しています...",
1264
+ "processing": "🔄 処理中 {language}...",
1265
+ "addedKeys": "✅ 追加されました {count} キー",
1266
1266
  "changeDetails": "📝 {file}: {key}",
1267
- "noChangesNeeded": "✅ {language} に変更は必要ありません",
1268
- "summaryTitle": "📊 完了サマリー",
1269
- "totalChanges": "📝 総変更数: {totalChanges}",
1270
- "languagesProcessed": "🌐 処理済み言語数: {languagesProcessed}",
1271
- "missingKeysAdded": "➕ 追加された欠落キー: {missingKeysAdded}",
1267
+ "noChangesNeeded": "✅ 変更は必要ありません {language}",
1268
+ "summaryTitle": "📊 完成概要",
1269
+ "totalChanges": "📝 合計の変更: {totalChanges}",
1270
+ "languagesProcessed": "🌐 処理される言語: {languagesProcessed}",
1271
+ "missingKeysAdded": "➕ 不足しているキーが追加されました: {missingKeysAdded}",
1272
1272
  "nextStepsTitle": "📋 次のステップ",
1273
- "nextStep1": "1. 使用状況分析を実行:",
1274
- "nextStep2": "2. 翻訳を検証:",
1275
- "nextStep3": "3. 完了度を分析:",
1276
- "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!",
1277
- "runWithoutDryRun": "💡 --dry-runなしで実行して変更を適用",
1278
- "pressEnterToContinue": "Enterキーを押して続行してください…"
1273
+ "nextStep1": "1. 使用状況分析を実行します。",
1274
+ "nextStep2": "2. 翻訳を検証します。",
1275
+ "nextStep3": "3. 完全性を分析します。",
1276
+ "allKeysAvailable": "🎉 すべての翻訳キーが利用可能になりました!",
1277
+ "runWithoutDryRun": "💡 --dry-run なしで実行して変更を適用します",
1278
+ "pressEnterToContinue": "続行するには Enter キーを押してください..."
1279
1279
  },
1280
1280
  "updatePackage": {
1281
1281
  "title": "📦 i18n-toolkit パッケージを更新",
1282
- "description": "npmの最新バージョンにi18n-toolkitパッケージを更新します。",
1283
- "command": "実行コマンド",
1284
- "confirm": "更新を実行してもよろしいですか? (y/N):",
1285
- "updating": "パッケージを更新中…しばらくお待ちください。",
1286
- "success": "✅ i18n-toolkit が正常に更新されました!",
1282
+ "description": "これにより、i18n-toolkit パッケージが npm で利用可能な最新バージョンに更新されます。",
1283
+ "command": "実行するコマンド",
1284
+ "confirm": "アップデートを続行してもよろしいですか? (y/N):",
1285
+ "updating": "パッケージを更新しています... これには少し時間がかかる場合があります。",
1286
+ "success": "✅ i18n-toolkit が正常に更新されました!",
1287
1287
  "error": "❌ i18n-toolkit の更新に失敗しました",
1288
- "cancelled": "❌ 更新がキャンセルされました。"
1288
+ "cancelled": "❌ アップデートがキャンセルされました。"
1289
1289
  }
1290
1290
  },
1291
1291
  "security": {
1292
- "pathValidationFailed": "パス検証に失敗しました",
1293
- "invalidInputType": "無効な入力タイプです",
1294
- "pathTraversalAttempt": "パストラバーサルの試行が検出されました",
1292
+ "pathValidationFailed": "パス_検証_失敗",
1293
+ "invalidInputType": "無効な入力タイプ",
1294
+ "pathTraversalAttempt": "パストラバーサル試行",
1295
1295
  "pathValidated": "✅ パスが正常に検証されました",
1296
1296
  "pathValidationError": "パス検証エラー",
1297
1297
  "fileTooLarge": "セキュリティ: ファイルが大きすぎます: {filePath}",
1298
1298
  "fileReadError": "セキュリティ: ファイル読み取りエラー: {errorMessage}",
1299
- "contentTooLargeForFile": "セキュリティ: ファイルに対してコンテンツが大きすぎます: {filePath}",
1299
+ "contentTooLargeForFile": "セキュリティ: コンテンツがファイルに対して大きすぎます: {filePath}",
1300
1300
  "fileWriteError": "セキュリティ: ファイル書き込みエラー: {errorMessage}",
1301
- "jsonStringTooLarge": "セキュリティ: JSON文字列が大きすぎます",
1302
- "jsonParseError": "セキュリティ: JSON解析エラー: {errorMessage}",
1303
- "inputContainsDisallowedCharacters": "セキュリティ: 入力に許可されない文字が含まれています",
1301
+ "jsonStringTooLarge": "セキュリティ: JSON 文字列が大きすぎます",
1302
+ "jsonParseError": "セキュリティ: JSON 解析エラー: {errorMessage}",
1303
+ "inputContainsDisallowedCharacters": "セキュリティ: 入力に許可されていない文字が含まれています",
1304
1304
  "unknownCommandArgument": "セキュリティ: 不明なコマンド引数: {key}",
1305
1305
  "unknown_command_argument": "セキュリティ: 不明なコマンド引数: {key}",
1306
- "unknownConfigKey": "セキュリティ: 不明な設定キー: {key}",
1307
- "unknown_config_key": "セキュリティ: 不明な設定キー: {key}",
1306
+ "unknownConfigKey": "セキュリティ: 不明な構成キー: {key}",
1307
+ "unknown_config_key": "セキュリティ: 不明な構成キー: {key}",
1308
1308
  "securityAlert": "[セキュリティ警告] {timestamp}: {event}",
1309
- "contentTooLarge": "セキュリティ: ファイルに対してコンテンツが大きすぎます: {validatedPath}",
1310
- "inputDisallowedCharacters": "セキュリティ: 入力に許可されない文字が含まれています",
1311
- "unknownCommandArg": "不明なコマンド引数です",
1312
- "logMessage": "[セキュリティ {level}] {timestamp}: {event}",
1309
+ "contentTooLarge": "セキュリティ: コンテンツがファイルに対して大きすぎます: {validatedPath}",
1310
+ "inputDisallowedCharacters": "セキュリティ: 入力に許可されていない文字が含まれています",
1311
+ "unknownCommandArg": "不明なコマンド引数",
1312
+ "logMessage": "[安全 {level}] {timestamp}: {event}",
1313
1313
  "alertMessage": "[セキュリティ警告] {timestamp}: {event}",
1314
1314
  "securityWarning": "[セキュリティ警告] {timestamp}: {event}",
1315
- "json_parse_error": "セキュリティ: JSON解析エラー: {errorMessage}",
1316
- "file_too_large": "セキュリティ: ファイルが大きすぎます",
1317
- "file_read_error": "セキュリティ: ファイル読み取りエラー",
1318
- "content_too_large_for_file": "セキュリティ: ファイルに対してコンテンツが大きすぎます",
1319
- "file_write_error": "セキュリティ: ファイル書き込みエラー",
1320
- "json_string_too_large": "セキュリティ: JSON文字列が大きすぎます",
1321
- "recursion_detected": "セキュリティ: 再帰が検出されました: {operation}",
1322
- "operation_timeout": "セキュリティ: 操作のタイムアウト: {operation}",
1323
- "operation_error": "セキュリティ: 操作 {operation} のエラー: {error}",
1324
- "directory_read_error": "セキュリティ: ディレクトリ読み取りエラー: {errorMessage}",
1325
- "security_alert": "セキュリティ: アラート"
1315
+ "json_parse_error": "セキュリティ: JSON 解析エラー: {errorMessage}",
1316
+ "file_too_large": "ファイルが大きすぎます",
1317
+ "file_read_error": "ファイル読み取りエラー",
1318
+ "content_too_large_for_file": "コンテンツがファイルに対して大きすぎます",
1319
+ "file_write_error": "ファイル書き込みエラー",
1320
+ "json_string_too_large": "Json文字列が大きすぎます",
1321
+ "recursion_detected": "で再帰が検出されました {operation}",
1322
+ "operation_timeout": "操作のタイムアウト: {operation}",
1323
+ "operation_error": "の操作エラー {operation}: {error}",
1324
+ "directory_read_error": "ディレクトリ読み取りエラー: {errorMessage}",
1325
+ "security_alert": "セキュリティ警告"
1326
1326
  },
1327
1327
  "settings-cli": {
1328
1328
  "settings": {
1329
1329
  "mainMenu": {
1330
1330
  "title": "メインメニュー:",
1331
1331
  "uiSettings": "UI設定",
1332
- "uiSettingsDesc": "言語、テーマ、インターフェイスオプション",
1332
+ "uiSettingsDesc": "言語、テーマ、インターフェースのオプション",
1333
1333
  "directorySettings": "ディレクトリ設定",
1334
- "directorySettingsDesc": "ソースおよび出力ディレクトリパス",
1335
- "scriptDirectorySettings": "スクリプトディレクトリ設定",
1336
- "scriptDirectorySettingsDesc": "各スクリプト操作のディレクトリパス",
1334
+ "directorySettingsDesc": "ソースおよび出力ディレクトリのパス",
1335
+ "scriptDirectorySettings": "スクリプトディレクトリの設定",
1336
+ "scriptDirectorySettingsDesc": "個々のスクリプト操作のディレクトリ パス",
1337
1337
  "processingSettings": "処理設定",
1338
- "processingSettingsDesc": "バッチサイズ、同時実行数、パフォーマンス",
1338
+ "processingSettingsDesc": "バッチサイズ、同時実行性、パフォーマンス",
1339
1339
  "advancedSettings": "詳細設定",
1340
- "advancedSettingsDesc": "検証、ログ、エキスパートオプション",
1340
+ "advancedSettingsDesc": "検証、ロギング、およびエキスパートのオプション",
1341
1341
  "viewAllSettings": "すべての設定を表示",
1342
- "viewAllSettingsDesc": "現在の構成を表示",
1342
+ "viewAllSettingsDesc": "現在の構成を表示する",
1343
1343
  "importExport": "インポート/エクスポート",
1344
1344
  "importExportDesc": "設定のバックアップと復元",
1345
1345
  "resetToDefaults": "デフォルトにリセット",
1346
- "resetToDefaultsDesc": "工場出荷時設定に戻す",
1347
- "reportBug": "バグを報告",
1348
- "reportBugDesc": "GitHubで問題を報告",
1346
+ "resetToDefaultsDesc": "工場出荷時の設定を復元する",
1347
+ "reportBug": "バグを報告する",
1348
+ "reportBugDesc": "GitHub で問題レポートを送信する",
1349
1349
  "saveChanges": "変更を保存",
1350
- "saveChangesDesc": "現在の設定をファイルに保存",
1351
- "updatePackage": "パッケージを更新",
1352
- "updatePackageDesc": "npmを介してi18n-toolkitパッケージを更新",
1350
+ "saveChangesDesc": "現在の設定をファイルに保存する",
1351
+ "updatePackage": "アップデートパッケージ",
1352
+ "updatePackageDesc": "npm 経由で i18n-toolkit パッケージを更新します。",
1353
1353
  "help": "ヘルプ",
1354
- "helpDesc": "詳細なヘルプ情報を表示",
1355
- "quit": "終了",
1356
- "quitDesc": "設定から終了(必要に応じて保存確認)",
1357
- "unsavedChangesWarning": "⚠️ 保存されていない変更があります",
1358
- "saveChangesBeforeQuit": "終了前に変更を保存しますか? (y/N):",
1354
+ "helpDesc": "詳細なヘルプ情報を表示する",
1355
+ "quit": "やめる",
1356
+ "quitDesc": "設定を終了します (必要に応じて保存プロンプトが表示されます)",
1357
+ "unsavedChangesWarning": "⚠️ 未保存の変更があります",
1358
+ "saveChangesBeforeQuit": "終了する前に変更を保存しますか? (y/N):",
1359
1359
  "selectOption": "オプションを選択してください:",
1360
- "goodbyeMessage": "i18n設定マネージャーをご利用いただきありがとうございます!"
1360
+ "goodbyeMessage": "i18n 設定マネージャーをご利用いただきありがとうございます。"
1361
1361
  },
1362
- "goodbyeMessage": "i18n設定マネージャーをご利用いただきありがとうございます!",
1363
- "relativePathHint": "このディレクトリからの相対パスを使用 (例: ./src/i18n/locales)",
1362
+ "goodbyeMessage": "i18n 設定マネージャーをご利用いただきありがとうございます。",
1363
+ "relativePathHint": "このディレクトリからの相対パスを使用します (例: ./src/i18n/locales)",
1364
1364
  "currentDirectory": "現在のプロジェクトディレクトリ"
1365
1365
  },
1366
1366
  "settings_manager": {
1367
1367
  "error_loading_settings": "❌ 設定の読み込みエラー:",
1368
- "error_saving_settings": "❌ 設定の保存エラー:",
1369
- "error_setting_value": "❌ 値の設定エラー:",
1370
- "missing_required_setting": "❌ 必須設定がありません: {prop}",
1371
- "invalid_language": "❌ 無効な言語です: {language}",
1372
- "invalid_source_language": "❌ 無効なソース言語です: {sourceLanguage}",
1373
- "default_languages_must_be_array": "❌ defaultLanguages は配列でなければなりません",
1374
- "invalid_date_format": "❌ 無効な日付形式です: {dateFormat}. 有効な形式: {validFormats}",
1375
- "invalid_time_format": "❌ 無効な時間形式です: {timeFormat}. 有効な形式: {validFormats}",
1376
- "notifications_types_must_be_object": "❌ notifications.types はオブジェクトでなければなりません",
1377
- "exclude_files_must_be_array": "❌ excludeFiles は配列でなければなりません",
1378
- "exclude_dirs_must_be_array": "❌ excludeDirs は配列でなければなりません",
1379
- "include_extensions_must_be_array": "❌ includeExtensions は配列でなければなりません",
1380
- "invalid_batch_size": "❌ 無効なバッチサイズです。正の数でなければなりません",
1381
- "invalid_max_concurrent_files": "❌ 無効な同時処理ファイル数です。正の数でなければなりません",
1382
- "invalid_sizing_threshold": "❌ 無効なサイズしきい値です。正の数でなければなりません",
1383
- "invalid_timeout": "❌ 無効なタイムアウトです。最低1000ms以上でなければなりません",
1384
- "invalid_sizing_format": "❌ 無効なサイズ形式です: {sizingFormat}. 有効な形式: {validFormats}",
1385
- "error_validating_settings": "❌ 設定の検証エラー:",
1386
- "backup_created": "📋 バックアップを作成しました: {backupPath}",
1368
+ "error_saving_settings": "❌ 設定の保存中にエラーが発生しました:",
1369
+ "error_setting_value": "❌ エラー設定値:",
1370
+ "missing_required_setting": "❌ 必要な設定がありません: {prop}",
1371
+ "invalid_language": "❌ 無効な言語: {language}",
1372
+ "invalid_source_language": "❌ 無効なソース言語: {sourceLanguage}",
1373
+ "default_languages_must_be_array": "❌defaultLanguages は配列である必要があります",
1374
+ "invalid_date_format": "❌ 無効な日付形式: {dateFormat}。有効な形式: {validFormats}",
1375
+ "invalid_time_format": "❌ 無効な時刻形式: {timeFormat}。有効な形式: {validFormats}",
1376
+ "notifications_types_must_be_object": "❌ notification.types はオブジェクトである必要があります",
1377
+ "exclude_files_must_be_array": "❌ excludeFiles は配列である必要があります",
1378
+ "exclude_dirs_must_be_array": "❌ excludeDirs は配列である必要があります",
1379
+ "include_extensions_must_be_array": "❌ includeExtensions は配列である必要があります",
1380
+ "invalid_batch_size": "❌ バッチサイズが無効です。正の数でなければなりません",
1381
+ "invalid_max_concurrent_files": "❌ 最大同時ファイル数が無効です。正の数でなければなりません",
1382
+ "invalid_sizing_threshold": "❌ サイズ設定のしきい値が無効です。正の数でなければなりません",
1383
+ "invalid_timeout": "❌ タイムアウトが無効です。少なくとも 1000 ミリ秒である必要があります",
1384
+ "invalid_sizing_format": "❌ 無効なサイズ形式: {sizingFormat}。有効な形式: {validFormats}",
1385
+ "error_validating_settings": "❌ 設定の検証中にエラーが発生しました:",
1386
+ "backup_created": "📋 バックアップが作成されました: {backupPath}",
1387
1387
  "error_creating_backup": "❌ バックアップ作成エラー:",
1388
- "language_not_supported": "言語 '{language}' はサポートされていません。利用可能: {availableLanguages}",
1389
- "ui_language_set": "🌍 UI言語が設定されました: {language}"
1388
+ "language_not_supported": "言語 '{language}」はサポートされていません。利用可能: {availableLanguages}",
1389
+ "ui_language_set": "🌍 UI言語は次のように設定されています: {language}"
1390
1390
  }
1391
1391
  },
1392
1392
  "settings": {
1393
- "title": "⚙️ 設定管理",
1394
- "separator": "============================================================",
1395
- "goodbyeMessage": "i18ntk設定マネージャーをご利用いただきありがとうございます!",
1396
- "relativePathHint": "このディレクトリからの相対パスを使用 (例: ./src/i18n/locales)",
1393
+ "title": "⚙️設定管理",
1394
+ "separator": "======================================================",
1395
+ "goodbyeMessage": "i18ntk 設定マネージャーをご利用いただきありがとうございます。",
1396
+ "relativePathHint": "このディレクトリからの相対パスを使用します (例: ./src/i18n/locales)",
1397
1397
  "currentDirectory": "現在のプロジェクトディレクトリ",
1398
- "startingSettings": "設定を開始します...",
1398
+ "startingSettings": "開始設定:",
1399
1399
  "pin": "ピン:",
1400
1400
  "reportBug": {
1401
- "title": "バグを報告",
1402
- "description": "発生した問題やバグを報告する",
1403
- "guidance": "バグを報告するには、以下の手順に従ってください:",
1404
- "checkLogs": "1. 最近のデバッグログでエラーを確認する",
1405
- "documentIssue": "2. 再現手順と共に問題を文書化する",
1406
- "contactSupport": "3. サポートまたは適切な報告チャンネルに連絡する",
1407
- "completed": "✅ バグ報告プロセスが完了しました",
1408
- "instructions": "上記の手順に従ってバグを報告してください。"
1401
+ "title": "バグを報告する",
1402
+ "description": "発生した問題やバグを報告してください",
1403
+ "guidance": "問題を効果的に報告するには:",
1404
+ "checkLogs": "1. プロジェクト ディレクトリのデバッグ ログを確認します。",
1405
+ "documentIssue": "2. 問題を再現手順とともに文書化する",
1406
+ "contactSupport": "3. システム管理者またはサポート チームに連絡します。",
1407
+ "completed": "バグ報告ガイダンスが表示される",
1408
+ "instructions": "バグを報告するには、上記の手順に従ってください。"
1409
1409
  },
1410
1410
  "mainMenu": {
1411
1411
  "title": "メインメニュー:",
1412
1412
  "uiSettings": "UI設定",
1413
- "uiSettingsDesc": "言語、テーマ、インターフェイスオプション",
1413
+ "uiSettingsDesc": "言語、テーマ、インターフェースのオプション",
1414
1414
  "directorySettings": "ディレクトリ設定",
1415
- "directorySettingsDesc": "翻訳ファイルのソースおよび出力ディレクトリ",
1415
+ "directorySettingsDesc": "ソースおよび出力ディレクトリのパス",
1416
1416
  "processingSettings": "処理設定",
1417
- "processingSettingsDesc": "バッチサイズ、同時実行、およびパフォーマンス",
1417
+ "processingSettingsDesc": "バッチサイズ、同時実行性、およびパフォーマンス",
1418
1418
  "advancedSettings": "詳細設定",
1419
- "advancedSettingsDesc": "検証、ログ、およびエキスパートオプション",
1419
+ "advancedSettingsDesc": "検証、ロギング、およびエキスパートのオプション",
1420
1420
  "viewAllSettings": "すべての設定を表示",
1421
- "viewAllSettingsDesc": "現在の構成を表示",
1421
+ "viewAllSettingsDesc": "現在の構成を表示する",
1422
1422
  "importExport": "インポート/エクスポート",
1423
- "updatePackage": "パッケージを更新",
1424
- "updatePackageDesc": "npmを介してi18n-toolkitパッケージを更新",
1423
+ "updatePackage": "アップデートパッケージ",
1424
+ "updatePackageDesc": "npm 経由で i18n-toolkit パッケージを更新します。",
1425
1425
  "importExportDesc": "設定のバックアップと復元",
1426
1426
  "resetToDefaults": "デフォルトにリセット",
1427
- "resetToDefaultsDesc": "工場出荷時設定に戻す",
1428
- "reportBug": "バグを報告",
1429
- "reportBugDesc": "発生した問題やバグを報告する",
1427
+ "resetToDefaultsDesc": "工場出荷時の設定を復元する",
1428
+ "reportBug": "バグを報告する",
1429
+ "reportBugDesc": "GitHub で問題レポートを送信する",
1430
1430
  "saveChanges": "変更を保存",
1431
- "saveChangesDesc": "現在の設定をファイルに保存",
1431
+ "saveChangesDesc": "現在の設定をファイルに保存する",
1432
1432
  "help": "ヘルプ",
1433
- "helpDesc": "詳細なヘルプ情報を表示",
1434
- "quit": "終了",
1435
- "quitDesc": "設定を終了(必要に応じて保存確認あり)",
1436
- "unsavedChangesWarning": "⚠️ 保存されていない変更があります",
1437
- "saveChangesBeforeQuit": "終了前に変更を保存しますか? (y/N):",
1433
+ "helpDesc": "詳細なヘルプ情報を表示する",
1434
+ "quit": "やめる",
1435
+ "quitDesc": "設定を終了します (必要に応じて保存プロンプトが表示されます)",
1436
+ "unsavedChangesWarning": "⚠️ 未保存の変更があります",
1437
+ "saveChangesBeforeQuit": "終了する前に変更を保存しますか? (y/N):",
1438
1438
  "selectOption": "オプションを選択してください:",
1439
- "goodbyeMessage": "i18n設定マネージャーをご利用いただきありがとうございます!",
1440
- "selectSettingPrompt": "編集する設定を選択してください(戻るには 'b'):",
1439
+ "goodbyeMessage": "i18n 設定マネージャーをご利用いただきありがとうございます。",
1440
+ "selectSettingPrompt": "編集する設定を選択します (または、「b」で戻ります)。",
1441
1441
  "enterNewValue": "新しい値を入力してください:",
1442
- "updatedSuccessfully": "{setting} が正常に更新されました!",
1443
- "scriptDirectorySettings": "スクリプトディレクトリ設定",
1444
- "scriptDirectoryDesc": "各スクリプトのカスタムディレクトリを指定します",
1445
- "scriptDirectorySettingsDesc": "設定しない場合はグローバル設定が使用されます。",
1442
+ "updatedSuccessfully": "{setting} 無事に更新されました!",
1443
+ "scriptDirectorySettings": "スクリプトディレクトリの設定",
1444
+ "scriptDirectoryDesc": "各スクリプトのカスタム ディレクトリを指定する",
1445
+ "scriptDirectorySettingsDesc": "スクリプトごとにカスタム ディレクトリを設定できます。設定されていない場合は、グローバル設定が使用されます。",
1446
1446
  "currentDirectory": "現在のプロジェクトディレクトリ",
1447
1447
  "securitySettings": "セキュリティ設定",
1448
- "securitySettingsDesc": "管理者PINとその他のセキュリティオプション",
1448
+ "securitySettingsDesc": "管理者PINおよびその他のセキュリティオプション",
1449
1449
  "backupSettings": "バックアップ設定",
1450
- "backupSettingsDesc": "バックアップおよび復元の設定を行う"
1450
+ "backupSettingsDesc": "構成設定のバックアップと復元"
1451
1451
  },
1452
1452
  "updatePackage": {
1453
- "title": "パッケージを更新",
1454
- "description": "npmを介してi18n-toolkitパッケージを更新します",
1453
+ "title": "アップデートパッケージ",
1454
+ "description": "npm 経由で i18n-toolkit パッケージを更新します。",
1455
1455
  "command": "npm update i18ntk -g",
1456
- "success": "更新が正常に完了しました。",
1457
- "failed": "更新に失敗しました。",
1458
- "prompt": "パッケージを更新しますか? (y/N):",
1459
- "promptDesc": "注: 最新バージョンに更新します。",
1456
+ "success": "アップデートは正常に完了しました。",
1457
+ "failed": "アップデートに失敗しました。",
1458
+ "prompt": "今すぐパッケージを更新しますか? (y/N):",
1459
+ "promptDesc": "注: これにより、i18ntk パッケージが最新バージョンに更新されます。",
1460
1460
  "confirm": "y",
1461
1461
  "cancelled": "更新がキャンセルされました。",
1462
1462
  "error": "パッケージの更新に失敗しました",
1463
1463
  "updating": "パッケージを更新しています..."
1464
1464
  },
1465
1465
  "admin": {
1466
- "selectOption": "オプションを選択してください:",
1467
- "updateSuccess": "管理者PINが正常に更新されました!",
1466
+ "selectOption": "オプションを選択します:",
1467
+ "updateSuccess": "管理者 PIN が正常に更新されました。",
1468
1468
  "updateFailed": "管理者PINの更新に失敗しました。",
1469
- "protectionRemoved": "管理者PIN保護が解除されました。",
1470
- "configSuccess": "管理者PINが正常に設定されました!",
1469
+ "protectionRemoved": "管理者 PIN 保護が削除されました。",
1470
+ "configSuccess": "管理者 PIN が正常に設定されました。",
1471
1471
  "configFailed": "管理者PINの設定に失敗しました。",
1472
- "setupPinPrompt": "管理者PINを設定しますか? (y/N):",
1473
- "pinUpdatedSuccess": "管理者PINが正常に更新されました!",
1472
+ "setupPinPrompt": "管理者PINを設定しますか? (y/N):",
1473
+ "pinUpdatedSuccess": "管理者 PIN が正常に更新されました。",
1474
1474
  "pinUpdatedFailed": "管理者PINの更新に失敗しました。",
1475
- "pinRemoved": "管理者PIN保護が解除されました。",
1476
- "pinConfiguredSuccess": "管理者PINが正常に設定されました!",
1475
+ "pinRemoved": "管理者 PIN 保護が削除されました。",
1476
+ "pinConfiguredSuccess": "管理者 PIN が正常に設定されました。",
1477
1477
  "pinConfiguredFailed": "管理者PINの設定に失敗しました。",
1478
1478
  "accessDenied": "❌ アクセスが拒否されました。メニューに戻ります。",
1479
- "setupPin": "🔐 管理者PINを設定中…",
1480
- "setupFailed": "❌ 管理者PINの設定に失敗しました。設定は変更されませんでした。",
1481
- "pinConfigured": "📌 管理者PINは現在設定されています。",
1479
+ "setupPin": "🔐 管理者PINを設定中...",
1480
+ "setupFailed": "❌ 管理者PINの設定に失敗しました。設定は変更されていません。",
1481
+ "pinConfigured": "📌 管理者 PIN は現在設定されています。",
1482
1482
  "options": "オプション:",
1483
- "changePin": "1) 既存のPINを変更",
1484
- "removePin": "2) PIN保護を解除",
1483
+ "changePin": "1) 既存のPINを変更する",
1484
+ "removePin": "2) PIN 保護を削除する",
1485
1485
  "cancel": "3) キャンセル",
1486
- "verifyCurrentPin": "🔐 まず現在のPINを確認してください:",
1487
- "settingNewPin": "🔄 新しいPINを設定中…",
1488
- "verifyToRemove": "🔐 保護解除するには現在のPINを確認してください:",
1489
- "noPinConfigured": "🔓 現在管理者PINは設定されていません。",
1490
- "pinBenefits": "管理者PINを設定すると以下が保護されます:",
1486
+ "verifyCurrentPin": "🔐 まず現在の PIN を確認します:",
1487
+ "settingNewPin": "🔄 新しいPINを設定しています...",
1488
+ "verifyToRemove": "🔐 現在の PIN を確認して保護を解除します。",
1489
+ "noPinConfigured": "🔓 現在、管理者 PIN は設定されていません。",
1490
+ "pinBenefits": "管理者 PIN を設定すると、次のセキュリティが強化されます。",
1491
1491
  "benefitSecurity": "• セキュリティ設定の変更",
1492
1492
  "benefitAdvanced": "• 詳細設定の変更",
1493
1493
  "benefitDebug": "• デバッグツールへのアクセス",
1494
- "benefitReset": "• 設定のリセット",
1495
- "setupCancelled": "⏭️ 管理者PIN設定がキャンセルされました。",
1494
+ "benefitReset": "• 設定をリセットする",
1495
+ "setupCancelled": "⏭️ 管理者 PIN の設定がキャンセルされました。",
1496
1496
  "operationCancelled": "❌ 操作がキャンセルされました。",
1497
- "startingSettings": "🎛️ 設定CLIを開始しています…",
1498
- "authRequired": "🔒 次の操作には管理者認証が必要です: {label}",
1499
- "pinSetupTitle": "管理者PIN設定",
1500
- "browserOpenFailed": "ブラウザを自動で開けませんでした。",
1501
- "manualVisit": "手動で次のURLにアクセスしてください: {url}",
1502
- "browserOpened": "✅ ブラウザを正常に開きました!"
1497
+ "startingSettings": "🎛️ 設定 CLI を開始しています...",
1498
+ "authRequired": "🔒 以下の場合に管理者認証が必要です: {label}",
1499
+ "pinSetupTitle": "管理者PINの設定",
1500
+ "browserOpenFailed": "ブラウザを自動的に開くことができませんでした。",
1501
+ "manualVisit": "手動でアクセスしてください: {url}",
1502
+ "browserOpened": "✅ ブラウザが正常に開きました!"
1503
1503
  },
1504
1504
  "importExport": {
1505
- "title": "インポート/エクスポート",
1506
- "export": "エクスポート",
1507
- "import": "インポート",
1508
- "backup": "バックアップ",
1509
- "enterFilename": "ファイル名を入力してください (デフォルトはEnter):",
1510
- "exportSuccess": "設定を {file} にエクスポートしました",
1505
+ "title": "設定のインポート/エクスポート",
1506
+ "export": "設定のエクスポート",
1507
+ "import": "インポート設定",
1508
+ "backup": "バックアップの作成",
1509
+ "enterFilename": "ファイル名を入力してください (またはデフォルトの場合は Enter キーを押します):",
1510
+ "exportSuccess": "設定のエクスポート先 {file}",
1511
1511
  "exportFailed": "設定のエクスポートに失敗しました: {error}",
1512
1512
  "importFilename": "インポートするファイル名を入力してください:",
1513
1513
  "fileNotFound": "ファイルが見つかりません。",
1514
- "invalidFormat": "無効な設定ファイル形式です。",
1515
- "confirmImport": "これにより現在の設定が上書きされます。続行しますか? (y/N):",
1516
- "importSuccess": "設定を正常にインポートしました。",
1514
+ "invalidFormat": "設定ファイルの形式が無効です。",
1515
+ "confirmImport": "これにより、現在の設定がすべて置き換えられます。続く? (y/N):",
1516
+ "importSuccess": "設定が正常にインポートされました。",
1517
1517
  "importFailed": "設定のインポートに失敗しました: {error}",
1518
- "backupSuccess": "バックアップを作成しました: {file}",
1518
+ "backupSuccess": "バックアップが作成されました: {file}",
1519
1519
  "backupFailed": "バックアップの作成に失敗しました: {error}",
1520
1520
  "exportFilenamePrompt": "エクスポート ファイル名を入力してください:",
1521
1521
  "importConfirm": "この設定ファイルをインポートしますか? (y/N):",
@@ -1524,369 +1524,367 @@
1524
1524
  "restore": "設定を復元する"
1525
1525
  },
1526
1526
  "selectOption": "オプションを選択してください:",
1527
- "resetToDefaultsTitle": "デフォルトにリセット",
1528
- "resetWarning1": "⚠️ この操作は元に戻せません。",
1529
- "resetWarning2": "⚠️ デフォルト設定にリセットします。",
1530
- "resetConfirm": "続行してもよろしいですか? (y/N):",
1531
- "resetSuccess": "設定をデフォルトにリセットしました。",
1532
- "resetFailed": "設定のリセットに失敗しました: {error}",
1533
- "resetDone": "設定がデフォルトにリセットされました。",
1534
- "resetScriptDirsDone": "スクリプトディレクトリがシステムのデフォルトにリセットされました。",
1535
- "saveSuccess": "設定を正常に保存しました。",
1527
+ "resetToDefaultsTitle": "設定をデフォルトにリセットする",
1528
+ "resetWarning1": "⚠️ これにより、すべての設定がデフォルト値にリセットされます。",
1529
+ "resetWarning2": "この操作は元に戻すことができません。",
1530
+ "resetConfirm": "続行してもよろしいですか? (y/N):",
1531
+ "resetSuccess": "設定は正常にデフォルトにリセットされました。",
1532
+ "resetFailed": "設定をリセットできませんでした: {error}",
1533
+ "resetDone": "設定は正常にデフォルトにリセットされました。",
1534
+ "resetScriptDirsDone": "スクリプト ディレクトリがシステムのデフォルトに正常にリセットされました。",
1535
+ "saveSuccess": "設定が正常に保存されました。",
1536
1536
  "saveFailed": "設定の保存に失敗しました。",
1537
- "saveError": "⚠️ 設定の保存に失敗しました。",
1538
- "pressEnter": "Enterキーを押して続行してください…",
1537
+ "saveError": "無効な設定が提供されました",
1538
+ "pressEnter": "続行するには Enter キーを押してください...",
1539
1539
  "initFailed": "設定の初期化に失敗しました: {error}",
1540
- "invalidValueFormat": "無効な値の形式です。",
1540
+ "invalidValueFormat": "値の形式が無効です。",
1541
1541
  "help": {
1542
1542
  "title": "設定ヘルプ",
1543
1543
  "navigationTitle": "ナビゲーション",
1544
- "navigation1": "1. 一般設定 - UI言語、テーマ、基本設定を行う",
1545
- "navigation2": "2. ディレクトリ設定 - 翻訳ファイルのソースおよび出力ディレクトリを設定",
1546
- "navigation3": "3. 処理設定 - バッチサイズ、同時実行、パフォーマンスオプションを設定",
1547
- "navigation4": "4. 詳細設定 - 検証、ログ記録、エキスパート設定を行う",
1544
+ "navigation1": "1. 一般設定 - UI 言語、テーマ、基本設定を構成します。",
1545
+ "navigation2": "2. ディレクトリ設定 - 翻訳ファイルのソース ディレクトリと出力ディレクトリを設定します。",
1546
+ "navigation3": "3. 処理設定 - バッチ サイズ、同時実行性、パフォーマンス オプションを構成します。",
1547
+ "navigation4": "4. 詳細設定 - 検証、ログ記録、およびエキスパート構成オプションへのアクセス",
1548
1548
  "categoriesTitle": "設定カテゴリ",
1549
- "categoryUI": "• UI設定: インターフェイス言語、カラーテーマ、表示設定",
1550
- "categoryDirectory": "• ディレクトリ設定: ソースファイル位置およびレポート出力ディレクトリ",
1549
+ "categoryUI": "• UI 設定: インターフェイス言語、カラーテーマ、および表示設定",
1550
+ "categoryDirectory": "• ディレクトリ設定: ソース ファイルの場所と出力レポート ディレクトリ",
1551
1551
  "categoryProcessing": "• 処理設定: バッチ処理、ファイル制限、パフォーマンス調整",
1552
- "categoryAdvanced": "• 詳細設定: デバッグモード、監査ログ、セキュリティオプション",
1552
+ "categoryAdvanced": "• 詳細設定: デバッグ モード、監査ログ、およびセキュリティ オプション",
1553
1553
  "envVarsTitle": "環境変数",
1554
- "envVar1": "• I18N_SOURCE_DIR: デフォルトのソースディレクトリを上書き",
1555
- "envVar2": "• I18N_OUTPUT_DIR: デフォルトの出力ディレクトリを上書き",
1556
- "envVar3": "• I18N_DEBUG: デバッグモードを有効化 (true/false)",
1557
- "cliUsageTitle": "CLI使用例",
1558
- "cliUsage1": "• npx i18ntk --settings: インタラクティブ設定メニューを開く",
1559
- "cliUsage2": "• npx i18ntk --settings --lang ja: 日本語で設定メニューを開く",
1560
- "cliUsage3": "• npx i18ntk --reset-settings: すべての設定をデフォルトにリセット",
1561
- "navigation": "数字キーで選択、'b'で戻る",
1562
- "editing": "プロンプトが出たら新しい値を入力、Enterで現状維持",
1563
- "saving": "終了前に 's' で変更を保存",
1564
- "reset": "オプション7で全設定をデフォルトにリセット"
1554
+ "envVar1": "• I18N_SOURCE_DIR: デフォルトのソース ディレクトリ パスを上書きします。",
1555
+ "envVar2": "• I18N_OUTPUT_DIR: デフォルトの出力ディレクトリ パスを上書きします。",
1556
+ "envVar3": "• I18N_DEBUG: デバッグ モードを有効にする (true/false)",
1557
+ "cliUsageTitle": "CLI の使用例",
1558
+ "cliUsage1": "• npx i18ntk --settings: 対話型設定メニューを開きます。",
1559
+ "cliUsage2": "• npx i18ntk --settings --lang de: ドイツ語で設定を開きます",
1560
+ "cliUsage3": "• npx i18ntk --reset-settings: すべての設定をデフォルトにリセットします。",
1561
+ "navigation": "数字キーを使用してオプションを選択し、「b」で戻ります",
1562
+ "editing": "プロンプトが表示されたら新しい値を入力するか、Enter キーを押して最新の値を維持します",
1563
+ "saving": "終了する前に「s」を使用して変更を保存します",
1564
+ "reset": "オプション 7 を使用して、すべての設定をデフォルトにリセットします"
1565
1565
  },
1566
1566
  "categories": {
1567
1567
  "uiSettings": "UI設定",
1568
1568
  "directorySettings": "ディレクトリ設定",
1569
1569
  "processingSettings": "処理設定",
1570
1570
  "advancedSettings": "詳細設定",
1571
- "scriptDirectorySettings": "スクリプトディレクトリ設定",
1571
+ "scriptDirectorySettings": "スクリプトディレクトリの設定",
1572
1572
  "securitySettings": "セキュリティ設定"
1573
1573
  },
1574
1574
  "security": {
1575
1575
  "title": "🔐 セキュリティ設定",
1576
- "description": "管理者PIN保護およびセキュリティオプションを構成",
1576
+ "description": "管理者 PIN 保護とセキュリティ オプションを構成する",
1577
1577
  "currentPin": "現在のPIN:",
1578
1578
  "pinConfigured": "✅ 設定済み",
1579
1579
  "pinNotConfigured": "❌ 未設定",
1580
- "pinDisplay": "PIN表示:",
1580
+ "pinDisplay": "PIN 表示:",
1581
1581
  "menu": {
1582
1582
  "enableDisable": "1) 管理者PINの有効化/無効化",
1583
1583
  "setupChange": "2) 管理者PINの設定/変更",
1584
1584
  "sessionTimeout": "3) セッションタイムアウト",
1585
- "maxAttempts": "4) 最大失敗試行回数",
1586
- "lockoutDuration": "5) ロックアウト時間",
1585
+ "maxAttempts": "4) 失敗した試行の最大数",
1586
+ "lockoutDuration": "5) ロックアウト期間",
1587
1587
  "back": "b) メインメニューに戻る"
1588
1588
  },
1589
1589
  "prompts": {
1590
- "enablePin": "管理者PIN保護を有効にしますか? (y/N):",
1591
- "disablePin": "管理者PIN保護を無効にしますか? (y/N):",
1592
- "enterTimeout": "セッションタイムアウトを分単位で入力してください:",
1593
- "enterMaxAttempts": "最大失敗試行回数を入力してください:",
1594
- "enterLockoutDuration": "ロックアウト時間を分単位で入力してください:"
1590
+ "enablePin": "管理者 PIN 保護を有効にしますか? (y/N):",
1591
+ "disablePin": "管理者 PIN 保護を無効にしますか? (y/N):",
1592
+ "enterTimeout": "セッションのタイムアウト (分) を入力してください:",
1593
+ "enterMaxAttempts": "失敗した試行の最大数を入力してください:",
1594
+ "enterLockoutDuration": "ロックアウト期間 (分) を入力してください:"
1595
1595
  },
1596
1596
  "messages": {
1597
- "pinEnabled": "管理者PIN保護が有効になりました",
1598
- "pinDisabled": "管理者PIN保護が無効になりました",
1599
- "timeoutUpdated": "セッションタイムアウトが {minutes} 分に更新されました",
1600
- "maxAttemptsUpdated": "最大失敗試行回数が {attempts} 回に更新されました",
1601
- "lockoutDurationUpdated": "ロックアウト時間が {minutes} 分に更新されました"
1597
+ "pinEnabled": "管理者PIN保護が有効になっています",
1598
+ "pinDisabled": "管理者PIN保護が無効になっています",
1599
+ "timeoutUpdated": "セッションタイムアウトが次のように更新されました {minutes} ",
1600
+ "maxAttemptsUpdated": "失敗した試行の最大数が次のように更新されました {attempts}",
1601
+ "lockoutDurationUpdated": "ロックアウト期間が更新されました {minutes} "
1602
1602
  }
1603
1603
  },
1604
1604
  "fields": {
1605
- "backup": {
1606
- "enabled": {
1607
- "label": "バックアップを有効にする",
1608
- "description": "設定の自動バックアップを有効にする",
1609
- "help": "バックアップ機能を有効/無効にする"
1610
- },
1611
- "singleFileMode": {
1612
- "label": "単一ファイルモード",
1613
- "description": "バックアップを単一ファイルに使用する",
1614
- "help": "設定を単一のバックアップファイルにバックアップする"
1615
- },
1616
- "singleBackupFile": {
1617
- "label": "バックアップファイルパス",
1618
- "description": "バックアップファイルのパス",
1619
- "help": "単一のバックアップファイルのパス"
1620
- },
1621
- "retentionDays": {
1622
- "label": "バックアップ保持期間",
1623
- "description": "バックアップファイルを保持する日数",
1624
- "help": "古いバックアップファイルを保持する日数"
1625
- },
1626
- "maxBackups": {
1627
- "label": "バックアップファイルの最大数",
1628
- "description": "保持する最大のバックアップファイル数",
1629
- "help": "保持する最大のバックアップファイル数"
1630
- },
1631
- "confirm": {
1632
- "label": "バックアップを確認する",
1633
- "description": "バックアップ操作を確認する",
1634
- "help": "バックアップ操作を確認する"
1635
- }
1605
+ "backup.enabled": {
1606
+ "label": "Enable Backup",
1607
+ "description": "Enable automatic backup of settings",
1608
+ "help": "Enable/disable backup feature"
1609
+ },
1610
+ "backup.singleFileMode": {
1611
+ "label": "Single File Mode",
1612
+ "description": "Use single file for backups",
1613
+ "help": "Backup settings in a single file"
1614
+ },
1615
+ "backup.singleBackupFile": {
1616
+ "label": "Backup File Path",
1617
+ "description": "Path to the backup file",
1618
+ "help": "Path to the single backup file"
1619
+ },
1620
+ "backup.retentionDays": {
1621
+ "label": "Retention Period",
1622
+ "description": "Days to keep backup files",
1623
+ "help": "Number of days to retain old backup files"
1624
+ },
1625
+ "backup.maxBackups": {
1626
+ "label": "Maximum Backups",
1627
+ "description": "Maximum backup files to keep",
1628
+ "help": "Maximum number of backup files to keep"
1629
+ },
1630
+ "backup.confirm": {
1631
+ "label": "Confirm Backup",
1632
+ "description": "Require confirmation for backup operations",
1633
+ "help": "Confirm backup operation"
1636
1634
  },
1637
1635
  "i18nDir": {
1638
- "label": "I18nディレクトリ",
1636
+ "label": "I18n ディレクトリ",
1639
1637
  "description": "翻訳ファイルを含むディレクトリ",
1640
- "current": "現在: {value}",
1641
- "help": "翻訳ファイルがあるディレクトリへのパス"
1638
+ "current": "現在: {value}",
1639
+ "help": "翻訳ファイルのあるディレクトリへのパス"
1642
1640
  },
1643
1641
  "projectRoot": {
1644
1642
  "label": "プロジェクトルート",
1645
1643
  "description": "プロジェクトのルートディレクトリ",
1646
- "current": "現在: {value}",
1644
+ "current": "現在: {value}",
1647
1645
  "help": "プロジェクトのルートディレクトリへのパス"
1648
1646
  },
1649
1647
  "checkUsage": {
1650
1648
  "usage_analysis_failed": "使用状況分析に失敗しました",
1651
1649
  "usage_analysis_success": "使用状況分析が成功しました",
1652
1650
  "usage_analysis_complete": "使用状況分析が完了しました",
1653
- "usage_analysis_in_progress": "使用状況分析を実行中です",
1654
- "usage_analysis_started": "使用状況分析を開始しました",
1655
- "usage_analysis_skipped": "使用状況分析をスキップしました"
1651
+ "usage_analysis_in_progress": "使用状況分析中",
1652
+ "usage_analysis_started": "使用状況分析が開始されました",
1653
+ "usage_analysis_skipped": "使用状況分析はスキップされました"
1656
1654
  },
1657
1655
  "language": {
1658
- "label": "インターフェイス言語",
1659
- "description": "ユーザーインターフェイスの言語",
1660
- "current": "現在: {value}",
1661
- "help": "希望するインターフェイス言語を選択してください"
1656
+ "label": "インターフェース言語",
1657
+ "description": "ユーザーインターフェースの言語",
1658
+ "current": "現在: {value}",
1659
+ "help": "好みのインターフェース言語を選択してください"
1662
1660
  },
1663
1661
  "scriptDirectories": {
1664
- "analyzeLabel": "解析スクリプトディレクトリ",
1665
- "analyzeHelp": "問題のあるスクリプトディレクトリを解析します",
1666
- "completeLabel": "完了セットアップディレクトリ",
1667
- "initLabel": "初期化スクリプトディレクトリ",
1668
- "manageLabel": "管理スクリプトディレクトリ",
1669
- "sizingLabel": "サイズ設定スクリプトディレクトリ",
1670
- "summaryLabel": "要約レポートディレクトリ",
1671
- "usageLabel": "使用状況レポートディレクトリ",
1672
- "validateLabel": "検証スクリプトディレクトリ"
1662
+ "analyzeLabel": "スクリプトディレクトリの分析",
1663
+ "analyzeHelp": "スクリプト ディレクトリを分析して問題を検出する",
1664
+ "completeLabel": "完全なセットアップ ディレクトリ",
1665
+ "initLabel": "スクリプトディレクトリの初期化",
1666
+ "manageLabel": "スクリプトディレクトリの管理",
1667
+ "sizingLabel": "スクリプトディレクトリのサイズ設定",
1668
+ "summaryLabel": "概要レポートのディレクトリ",
1669
+ "usageLabel": "使用状況レポートのディレクトリ",
1670
+ "validateLabel": "スクリプトディレクトリの検証"
1673
1671
  },
1674
1672
  "theme": {
1675
1673
  "label": "カラーテーマ",
1676
1674
  "description": "UIテーマの設定",
1677
- "current": "現在: {value}",
1678
- "help": "ライトまたはダークテーマを選択してください"
1675
+ "current": "現在: {value}",
1676
+ "help": "明るいテーマと暗いテーマから選択してください"
1679
1677
  },
1680
1678
  "dateFormat": {
1681
1679
  "label": "日付形式",
1682
- "description": "日付表示の形式",
1683
- "current": "現在: {value}",
1684
- "help": "レポートの日付表示方法を選択してください"
1680
+ "description": "日付の表示形式",
1681
+ "current": "現在: {value}",
1682
+ "help": "レポートでの日付の表示方法を選択する"
1685
1683
  },
1686
1684
  "notifications": {
1687
1685
  "enabled": {
1688
1686
  "label": "通知を有効にする",
1689
- "description": "デスクトップ通知を表示",
1690
- "current": "現在: {value}",
1691
- "help": "操作完了時にデスクトップ通知を有効にします"
1687
+ "description": "デスクトップ通知を表示する",
1688
+ "current": "現在: {value}",
1689
+ "help": "完了した操作のデスクトップ通知を有効にする"
1692
1690
  }
1693
1691
  },
1694
1692
  "sourceDir": {
1695
1693
  "label": "ソースディレクトリ",
1696
1694
  "description": "翻訳ファイルを含むディレクトリ",
1697
- "current": "現在: {value}",
1698
- "help": "ソース翻訳ファイルがあるディレクトリへのパスを指定してください"
1695
+ "current": "現在: {value}",
1696
+ "help": "ソース翻訳ファイルが含まれるディレクトリへのパス"
1699
1697
  },
1700
1698
  "sourceLanguage": {
1701
1699
  "label": "ソース言語",
1702
- "description": "翻訳の基礎となる言語",
1703
- "current": "現在: {value}",
1704
- "help": "翻訳の基となる主要な言語を指定してください"
1700
+ "description": "翻訳の主言語",
1701
+ "current": "現在: {value}",
1702
+ "help": "翻訳のソースとして使用される主言語"
1705
1703
  },
1706
1704
  "outputDir": {
1707
1705
  "label": "出力ディレクトリ",
1708
1706
  "description": "生成されたレポートのディレクトリ",
1709
- "current": "現在: {value}",
1710
- "help": "レポートや処理済みファイルを保存する場所を指定してください"
1707
+ "current": "現在: {value}",
1708
+ "help": "レポートと処理されたファイルが保存される場所"
1711
1709
  },
1712
1710
  "batchSize": {
1713
1711
  "label": "バッチサイズ",
1714
- "description": "一度に処理するアイテム数",
1715
- "current": "現在: {value}",
1716
- "help": "1バッチあたりに処理するファイル数を指定してください"
1712
+ "description": "バッチごとに処理されるアイテムの数",
1713
+ "current": "現在: {value}",
1714
+ "help": "各バッチで処理するファイルの数"
1717
1715
  },
1718
1716
  "maxConcurrentFiles": {
1719
- "label": "同時処理ファイル数",
1720
- "description": "同時に処理する最大ファイル数",
1721
- "current": "現在: {value}",
1722
- "help": "同時に処理するファイルの最大数を指定してください"
1717
+ "label": "最大同時ファイル数",
1718
+ "description": "同時に処理される最大ファイル数",
1719
+ "current": "現在: {value}",
1720
+ "help": "同時に処理するファイルの最大数"
1723
1721
  },
1724
1722
  "sizingThreshold": {
1725
- "label": "サイズしきい値 (%)",
1723
+ "label": "サイズ設定のしきい値 (%)",
1726
1724
  "description": "サイズ変動警告のしきい値",
1727
- "current": "現在: {value}%",
1728
- "help": "サイズ不一致を検出するためのパーセンテージしきい値を指定してください"
1725
+ "current": "現在: {value}%",
1726
+ "help": "サイズの不一致を検出するためのパーセントしきい値"
1729
1727
  },
1730
1728
  "strictMode": {
1731
- "label": "厳格検証モード",
1732
- "description": "厳格検証モードを有効にする",
1733
- "current": "現在: {value}",
1734
- "help": "翻訳ファイルの厳格検証を有効にします"
1729
+ "label": "厳密な検証モード",
1730
+ "description": "厳密な検証モードを有効にする",
1731
+ "current": "現在: {value}",
1732
+ "help": "翻訳ファイルの厳密な検証を有効にする"
1735
1733
  },
1736
1734
  "enableAuditLog": {
1737
1735
  "label": "監査ログを有効にする",
1738
- "description": "すべての翻訳変更を記録する",
1739
- "current": "現在: {value}",
1740
- "help": "翻訳ファイルに対するすべての変更をログに残します"
1736
+ "description": "すべての翻訳変更を追跡する",
1737
+ "current": "現在: {value}",
1738
+ "help": "翻訳ファイルに加えられたすべての変更をログに記録します"
1741
1739
  },
1742
1740
  "backupBeforeChanges": {
1743
1741
  "label": "自動バックアップ",
1744
1742
  "description": "変更前にバックアップを作成する",
1745
- "current": "現在: {value}",
1746
- "help": "変更を加える前に自動的にバックアップを作成します"
1743
+ "current": "現在: {value}",
1744
+ "help": "変更を加える前にバックアップを自動的に作成する"
1747
1745
  },
1748
1746
  "advanced_maxConcurrentFiles": {
1749
- "label": "同時処理ファイル数",
1750
- "description": "同時に処理する最大ファイル数",
1751
- "current": "現在: {value}",
1752
- "help": "同時に処理するファイルの最大数を指定してください"
1747
+ "label": "最大同時ファイル数",
1748
+ "description": "同時に処理される最大ファイル数",
1749
+ "current": "現在: {value}",
1750
+ "help": "同時に処理するファイルの最大数"
1753
1751
  },
1754
1752
  "advanced_strictMode": {
1755
- "label": "厳格検証モード",
1756
- "description": "厳格検証モードを有効にする",
1757
- "current": "現在: {value}",
1758
- "help": "翻訳ファイルの厳格検証を有効にします"
1753
+ "label": "厳密な検証モード",
1754
+ "description": "厳密な検証モードを有効にする",
1755
+ "current": "現在: {value}",
1756
+ "help": "翻訳ファイルの厳密な検証を有効にする"
1759
1757
  },
1760
1758
  "adminPinEnabled": {
1761
- "label": "管理者PIN保護",
1762
- "description": "機密設定に管理者PIN認証を要求する",
1763
- "current": "現在: {value}",
1764
- "help": "セキュリティおよび詳細設定を変更する際に管理者PINを要求します"
1759
+ "label": "管理者PINの保護",
1760
+ "description": "機密性の高い設定に対して管理者 PIN 認証を有効にする",
1761
+ "current": "現在: {value}",
1762
+ "help": "セキュリティと詳細設定を変更するには管理者 PIN が必要です"
1765
1763
  },
1766
1764
  "sessionTimeout": {
1767
1765
  "label": "セッションタイムアウト",
1768
- "description": "管理者セッションのタイムアウト(分)",
1769
- "current": "現在: {value} 分",
1770
- "help": "再認証が必要になるまで管理者セッションを維持する時間を指定してください"
1766
+ "description": "管理者セッションのタイムアウト (分単位)",
1767
+ "current": "現在: {value} 分",
1768
+ "help": "再認証が必要になるまでに管理セッションがアクティブな状態を維持する時間"
1771
1769
  },
1772
1770
  "maxFailedAttempts": {
1773
- "label": "最大失敗試行回数",
1774
- "description": "ロックアウト前の最大PIN失敗試行回数",
1775
- "current": "現在: {value} ",
1776
- "help": "一時ロックアウト前に許可するPIN失敗回数を指定してください"
1771
+ "label": "失敗した試行の最大数",
1772
+ "description": "ロックアウトまでの PIN 試行失敗の最大数",
1773
+ "current": "現在: {value} 試み",
1774
+ "help": "一時的なロックアウトまでに許可される PIN 試行の失敗回数"
1777
1775
  },
1778
1776
  "lockoutDuration": {
1779
1777
  "label": "ロックアウト期間",
1780
- "description": "失敗後のロックアウト期間(分)",
1781
- "current": "現在: {value} 分",
1782
- "help": "最大失敗試行後にシステムがロックされる時間を指定してください"
1778
+ "description": "試行失敗後のロックアウト期間",
1779
+ "current": "現在: {value} 分",
1780
+ "help": "試行が最大失敗した後、システムがロックされたままになる時間"
1783
1781
  },
1784
1782
  "scriptDirectories_analyze": {
1785
- "label": "解析スクリプトディレクトリ",
1786
- "description": "解析スクリプト用のカスタムディレクトリ",
1787
- "current": "現在: {value}",
1788
- "help": "解析スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1783
+ "label": "スクリプトディレクトリの分析",
1784
+ "description": "分析スクリプト用のカスタム ディレクトリ",
1785
+ "current": "現在: {value}",
1786
+ "help": "分析スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1789
1787
  },
1790
1788
  "scriptDirectories_complete": {
1791
- "label": "完了セットアップディレクトリ",
1792
- "description": "完了セットアップスクリプト用のカスタムディレクトリ",
1793
- "current": "現在: {value}",
1794
- "help": "完了セットアップスクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1789
+ "label": "完全なセットアップ ディレクトリ",
1790
+ "description": "完全なセットアップ スクリプト用のカスタム ディレクトリ",
1791
+ "current": "現在: {value}",
1792
+ "help": "完全なセットアップ スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1795
1793
  },
1796
1794
  "scriptDirectories_init": {
1797
- "label": "初期化スクリプトディレクトリ",
1798
- "description": "初期化スクリプト用のカスタムディレクトリ",
1799
- "current": "現在: {value}",
1800
- "help": "初期化スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1795
+ "label": "スクリプトディレクトリの初期化",
1796
+ "description": "初期化スクリプト用のカスタム ディレクトリ",
1797
+ "current": "現在: {value}",
1798
+ "help": "初期化スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1801
1799
  },
1802
1800
  "scriptDirectories_manage": {
1803
- "label": "管理スクリプトディレクトリ",
1804
- "description": "管理スクリプト用のカスタムディレクトリ",
1805
- "current": "現在: {value}",
1806
- "help": "管理スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1801
+ "label": "スクリプトディレクトリの管理",
1802
+ "description": "スクリプト管理用のカスタム ディレクトリ",
1803
+ "current": "現在: {value}",
1804
+ "help": "管理スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1807
1805
  },
1808
1806
  "scriptDirectories_sizing": {
1809
- "label": "サイズ設定スクリプトディレクトリ",
1810
- "description": "サイズ設定スクリプト用のカスタムディレクトリ",
1811
- "current": "現在: {value}",
1812
- "help": "サイズ設定スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1807
+ "label": "スクリプトディレクトリのサイズ設定",
1808
+ "description": "サイズ調整スクリプト用のカスタム ディレクトリ",
1809
+ "current": "現在: {value}",
1810
+ "help": "サイズ設定スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1813
1811
  },
1814
1812
  "scriptDirectories_summary": {
1815
- "label": "要約レポートディレクトリ",
1816
- "description": "要約レポートスクリプト用のカスタムディレクトリ",
1817
- "current": "現在: {value}",
1818
- "help": "要約レポートスクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1813
+ "label": "概要レポートのディレクトリ",
1814
+ "description": "概要レポートスクリプト用のカスタムディレクトリ",
1815
+ "current": "現在: {value}",
1816
+ "help": "概要レポート スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1819
1817
  },
1820
1818
  "scriptDirectories_usage": {
1821
- "label": "使用状況レポートディレクトリ",
1819
+ "label": "使用状況レポートのディレクトリ",
1822
1820
  "description": "使用状況レポートスクリプト用のカスタムディレクトリ",
1823
- "current": "現在: {value}",
1824
- "help": "使用状況レポートスクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1821
+ "current": "現在: {value}",
1822
+ "help": "使用状況レポート スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1825
1823
  },
1826
1824
  "scriptDirectories_validate": {
1827
- "label": "検証スクリプトディレクトリ",
1828
- "description": "検証スクリプト用のカスタムディレクトリ",
1829
- "current": "現在: {value}",
1830
- "help": "検証スクリプトのソースディレクトリを指定します。空欄の場合はグローバル設定を使用します。"
1825
+ "label": "スクリプトディレクトリの検証",
1826
+ "description": "検証スクリプト用のカスタム ディレクトリ",
1827
+ "current": "現在: {value}",
1828
+ "help": "検証スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
1831
1829
  },
1832
1830
  "security_adminPinEnabled": {
1833
- "label": "管理者PIN保護",
1834
- "description": "機密設定に管理者PIN認証を要求する",
1835
- "current": "現在: {value}",
1836
- "help": "セキュリティおよび詳細設定を変更する際に管理者PINを要求します"
1831
+ "label": "管理者PINの保護",
1832
+ "description": "機密性の高い設定に対して管理者 PIN 認証を有効にする",
1833
+ "current": "現在: {value}",
1834
+ "help": "セキュリティと詳細設定を変更するには管理者 PIN が必要です"
1837
1835
  },
1838
1836
  "fields": {
1839
1837
  "adminPinEnabled": {
1840
- "label": "管理者 PIN の保護",
1841
- "description": "機密設定に管理者PIN認証を有効にする",
1842
- "help": "セキュリティと詳細設定の変更には管理者PINが必要です"
1838
+ "label": "管理者PINの保護",
1839
+ "description": "機密性の高い設定に対して管理者 PIN 認証を有効にする",
1840
+ "help": "セキュリティと詳細設定を変更するには管理者 PIN が必要です"
1843
1841
  }
1844
1842
  },
1845
1843
  "security_pinProtection_enabled": {
1846
- "label": "PIN保護",
1847
- "description": "機密設定に PIN 保護を有効にする",
1848
- "current": "現在: {value}",
1849
- "help": "セキュリティと詳細設定の変更にはPINが必要です"
1844
+ "label": "PIN の保護",
1845
+ "description": "機密設定の PIN 保護を有効にする",
1846
+ "current": "現在: {value}",
1847
+ "help": "セキュリティと詳細設定を変更するには PIN が必要です"
1850
1848
  },
1851
1849
  "pinProtection_configure": {
1852
- "label": "PIN保護スクリプトの設定",
1853
- "description": "PIN保護が必要なスクリプトを設定する",
1854
- "help": "PIN認証が必要な個別のスクリプトを選択"
1850
+ "label": "PIN で保護されたスクリプトの構成",
1851
+ "description": "どのスクリプトに PIN 保護が必要かを構成する",
1852
+ "help": "PIN 認証を必要とする個々のスクリプトを選択する"
1855
1853
  },
1856
1854
  "pinProtection_debugMenu": {
1857
- "label": "デバッグツールメニュー",
1858
- "description": "デバッグツールメニューにPINを要求",
1859
- "current": "現在: {value}",
1860
- "help": "デバッグツールへのアクセスにPIN保護を有効にする"
1855
+ "label": "「デバッグツール」メニュー",
1856
+ "description": "「デバッグツール」メニューにはPINが必要です",
1857
+ "current": "現在: {value}",
1858
+ "help": "デバッグ ツールにアクセスするための PIN 保護を有効にする"
1861
1859
  },
1862
1860
  "pinProtection_deleteReports": {
1863
1861
  "label": "レポートの削除",
1864
- "description": "レポート削除にPINを要求",
1865
- "current": "現在: {value}",
1866
- "help": "レポートの削除にPIN保護を有効にする"
1862
+ "description": "レポートの削除には PIN が必要です",
1863
+ "current": "現在: {value}",
1864
+ "help": "レポートを削除するために PIN 保護を有効にする"
1867
1865
  },
1868
1866
  "pinProtection_summaryReports": {
1869
- "label": "サマリーレポート",
1870
- "description": "サマリーレポートにPINを要求",
1871
- "current": "現在: {value}",
1872
- "help": "サマリーレポートの生成にPIN保護を有効にする"
1867
+ "label": "概要レポート",
1868
+ "description": "概要レポートには PIN が必要です",
1869
+ "current": "現在: {value}",
1870
+ "help": "概要レポートを生成するために PIN 保護を有効にする"
1873
1871
  },
1874
1872
  "pinProtection_settingsMenu": {
1875
1873
  "label": "設定メニュー",
1876
- "description": "設定メニューにPINを要求",
1877
- "current": "現在: {value}",
1878
- "help": "設定へのアクセスにPIN保護を有効にする"
1874
+ "description": "設定メニューにはPINが必要です",
1875
+ "current": "現在: {value}",
1876
+ "help": "設定にアクセスするための PIN 保護を有効にする"
1879
1877
  },
1880
1878
  "pinProtection_initScript": {
1881
- "label": "初期化スクリプト",
1882
- "description": "初期化スクリプトにPINを要求",
1883
- "current": "現在: {value}",
1884
- "help": "初期化スクリプトの実行にPIN保護を有効にする"
1879
+ "label": "スクリプトの初期化",
1880
+ "description": "スクリプトの初期化にPINを要求する",
1881
+ "current": "現在: {value}",
1882
+ "help": "初期化スクリプトを実行するために PIN 保護を有効にする"
1885
1883
  },
1886
1884
  "pinProtection_resetDefaults": {
1887
- "label": "PIN保護をリセット",
1888
- "description": "すべてのPIN保護設定をデフォルトにリセット",
1889
- "help": "すべてのスクリプト保護を工場出荷時の値にリセット"
1885
+ "label": "リセットPIN保護",
1886
+ "description": "すべての PIN 保護設定をデフォルトにリセットします",
1887
+ "help": "すべての個々のスクリプト PIN 保護をデフォルト値にリセットします"
1890
1888
  },
1891
1889
  "removeUiLanguages": {
1892
1890
  "label": "UI言語の削除",
@@ -1895,80 +1893,112 @@
1895
1893
  },
1896
1894
  "${helperKey}": {
1897
1895
  "help": "ヘルプ"
1896
+ },
1897
+ "backup": {
1898
+ "enabled": {
1899
+ "label": "バックアップを有効にする",
1900
+ "description": "設定の自動バックアップを有効にする",
1901
+ "help": "バックアップ機能を有効/無効にする"
1902
+ },
1903
+ "singleFileMode": {
1904
+ "label": "シングルファイルモード",
1905
+ "description": "バックアップには単一ファイルを使用する",
1906
+ "help": "設定を 1 つのファイルにバックアップする"
1907
+ },
1908
+ "singleBackupFile": {
1909
+ "label": "バックアップファイルのパス",
1910
+ "description": "バックアップファイルへのパス",
1911
+ "help": "単一のバックアップ ファイルへのパス"
1912
+ },
1913
+ "retentionDays": {
1914
+ "label": "保存期間",
1915
+ "description": "バックアップファイルを保存する日数",
1916
+ "help": "古いバックアップ ファイルを保持する日数"
1917
+ },
1918
+ "maxBackups": {
1919
+ "label": "最大バックアップ数",
1920
+ "description": "保存できるバックアップ ファイルの最大数",
1921
+ "help": "保持するバックアップ ファイルの最大数"
1922
+ },
1923
+ "confirm": {
1924
+ "label": "バックアップの確認",
1925
+ "description": "バックアップ操作には確認が必要です",
1926
+ "help": "バックアップ操作の確認"
1927
+ }
1898
1928
  }
1899
1929
  },
1900
1930
  "actions": {
1901
- "editSetting": "{setting} を編集:",
1902
- "settingUpdated": "✅ {setting} が正常に更新されました!",
1903
- "invalidValue": "❌ 無効な値です。もう一度お試しください。",
1904
- "pressEnter": "Enterキーを押して続行してください…",
1931
+ "editSetting": "編集 {setting}:",
1932
+ "settingUpdated": "✅ {setting} 無事に更新されました!",
1933
+ "invalidValue": "❌ 値が無効です。もう一度試してください。",
1934
+ "pressEnter": "続行するには Enter キーを押してください...",
1905
1935
  "backToMenu": "メインメニューに戻る",
1906
- "saveSuccess": "✅ 設定が正常に保存されました!",
1907
- "saveFailed": "❌ 設定の保存に失敗しました: {error}",
1908
- "resetConfirm": "すべての設定をデフォルトにリセットしてもよろしいですか? (y/N):",
1909
- "resetSuccess": "✅ 設定がデフォルトにリセットされました!",
1910
- "importSuccess": "✅ 設定が正常にインポートされました!",
1911
- "exportSuccess": "✅ 設定が正常にエクスポートされました!",
1936
+ "saveSuccess": "✅ 設定が正常に保存されました。",
1937
+ "saveFailed": "❌ 設定を保存できませんでした: {error}",
1938
+ "resetConfirm": "すべての設定をデフォルトにリセットしてもよろしいですか? (y/N):",
1939
+ "resetSuccess": "✅ 設定がデフォルトに正常にリセットされました。",
1940
+ "importSuccess": "✅ 設定が正常にインポートされました。",
1941
+ "exportSuccess": "✅ 設定が正常にエクスポートされました。",
1912
1942
  "fileNotFound": "❌ ファイルが見つかりません: {path}",
1913
- "invalidFormat": "❌ 無効な設定ファイル形式です",
1914
- "pinProtectionUpdated": "✅ {script} のPIN保護が正常に更新されました!",
1915
- "pinProtectionReset": "✅ すべてのPIN保護設定がデフォルトにリセットされました!",
1916
- "pinProtectionConfigure": "個別スクリプトのPIN保護を設定",
1917
- "pinProtectionSelectScript": "PIN保護を切り替えるスクリプトを選択してください:",
1943
+ "invalidFormat": "❌ 設定ファイルの形式が無効です",
1944
+ "pinProtectionUpdated": "✅ PIN 保護 {script} 無事に更新されました!",
1945
+ "pinProtectionReset": "✅ すべての PIN 保護設定がデフォルトにリセットされます。",
1946
+ "pinProtectionConfigure": "個々のスクリプトの PIN 保護を構成する",
1947
+ "pinProtectionSelectScript": "PIN 保護を切り替えるスクリプトを選択します。",
1918
1948
  "pinProtectionCurrentStatus": "現在のステータス: {status}",
1919
1949
  "pinProtectionEnabled": "有効",
1920
1950
  "pinProtectionDisabled": "無効",
1921
- "pinProtectionToggle": "PIN保護を切り替え",
1951
+ "pinProtectionToggle": "PIN 保護の切り替え",
1922
1952
  "pinProtectionResetAll": "すべてをデフォルトにリセット",
1923
1953
  "pinProtectionBack": "セキュリティ設定に戻る"
1924
1954
  },
1925
1955
  "themes": {
1926
1956
  "light": "ライト",
1927
- "dark": "ダーク",
1957
+ "dark": "暗い",
1928
1958
  "system": "システム"
1929
1959
  },
1930
1960
  "languages": {
1931
1961
  "en": "英語",
1932
- "de": "Deutsch",
1933
- "es": "Español",
1934
- "fr": "Français",
1935
- "ru": "Русский",
1962
+ "de": "ドイツ語",
1963
+ "es": "スペイン語",
1964
+ "fr": "フランス語",
1965
+ "ru": "ロシア",
1936
1966
  "ja": "日本語",
1937
- "zh": "中文"
1967
+ "zh": "中国語"
1938
1968
  },
1939
1969
  "viewAll": {
1940
1970
  "title": "すべての設定を表示"
1941
1971
  },
1942
1972
  "current": "現在",
1943
1973
  "back": "メインメニューに戻る",
1944
- "selectSettingPrompt": "編集する設定を選択してください(戻る: b、リセット: r):",
1945
- "invalidOption": "無効なオプションです。",
1946
- "editing": "編集中",
1947
- "enterNewValue": "新しい値を入力してください(Enterで現在の値を保持、'default'でシステムデフォルトを使用):",
1974
+ "selectSettingPrompt": "編集する設定を選択します (または b で戻る、r でリセット):",
1975
+ "invalidOption": "無効なオプションです。",
1976
+ "editing": "編集",
1977
+ "enterNewValue": "新しい値を入力します (または Enter を押して現在の値を維持し、「default」と入力してシス​​テムのデフォルトを使用します)。",
1948
1978
  "validOptions": "有効なオプション",
1949
- "updatedSuccessfully": "が正常に更新されました!",
1950
- "noHelp": "この設定のヘルプはありません",
1979
+ "updatedSuccessfully": "無事に更新されました!",
1980
+ "noHelp": "この設定に関して利用可能なヘルプはありません",
1951
1981
  "resetScriptDirectories": "デフォルト値にリセット",
1952
- "resetScriptDirectoriesTitle": "スクリプトディレクトリをデフォルトにリセット",
1953
- "resetScriptDirectoriesWarning1": "これによりすべてのスクリプトディレクトリ設定がシステムデフォルトに戻ります。",
1954
- "resetScriptDirectoriesWarning2": "すべてのカスタムディレクトリパスがクリアされます。この操作は取り消せません。",
1982
+ "resetScriptDirectoriesTitle": "スクリプトディレクトリをデフォルトにリセットする",
1983
+ "resetScriptDirectoriesWarning1": "これにより、すべてのスクリプト ディレクトリ構成がシステムのデフォルトにリセットされます。",
1984
+ "resetScriptDirectoriesWarning2": "すべてのカスタム ディレクトリ パスがクリアされます。この操作は元に戻すことができません。",
1955
1985
  "resetScriptDirectoriesConfirm": "すべてのスクリプト ディレクトリをデフォルトにリセットしてもよろしいですか? (y/N):",
1956
1986
  "backup": {
1957
1987
  "title": "バックアップ設定",
1958
- "description": "現在の設定をファイルにバックアップ",
1959
- "confirm": "現在の設定をバックアップしますか? (y/N):",
1960
- "success": "✅ 設定を {backupFile} にバックアップしました",
1988
+ "description": "現在の設定をファイルにバックアップする",
1989
+ "confirm": "現在の設定をバックアップしてもよろしいですか? (y/N):",
1990
+ "success": "✅ 設定は正常にバックアップされました {backupFile}",
1961
1991
  "failed": "❌ 設定のバックアップに失敗しました: {error}",
1962
- "enabled": "有効",
1963
- "enabledHelp": "バックアップ機能の有効/無効を切り替え",
1964
- "singleFileMode": "単一ファイルモード",
1965
- "singleFileModeHelp": "設定を単一ファイルにバックアップ",
1966
- "singleBackupFile": "単一バックアップファイル",
1967
- "singleBackupFileHelp": "単一バックアップファイルのパス",
1968
- "retentionDays": "保持日数",
1969
- "retentionDaysHelp": "古いバックアップファイルを保持する日数",
1992
+ "enabled": "バックアップを有効にする",
1993
+ "enabledHelp": "バックアップ機能を有効/無効にする",
1994
+ "singleFileMode": "シングルファイルモード",
1995
+ "singleFileModeHelp": "設定を 1 つのファイルにバックアップする",
1996
+ "singleBackupFile": "単一のバックアップ ファイル",
1997
+ "singleBackupFileHelp": "単一のバックアップ ファイルへのパス",
1998
+ "retentionDays": "保存日数",
1999
+ "retentionDaysHelp": "古いバックアップ ファイルを保持する日数",
1970
2000
  "maxBackups": "最大バックアップ数",
1971
- "maxBackupsHelp": "保持する最大バックアップファイル数",
2001
+ "maxBackupsHelp": "保持するバックアップ ファイルの最大数",
1972
2002
  "confirmHelp": "バックアップ操作の確認",
1973
2003
  "confirmYes": "はい",
1974
2004
  "confirmNo": "いいえ"
@@ -1976,276 +2006,276 @@
1976
2006
  "validation": {
1977
2007
  "valid": "有効",
1978
2008
  "validatingPaths": "構成されたパスを検証しています...",
1979
- "validationComplete": "パス検証が完了しました: {valid}/{total} は有効です。"
2009
+ "validationComplete": "パスの検証が完了しました: {valid}/{total} 有効。"
1980
2010
  }
1981
2011
  },
1982
2012
  "summary": {
1983
- "separator": "============================================================",
1984
- "configurationTitle": "🔧 設定:",
2013
+ "separator": "======================================================",
2014
+ "configurationTitle": "🔧 構成:",
1985
2015
  "sourceLanguage": "ソース言語: {sourceLanguage}",
1986
- "supportedExtensions": "対応拡張子: {extensions}",
1987
- "excludedFiles": "除外ファイル: {files}",
2016
+ "supportedExtensions": "サポートされている拡張子: {extensions}",
2017
+ "excludedFiles": "除外されるファイル: {files}",
1988
2018
  "reportContent": "{report}",
1989
- "fatalError": "❌ 致命的エラー: {error}",
2019
+ "fatalError": "❌ 致命的なエラー: {error}",
1990
2020
  "helpTitle": "📊 I18NTK サマリーレポートジェネレーター",
1991
- "helpDescription": "i18nフォルダ構造を分析し、主要統計、ファイル構造解析、検証チェックを含む包括的なサマリーレポートを生成します。",
1992
- "helpUsage": "使用法: node i18ntk-summary.js [options]",
1993
- "helpOptions": "--source-dir <dir> 分析するソースディレクトリ",
1994
- "helpSourceDir": "--source-dir <dir> 分析するソースディレクトリ",
1995
- "helpOutput": "--output <file> レポートの出力ファイル",
1996
- "helpVerbose": "--verbose, -v 詳細情報を表示",
1997
- "helpKeepReports": "--keep-reports 既存のレポートを保持",
1998
- "helpDeleteReports": "--delete-reports 既存のレポートを削除",
1999
- "helpHelp": "--help, -h ヘルプを表示",
2021
+ "helpDescription": "i18n フォルダー構造を分析し、主要な統計、ファイル構造分析、検証チェックを含む包括的な概要レポートを生成します。",
2022
+ "helpUsage": "使用法: ノード i18ntk-summary.js [オプション]",
2023
+ "helpOptions": "--ソースディレクトリ <dir> 分析するソースディレクトリ",
2024
+ "helpSourceDir": "--ソースディレクトリ <dir> 分析するソースディレクトリ",
2025
+ "helpOutput": "- 出力 <file> レポートの出力ファイル",
2026
+ "helpVerbose": "--verbose, -v 詳細情報を表示",
2027
+ "helpKeepReports": "--keep-reports 既存のレポートを保持します",
2028
+ "helpDeleteReports": "--delete-reports 既存のレポートを削除します",
2029
+ "helpHelp": "--help, -h このヘルプを表示する",
2000
2030
  "helpExamples": "例:",
2001
- "helpExample1": "node i18ntk-summary.js",
2002
- "helpExample2": "node i18ntk-summary.js --source-dir ./locales",
2003
- "helpExample3": "node i18ntk-summary.js --output summary-report.txt",
2004
- "helpExample4": "node i18ntk-summary.js --verbose",
2005
- "helpExample5": "node i18ntk-summary.js --source-dir ./locales --output report.json",
2006
- "couldNotReadFile": "⚠️ ファイルを読み取れませんでした: {filePath}",
2007
- "couldNotParseJSFile": "⚠️ JS/TS ファイルを解析できませんでした: {filePath}",
2008
- "errorReadingFile": "⚠️ ファイル読み取りエラー {filePath}: {error}",
2009
- "analyzingFolder": "🔍 フォルダ構造を分析中…",
2010
- "noLanguageDirectoriesFound": "❌ 指定されたソースディレクトリに言語ディレクトリが見つかりません。",
2011
- "foundLanguages": "✅ 言語を {count} 個検出: {languages}",
2012
- "referenceLanguageFiles": "📁 参照言語 '{language}' {count} 個のファイルがあります",
2013
- "analyzingLanguage": "🌍 言語を分析中: {language}",
2014
- "keysInFiles": "📊 {files} 個のファイルで合計 {keys} 個のキーを検出",
2015
- "checkingInconsistentKeys": "🔍 言語間のキー不一致をチェック中…",
2016
- "generatingSummaryReport": "📝 サマリーレポートを生成中…",
2031
+ "helpExample1": "ノード i18ntk-summary.js",
2032
+ "helpExample2": "ノード i18ntk-summary.js --source-dir ./locales",
2033
+ "helpExample3": "ノード i18ntk-summary.js --output summary-report.txt",
2034
+ "helpExample4": "ノード i18ntk-summary.js --verbose",
2035
+ "helpExample5": "ノード i18ntk-summary.js --source-dir ./locales --output report.json",
2036
+ "couldNotReadFile": "⚠️ ファイルを読み取れませんでした: {filePath}",
2037
+ "couldNotParseJSFile": "⚠️ JS/TS ファイルを解析できませんでした: {filePath}",
2038
+ "errorReadingFile": "⚠️ ファイルの読み取り中にエラーが発生しました {filePath}: {error}",
2039
+ "analyzingFolder": "🔍 フォルダー構造を分析中...",
2040
+ "noLanguageDirectoriesFound": "❌ 指定されたソース ディレクトリに言語ディレクトリが見つかりません。",
2041
+ "foundLanguages": "✅ 見つかりました {count} 言語: {languages}",
2042
+ "referenceLanguageFiles": "📁 参照言語 '{language}' もっている {count} ファイル",
2043
+ "analyzingLanguage": "🌍 言語の分析: {language}",
2044
+ "keysInFiles": "📊 見つかりました {keys} キーを横切る {files} ファイル",
2045
+ "checkingInconsistentKeys": "🔍 言語間で一貫性のないキーをチェックしています...",
2046
+ "generatingSummaryReport": "📝 概要レポートを生成中...",
2017
2047
  "reportTitle": "📊 I18NTK サマリーレポート",
2018
- "generated": "生成日時: {timestamp}",
2048
+ "generated": "生成されるもの: {timestamp}",
2019
2049
  "sourceDirectory": "ソースディレクトリ: {dir}",
2020
2050
  "overview": "📈 概要",
2021
- "languagesCount": "言語数: {count}",
2022
- "totalFiles": "ファイル総数: {count}",
2023
- "totalKeys": "キー総数: {count}",
2024
- "avgKeysPerLanguage": "言語あたり平均キー数: {count}",
2025
- "languagesBreakdown": "🌍 言語別内訳",
2026
- "languageBreakdown": "{language}: {files} ファイル, {keys} キー",
2051
+ "languagesCount": "言語: {count}",
2052
+ "totalFiles": "総ファイル数: {count}",
2053
+ "totalKeys": "キーの合計: {count}",
2054
+ "avgKeysPerLanguage": "言語ごとの平均キー: {count}",
2055
+ "languagesBreakdown": "🌍 言語の内訳",
2056
+ "languageBreakdown": "{language}: {files} ファイル、 {keys} キー",
2027
2057
  "fileStructure": "📁 ファイル構造",
2028
2058
  "fileKeys": "{file}: {keys} キー",
2029
- "missingInLanguages": "⚠️ 以下で欠落: {languages}",
2030
- "issuesFound": "❌ 検出された問題",
2031
- "missingFiles": "📁 欠落ファイル:",
2059
+ "missingInLanguages": "⚠️ 不足しているもの: {languages}",
2060
+ "issuesFound": "❌ 問題が見つかりました",
2061
+ "missingFiles": "📁 不足しているファイル:",
2032
2062
  "emptyFiles": "📄 空のファイル:",
2033
- "malformedFiles": "⚠️ 構文不正ファイル:",
2034
- "duplicateKeys": "🔑 重複キー:",
2035
- "inconsistentKeys": "🔍 不一致キー:",
2036
- "missingKeys": "欠落: {keys}{more}",
2037
- "extraKeys": "余分: {keys}{more}",
2063
+ "malformedFiles": "⚠️ 不正な形式のファイル:",
2064
+ "duplicateKeys": "🔑 キーの重複:",
2065
+ "inconsistentKeys": "🔍 一貫性のないキー:",
2066
+ "missingKeys": "ない: {keys}{more}",
2067
+ "extraKeys": "余分な: {keys}{more}",
2038
2068
  "noIssuesFound": "✅ 問題は見つかりませんでした",
2039
- "allFilesConsistent": "すべての翻訳ファイルは言語間で一貫しています。",
2069
+ "allFilesConsistent": "すべての翻訳ファイルは言語間で一貫性があります。",
2040
2070
  "recommendations": "💡 推奨事項",
2041
- "createMissingFiles": "• 欠落した翻訳ファイルを作成する",
2042
- "addContentToEmptyFiles": "• 空の翻訳ファイルに内容を追加する",
2043
- "fixMalformedFiles": "• 不正な JSON/JS ファイルを修正する",
2071
+ "createMissingFiles": "• 不足している翻訳ファイルを作成する",
2072
+ "addContentToEmptyFiles": "• 空の翻訳ファイルにコンテンツを追加する",
2073
+ "fixMalformedFiles": "• 不正な形式の JSON/JS ファイルを修正",
2044
2074
  "removeDuplicateKeys": "• ファイルから重複キーを削除する",
2045
- "synchronizeKeys": "• すべての言語でキーを同期する",
2075
+ "synchronizeKeys": "• すべての言語間でキーを同期する",
2046
2076
  "splitLargeFiles": "• 大きなファイルを小さな名前空間に分割することを検討する",
2047
- "addMoreLanguages": "• 言語を追加することを検討する",
2077
+ "addMoreLanguages": "• さらに言語を追加することを検討してください",
2048
2078
  "nextSteps": "🎯 次のステップ",
2049
- "nextStep1": "1. 上記で検出された問題を修正する",
2050
- "nextStep2": "2. 検証を実行して一貫性を確認する",
2051
- "nextStep3": "3. 詳細検証には i18ntk-validate の使用を検討する",
2052
- "nextStep4": "4. 定期的なモニタリングを推奨",
2053
- "couldNotFindI18nDirectory": "❌ i18n ディレクトリが見つかりません。--source-dir を指定してください。",
2054
- "sourceDirectoryDoesNotExist": "❌ ソースディレクトリが存在しません: {dir}",
2055
- "i18nSummaryReportGenerator": "📊 I18NTK サマリーレポートジェネレーター",
2079
+ "nextStep1": "1. 上記で特定された問題を修正します",
2080
+ "nextStep2": "2. 整合性を確保するために検証を実行します。",
2081
+ "nextStep3": "3. 詳細な検証には i18ntk-validate の使用を検討してください",
2082
+ "nextStep4": "4. 定期的なモニタリングの推奨",
2083
+ "couldNotFindI18nDirectory": "❌ i18n ディレクトリが見つかりませんでした。 --source-dir を指定してください。",
2084
+ "sourceDirectoryDoesNotExist": "❌ ソース ディレクトリが存在しません: {dir}",
2085
+ "i18nSummaryReportGenerator": "📊 I18N 概要レポートジェネレーター",
2056
2086
  "analysisComplete": "✅ 分析完了",
2057
- "analyzedLanguages": "📊 分析済み言語数: {count}",
2058
- "processedFiles": "📁 処理済みファイル数: {count}",
2059
- "foundTranslationKeys": "🔑 検出された翻訳キー数: {count}",
2060
- "foundIssues": "❌ 検出された問題数: {count}",
2061
- "noIssuesConsole": "✅ 問題は見つかりませんでした - すべてのファイルが一貫しています!",
2087
+ "analyzedLanguages": "📊 分析された言語: {count}",
2088
+ "processedFiles": "📁 処理されたファイル: {count}",
2089
+ "foundTranslationKeys": "🔑 見つかった翻訳キー: {count}",
2090
+ "foundIssues": "❌ 見つかりました {count} 問題",
2091
+ "noIssuesConsole": "✅ 問題は見つかりませんでした - すべてのファイルに一貫性があります。",
2062
2092
  "errorDuringAnalysis": "❌ 分析中のエラー: {error}",
2063
- "usageReportTitle": "📊 I18NTK 使用状況レポート",
2064
- "usageReportGenerated": "生成日時: {timestamp}",
2093
+ "usageReportTitle": "📊 I18NTK 使用レポート",
2094
+ "usageReportGenerated": "生成されるもの: {timestamp}",
2065
2095
  "usageReportSourceDir": "ソースディレクトリ: {sourceDir}",
2066
2096
  "usageReportI18nDir": "I18n ディレクトリ: {i18nDir}",
2067
2097
  "usageReportSummary": "📈 概要",
2068
- "usageReportSourceFilesScanned": "スキャン済みソースファイル数: {count}",
2069
- "usageReportTranslationFilesFound": "見つかった翻訳ファイル数: {count}",
2070
- "usageReportAvailableKeys": "利用可能な翻訳キー数: {count}",
2071
- "usageReportUsedKeys": "使用された翻訳キー数: {count}",
2072
- "usageReportDynamicKeys": "動的翻訳キー数: {count}",
2073
- "usageReportUnusedKeys": "未使用翻訳キー数: {count}",
2074
- "usageReportMissingKeys": "欠落翻訳キー数: {count}",
2075
- "usageReportNotTranslatedKeys": "未翻訳キー数: {count}",
2076
- "usageReportTranslationCompleteness": "🌍 翻訳完了度",
2098
+ "usageReportSourceFilesScanned": "スキャンされたソース ファイル: {count}",
2099
+ "usageReportTranslationFilesFound": "見つかった翻訳ファイル: {count}",
2100
+ "usageReportAvailableKeys": "利用可能な翻訳キー: {count}",
2101
+ "usageReportUsedKeys": "使用された翻訳キー: {count}",
2102
+ "usageReportDynamicKeys": "動的変換キー: {count}",
2103
+ "usageReportUnusedKeys": "未使用の翻訳キー: {count}",
2104
+ "usageReportMissingKeys": "翻訳キーがありません: {count}",
2105
+ "usageReportNotTranslatedKeys": "翻訳されていないキー: {count}",
2106
+ "usageReportTranslationCompleteness": "🌍 翻訳の完成度",
2077
2107
  "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
2078
2108
  "usageReportNotTranslatedInLanguage": "未翻訳: {count} キー",
2079
- "usageReportTranslationFilesDiscovered": "📁 翻訳ファイル一覧",
2080
- "usageReportFileInfo": "{relativePath} (名前空間: {namespace}, タイプ: {type})",
2109
+ "usageReportTranslationFilesDiscovered": "📁 翻訳ファイル",
2110
+ "usageReportFileInfo": "{relativePath} (名前空間: {namespace} タイプ: {type})",
2081
2111
  "usageReportUnusedTranslationKeys": "🗑️ 未使用の翻訳キー",
2082
- "usageReportUnusedKeysDescription": "これらのキーは翻訳ファイルに存在しますがソースコードで使用されていません:",
2112
+ "usageReportUnusedKeysDescription": "これらのキーは翻訳ファイルには存在しますが、ソース コードでは使用されません。",
2083
2113
  "usageReportUnusedKey": "• {key}",
2084
- "usageReportMoreUnusedKeys": "…およびさらに {count} ",
2085
- "usageReportMissingTranslationKeys": "❌ 欠落した翻訳キー",
2086
- "usageReportMissingKeysDescription": "これらのキーはソースコードで使用されていますが翻訳ファイルに存在しません:",
2114
+ "usageReportMoreUnusedKeys": "... そして {count} 未使用のキーが増える",
2115
+ "usageReportMissingTranslationKeys": "❌ 翻訳キーがありません",
2116
+ "usageReportMissingKeysDescription": "これらのキーはソース コードで使用されていますが、翻訳ファイルには含まれていません。",
2087
2117
  "usageReportMissingKey": "• {key}",
2088
- "usageReportUsedIn": "使用先: {filePath}",
2089
- "usageReportMoreFiles": "…およびさらに {count} 件のファイル",
2118
+ "usageReportUsedIn": "使用場所: {filePath}",
2119
+ "usageReportMoreFiles": "... そして {count} さらに多くのファイル",
2090
2120
  "usageReportDynamicTranslationKeys": "⚡ 動的翻訳キー",
2091
- "usageReportDynamicKeysDescription": "これらのキーは動的に(実行時に)構築されて使用されています:",
2121
+ "usageReportDynamicKeysDescription": "これらのキーは動的に使用されます (実行時に構築されます)。",
2092
2122
  "usageReportDynamicKey": "• {key}",
2093
- "usageReportFileUsageBreakdown": "📊 ファイル使用状況内訳",
2123
+ "usageReportFileUsageBreakdown": "📊 ファイル使用量の内訳",
2094
2124
  "usageReportFileUsage": "{filePath}: {count} キー",
2095
2125
  "status": {
2096
- "generating": "⏳ 生成中…",
2126
+ "generating": "⏳ 生成中...",
2097
2127
  "completed": "✅ 完了"
2098
2128
  },
2099
2129
  "help": {
2100
- "usage": "使用法: node i18ntk-manage.js [options]",
2101
- "interactiveMode": "💡 直接実行するには: node i18ntk-manage.js --command=<command>",
2102
- "initProject": "🚀 新しい言語を初期化",
2103
- "analyzeTranslations": "🔍 翻訳を分析",
2104
- "validateTranslations": "✅ 翻訳を検証",
2105
- "checkUsage": "📊 キー使用状況をチェック",
2106
- "showHelp": "📖 利用可能なコマンドを見るには: node i18ntk-manage.js --help",
2130
+ "usage": "使用法: ノード main/manage/index.js [オプション]",
2131
+ "interactiveMode": "💡 使用: ノー​​ド main/manage/index.js --command=<command> 直接実行の場合",
2132
+ "initProject": "🚀 新しい言語を初期化する",
2133
+ "analyzeTranslations": "🔍 翻訳を分析する",
2134
+ "validateTranslations": "✅ 翻訳を検証する",
2135
+ "checkUsage": "📊 キーの使用状況を確認する",
2136
+ "showHelp": "📖 使用可能なコマンドについては、node main/manage/index.js --help を使用してください。",
2107
2137
  "availableCommands": "📖 利用可能なコマンド:",
2108
- "initCommand": "init - 新しい言語を初期化",
2109
- "analyzeCommand": "analyze - 翻訳を分析",
2110
- "validateCommand": "validate - 翻訳を検証",
2111
- "usageCommand": "usage - キー使用状況をチェック",
2112
- "sizingCommand": "sizing - サイズを分析",
2113
- "completeCommand": "complete - 翻訳を完了 (100% カバレッジ)",
2114
- "summaryCommand": "summary - プロジェクトステータスを表示",
2115
- "scannerCommand": "scanner - 🔍 i18nの問題をスキャン",
2116
- "translateCommand": "translate - 自動翻訳 (ベータ版)",
2117
- "debugCommand": "debug - 翻訳の問題をデバッグ"
2138
+ "initCommand": "init - 新しい言語を初期化する",
2139
+ "analyzeCommand": "分析 - 翻訳を分析する",
2140
+ "validateCommand": "validate - 翻訳を検証する",
2141
+ "usageCommand": "使用法 - キーの使用法を確認する",
2142
+ "sizingCommand": "sizing - サイジングを分析する",
2143
+ "completeCommand": "complete - 完全な翻訳 (100% カバー)",
2144
+ "summaryCommand": "概要 - プロジェクトのステータスを表示します",
2145
+ "scannerCommand": "スキャナ - i18n の問題をスキャンします",
2146
+ "translateCommand": "翻訳 - ロケール ファイルを自動翻訳します (ベータ版)",
2147
+ "debugCommand": "debug - 翻訳の問題をデバッグします"
2118
2148
  },
2119
2149
  "test_complete_system": {
2120
- "starting_test": "🧪 完全システムテストを開始します",
2121
- "separator": "",
2122
- "testing_ui_translations": "📝 UI翻訳をテスト中…",
2123
- "testing_settings_manager": "⚙️ 設定マネージャーをテスト中…",
2124
- "testing_main_scripts": "🔧 メインスクリプトをテスト中…",
2125
- "checking_translation_consistency": "🌐 翻訳の一貫性をチェック中…",
2126
- "non_critical_missing_keys": "ℹ️ {file}: 重大ではない欠落キー {count} ",
2127
- "extra_keys": "ℹ️ {file}: 余分なキー {count} ",
2128
- "generating_report": "📊 レポートを生成中…",
2150
+ "starting_test": "🧪 完全なシステムテストを開始します",
2151
+ "separator": "=",
2152
+ "testing_ui_translations": "📝 UI 翻訳をテスト中...",
2153
+ "testing_settings_manager": "⚙️ テスト設定マネージャー...",
2154
+ "testing_main_scripts": "🔧 メインスクリプトをテスト中...",
2155
+ "checking_translation_consistency": "🌐 翻訳の一貫性をチェックしています...",
2156
+ "non_critical_missing_keys": "ℹ️ {file}: {count} 重要ではない欠落キー",
2157
+ "extra_keys": "ℹ️ {file}: {count} 追加のキー",
2158
+ "generating_report": "📊 レポートを生成中...",
2129
2159
  "final_test_report_title": "📋 最終テストレポート",
2130
2160
  "passed": "✅ 合格: {passed}",
2131
- "failed": "❌ 不合格: {failed}",
2132
- "warnings": "⚠️ 警告: {warnings}",
2133
- "missing_translations_title": "🔍 欠落翻訳 ({count}):",
2161
+ "failed": "❌ 失敗: {failed}",
2162
+ "warnings": "⚠️ 警告: {warnings}",
2163
+ "missing_translations_title": "🔍 翻訳がありません ({count}):",
2134
2164
  "missing_translation_key": "- {key}",
2135
- "missing_translations_more": "…さらに {count} ",
2165
+ "missing_translations_more": "... そして {count} もっと",
2136
2166
  "errors_title": "❌ エラー:",
2137
2167
  "error_message": "- {error}",
2138
- "overall_status": "📊 全体ステータス: {status}",
2168
+ "overall_status": "📊 全体的なステータス: {status}",
2139
2169
  "success_message": "✅ {message}",
2140
2170
  "failure_message": "❌ {message}",
2141
2171
  "failure_error_message": "{errorMessage}",
2142
- "warning_message": "⚠️ {message}",
2172
+ "warning_message": "⚠️ {message}",
2143
2173
  "test_runner_failed": "❌ テストランナーが失敗しました:",
2144
2174
  "recommendations": {
2145
- "add_missing_translation_keys": "一貫性を保つために欠落した翻訳キーを追加してください",
2146
- "fix_failing_scripts": "デプロイ前にテストに失敗したスクリプトを修正してください",
2147
- "review_warning_messages": "警告メッセージを確認して対処してください",
2148
- "system_ready_for_deployment": "システムはデプロイの準備が整っています"
2175
+ "add_missing_translation_keys": "一貫性を維持するために不足している変換キーを追加する",
2176
+ "fix_failing_scripts": "導入前に失敗したスクリプトを修正する",
2177
+ "review_warning_messages": "警告メッセージを確認して対処する",
2178
+ "system_ready_for_deployment": "システムを展開する準備ができました"
2149
2179
  },
2150
2180
  "hardcodedTexts": {
2151
- "addMissingTranslationKeys": "一貫性を保つために欠落した翻訳キーを追加してください",
2152
- "fixFailingScripts": "デプロイ前にテストに失敗したスクリプトを修正してください",
2153
- "reviewWarningMessages": "警告メッセージを確認して対処してください",
2154
- "systemReadyForDeployment": "システムはデプロイの準備が整っています"
2181
+ "addMissingTranslationKeys": "一貫性を維持するために不足している変換キーを追加する",
2182
+ "fixFailingScripts": "導入前に失敗したスクリプトを修正する",
2183
+ "reviewWarningMessages": "警告メッセージを確認して対処する",
2184
+ "systemReadyForDeployment": "システムを展開する準備ができました"
2155
2185
  }
2156
2186
  },
2157
2187
  "testConsoleI18n": {
2158
- "found_target_file": "対象ファイルを検出しました: {fileName}",
2159
- "scanning_files_for_console_statements": "コンソールステートメントをスキャンしています…",
2160
- "found_javascript_files": "JavaScriptファイルを {count} 件検出しました。",
2188
+ "found_target_file": "ターゲットファイルが見つかりました: {fileName}",
2189
+ "scanning_files_for_console_statements": "コンソール ステートメントのファイルをスキャンしています...",
2190
+ "found_javascript_files": "見つかった {count} JavaScript ファイル。",
2161
2191
  "console_i18n_analysis_results": "コンソール I18n 分析結果",
2162
- "total_console_statements": "コンソールステートメント総数: {count}",
2163
- "translated_statements": "翻訳済みステートメント: {count}",
2192
+ "total_console_statements": "コンソールステートメントの合計: {count}",
2193
+ "translated_statements": "翻訳されたステートメント: {count}",
2164
2194
  "hardcoded_statements": "ハードコードされたステートメント: {count}",
2165
- "translation_coverage": "翻訳カバレッジ: {percentage}%",
2166
- "coverage_by_file": "ファイルごとのカバレッジ:",
2195
+ "translation_coverage": "翻訳範囲: {percentage}%",
2196
+ "coverage_by_file": "ファイルごとの範囲:",
2167
2197
  "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
2168
- "hardcoded_console_statements": "ハードコードされたコンソールステートメント:",
2169
- "file_header": "ファイル: {file}",
2170
- "line_statement": " {line}: {statement}",
2171
- "suggested_key": "推奨キー: {key}",
2172
- "suggested_replacement": "推奨置換: {replacement}",
2198
+ "hardcoded_console_statements": "ハードコードされたコンソール ステートメント:",
2199
+ "file_header": "ファイル: {file}",
2200
+ "line_statement": "ライン {line}: {statement}",
2201
+ "suggested_key": "推奨されるキー: {key}",
2202
+ "suggested_replacement": "推奨される代替品: {replacement}",
2173
2203
  "recommendations": "推奨事項:",
2174
- "recommendation_1": "1. ハードコードされた文字列を i18n.t() 呼び出しに置き換えてください。",
2175
- "recommendation_2": "2. 関連する翻訳JSONファイルに新しいキーを追加してください。",
2176
- "recommendation_3": "3. すべてのコンソールメッセージがユーザー向けで翻訳が必要であることを確認してください。",
2177
- "recommendation_4": "4. 動的メッセージにはテンプレートリテラルまたは文字列連結を使用し、変数を i18n.t() に渡してください。",
2178
- "translation_keys_to_add": "追加する翻訳キーの提案:",
2179
- "add_keys_instruction": "以下のJSON構造を翻訳ファイルにコピーしてください:",
2180
- "perfect_translation_coverage": "完璧な翻訳カバレッジ!",
2181
- "all_statements_using_translation": "すべてのコンソールステートメントが翻訳システムを使用しています。",
2204
+ "recommendation_1": "1. ハードコードされた文字列を i18n.t() 呼び出しに置き換えます。",
2205
+ "recommendation_2": "2. 関連する翻訳 JSON ファイルに新しいキーを追加します。",
2206
+ "recommendation_3": "3. すべてのコンソール メッセージがユーザー向けであり、翻訳が必要であることを確認します。",
2207
+ "recommendation_4": "4. 動的メッセージにはテンプレート リテラルまたは文字列連結を使用し、変数を i18n.t() に渡します。",
2208
+ "translation_keys_to_add": "追加する推奨翻訳キー:",
2209
+ "add_keys_instruction": "次の JSON 構造を翻訳ファイルにコピーします。",
2210
+ "perfect_translation_coverage": "完璧な翻訳範囲!",
2211
+ "all_statements_using_translation": "すべてのコンソール ステートメントは変換システムを使用しています。",
2182
2212
  "i18n_console_translation_checker": "I18n コンソール翻訳チェッカー",
2183
- "script_description_line1": "このスクリプトはすべてのJavaScriptファイルをスキャンしコンソール文を検出します",
2184
- "script_description_line2": "翻訳システムを使用しているかどうかをチェックします。",
2185
- "analysis_completed_in_duration": "分析完了まで {duration} 秒かかりました。",
2186
- "report_saved_to_path": "レポートを次の場所に保存しました: {path}",
2187
- "found_hardcoded_messages": "ハードコードされたメッセージを {count} 件検出しました。エラーコード1で終了します。",
2188
- "all_console_messages_use_translation": "すべてのコンソールメッセージが翻訳を使用しています。コード0で終了します。",
2213
+ "script_description_line1": "このスクリプトは、コンソール ステートメントのすべての JavaScript ファイルをスキャンします。",
2214
+ "script_description_line2": "翻訳システムを使用しているかどうかを確認します。",
2215
+ "analysis_completed_in_duration": "に分析が完了しました {duration} 秒。",
2216
+ "report_saved_to_path": "レポートの保存場所: {path}",
2217
+ "found_hardcoded_messages": "見つかった {count} ハードコードされたメッセージ。エラー コード 1 で終了します。",
2218
+ "all_console_messages_use_translation": "すべてのコンソール メッセージは翻訳を使用します。コード0で終了します。",
2189
2219
  "consoleTranslationsCheck": "コンソール翻訳チェック"
2190
2220
  },
2191
2221
  "translate_mismatches": {
2192
2222
  "title": "🌐 翻訳ヘルパー {dryRun}",
2193
- "separator": "=====================================",
2194
- "processing_file": "📄 {language}.json を処理中…",
2195
- "translation_summary_title": "📊 翻訳サマリー:",
2196
- "total_translations_applied": "適用された翻訳総数: {totalTranslations}",
2197
- "run_with_apply_instruction": "💡 --apply フラグを付けて実行するとこれらの翻訳を適用します",
2198
- "no_translation_mappings": "⚠️ {language} に利用可能な翻訳マッピングがありません",
2199
- "translation_applied": "✅ {key}: {oldValue}{newValue}",
2200
- "saved_translations": "💾 {count} 件の翻訳を {filename} に保存しました",
2201
- "found_translatable_items": "🔍 翻訳可能な項目を {count} 件検出",
2223
+ "separator": "====================================",
2224
+ "processing_file": "📄 処理中 {language}.json...",
2225
+ "translation_summary_title": "📊 翻訳の概要:",
2226
+ "total_translations_applied": "適用された翻訳の合計: {totalTranslations}",
2227
+ "run_with_apply_instruction": "💡 これらの翻訳を適用するには --apply を指定して実行します",
2228
+ "no_translation_mappings": "⚠️ 利用可能な翻訳マッピングはありません {language}",
2229
+ "translation_applied": "✅ {key}: \"{oldValue}\"\"{newValue}\"",
2230
+ "saved_translations": "💾 保存しました {count} への翻訳 {filename}",
2231
+ "found_translatable_items": "🔍見つかりました {count} 翻訳可能な項目",
2202
2232
  "no_automatic_translations": "✨ 自動翻訳は利用できません",
2203
- "error_processing_file": "❌ {filename} の処理中にエラー: {errorMessage}",
2233
+ "error_processing_file": "❌ エラー処理 {filename}: {errorMessage}",
2204
2234
  "coverage_report_title": "📊 翻訳カバレッジレポート",
2205
2235
  "coverage_report_separator": "===============================",
2206
2236
  "file_header": "📄 {filename}:",
2207
- "total_keys": "キー総数: {total}",
2208
- "translated_keys": "翻訳済み: {translated}",
2209
- "untranslated_markers": "未翻訳マーカー: {untranslated}",
2210
- "contains_english": "英語を含む: {hasEnglish}",
2211
- "coverage_percentage": "カバレッジ: {coverage}%",
2237
+ "total_keys": "キーの合計: {total}",
2238
+ "translated_keys": "翻訳: {translated}",
2239
+ "untranslated_markers": "未翻訳のマーカー: {untranslated}",
2240
+ "contains_english": "英語が含まれています: {hasEnglish}",
2241
+ "coverage_percentage": "カバレッジ: {coverage}%",
2212
2242
  "error_general": "❌ エラー:",
2213
- "use_help": "使用法情報は --help を参照してください"
2243
+ "use_help": "使用方法については --help を使用してください"
2214
2244
  },
2215
2245
  "cleaningUpReportFiles": "古いレポート ファイルをクリーンアップしています...",
2216
- "couldNotDelete": "{file} を削除できませんでした: {error}",
2217
- "deletedOldReportFiles": "{count} 個の古いレポート ファイルを削除しました。",
2246
+ "couldNotDelete": "削除できませんでした {file}: {error}",
2247
+ "deletedOldReportFiles": "削除されました {count} 古いレポート ファイル。",
2218
2248
  "errorCleaningUpReports": "レポートのクリーンアップ中にエラーが発生しました: {error}",
2219
2249
  "noOldReportFilesToDelete": "削除する古いレポート ファイルはありません。",
2220
2250
  "reportFilesPreserved": "レポート ファイルは保存されます。",
2221
2251
  "reportSaveFailed": "レポートを次の場所に保存できませんでした: {reportPath}",
2222
- "reportSaved": "レポートの保存先: {reportPath}"
2252
+ "reportSaved": "レポートの保存場所: {reportPath}"
2223
2253
  },
2224
2254
  "ui": {
2225
2255
  "autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {path}",
2226
- "executingCommand": "🔄 コマンドを実行中: {command}",
2227
- "unknownCommand": "不明なコマンド: {command}",
2228
- "errorExecutingCommand": "コマンド実行エラー: {error}",
2229
- "errorLoadingTranslationFile": " '{language}' の翻訳ファイル読み込みエラー: {error}",
2230
- "errorSavingLanguagePreference": " 言語設定の保存エラー: {error}",
2231
- "noActiveReadlineInterface": " readline インターフェイスが利用できません",
2232
- "uiLanguageUpdated": "🌍 UI 言語を {language} に更新しました",
2256
+ "executingCommand": "コマンドの実行: {command}",
2257
+ "unknownCommand": "不明なコマンド: {command}",
2258
+ "errorExecutingCommand": "コマンド実行エラー: {error}",
2259
+ "errorLoadingTranslationFile": "' の翻訳ファイルのロード中にエラーが発生しました{language}': {error}",
2260
+ "errorSavingLanguagePreference": "言語設定の保存中にエラーが発生しました: {error}",
2261
+ "noActiveReadlineInterface": "使用可能なアクティブな readline インターフェイスがありません",
2262
+ "uiLanguageUpdated": "UI 言語が次のように更新されました: {language}",
2233
2263
  "selectOptionPrompt": "オプションを選択してください:",
2234
- "pressEnterToReturn": "メインメニューに戻るには Enter キーを押してください…",
2235
- "detectedSourceDirectory": "検出されたソースディレクトリ: {sourceDir}",
2264
+ "pressEnterToReturn": "Enterを押してメインメニューに戻ります...",
2265
+ "detectedSourceDirectory": "検出されたソース ディレクトリ: {sourceDir}",
2236
2266
  "detectedI18nDirectory": "検出された i18n ディレクトリ: {directory}",
2237
- "toolkitTitle": "🌍 i18ntk - エンタープライズ i18n 管理ツールキット",
2238
- "versionInfo": "📦 バージョン: {version}",
2239
- "releaseDate": "📅 リリース日: {date}",
2240
- "maintainer": "👤 メンテナー: {maintainer}",
2241
- "nodeVersion": "🔧 Node.js: {version}",
2242
- "license": "📄 ライセンス: {license}",
2243
- "whatsNew": "✨ v{version} の新機能:",
2267
+ "toolkitTitle": "i18ntk - エンタープライズ i18n 管理ツールキット",
2268
+ "versionInfo": "バージョン: {version}",
2269
+ "releaseDate": "発売日: {date}",
2270
+ "maintainer": "メンテナ: {maintainer}",
2271
+ "nodeVersion": "Node.js: {version}",
2272
+ "license": "ライセンス: {license}",
2273
+ "whatsNew": "✨ v の新機能{version}:",
2244
2274
  "changeItem": "{change}",
2245
2275
  "documentation": "📚 ドキュメント: {url}",
2246
- "issues": "🐛 イシュートラッカー: {url}",
2247
- "versionInfoUnavailable": "i18ntk のバージョン情報が利用できません",
2248
- "versionInfoError": "エラー: {error}"
2276
+ "issues": "🐛 問題: {url}",
2277
+ "versionInfoUnavailable": "i18ntk のバージョン情報は利用できません",
2278
+ "versionInfoError": "エラー: {error}"
2249
2279
  },
2250
2280
  "validateLanguagePurity": {
2251
2281
  "phrase_debug_tools": "デバッグツール",
@@ -2257,137 +2287,137 @@
2257
2287
  "phrase_error": "エラー",
2258
2288
  "phrase_warning": "警告",
2259
2289
  "phrase_success": "成功",
2260
- "phrase_failed": "失敗",
2290
+ "phrase_failed": "失敗した",
2261
2291
  "phrase_loading": "読み込み中",
2262
- "phrase_saving": "保存中",
2263
- "phrase_full_system_debug": "システム全体デバッグ",
2264
- "phrase_configuration_debug": "構成デバッグ",
2292
+ "phrase_saving": "節約",
2293
+ "phrase_full_system_debug": "フルシステムのデバッグ",
2294
+ "phrase_configuration_debug": "構成のデバッグ",
2265
2295
  "phrase_translation_debug": "翻訳デバッグ",
2266
- "phrase_performance_debug": "パフォーマンスデバッグ",
2267
- "phrase_admin_pin_setup": "管理者PIN設定",
2268
- "phrase_enter_admin_pin": "管理者PINを入力",
2269
- "phrase_confirm_admin_pin": "管理者PINを確認",
2296
+ "phrase_performance_debug": "パフォーマンスのデバッグ",
2297
+ "phrase_admin_pin_setup": "管理者ピンの設定",
2298
+ "phrase_enter_admin_pin": "管理者PINを入力してください",
2299
+ "phrase_confirm_admin_pin": "管理者PINを確認する",
2270
2300
  "phrase_authentication_failed": "認証に失敗しました",
2271
- "phrase_access_denied": "アクセス拒否",
2301
+ "phrase_access_denied": "アクセスが拒否されました",
2272
2302
  "phrase_security_log": "セキュリティログ",
2273
2303
  "language_german": "ドイツ語",
2274
2304
  "language_french": "フランス語",
2275
2305
  "language_spanish": "スペイン語",
2276
- "language_russian": "ロシア語",
2306
+ "language_russian": "ロシア",
2277
2307
  "language_japanese": "日本語",
2278
2308
  "language_chinese": "中国語",
2279
- "validator_title": "🔍 言語純度バリデーター",
2280
- "validating_file": "📄 {language}.json ({name}) を検証中…",
2309
+ "validator_title": "🔍 言語純度検証ツール",
2310
+ "validating_file": "📄 検証中 {language}.json ({name})...",
2281
2311
  "valid_file_message": "✅ 有効 - 言語純度違反なし",
2282
- "invalid_file_message": "❌ 無効 - 違反 {count} 件検出",
2283
- "no_validation_rules": "{language} 用の検証ルールが定義されていません",
2284
- "error_reading_file": "ファイル読み取りエラー: {errorMessage}",
2285
- "issue_forbidden_marker": "禁止マーカーを含んでいます: {marker}",
2286
- "issue_english_phrase": "英語フレーズを含んでいます: \"{phrase}\"",
2287
- "issue_english_words": "英語の単語を含んでいます: {words}",
2288
- "issue_missing_cyrillic": "長いテキストにはロシア語用にキリル文字を含める必要があります",
2289
- "issue_missing_japanese": "長いテキストには日本語文字を含める必要があります",
2290
- "issue_missing_chinese": "長いテキストには中国語文字を含める必要があります",
2291
- "summary_title": "📊 検証サマリー",
2292
- "overall_results_header": "📋 総合結果:",
2293
- "total_files_validated": "検証ファイル数: {count}",
2294
- "valid_files": "有効ファイル数: {count}",
2295
- "invalid_files": "無効ファイル数: {count}",
2296
- "total_violations": "総違反数: {count}",
2297
- "violations_by_file_header": "❌ ファイル別違反一覧:"
2312
+ "invalid_file_message": "❌ 無効 - {count} 違反が見つかりました",
2313
+ "no_validation_rules": "言語に対して検証ルールが定義されていません: {language}",
2314
+ "error_reading_file": "ファイルの読み取りエラー: {errorMessage}",
2315
+ "issue_forbidden_marker": "禁止されたマーカーが含まれています: {marker}",
2316
+ "issue_english_phrase": "英語のフレーズが含まれています: \"{phrase}\"",
2317
+ "issue_english_words": "英単語が含まれています: {words}",
2318
+ "issue_missing_cyrillic": "長いテキストにはロシア語のキリル文字が含まれている必要があります",
2319
+ "issue_missing_japanese": "長いテキストには日本語の文字が含まれている必要があります",
2320
+ "issue_missing_chinese": "長いテキストには漢字が含まれている必要があります",
2321
+ "summary_title": "📊 検証の概要",
2322
+ "overall_results_header": "📋 全体的な結果:",
2323
+ "total_files_validated": "検証されたファイルの合計: {count}",
2324
+ "valid_files": "有効なファイル: {count}",
2325
+ "invalid_files": "無効なファイル: {count}",
2326
+ "total_violations": "合計違反数: {count}",
2327
+ "violations_by_file_header": "❌ ファイル別の違反:"
2298
2328
  },
2299
2329
  "workflow": {
2300
2330
  "title": "ワークフロー管理",
2301
2331
  "description": "i18n ワークフローを管理します。",
2302
- "select_workflow_file": "実行するワークフローファイルを選択してください:",
2303
- "no_workflow_files": "ワークフローディレクトリにファイルが見つかりません。",
2304
- "invalid_selection": "無効な選択です。ワークフローファイルの番号を入力してください。",
2305
- "workflow_execution_started": "ワークフローを開始します: {workflowName}",
2306
- "workflow_execution_completed": "ワークフロー完了: {workflowName}",
2307
- "workflow_execution_failed": "ワークフロー失敗: {workflowName} - {error}",
2308
- "workflow_cancelled": "ワークフロー実行がキャンセルされました。",
2309
- "press_enter_to_continue": "Enter キーを押して続行してください!",
2310
- "starting": "🚀 ワークフローを開始します…",
2311
- "completed": "✅ ワークフローが正常に完了しました!",
2312
- "checkReports": "📄 詳細はレポートを確認してください。",
2313
- "exitingCompleted": "📝 ワークフロー完了。終了します…",
2332
+ "select_workflow_file": "実行するワークフロー ファイルを選択します。",
2333
+ "no_workflow_files": "ワークフロー ディレクトリにワークフロー ファイルが見つかりません。",
2334
+ "invalid_selection": "選択が無効です。ワークフロー ファイルに対応する番号を入力してください。",
2335
+ "workflow_execution_started": "ワークフローの開始: {workflowName}",
2336
+ "workflow_execution_completed": "ワークフローが完了しました: {workflowName}",
2337
+ "workflow_execution_failed": "ワークフローが失敗しました: {workflowName} - {error}",
2338
+ "workflow_cancelled": "ワークフローの実行がキャンセルされました。",
2339
+ "press_enter_to_continue": "続行するには Enter を押してください!",
2340
+ "starting": "🚀 ワークフローを開始しています...",
2341
+ "completed": "✅ ワークフローが正常に完了しました。",
2342
+ "checkReports": "📄 詳細についてはレポートを確認してください。",
2343
+ "exitingCompleted": "📝 ワークフローが完了しました。終了中...",
2314
2344
  "summary": {
2315
- "title": "📋 ワークフローサマリー",
2345
+ "title": "📋 ワークフローの概要",
2316
2346
  "separator": "===================",
2317
- "completedAt": "🕐 完了日時: {timestamp}",
2318
- "initialViolations": "📊 初期違反数: {count}",
2319
- "finalViolations": "📉 最終違反数: {count}",
2320
- "totalFixes": "🔧 適用された修正総数: {count}",
2321
- "improvement": "📈 改善率: {percentage}%",
2322
- "stepResults": "📝 ステップ結果:",
2323
- "stepDetail": "{number} {status} {stepName}",
2324
- "violations": "違反数: {count}",
2325
- "fixesApplied": "適用修正数: {count}",
2347
+ "completedAt": "🕐 ワークフローは次の時点で完了しました: {timestamp}",
2348
+ "initialViolations": "📊 最初の違反: {count}",
2349
+ "finalViolations": "📉 最終的な違反: {count}",
2350
+ "totalFixes": "🔧 適用された修正の合計: {count}",
2351
+ "improvement": "📈 改善: {percentage}%",
2352
+ "stepResults": "📝 ステップの結果:",
2353
+ "stepDetail": "{number}. {status} {stepName}",
2354
+ "violations": "違反: {count}",
2355
+ "fixesApplied": "適用された修正: {count}",
2326
2356
  "nextSteps": "💡 次のステップ:",
2327
- "congratulations": "🎉 おめでとうございます!すべてのロケールファイルの言語純度が完璧になりました!",
2328
- "cicdIntegration": "✅ CI/CD パイプラインへのバリデーター統合を検討してください",
2329
- "automatedChecks": "✅ 新しい翻訳に対する自動チェックを設定してください",
2330
- "greatProgress": "🎯 ほとんどの問題が解決されました。素晴らしい進捗です!",
2331
- "manualReview": "🔍 残りの違反を手動で確認してください",
2332
- "addMappings": "🌐 エッジケース用の翻訳マッピングを追加することを検討してください",
2333
- "goodProgress": "📈 良好な進捗ですが、さらなる作業が必要です。",
2334
- "expandMappings": "🔧 自動翻訳マッピングの拡充を検討してください",
2335
- "professionalReview": "👥 複雑な翻訳の手動レビューを検討してください",
2336
- "runAgain": "🔄 マッピングを追加後にワークフローを再実行してください",
2337
- "limitedProgress": "⚠️ 限定的な進捗です。手動介入が必要な場合があります。",
2338
- "reviewMappings": "🔍 翻訳マッピングを確認し、欠落を追加してください",
2357
+ "congratulations": "🎉 おめでとうございます!すべてのロケール ファイルは完全な言語の純度を持ちます。",
2358
+ "cicdIntegration": "✅ バリデーターを CI/CD パイプラインに統合することを検討してください。",
2359
+ "automatedChecks": "✅ 新しい翻訳の自動チェックを設定する",
2360
+ "greatProgress": "🎯 素晴らしい進歩です!ほとんどの問題は解決されました。",
2361
+ "manualReview": "🔍 残りの違反を手動で確認する",
2362
+ "addMappings": "🌐 エッジケースに備えて変換マッピングを追加することを検討してください",
2363
+ "goodProgress": "📈 順調に進んでいますが、さらなる作業が必要です。",
2364
+ "expandMappings": "🔧 自動翻訳マッピングを拡張する",
2365
+ "professionalReview": "👥 複雑な翻訳は手動でレビューすることを検討してください",
2366
+ "runAgain": "🔄 さらにマッピングを追加した後、ワークフローを再度実行します",
2367
+ "limitedProgress": "⚠️進行状況は限られています。手動による介入が必要になる場合があります。",
2368
+ "reviewMappings": "🔍 翻訳マッピングを確認し、不足しているマッピングを追加する",
2339
2369
  "professionalServices": "👥 プロの翻訳サービスを検討してください",
2340
- "checkIssues": "🔧 ロケールファイルの体系的な問題を確認してください",
2370
+ "checkIssues": "🔧 ロケールファイルの体系的な問題をチェックする",
2341
2371
  "success": "✅",
2342
2372
  "warning": "⚠️"
2343
2373
  }
2344
2374
  },
2345
2375
  "consoleI18nTester": {
2346
- "found_target_file": "ターゲットファイルが見つかりました",
2347
- "scanning_files_for_console_statements": "コンソールステートメントのファイルをスキャン中",
2348
- "found_javascript_files": "JavaScriptファイルが見つかりました",
2349
- "console_i18n_analysis_results": "コンソールi18n分析結果",
2350
- "total_console_statements": "コンソールステートメント合計",
2351
- "translated_statements": "翻訳済みステートメント",
2376
+ "found_target_file": "目的のファイルが見つかりました",
2377
+ "scanning_files_for_console_statements": "ファイルをスキャンしてコンソール ステートメントを確認する",
2378
+ "found_javascript_files": "JavaScript ファイルが見つかりました",
2379
+ "console_i18n_analysis_results": "コンソール i18n の分析結果",
2380
+ "total_console_statements": "コンソールステートメントの合計",
2381
+ "translated_statements": "翻訳されたステートメント",
2352
2382
  "hardcoded_statements": "ハードコードされたステートメント",
2353
- "translation_coverage": "翻訳カバレッジ",
2354
- "coverage_by_file": "ファイル別カバレッジ",
2383
+ "translation_coverage": "翻訳範囲",
2384
+ "coverage_by_file": "ファイルごとの範囲",
2355
2385
  "file_coverage_stats": "ファイルカバレッジ統計",
2356
- "hardcoded_console_statements": "ハードコードされたコンソールステートメント",
2386
+ "hardcoded_console_statements": "ハードコーディングされたコンソール ステートメント",
2357
2387
  "file_header": "ファイルヘッダー",
2358
2388
  "line_statement": "行ステートメント",
2359
- "suggested_key": "推奨キー",
2360
- "suggested_replacement": "推奨される置換",
2389
+ "suggested_key": "推奨されるキー",
2390
+ "suggested_replacement": "推奨される代替品",
2361
2391
  "recommendations": "推奨事項",
2362
- "recommendation_1": "推奨事項1",
2363
- "recommendation_2": "推奨事項2",
2364
- "recommendation_3": "推奨事項3",
2365
- "recommendation_4": "推奨事項4",
2392
+ "recommendation_1": "推奨事項 1",
2393
+ "recommendation_2": "推奨事項 2",
2394
+ "recommendation_3": "推奨事項 3",
2395
+ "recommendation_4": "推奨事項 4",
2366
2396
  "translation_keys_to_add": "追加する翻訳キー",
2367
- "add_keys_instruction": "キー追加の手順",
2368
- "perfect_translation_coverage": "完全な翻訳カバレッジ",
2369
- "all_statements_using_translation": "すべてのステートメントが翻訳を使用中",
2370
- "i18n_console_translation_checker": "i18nコンソール翻訳チェッカー",
2371
- "script_description_line1": "スクリプトの説明1",
2372
- "script_description_line2": "スクリプトの説明2",
2373
- "analysis_completed_in_duration": "分析が完了しました(所要時間)",
2374
- "report_saved_to_path": "レポートが保存されました:パス",
2397
+ "add_keys_instruction": "キーの追加手順",
2398
+ "perfect_translation_coverage": "完璧な翻訳範囲",
2399
+ "all_statements_using_translation": "翻訳を使用したすべてのステートメント",
2400
+ "i18n_console_translation_checker": "I18n コンソール翻訳チェッカー",
2401
+ "script_description_line1": "スクリプトの説明行 1",
2402
+ "script_description_line2": "スクリプトの説明行 2",
2403
+ "analysis_completed_in_duration": "分析は期間内に完了しました",
2404
+ "report_saved_to_path": "レポートがパスに保存されました",
2375
2405
  "found_hardcoded_messages": "ハードコードされたメッセージが見つかりました",
2376
- "all_console_messages_use_translation": "すべてのコンソールメッセージが翻訳を使用しています"
2406
+ "all_console_messages_use_translation": "すべてのコンソール メッセージは翻訳を使用します"
2377
2407
  },
2378
2408
  "exportTranslations": {
2379
- "createdDirectory": "ディレクトリを作成しました",
2380
- "foundFiles": "ファイルが見つかりました",
2381
- "createdTemplate": "テンプレートを作成しました",
2382
- "skippedExisting": "既存をスキップしました",
2409
+ "createdDirectory": "作成されたディレクトリ",
2410
+ "foundFiles": "見つかったファイル",
2411
+ "createdTemplate": "作成されたテンプレート",
2412
+ "skippedExisting": "既存をスキップ",
2383
2413
  "title": "タイトル",
2384
- "creatingTemplates": "テンプレートを作成中",
2385
- "summary": "サマリー",
2386
- "summaryLanguages": "言語サマリー",
2387
- "summaryFilesPerLanguage": "言語ごとのファイル数",
2388
- "summaryTotalFiles": "合計ファイル数",
2414
+ "creatingTemplates": "テンプレートの作成",
2415
+ "summary": "まとめ",
2416
+ "summaryLanguages": "概要言語",
2417
+ "summaryFilesPerLanguage": "言語ごとの概要ファイル",
2418
+ "summaryTotalFiles": "合計ファイル数の概要",
2389
2419
  "success": "成功",
2390
- "location": "場所",
2420
+ "location": "位置",
2391
2421
  "nextSteps": "次のステップ"
2392
2422
  },
2393
2423
  "dashboard": {
@@ -2396,10 +2426,10 @@
2396
2426
  },
2397
2427
  "auth": {
2398
2428
  "title": "タイトル",
2399
- "email": "メール",
2429
+ "email": "電子メール",
2400
2430
  "password": "パスワード",
2401
2431
  "signIn": "サインイン",
2402
- "forgotPassword": "パスワードを忘れた",
2432
+ "forgotPassword": "パスワードをお忘れですか",
2403
2433
  "signUp": "サインアップ"
2404
2434
  },
2405
2435
  "checkUsage": {
@@ -2408,7 +2438,7 @@
2408
2438
  "completeTranslations": {
2409
2439
  "warning_could_not_parse_filepa": "警告: ファイル パスを解析できませんでした: {filePath}"
2410
2440
  },
2411
- "pressEnterToContinue": "Enter キーを押して続行します...",
2441
+ "pressEnterToContinue": "続行するには Enter キーを押してください...",
2412
2442
  "status": {
2413
2443
  "exitingCompleted": "ワークフローが完了しました。終了中..."
2414
2444
  }