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.
- package/CHANGELOG.md +94 -23
- package/README.md +29 -23
- package/SECURITY.md +19 -5
- package/main/i18ntk-complete.js +120 -49
- package/main/i18ntk-translate.js +25 -1
- package/main/manage/index.js +0 -2
- package/main/manage/managers/InteractiveMenu.js +4 -0
- package/main/manage/services/FileManagementService.js +14 -11
- package/package.json +5 -3
- package/runtime/enhanced.d.ts +1 -1
- package/runtime/i18ntk.d.ts +2 -11
- package/ui-locales/de.json +1389 -1359
- package/ui-locales/es.json +1503 -1473
- package/ui-locales/fr.json +1626 -1596
- package/ui-locales/ja.json +1595 -1565
- package/ui-locales/ru.json +1638 -1608
- package/ui-locales/zh.json +1613 -1583
- package/utils/admin-auth.js +6 -6
- package/utils/config-manager.js +6 -3
- package/utils/translate/api.js +172 -41
- package/utils/translate/safe-network.js +280 -0
- package/utils/translate/traverse.js +14 -25
package/ui-locales/ja.json
CHANGED
|
@@ -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": "
|
|
47
|
-
"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": "
|
|
52
|
-
"genericError": "❌
|
|
51
|
+
"errorExecutingCommand": "コマンド実行エラー: {error}",
|
|
52
|
+
"genericError": "❌ エラー: {error}",
|
|
53
53
|
"errors": {
|
|
54
|
-
"errors": "
|
|
55
|
-
"genericError": "❌
|
|
54
|
+
"errors": "エラー:",
|
|
55
|
+
"genericError": "❌ エラー: {error}",
|
|
56
56
|
"initializationFailed": "❌ 初期化に失敗しました: {error}",
|
|
57
57
|
"initializationCancelled": "❌ ユーザーにより初期化がキャンセルされました。",
|
|
58
58
|
"translationKeyNotFound": "翻訳キーが見つかりません: {key}",
|
|
59
59
|
"sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {directory}",
|
|
60
|
-
"configLoadingFailed": "
|
|
61
|
-
"invalidSourceDirectory": "
|
|
60
|
+
"configLoadingFailed": "構成のロードに失敗しました",
|
|
61
|
+
"invalidSourceDirectory": "無効なソース ディレクトリ: {directory}",
|
|
62
62
|
"securityViolation": "セキュリティ違反が検出されました",
|
|
63
|
-
"authenticationFailed": "
|
|
64
|
-
"sourceEqualsI18nWarn": "⚠️
|
|
63
|
+
"authenticationFailed": "認証に失敗しました",
|
|
64
|
+
"sourceEqualsI18nWarn": "⚠️sourceDir は i18nDir と等しい ({sourceDir})。に戻る {fallback} ソーススキャン用。"
|
|
65
65
|
},
|
|
66
|
-
"errorGeneratingStatusSummary": "
|
|
67
|
-
"errorRunningDebugTool": "
|
|
68
|
-
"errorReadingDebugLogs": "
|
|
69
|
-
"errorAnalyzingLogFile": "
|
|
70
|
-
"errorAnalyzingTranslationKeys": "
|
|
71
|
-
"errorAnalyzingTranslationCompleteness": "
|
|
72
|
-
"analyzingTranslationCompleteness": "
|
|
73
|
-
"i18nDirectoryNotFound": "⚠️
|
|
74
|
-
"translationCompletenessAnalysisFailed": "⚠️
|
|
75
|
-
"failedToAnalyzeLanguage": "❌
|
|
76
|
-
"errorReadingI18nDirectory": "❌ i18n
|
|
77
|
-
"languageCompletenessTitle": "📈
|
|
78
|
-
"errorAnalyzingTranslationFormat": "
|
|
79
|
-
"errorAnalyzingTranslationType": "
|
|
80
|
-
"errorAnalyzingTranslationStructure": "
|
|
81
|
-
"errorAnalyzingTranslationFormatMismatch": "
|
|
82
|
-
"errorAnalyzingTranslationTypeMismatch": "
|
|
83
|
-
"errorAnalyzingTranslationStructureMismatch": "
|
|
84
|
-
"errorAnalyzingTranslationSameAsSource": "
|
|
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": "🎛️
|
|
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": "
|
|
111
|
-
"noI18nConfig": "
|
|
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 テキスト
|
|
115
|
+
"help_message": "I18n テキスト スキャナーの使用法: ノード i18ntk-scanner.js [オプション] オプション: --source-dir <dir> スキャンするソース ディレクトリ (デフォルト: ./src) --output <file> スキャン結果の出力ファイル (デフォルト: ./i18ntk-scanner-report.json) --framework <name> ターゲットとなるフレームワーク (react、vue、angular、vanilla) --patterns <patterns> カスタム正規表現パターン (カンマ区切り) --include-tests スキャンにテスト ファイルを含めます --exclude-dirs <dirs> 除外するディレクトリ (カンマ区切り) --help このヘルプを表示 例: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
|
|
116
116
|
"help_options": {
|
|
117
|
-
"source_dir": "
|
|
118
|
-
"output_dir": "
|
|
119
|
-
"framework": "
|
|
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": "ターゲットフレームワーク (react、vue、angular、vanilla)",
|
|
120
|
+
"patterns": "テキスト検出用のカスタム正規表現パターン",
|
|
121
|
+
"exclude": "スキャンから除外するファイル パターン",
|
|
122
|
+
"output_report": "詳細なスキャンレポートを生成する",
|
|
123
|
+
"min_length": "翻訳の際に考慮すべき最小テキスト長",
|
|
124
|
+
"max_length": "翻訳の際に考慮すべき最大テキスト長",
|
|
125
|
+
"include_tests": "スキャンプロセスにテストファイルを含める"
|
|
126
126
|
},
|
|
127
|
-
"starting": "🔍
|
|
127
|
+
"starting": "🔍 フレームワークのテキストスキャナーを開始します: {framework}",
|
|
128
128
|
"sourceDirectory": "📁 スキャンディレクトリ: {sourceDir}",
|
|
129
129
|
"frameworkDetected": "🎯 検出されたフレームワーク: {framework}",
|
|
130
|
-
"scanningFiles": "📊 {fileCount}
|
|
131
|
-
"foundTexts": "
|
|
130
|
+
"scanningFiles": "📊 スキャン中 {fileCount} ファイル...",
|
|
131
|
+
"foundTexts": "📝見つかりました {textCount} 翻訳が必要な文章",
|
|
132
132
|
"generatingReport": "📊 詳細レポートを生成中...",
|
|
133
|
-
"reportSaved": "💾
|
|
133
|
+
"reportSaved": "💾 スキャンレポートの保存場所: {reportPath}",
|
|
134
134
|
"noTextsFound": "✅ ハードコードされた英語テキストは見つかりませんでした",
|
|
135
135
|
"scanComplete": "🎉 スキャンが正常に完了しました。",
|
|
136
136
|
"analysisTitle": "🔍 翻訳スキャン分析",
|
|
137
|
-
"fileSummary": "📄 {file}: {count}
|
|
138
|
-
"textLocation": "
|
|
139
|
-
"foundText": "{count}
|
|
137
|
+
"fileSummary": "📄 {file}: {count} テキストが見つかりました",
|
|
138
|
+
"textLocation": "📍ライン {line}: {text}",
|
|
139
|
+
"foundText": "見つかった {count} ハードコードされたテキスト インスタンスの可能性",
|
|
140
140
|
"context": "📝 コンテキスト: {context}",
|
|
141
141
|
"severity": "⚠️ 重大度: {severity}",
|
|
142
|
-
"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": "
|
|
164
|
+
"reportGenerated": "スキャンレポートが生成されました: {path}"
|
|
165
165
|
},
|
|
166
166
|
"fixer": {
|
|
167
|
-
"help_message": "I18n
|
|
168
|
-
"starting": "🚀
|
|
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": "🏷️
|
|
172
|
-
"scanningLanguage": "📊 {language}
|
|
173
|
-
"noLanguages": "❌
|
|
174
|
-
"allComplete": "🎉
|
|
175
|
-
"fullReportSaved": "📊
|
|
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": "
|
|
184
|
-
"missingTranslations": "
|
|
185
|
-
"placeholderTranslations": "
|
|
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": "❌
|
|
191
|
-
"placeholderKey": "⚠️
|
|
192
|
-
"moreIssues": "...
|
|
193
|
-
"confirmationTitle": "🤔
|
|
194
|
-
"confirmationOptions": "
|
|
195
|
-
"optionYes": "y -
|
|
196
|
-
"optionNo": "n -
|
|
197
|
-
"optionShow": "s -
|
|
198
|
-
"choicePrompt": "
|
|
199
|
-
"nonInteractiveMode": "⚡
|
|
200
|
-
"reportGenerated": "📊
|
|
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": "
|
|
210
|
-
"input": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
230
|
-
"fixing": "{language}
|
|
231
|
-
"foundLanguages": "{count}
|
|
232
|
-
"languageFixed": "{language}
|
|
229
|
+
"error": "修正に失敗しました: {error}",
|
|
230
|
+
"fixing": "固定する {language}...",
|
|
231
|
+
"foundLanguages": "見つかった {count} 言語: {languages}",
|
|
232
|
+
"languageFixed": "{language}: 修理済み {fixed} キー、スキップされました {skipped}.",
|
|
233
233
|
"running": "翻訳フィクサーを実行しています...",
|
|
234
|
-
"totalFixed": "
|
|
234
|
+
"totalFixed": "固定合計: {count}"
|
|
235
235
|
},
|
|
236
236
|
"autorun": {
|
|
237
|
-
"stepAnalyzeTranslations": "
|
|
238
|
-
"stepCompletedWithIcon": "✅
|
|
239
|
-
"stepValidateTranslations": "
|
|
240
|
-
"stepRunning": "
|
|
241
|
-
"separator": "
|
|
242
|
-
"stepFailed": "
|
|
243
|
-
"errorLabel": "
|
|
244
|
-
"autoRunScriptTitle": "
|
|
245
|
-
"usageTitle": "
|
|
246
|
-
"runAllSteps": "
|
|
247
|
-
"configureSettingsFirst": "
|
|
248
|
-
"runSpecificSteps": "
|
|
249
|
-
"showHelp": "
|
|
250
|
-
"examplesTitle": "
|
|
251
|
-
"configExample": "
|
|
252
|
-
"stepsExample1": "
|
|
253
|
-
"stepsExample2": "
|
|
254
|
-
"customSettingsConfiguration": "
|
|
255
|
-
"availableSteps": "
|
|
256
|
-
"startingAutoRunWorkflow": "
|
|
257
|
-
"workflowIncludesSteps": "
|
|
258
|
-
"missingRequiredFile": "
|
|
259
|
-
"workflowStopped": "
|
|
260
|
-
"workflowCompleted": "
|
|
261
|
-
"successfulSteps": "
|
|
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": "
|
|
269
|
-
"commandLabel": "
|
|
270
|
-
"stepCompletedWithTime": "
|
|
271
|
-
"stepCompleted": "
|
|
272
|
-
"stepFailedWithError": "
|
|
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": "
|
|
282
|
+
"requiredFailedSteps": "必要な手順が失敗しました: {count}",
|
|
283
283
|
"stepDetails": "ステップの詳細:",
|
|
284
|
-
"reportSavedTo": "
|
|
284
|
+
"reportSavedTo": "レポートの保存場所: {path}",
|
|
285
285
|
"overallStatusSuccess": "成功",
|
|
286
|
-
"overallStatusFailed": "
|
|
287
|
-
"overallStatus": "
|
|
288
|
-
"pressEnterForDefaults": "
|
|
289
|
-
"sourceDirPrompt": "
|
|
286
|
+
"overallStatusFailed": "失敗した",
|
|
287
|
+
"overallStatus": "全体的なステータス: {status}",
|
|
288
|
+
"pressEnterForDefaults": "Enter キーを押して、プロンプトのデフォルト設定を使用します。",
|
|
289
|
+
"sourceDirPrompt": "ソース ディレクトリを入力してください (デフォルト: {default}):",
|
|
290
290
|
"sourceLangPrompt": "ソース言語を入力してください (デフォルト: {default}):",
|
|
291
|
-
"targetLangsPrompt": "
|
|
291
|
+
"targetLangsPrompt": "ターゲット言語を入力します (カンマ区切り、デフォルト: {default}):",
|
|
292
292
|
"translationMarkerPrompt": "翻訳マーカーを入力してください (デフォルト: {default}):",
|
|
293
293
|
"outputDirPrompt": "レポートの出力ディレクトリを入力してください (デフォルト: {default}):",
|
|
294
|
-
"settingsUpdatedSuccessfully": "
|
|
295
|
-
"errorConfiguringSettings": "
|
|
296
|
-
"configurationComplete": "
|
|
297
|
-
"runAutoRunCommand": "
|
|
294
|
+
"settingsUpdatedSuccessfully": "設定が正常に更新されました。",
|
|
295
|
+
"errorConfiguringSettings": "設定の構成中にエラーが発生しました: {error}",
|
|
296
|
+
"configurationComplete": "設定が完了しました。",
|
|
297
|
+
"runAutoRunCommand": "これで自動実行コマンドを実行できるようになりました。",
|
|
298
298
|
"configurationFailed": "構成に失敗しました: {error}",
|
|
299
299
|
"noValidStepNumbers": "有効なステップ番号が指定されていません。",
|
|
300
|
-
"autoRunFailed": "
|
|
301
|
-
"stepCompleteTranslations": "
|
|
302
|
-
"stepAnalyzeSizing": "
|
|
300
|
+
"autoRunFailed": "自動実行に失敗しました: {error}",
|
|
301
|
+
"stepCompleteTranslations": "完全な翻訳",
|
|
302
|
+
"stepAnalyzeSizing": "サイジングの分析",
|
|
303
303
|
"stepCompletedIcon": "✅",
|
|
304
|
-
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}]
|
|
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": "
|
|
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": "
|
|
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": "
|
|
325
|
-
"sample_unused_keys": "
|
|
324
|
+
"and_more_missing": "...そして {count} もっと。",
|
|
325
|
+
"sample_unused_keys": "未使用のキーのサンプル:",
|
|
326
326
|
"unused_key": "- {key}",
|
|
327
|
-
"and_more_unused": "
|
|
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.
|
|
334
|
-
"add_or_remove_translations": "3.
|
|
335
|
-
"rerun_analysis": "4.
|
|
336
|
-
"analysis_summary": "📊
|
|
337
|
-
"source_files_scanned": "
|
|
338
|
-
"translation_files_checked": "
|
|
339
|
-
"total_keys": "
|
|
340
|
-
"translated_keys": "
|
|
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": "
|
|
344
|
-
"analysis_passed_for_language": "✅ {language}
|
|
345
|
-
"analysis_failed_for_language": "❌ {language}
|
|
343
|
+
"translation_coverage": "翻訳範囲: {coverage}%",
|
|
344
|
+
"analysis_passed_for_language": "✅ 分析に合格しました {language}",
|
|
345
|
+
"analysis_failed_for_language": "❌ 分析に失敗しました {language} ({missingKeys} ない、 {unusedKeys} 未使用)",
|
|
346
346
|
"starting": "🔍 翻訳分析を開始しています...",
|
|
347
|
-
"foundLanguages": "📋
|
|
348
|
-
"analyzing": "🔄 {language}
|
|
347
|
+
"foundLanguages": "📋 見つかりました {count} 分析する言語: {languages}",
|
|
348
|
+
"analyzing": "🔄 分析中 {language}...",
|
|
349
349
|
"reportTitle": "📊 翻訳分析レポート",
|
|
350
|
-
"generated": "
|
|
351
|
-
"status": "
|
|
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": "📊
|
|
358
|
-
"reportSaved": "
|
|
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": "
|
|
369
|
-
"issues": "⚠️
|
|
368
|
+
"extraKeys": "追加のキー: {count}",
|
|
369
|
+
"issues": "⚠️ 見つかった問題: {count}",
|
|
370
370
|
"issueType": {
|
|
371
371
|
"not_translated": "未翻訳: {count}",
|
|
372
372
|
"empty_value": "空の値: {count}",
|
|
373
|
-
"partial_translation": "
|
|
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": "
|
|
384
|
-
"noLanguages": "⚠️
|
|
385
|
-
"languageStats": "{language}: {percentage}
|
|
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": "
|
|
393
|
-
"couldNotParseTarget": "
|
|
394
|
-
"couldNotParseSource": "
|
|
395
|
-
"reportGenerated": "
|
|
396
|
-
"generateReportPrompt": "
|
|
397
|
-
"title": "🌍 I18NTK
|
|
398
|
-
"separator": "
|
|
399
|
-
"sourceDir": "📁
|
|
400
|
-
"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": "🌍
|
|
403
|
-
"addingMissingKeys": "➕
|
|
404
|
-
"processing": "🔄 {language}
|
|
405
|
-
"addedKeys": "✅ {count}
|
|
406
|
-
"noChangesNeeded": "✅ {language}
|
|
407
|
-
"summaryTitle": "📊
|
|
408
|
-
"totalChanges": "📝
|
|
409
|
-
"languagesProcessed": "🌍
|
|
410
|
-
"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": "
|
|
414
|
-
"nextStep3": "2.
|
|
415
|
-
"nextStep4": "
|
|
416
|
-
"nextStep5": "3.
|
|
417
|
-
"nextStep6": "
|
|
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": "📋
|
|
425
|
-
"couldNotParse": "❌
|
|
426
|
-
"errorDuringCompletion": "❌
|
|
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": "
|
|
437
|
-
"invalidSourceDirectoryError": "
|
|
436
|
+
"strictModeLabel": "⚙️ストリクトモード: {mode}",
|
|
437
|
+
"invalidSourceDirectoryError": "無効なソース ディレクトリ パス: {sourceDir}",
|
|
438
438
|
"sourceDirectoryNotFoundError": "ソースディレクトリが見つかりません: {sourceDir}",
|
|
439
|
-
"invalidOutputDirectoryError": "
|
|
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": "
|
|
446
|
-
"failedToSaveCsvError": "CSV
|
|
447
|
-
"fatalError": "❌
|
|
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": "
|
|
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": "
|
|
453
|
+
"generating_size_comparisons": "サイズ比較を生成しています...",
|
|
454
|
+
"no_languages_found_for_comparison": "比較対象の言語が見つかりません",
|
|
455
|
+
"sizing_analysis_results": "I18n サイジング分析結果",
|
|
456
456
|
"file_sizes_title": "ファイルサイズ",
|
|
457
|
-
"file_sizes_header": "
|
|
458
|
-
"file_size_row": "{lang}
|
|
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}
|
|
462
|
-
"size_variations_title": "
|
|
463
|
-
"size_variations_header": "
|
|
464
|
-
"size_variation_row": "{lang}
|
|
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}
|
|
469
|
-
"problematic_key_detail": "{index}
|
|
470
|
-
"generating_detailed_report": "
|
|
471
|
-
"keysHaveSignificantSizeVariations": "
|
|
472
|
-
"longTranslationsDetected": "${lang}
|
|
473
|
-
"longer": "
|
|
474
|
-
"shorter": "
|
|
475
|
-
"review_translations": "{lang}
|
|
476
|
-
"report_saved_to": "
|
|
477
|
-
"considerReviewingTranslations": "${lang}
|
|
478
|
-
"csv_report_saved_to": "CSV
|
|
479
|
-
"human_report_saved": "
|
|
480
|
-
"folder_summary_title": "
|
|
481
|
-
"folder_summary_table_header": "
|
|
482
|
-
"folder_summary_row": "{lang}
|
|
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": "📊
|
|
486
|
-
"detailedKeysDescription": "
|
|
487
|
-
"too_many_keys_warning": "⚠️
|
|
488
|
-
"no_translation_files_found": "
|
|
489
|
-
"analysis_completed": "
|
|
490
|
-
"analysis_failed": "
|
|
491
|
-
"starting_analysis": "
|
|
492
|
-
"found_files": "
|
|
493
|
-
"failed_to_parse_language_error": "{language}
|
|
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}
|
|
497
|
-
"long_translations_detected": "{lang}
|
|
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": "
|
|
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
|
|
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": "⚠️
|
|
512
|
-
"analyzing_source_files": "🔍
|
|
513
|
-
"found_files_in_source": "📂
|
|
514
|
-
"found_thisusedkeyssize_unique_": "🎯
|
|
515
|
-
"total_key_usages_totalkeysfoun": "📊
|
|
516
|
-
"loading_available_translation_": "📋
|
|
517
|
-
"found_thisavailablekeyssize_av": "✅
|
|
518
|
-
"foundTranslationFiles": "✅ {count}
|
|
519
|
-
"errorReadingI18nDirectory": "⚠️
|
|
520
|
-
"pressEnterToReturnToMenu": "Enter
|
|
521
|
-
"notTranslatedKeysTotal": "⚠️
|
|
522
|
-
"noSourceFilesFound": "⚠️
|
|
523
|
-
"reviewNotTranslatedKeys": "💡
|
|
524
|
-
"analysisCompletedSuccessfully": "🎉
|
|
525
|
-
"detectedSourceDirectory": "
|
|
526
|
-
"detectedI18nDirectory": "検出された
|
|
527
|
-
"fileInfo": "📄 {namespace}: {keys}
|
|
528
|
-
"failedToAnalyzeUsage": "❌
|
|
529
|
-
"failedToAnalyzeFile": "❌
|
|
530
|
-
"failedToExtractKeys": "
|
|
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": "
|
|
534
|
-
"argsParsed": "
|
|
535
|
-
"processedFiles": "
|
|
532
|
+
"analyzerInitialized": "アナライザーが初期化されました",
|
|
533
|
+
"analyzerInitFailed": "アナライザーの初期化に失敗しました: {error}",
|
|
534
|
+
"argsParsed": "解析された引数",
|
|
535
|
+
"processedFiles": "加工済み {processedFiles} の {totalFiles} ファイル。",
|
|
536
536
|
"argsParseFailed": "引数の解析に失敗しました: {error}",
|
|
537
|
-
"translationDiscoveryError": "
|
|
538
|
-
"fileTraversalError": "
|
|
539
|
-
"sourceEqualsI18nWarn": "⚠️
|
|
540
|
-
"i18nEqualsSourceWarn": "⚠️
|
|
541
|
-
"usageAnalysisFailed": "
|
|
542
|
-
"translationFileParseError": "翻訳ファイルの解析エラー: {error}",
|
|
543
|
-
"translationKeysLoadError": "翻訳キーの読み込みエラー: {error}",
|
|
544
|
-
"languageCompletenessStats": "
|
|
545
|
-
"missingKeysCount": "⚠️
|
|
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": "
|
|
548
|
+
"usedKeysCount": "使用したキー: {count}",
|
|
549
549
|
"availableKeysCount": "利用可能なキー: {count}",
|
|
550
550
|
"analysisResults": "分析結果:",
|
|
551
|
-
"i18nDirectoryNotFound": "⚠️
|
|
552
|
-
"sourceDirectoryNotFound": "⚠️
|
|
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": "
|
|
558
|
-
"found_files_in_source": "
|
|
559
|
-
"no_source_files_found": "⚠️
|
|
560
|
-
"processedFiles": "{
|
|
561
|
-
"failedToProcessFile": "❌
|
|
562
|
-
"found_thisusedkeyssize_unique_": "
|
|
563
|
-
"total_key_usages_totalkeysfoun": "📊
|
|
564
|
-
"loading_available_translation_": "
|
|
565
|
-
"found_thisavailablekeyssize_av": "✅
|
|
566
|
-
"message": "
|
|
567
|
-
"usage_analysis_results": "📊
|
|
568
|
-
"source_files_scanned_thisfileu": "スキャンされたソースファイル: {fileUsageSize}",
|
|
569
|
-
"available_translation_keys_thi": "利用可能な翻訳キー: {availableKeysSize}",
|
|
570
|
-
"used_translation_keys_thisused": "
|
|
571
|
-
"dynamic_keys_detected_dynamick": "
|
|
572
|
-
"unused_keys_unusedkeyslength": "未使用のキー: {unusedKeysLength}",
|
|
573
|
-
"missing_keys_missingkeyslength": "
|
|
574
|
-
"translation_completeness_title": "
|
|
575
|
-
"language_completeness_stats": "{language}: {translated}/{total} ({
|
|
576
|
-
"n_sample_unused_keys": "
|
|
577
|
-
"key": "
|
|
578
|
-
"and_unusedkeyslength_5_more": "
|
|
579
|
-
"n_sample_missing_keys": "❌
|
|
580
|
-
"and_missingkeyslength_5_more": "...
|
|
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
|
|
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.
|
|
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}
|
|
599
|
-
"failedToAnalyzeLanguage": "{language}
|
|
600
|
-
"translationCompletenessAnalysisFailed": "
|
|
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": "
|
|
617
|
-
"noChangesNeeded": "✅ {language}
|
|
618
|
-
"summaryTitle": "📊
|
|
619
|
-
"totalChanges": "📝
|
|
620
|
-
"languagesProcessed": "🌍
|
|
621
|
-
"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": "
|
|
625
|
-
"nextStep3": "2.
|
|
626
|
-
"nextStep4": "
|
|
627
|
-
"nextStep5": "3.
|
|
628
|
-
"nextStep6": "
|
|
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": "📋
|
|
636
|
-
"couldNotParse": "❌
|
|
634
|
+
"reportNotFound": "📋 使用状況レポートが見つかりません。共通キーを使用する...",
|
|
635
|
+
"foundMissingKeys": "📋 見つかりました {count} 使用状況分析でキーが欠落している",
|
|
636
|
+
"couldNotParse": "❌ 使用状況レポートを解析できませんでした。共通キーを使用する..."
|
|
637
637
|
},
|
|
638
|
-
"noTranslationLanguagesFound": "
|
|
639
|
-
"failedToAnalyzeLanguage": "
|
|
640
|
-
"translationCompletenessAnalysisFailed": "
|
|
638
|
+
"noTranslationLanguagesFound": "翻訳言語が見つかりません",
|
|
639
|
+
"failedToAnalyzeLanguage": "言語の分析に失敗しました",
|
|
640
|
+
"translationCompletenessAnalysisFailed": "翻訳完全性分析が失敗しました",
|
|
641
641
|
"failedToProcessFile": "ファイルの処理に失敗しました:",
|
|
642
642
|
"failedToSaveReport": "使用状況レポートの保存に失敗しました: {error}",
|
|
643
643
|
"i18nDirectoryDoesNotExist": "I18n ディレクトリが存在しません: {dir}",
|
|
644
|
-
"reportSavedTo": "
|
|
645
|
-
"sourceDirectoryDoesNotExist": "
|
|
644
|
+
"reportSavedTo": "使用状況レポートの保存場所: {reportPath}",
|
|
645
|
+
"sourceDirectoryDoesNotExist": "ソースディレクトリが存在しません: {dir}"
|
|
646
646
|
},
|
|
647
647
|
"validate": {
|
|
648
|
-
"help_message": "I18n
|
|
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": "
|
|
654
|
-
"noTargetLanguages": "
|
|
655
|
-
"validatingLanguages": "🌍
|
|
656
|
-
"validatingLanguage": "🔍
|
|
657
|
-
"filesCount": "📄
|
|
658
|
-
"keysCount": "🔑
|
|
659
|
-
"missingFilesCount": "📁
|
|
660
|
-
"syntaxErrorsCount": "❌
|
|
661
|
-
"translationPercentage": "🎯
|
|
662
|
-
"validationSummary": "📊
|
|
663
|
-
"validation_failed": "❌
|
|
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": "⚠️
|
|
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.
|
|
677
|
-
"allValidationsPassed": "🎉
|
|
678
|
-
"considerRunningUsageAnalysis": "
|
|
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": "⚠️
|
|
687
|
-
"validationWarningsFound": "⚠️
|
|
688
|
-
"validationPassed": "✅
|
|
689
|
-
"validationFailed": "
|
|
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": "❌
|
|
695
|
-
"configAccess": "
|
|
696
|
-
"configValidated": "
|
|
697
|
-
"configError": "
|
|
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": "
|
|
707
|
-
"filesScan": "{
|
|
705
|
+
"languagesFound": "見つかった {count} 言語",
|
|
706
|
+
"languagesScanError": "言語スキャン エラー: {error}",
|
|
707
|
+
"filesScan": "見つかった {count} 内のファイル {language}",
|
|
708
708
|
"filesScanError": "ファイルスキャンエラー: {error}",
|
|
709
|
-
"jsonValidated": "JSON
|
|
710
|
-
"jsonValidationError": "JSON
|
|
711
|
-
"languageValidation": "
|
|
712
|
-
"languageValidationError": "
|
|
713
|
-
"fileDeleted": "
|
|
714
|
-
"runStarted": "
|
|
715
|
-
"runCompleted": "
|
|
716
|
-
"runError": "
|
|
717
|
-
"scriptExecution": "
|
|
718
|
-
"validationCompleted": "
|
|
719
|
-
"validationError": "
|
|
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": "
|
|
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": "
|
|
749
|
-
"enablePinProtectionPrompt": "管理者PIN
|
|
750
|
-
"setupCancelled": "管理者PIN保護の設定がキャンセルされました。",
|
|
751
|
-
"enterPinPrompt": "4
|
|
752
|
-
"pinFormatError": "❌ PINは4
|
|
753
|
-
"confirmPinPrompt": "PIN
|
|
754
|
-
"pinMismatchError": "❌ PIN
|
|
755
|
-
"pinProtectionEnabledSuccess": "✅ 管理者PIN
|
|
756
|
-
"pinRecoveryWarning": "⚠️ PIN
|
|
757
|
-
"setupPinProtectionFailed": "❌ 管理者PIN
|
|
758
|
-
"errorSettingUpPin": "❌ 管理者PINの設定中にエラーが発生しました: {message}",
|
|
759
|
-
"authRequiredForOperation": "🔐
|
|
760
|
-
"invalidPinFormat": "❌
|
|
761
|
-
"authenticationSuccess": "✅
|
|
762
|
-
"invalidPinAttemptsRemaining": "❌
|
|
748
|
+
"setupPinProtectionDescription": "これには、管理操作のために 4 ~ 6 桁の PIN が必要になります。",
|
|
749
|
+
"enablePinProtectionPrompt": "管理者 PIN 保護を有効にしますか?",
|
|
750
|
+
"setupCancelled": "管理者 PIN 保護の設定がキャンセルされました。",
|
|
751
|
+
"enterPinPrompt": "4 ~ 6 桁の PIN を入力してください:",
|
|
752
|
+
"pinFormatError": "❌ PIN は 4 ~ 6 桁である必要があります。もう一度試してください。",
|
|
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 は 4 ~ 6 桁である必要があります。",
|
|
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": "❌
|
|
772
|
-
"adminProtectionStatusTitle": "🔐
|
|
767
|
+
"confirmDisablePinProtection": "管理者 PIN 保護を無効にしてもよろしいですか?",
|
|
768
|
+
"operationCancelled": "操作はキャンセルされました。",
|
|
769
|
+
"pinProtectionDisabledSuccess": "✅ 管理者PIN保護が無効になっています。",
|
|
770
|
+
"disablePinProtectionFailed": "❌ 管理者 PIN 保護を無効にできませんでした。",
|
|
771
|
+
"errorDisablingPinProtection": "❌ 管理者保護を無効にするエラー: {message}",
|
|
772
|
+
"adminProtectionStatusTitle": "🔐 管理者の保護ステータス",
|
|
773
773
|
"statusEnabled": "ステータス: ✅ 有効",
|
|
774
|
-
"protectionDetails": "保護: 管理操作には4
|
|
775
|
-
"lockoutDetails": "ロックアウト: 3
|
|
774
|
+
"protectionDetails": "保護: 管理操作には 4 ~ 6 桁の PIN が必要です",
|
|
775
|
+
"lockoutDetails": "ロックアウト: 3 回の試行失敗 = 15 分間のロックアウト",
|
|
776
776
|
"statusDisabled": "ステータス: ❌ 無効",
|
|
777
|
-
"noAuthRequired": "保護:
|
|
778
|
-
"unprotectedRisk": "リスク:
|
|
779
|
-
"errorCheckingAdminStatus": "❌
|
|
777
|
+
"noAuthRequired": "保護: 認証は必要ありません",
|
|
778
|
+
"unprotectedRisk": "リスク: 管理操作が保護されていない",
|
|
779
|
+
"errorCheckingAdminStatus": "❌ 管理ステータスのチェック中にエラーが発生しました: {message}",
|
|
780
780
|
"authRequired": "🔐 管理者認証が必要です。",
|
|
781
|
-
"invalidPin": "❌
|
|
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": "
|
|
794
|
-
"required_for_title": "このPIN
|
|
791
|
+
"setup_title": "🔐 管理者PINの設定",
|
|
792
|
+
"setup_separator": "======================================================",
|
|
793
|
+
"setup_description": "管理者が機密設定にアクセスするために、4 ~ 6 桁の 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
|
|
801
|
-
"invalid_pin_length": "❌
|
|
798
|
+
"required_for_4": "• 設定をリセットする",
|
|
799
|
+
"setup_note": "💡 注: 入力するとアスタリスク (*) が表示されます。これらは単なるマスキング文字です。",
|
|
800
|
+
"setup_digits_only": "PIN 数字として受け入れられるのは 0 ~ 9 の数字のみです。",
|
|
801
|
+
"invalid_pin_length": "❌ PIN が無効です。 4 ~ 6 桁である必要があります (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": "💡
|
|
811
|
-
"locked_out": "🔒
|
|
812
|
-
"wait_before_retry": "
|
|
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
|
|
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
|
|
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": "❌
|
|
826
|
-
"weak_pin_warning": "⚠️ 警告: このPIN
|
|
827
|
-
"weak_pin_suggestion": "💡
|
|
828
|
-
"use_anyway_prompt": "
|
|
829
|
-
"enter_new_pin": "新しい管理者PIN
|
|
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 (4 ~ 6 桁) を入力してください:",
|
|
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": "❌
|
|
847
|
-
"errorRunningDebugTool": "
|
|
848
|
-
"recentDebugLogs": "📄
|
|
849
|
-
"noDebugLogsFound": "❌
|
|
850
|
-
"debugLogsDirectoryNotFound": "❌
|
|
851
|
-
"selectLogPrompt": "
|
|
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}
|
|
861
|
-
"results_title": "📊
|
|
862
|
-
"results_separator": "
|
|
863
|
-
"summary_title": "📋
|
|
864
|
-
"total_files_analyzed": "
|
|
865
|
-
"files_with_mismatches": "
|
|
866
|
-
"total_mismatches_found": "
|
|
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": "
|
|
871
|
-
"mismatch_details": "{index}
|
|
872
|
-
"mismatch_value": "
|
|
873
|
-
"mismatch_issue": "
|
|
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.
|
|
877
|
-
"recommendation_3": "3.
|
|
878
|
-
"recommendation_4": "4.
|
|
879
|
-
"recommendation_5": "5.
|
|
880
|
-
"detailed_report_saved": "📄
|
|
881
|
-
"error_saving_report": "❌
|
|
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": "
|
|
887
|
-
"preview_fixes_title": "🔍
|
|
888
|
-
"fix_details": "{file}: {key}
|
|
889
|
-
"more_fixes": "
|
|
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": "
|
|
900
|
-
"debugToolNotFound": "
|
|
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": "使用法:
|
|
909
|
-
"interactiveMode": "💡
|
|
910
|
-
"showHelp": "📖
|
|
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": "
|
|
918
|
-
"validateCommand": "validate
|
|
919
|
-
"usageCommand": "
|
|
920
|
-
"sizingCommand": "sizing
|
|
921
|
-
"completeCommand": "complete
|
|
922
|
-
"summaryCommand": "
|
|
923
|
-
"debugCommand": "debug
|
|
924
|
-
"scannerCommand": "
|
|
925
|
-
"translateCommand": "
|
|
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": "
|
|
935
|
-
"validate": "validate
|
|
936
|
-
"usage": "
|
|
937
|
-
"sizing": "sizing
|
|
938
|
-
"complete": "complete
|
|
939
|
-
"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": "
|
|
944
|
-
"output": "
|
|
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": "
|
|
953
|
-
"example2": "
|
|
954
|
-
"example3": "
|
|
955
|
-
"example4": "
|
|
956
|
-
"example5": "
|
|
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": "🎯
|
|
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": "
|
|
986
|
-
"translation_key_not_string": "
|
|
987
|
-
"error_reading_locales_directory": "
|
|
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": "
|
|
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": "
|
|
1002
|
-
"selectDirectoryPrompt": "
|
|
1003
|
-
"enterNewDirectoryName": "
|
|
1001
|
+
"useExistingDirectoryPrompt": "既存のディレクトリを使用しますか? (はい/いいえ)",
|
|
1002
|
+
"selectDirectoryPrompt": "番号を入力してディレクトリを選択します (または、[新しいディレクトリを作成] を選択します)。",
|
|
1003
|
+
"enterNewDirectoryName": "新しい翻訳ディレクトリの名前を入力してください",
|
|
1004
1004
|
"createdNewDirectory": "✅ 新しいディレクトリを作成しました: {dir}",
|
|
1005
|
-
"directoryAlreadyExists": "⚠️
|
|
1006
|
-
"invalidDirectoryName": "
|
|
1007
|
-
"usingExistingDirectory": "
|
|
1008
|
-
"adminPinSetupOptional": "🔐 管理者PIN
|
|
1005
|
+
"directoryAlreadyExists": "⚠️ ディレクトリはすでに存在します: {dir}",
|
|
1006
|
+
"invalidDirectoryName": "❌ 無効なディレクトリ名が指定されました。",
|
|
1007
|
+
"usingExistingDirectory": "既存のディレクトリを使用する: {dir}",
|
|
1008
|
+
"adminPinSetupOptional": "🔐 管理者PINの設定はオプション(セキュリティのために推奨)",
|
|
1009
1009
|
"adminPinSeparator": "------------------------------",
|
|
1010
|
-
"adminPinDescription1": "管理者PIN
|
|
1011
|
-
"adminPinDescription2": "PIN
|
|
1012
|
-
"adminPinDescription3": "
|
|
1013
|
-
"adminPinDescription4": "PIN
|
|
1014
|
-
"adminPinSetupPrompt": "管理者PIN
|
|
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": "🔐
|
|
1023
|
-
"adminProtectionDisabled": "🔐
|
|
1024
|
-
"autoDetectedI18nDirectory": "
|
|
1025
|
-
"initializingProject": "⚙️
|
|
1026
|
-
"createdSampleTranslationFile": "✅
|
|
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": "📝
|
|
1030
|
-
"enterLanguageCodes": "🎯
|
|
1029
|
+
"defaultLanguages": "📝 デフォルトの言語: {languages}",
|
|
1030
|
+
"enterLanguageCodes": "🎯 ターゲット言語コードを入力します (カンマ区切り、例: de、es、fr、ru):",
|
|
1031
1031
|
"targetLanguages": "🌍 対象言語",
|
|
1032
|
-
"foundSourceFiles": "📄
|
|
1033
|
-
"processingLanguage": "🔄
|
|
1034
|
-
"fileProcessingResult": "✅ {file}
|
|
1035
|
-
"overallProgress": "📊
|
|
1036
|
-
"initializationSummaryTitle": "📋
|
|
1037
|
-
"languageSummary": "{icon} {name} ({code}): {percentage}
|
|
1038
|
-
"languageFiles": "📄
|
|
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": "⚠️
|
|
1041
|
-
"initializationCompletedSuccessfully": "🎉
|
|
1040
|
+
"languageMissing": "⚠️ 不足しているもの: {count}",
|
|
1041
|
+
"initializationCompletedSuccessfully": "🎉 プロジェクトの初期化が正常に完了しました!",
|
|
1042
1042
|
"nextStepsTitle": "🚀 次のステップ",
|
|
1043
|
-
"nextStep1": "1. locales/
|
|
1044
|
-
"nextStep2": "2.
|
|
1045
|
-
"nextStep3": "3.
|
|
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": "
|
|
1057
|
-
"per_language_intro": "
|
|
1056
|
+
"apply_all_prompt": "この構造をすべての言語に適用しますか? (y/N):",
|
|
1057
|
+
"per_language_intro": "言語を個別に構成することを選択しました。利用可能な言語は次のとおりです。",
|
|
1058
1058
|
"available_languages": "利用可能な言語: {languages}",
|
|
1059
|
-
"include_prompt": "
|
|
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": "
|
|
1065
|
-
"errorsNoFramework": "i18n
|
|
1064
|
+
"errorsPackageJsonRead": "package.json の読み取りエラー: {error}",
|
|
1065
|
+
"errorsNoFramework": "i18n フレームワークが検出されませんでした。いずれかをインストールするか、手動で指定してください。",
|
|
1066
1066
|
"suggestions": {
|
|
1067
|
-
"noFramework": "i18n
|
|
1068
|
-
"installFramework": "
|
|
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
|
|
1074
|
+
"nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
|
|
1075
1075
|
"svelte": "- Svelte i18n (svelte-i18n)"
|
|
1076
1076
|
},
|
|
1077
|
-
"continueWithoutI18nPrompt": "i18n
|
|
1078
|
-
"detectedI18nFramework": "検出されたi18nフレームワーク: {frameworks}",
|
|
1079
|
-
"existingDirectoryItem": "{index}
|
|
1080
|
-
"usingExistingStructure": "
|
|
1081
|
-
"creatingSourceDirectory": "
|
|
1082
|
-
"creatingSourceLanguageDirectory": "
|
|
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": "
|
|
1084
|
+
"errorExecutingCommand": "コマンド実行エラー: {error}",
|
|
1085
1085
|
"sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {dir}",
|
|
1086
1086
|
"sourceLanguageDirectoryNotFound": "ソース言語ディレクトリが見つかりません: {dir}",
|
|
1087
|
-
"noJsonFilesInSourceDirectory": "
|
|
1087
|
+
"noJsonFilesInSourceDirectory": "ソース ディレクトリに JSON ファイルが見つかりません: {dir}",
|
|
1088
1088
|
"invalidFilePathDetected": "無効なファイルパスが検出されました",
|
|
1089
1089
|
"initializationFailed": "初期化に失敗しました: {error}",
|
|
1090
1090
|
"noFramework": "i18n フレームワークが検出されませんでした。汎用モードで続行します。",
|
|
1091
1091
|
"packageJsonRead": "package.json の読み取り中にエラーが発生しました。"
|
|
1092
1092
|
},
|
|
1093
|
-
"processingFile": "{
|
|
1094
|
-
"fileAlreadyExistsMerging": "{file}
|
|
1093
|
+
"processingFile": "処理 {file} のために {language}...",
|
|
1094
|
+
"fileAlreadyExistsMerging": "ファイル {file} すでに存在します。新しいキーをマージします。",
|
|
1095
1095
|
"createdNewFile": "新しいファイルを作成しました: {file}",
|
|
1096
|
-
"updatedFile": "
|
|
1097
|
-
"skippingExcludedFile": "{
|
|
1096
|
+
"updatedFile": "更新されたファイル: {file}",
|
|
1097
|
+
"skippingExcludedFile": "スキップ {file} のために {language} 除外されるので。",
|
|
1098
1098
|
"continuingWithoutAdminPin": "管理者 PIN を設定せずに続行します。",
|
|
1099
|
-
"createdSourceLanguageDirectory": "
|
|
1100
|
-
"errorSettingUpAdminPin": "管理者 PIN
|
|
1099
|
+
"createdSourceLanguageDirectory": "作成されたソース言語ディレクトリ: {dir}",
|
|
1100
|
+
"errorSettingUpAdminPin": "管理者 PIN の設定中にエラーが発生しました: {error}",
|
|
1101
1101
|
"noTargetLanguagesSpecified": "ターゲット言語が指定されていません。",
|
|
1102
|
-
"translationFilesCreatedWarning": "
|
|
1103
|
-
"warningCannotReadSourceDir": "警告: ソース
|
|
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}
|
|
1112
|
+
"languageOption": "{index}. {displayName}{current}",
|
|
1113
1113
|
"backToMainMenu": "メインメニューに戻る",
|
|
1114
|
-
"prompt": "
|
|
1114
|
+
"prompt": "言語を選択します (0 ~ 8):",
|
|
1115
1115
|
"cancelled": "言語変更がキャンセルされました。",
|
|
1116
|
-
"invalid": "
|
|
1117
|
-
"changed": "
|
|
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": "📊
|
|
1124
|
-
"step2_title": "🔧
|
|
1125
|
-
"step3_title": "🌐
|
|
1126
|
-
"step4_title": "✅
|
|
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": "✅
|
|
1130
|
-
"initial_assessment_warnings": "⚠️
|
|
1131
|
-
"detecting_fixing_mismatches": "
|
|
1132
|
-
"detection_complete_applying_fixes": "
|
|
1133
|
-
"mismatch_fixes_complete": "✅
|
|
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": "🎯
|
|
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": "
|
|
1163
|
-
"returning": "
|
|
1164
|
-
"invalidOption": "
|
|
1165
|
-
"nonInteractiveModeWarning": "
|
|
1166
|
-
"useDirectExecution": "
|
|
1167
|
-
"useHelpForCommands": "
|
|
1168
|
-
"returnToMainMenu": "Enter
|
|
1169
|
-
"pressEnterToContinue": "Enter
|
|
1162
|
+
"invalidChoice": "無効な選択です。 0~15を選択してください。",
|
|
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": "
|
|
1173
|
-
"autoDetectedI18nDirectory": "
|
|
1174
|
-
"executingCommand": "
|
|
1171
|
+
"selectDebugToolPrompt": "デバッグ ツールを選択します。",
|
|
1172
|
+
"selectLogPrompt": "ログ ファイルを選択します (1-{count}):",
|
|
1173
|
+
"autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {directory}",
|
|
1174
|
+
"executingCommand": "コマンドの実行: {command}",
|
|
1175
1175
|
"unknownCommand": "不明なコマンド: {command}",
|
|
1176
|
-
"languageOption": "{index}
|
|
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": "
|
|
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": "📋
|
|
1193
|
-
"error_parsing_json": "❌ {code}.json
|
|
1194
|
-
"existing_keys_found": "📊 {code}
|
|
1195
|
-
"error_writing_json": "❌ {code}.json
|
|
1196
|
-
"translations_replaced": "📊 {code}: {count}
|
|
1197
|
-
"translation_replacement_complete": "✅
|
|
1198
|
-
"total_replacements": "📊
|
|
1199
|
-
"dry_run_mode": "⚠️
|
|
1200
|
-
"tool_title": "🌍
|
|
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": "
|
|
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": "
|
|
1217
|
+
"andMore": "さらに...",
|
|
1218
1218
|
"cancelOption": "キャンセル",
|
|
1219
|
-
"cancelReportOption": "
|
|
1220
|
-
"invalidSelection": "❌
|
|
1221
|
-
"foundFilesInSelectedDirectories": "📊
|
|
1219
|
+
"cancelReportOption": "キャンセル/メニューに戻る",
|
|
1220
|
+
"invalidSelection": "❌ 選択が無効です。",
|
|
1221
|
+
"foundFilesInSelectedDirectories": "📊 見つかりました {count} 選択したディレクトリ内のファイル:",
|
|
1222
1222
|
"deletionOptions": "🗑️ 削除オプション:",
|
|
1223
|
-
"deleteAllFiles": "
|
|
1224
|
-
"keepLast3Files": "
|
|
1225
|
-
"keepLast5Files": "
|
|
1223
|
+
"deleteAllFiles": "すべてのファイルを削除する",
|
|
1224
|
+
"keepLast3Files": "最新の 3 ファイルを保存 (日付順)",
|
|
1225
|
+
"keepLast5Files": "最新の 5 ファイルを保存 (日付順)",
|
|
1226
1226
|
"noFilesToDelete": "✅ 削除するファイルはありません。",
|
|
1227
|
-
"filesToDeleteCount": "📋
|
|
1228
|
-
"filesToKeepCount": "📋
|
|
1229
|
-
"confirmDeletion": "⚠️
|
|
1230
|
-
"deletedFile": "✅
|
|
1231
|
-
"failedToDeleteFile": "❌ {filename}
|
|
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": "
|
|
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": "
|
|
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": "🧪
|
|
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": "📝
|
|
1270
|
-
"languagesProcessed": "🌐
|
|
1271
|
-
"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": "
|
|
1283
|
-
"command": "
|
|
1284
|
-
"confirm": "
|
|
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": "セキュリティ:
|
|
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": "セキュリティ:
|
|
1307
|
-
"unknown_config_key": "セキュリティ:
|
|
1306
|
+
"unknownConfigKey": "セキュリティ: 不明な構成キー: {key}",
|
|
1307
|
+
"unknown_config_key": "セキュリティ: 不明な構成キー: {key}",
|
|
1308
1308
|
"securityAlert": "[セキュリティ警告] {timestamp}: {event}",
|
|
1309
|
-
"contentTooLarge": "セキュリティ:
|
|
1310
|
-
"inputDisallowedCharacters": "セキュリティ:
|
|
1311
|
-
"unknownCommandArg": "
|
|
1312
|
-
"logMessage": "[
|
|
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": "
|
|
1321
|
-
"recursion_detected": "
|
|
1322
|
-
"operation_timeout": "
|
|
1323
|
-
"operation_error": "
|
|
1324
|
-
"directory_read_error": "
|
|
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
|
|
1350
|
+
"saveChangesDesc": "現在の設定をファイルに保存する",
|
|
1351
|
+
"updatePackage": "アップデートパッケージ",
|
|
1352
|
+
"updatePackageDesc": "npm 経由で i18n-toolkit パッケージを更新します。",
|
|
1353
1353
|
"help": "ヘルプ",
|
|
1354
|
-
"helpDesc": "
|
|
1355
|
-
"quit": "
|
|
1356
|
-
"quitDesc": "
|
|
1357
|
-
"unsavedChangesWarning": "⚠️
|
|
1358
|
-
"saveChangesBeforeQuit": "
|
|
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": "
|
|
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": "❌
|
|
1371
|
-
"invalid_language": "❌
|
|
1372
|
-
"invalid_source_language": "❌
|
|
1373
|
-
"default_languages_must_be_array": "❌
|
|
1374
|
-
"invalid_date_format": "❌
|
|
1375
|
-
"invalid_time_format": "❌
|
|
1376
|
-
"notifications_types_must_be_object": "❌
|
|
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": "❌
|
|
1384
|
-
"invalid_sizing_format": "❌
|
|
1385
|
-
"error_validating_settings": "❌
|
|
1386
|
-
"backup_created": "📋
|
|
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}
|
|
1389
|
-
"ui_language_set": "🌍 UI
|
|
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": "
|
|
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
|
|
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": "
|
|
1433
|
+
"helpDesc": "詳細なヘルプ情報を表示する",
|
|
1434
|
+
"quit": "やめる",
|
|
1435
|
+
"quitDesc": "設定を終了します (必要に応じて保存プロンプトが表示されます)",
|
|
1436
|
+
"unsavedChangesWarning": "⚠️ 未保存の変更があります",
|
|
1437
|
+
"saveChangesBeforeQuit": "終了する前に変更を保存しますか? (y/N):",
|
|
1438
1438
|
"selectOption": "オプションを選択してください:",
|
|
1439
|
-
"goodbyeMessage": "i18n
|
|
1440
|
-
"selectSettingPrompt": "
|
|
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
|
|
1453
|
+
"title": "アップデートパッケージ",
|
|
1454
|
+
"description": "npm 経由で i18n-toolkit パッケージを更新します。",
|
|
1455
1455
|
"command": "npm update i18ntk -g",
|
|
1456
|
-
"success": "
|
|
1457
|
-
"failed": "
|
|
1458
|
-
"prompt": "
|
|
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
|
|
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": "🔐
|
|
1489
|
-
"noPinConfigured": "🔓
|
|
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": "⏭️
|
|
1494
|
+
"benefitReset": "• 設定をリセットする",
|
|
1495
|
+
"setupCancelled": "⏭️ 管理者 PIN の設定がキャンセルされました。",
|
|
1496
1496
|
"operationCancelled": "❌ 操作がキャンセルされました。",
|
|
1497
|
-
"startingSettings": "🎛️
|
|
1498
|
-
"authRequired": "🔒
|
|
1499
|
-
"pinSetupTitle": "管理者PIN
|
|
1500
|
-
"browserOpenFailed": "
|
|
1501
|
-
"manualVisit": "
|
|
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": "ファイル名を入力してください (
|
|
1510
|
-
"exportSuccess": "
|
|
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": "
|
|
1516
|
-
"importSuccess": "
|
|
1514
|
+
"invalidFormat": "設定ファイルの形式が無効です。",
|
|
1515
|
+
"confirmImport": "これにより、現在の設定がすべて置き換えられます。続く? (y/N):",
|
|
1516
|
+
"importSuccess": "設定が正常にインポートされました。",
|
|
1517
1517
|
"importFailed": "設定のインポートに失敗しました: {error}",
|
|
1518
|
-
"backupSuccess": "
|
|
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": "
|
|
1531
|
-
"resetSuccess": "
|
|
1532
|
-
"resetFailed": "
|
|
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:
|
|
1557
|
-
"cliUsageTitle": "CLI
|
|
1558
|
-
"cliUsage1": "• npx i18ntk --settings:
|
|
1559
|
-
"cliUsage2": "• npx i18ntk --settings --lang
|
|
1560
|
-
"cliUsage3": "• npx i18ntk --reset-settings:
|
|
1561
|
-
"navigation": "
|
|
1562
|
-
"editing": "
|
|
1563
|
-
"saving": "
|
|
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
|
|
1591
|
-
"disablePin": "管理者PIN
|
|
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": "
|
|
1600
|
-
"maxAttemptsUpdated": "
|
|
1601
|
-
"lockoutDurationUpdated": "
|
|
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
|
-
"
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
"
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
"
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
"
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
"
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
"
|
|
1632
|
-
|
|
1633
|
-
|
|
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": "
|
|
1641
|
-
"help": "
|
|
1638
|
+
"current": "現在: {value}",
|
|
1639
|
+
"help": "翻訳ファイルのあるディレクトリへのパス"
|
|
1642
1640
|
},
|
|
1643
1641
|
"projectRoot": {
|
|
1644
1642
|
"label": "プロジェクトルート",
|
|
1645
1643
|
"description": "プロジェクトのルートディレクトリ",
|
|
1646
|
-
"current": "
|
|
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": "
|
|
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": "
|
|
1678
|
-
"help": "
|
|
1675
|
+
"current": "現在: {value}",
|
|
1676
|
+
"help": "明るいテーマと暗いテーマから選択してください"
|
|
1679
1677
|
},
|
|
1680
1678
|
"dateFormat": {
|
|
1681
1679
|
"label": "日付形式",
|
|
1682
|
-
"description": "
|
|
1683
|
-
"current": "
|
|
1684
|
-
"help": "
|
|
1680
|
+
"description": "日付の表示形式",
|
|
1681
|
+
"current": "現在: {value}",
|
|
1682
|
+
"help": "レポートでの日付の表示方法を選択する"
|
|
1685
1683
|
},
|
|
1686
1684
|
"notifications": {
|
|
1687
1685
|
"enabled": {
|
|
1688
1686
|
"label": "通知を有効にする",
|
|
1689
|
-
"description": "
|
|
1690
|
-
"current": "
|
|
1691
|
-
"help": "
|
|
1687
|
+
"description": "デスクトップ通知を表示する",
|
|
1688
|
+
"current": "現在: {value}",
|
|
1689
|
+
"help": "完了した操作のデスクトップ通知を有効にする"
|
|
1692
1690
|
}
|
|
1693
1691
|
},
|
|
1694
1692
|
"sourceDir": {
|
|
1695
1693
|
"label": "ソースディレクトリ",
|
|
1696
1694
|
"description": "翻訳ファイルを含むディレクトリ",
|
|
1697
|
-
"current": "
|
|
1698
|
-
"help": "
|
|
1695
|
+
"current": "現在: {value}",
|
|
1696
|
+
"help": "ソース翻訳ファイルが含まれるディレクトリへのパス"
|
|
1699
1697
|
},
|
|
1700
1698
|
"sourceLanguage": {
|
|
1701
1699
|
"label": "ソース言語",
|
|
1702
|
-
"description": "
|
|
1703
|
-
"current": "
|
|
1704
|
-
"help": "
|
|
1700
|
+
"description": "翻訳の主言語",
|
|
1701
|
+
"current": "現在: {value}",
|
|
1702
|
+
"help": "翻訳のソースとして使用される主言語"
|
|
1705
1703
|
},
|
|
1706
1704
|
"outputDir": {
|
|
1707
1705
|
"label": "出力ディレクトリ",
|
|
1708
1706
|
"description": "生成されたレポートのディレクトリ",
|
|
1709
|
-
"current": "
|
|
1710
|
-
"help": "
|
|
1707
|
+
"current": "現在: {value}",
|
|
1708
|
+
"help": "レポートと処理されたファイルが保存される場所"
|
|
1711
1709
|
},
|
|
1712
1710
|
"batchSize": {
|
|
1713
1711
|
"label": "バッチサイズ",
|
|
1714
|
-
"description": "
|
|
1715
|
-
"current": "
|
|
1716
|
-
"help": "
|
|
1712
|
+
"description": "バッチごとに処理されるアイテムの数",
|
|
1713
|
+
"current": "現在: {value}",
|
|
1714
|
+
"help": "各バッチで処理するファイルの数"
|
|
1717
1715
|
},
|
|
1718
1716
|
"maxConcurrentFiles": {
|
|
1719
|
-
"label": "
|
|
1720
|
-
"description": "
|
|
1721
|
-
"current": "
|
|
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": "
|
|
1728
|
-
"help": "
|
|
1725
|
+
"current": "現在: {value}%",
|
|
1726
|
+
"help": "サイズの不一致を検出するためのパーセントしきい値"
|
|
1729
1727
|
},
|
|
1730
1728
|
"strictMode": {
|
|
1731
|
-
"label": "
|
|
1732
|
-
"description": "
|
|
1733
|
-
"current": "
|
|
1734
|
-
"help": "
|
|
1729
|
+
"label": "厳密な検証モード",
|
|
1730
|
+
"description": "厳密な検証モードを有効にする",
|
|
1731
|
+
"current": "現在: {value}",
|
|
1732
|
+
"help": "翻訳ファイルの厳密な検証を有効にする"
|
|
1735
1733
|
},
|
|
1736
1734
|
"enableAuditLog": {
|
|
1737
1735
|
"label": "監査ログを有効にする",
|
|
1738
|
-
"description": "
|
|
1739
|
-
"current": "
|
|
1740
|
-
"help": "
|
|
1736
|
+
"description": "すべての翻訳変更を追跡する",
|
|
1737
|
+
"current": "現在: {value}",
|
|
1738
|
+
"help": "翻訳ファイルに加えられたすべての変更をログに記録します"
|
|
1741
1739
|
},
|
|
1742
1740
|
"backupBeforeChanges": {
|
|
1743
1741
|
"label": "自動バックアップ",
|
|
1744
1742
|
"description": "変更前にバックアップを作成する",
|
|
1745
|
-
"current": "
|
|
1746
|
-
"help": "
|
|
1743
|
+
"current": "現在: {value}",
|
|
1744
|
+
"help": "変更を加える前にバックアップを自動的に作成する"
|
|
1747
1745
|
},
|
|
1748
1746
|
"advanced_maxConcurrentFiles": {
|
|
1749
|
-
"label": "
|
|
1750
|
-
"description": "
|
|
1751
|
-
"current": "
|
|
1752
|
-
"help": "
|
|
1747
|
+
"label": "最大同時ファイル数",
|
|
1748
|
+
"description": "同時に処理される最大ファイル数",
|
|
1749
|
+
"current": "現在: {value}",
|
|
1750
|
+
"help": "同時に処理するファイルの最大数"
|
|
1753
1751
|
},
|
|
1754
1752
|
"advanced_strictMode": {
|
|
1755
|
-
"label": "
|
|
1756
|
-
"description": "
|
|
1757
|
-
"current": "
|
|
1758
|
-
"help": "
|
|
1753
|
+
"label": "厳密な検証モード",
|
|
1754
|
+
"description": "厳密な検証モードを有効にする",
|
|
1755
|
+
"current": "現在: {value}",
|
|
1756
|
+
"help": "翻訳ファイルの厳密な検証を有効にする"
|
|
1759
1757
|
},
|
|
1760
1758
|
"adminPinEnabled": {
|
|
1761
|
-
"label": "管理者PIN
|
|
1762
|
-
"description": "
|
|
1763
|
-
"current": "
|
|
1764
|
-
"help": "
|
|
1759
|
+
"label": "管理者PINの保護",
|
|
1760
|
+
"description": "機密性の高い設定に対して管理者 PIN 認証を有効にする",
|
|
1761
|
+
"current": "現在: {value}",
|
|
1762
|
+
"help": "セキュリティと詳細設定を変更するには管理者 PIN が必要です"
|
|
1765
1763
|
},
|
|
1766
1764
|
"sessionTimeout": {
|
|
1767
1765
|
"label": "セッションタイムアウト",
|
|
1768
|
-
"description": "
|
|
1769
|
-
"current": "
|
|
1770
|
-
"help": "
|
|
1766
|
+
"description": "管理者セッションのタイムアウト (分単位)",
|
|
1767
|
+
"current": "現在: {value} 分",
|
|
1768
|
+
"help": "再認証が必要になるまでに管理セッションがアクティブな状態を維持する時間"
|
|
1771
1769
|
},
|
|
1772
1770
|
"maxFailedAttempts": {
|
|
1773
|
-
"label": "
|
|
1774
|
-
"description": "
|
|
1775
|
-
"current": "
|
|
1776
|
-
"help": "
|
|
1771
|
+
"label": "失敗した試行の最大数",
|
|
1772
|
+
"description": "ロックアウトまでの PIN 試行失敗の最大数",
|
|
1773
|
+
"current": "現在: {value} 試み",
|
|
1774
|
+
"help": "一時的なロックアウトまでに許可される PIN 試行の失敗回数"
|
|
1777
1775
|
},
|
|
1778
1776
|
"lockoutDuration": {
|
|
1779
1777
|
"label": "ロックアウト期間",
|
|
1780
|
-
"description": "
|
|
1781
|
-
"current": "
|
|
1782
|
-
"help": "
|
|
1778
|
+
"description": "試行失敗後のロックアウト期間",
|
|
1779
|
+
"current": "現在: {value} 分",
|
|
1780
|
+
"help": "試行が最大失敗した後、システムがロックされたままになる時間"
|
|
1783
1781
|
},
|
|
1784
1782
|
"scriptDirectories_analyze": {
|
|
1785
|
-
"label": "
|
|
1786
|
-
"description": "
|
|
1787
|
-
"current": "
|
|
1788
|
-
"help": "
|
|
1783
|
+
"label": "スクリプトディレクトリの分析",
|
|
1784
|
+
"description": "分析スクリプト用のカスタム ディレクトリ",
|
|
1785
|
+
"current": "現在: {value}",
|
|
1786
|
+
"help": "分析スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1789
1787
|
},
|
|
1790
1788
|
"scriptDirectories_complete": {
|
|
1791
|
-
"label": "
|
|
1792
|
-
"description": "
|
|
1793
|
-
"current": "
|
|
1794
|
-
"help": "
|
|
1789
|
+
"label": "完全なセットアップ ディレクトリ",
|
|
1790
|
+
"description": "完全なセットアップ スクリプト用のカスタム ディレクトリ",
|
|
1791
|
+
"current": "現在: {value}",
|
|
1792
|
+
"help": "完全なセットアップ スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1795
1793
|
},
|
|
1796
1794
|
"scriptDirectories_init": {
|
|
1797
|
-
"label": "
|
|
1798
|
-
"description": "
|
|
1799
|
-
"current": "
|
|
1800
|
-
"help": "
|
|
1795
|
+
"label": "スクリプトディレクトリの初期化",
|
|
1796
|
+
"description": "初期化スクリプト用のカスタム ディレクトリ",
|
|
1797
|
+
"current": "現在: {value}",
|
|
1798
|
+
"help": "初期化スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1801
1799
|
},
|
|
1802
1800
|
"scriptDirectories_manage": {
|
|
1803
|
-
"label": "
|
|
1804
|
-
"description": "
|
|
1805
|
-
"current": "
|
|
1806
|
-
"help": "
|
|
1801
|
+
"label": "スクリプトディレクトリの管理",
|
|
1802
|
+
"description": "スクリプト管理用のカスタム ディレクトリ",
|
|
1803
|
+
"current": "現在: {value}",
|
|
1804
|
+
"help": "管理スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1807
1805
|
},
|
|
1808
1806
|
"scriptDirectories_sizing": {
|
|
1809
|
-
"label": "
|
|
1810
|
-
"description": "
|
|
1811
|
-
"current": "
|
|
1812
|
-
"help": "
|
|
1807
|
+
"label": "スクリプトディレクトリのサイズ設定",
|
|
1808
|
+
"description": "サイズ調整スクリプト用のカスタム ディレクトリ",
|
|
1809
|
+
"current": "現在: {value}",
|
|
1810
|
+
"help": "サイズ設定スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1813
1811
|
},
|
|
1814
1812
|
"scriptDirectories_summary": {
|
|
1815
|
-
"label": "
|
|
1816
|
-
"description": "
|
|
1817
|
-
"current": "
|
|
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": "
|
|
1824
|
-
"help": "
|
|
1821
|
+
"current": "現在: {value}",
|
|
1822
|
+
"help": "使用状況レポート スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1825
1823
|
},
|
|
1826
1824
|
"scriptDirectories_validate": {
|
|
1827
|
-
"label": "
|
|
1828
|
-
"description": "
|
|
1829
|
-
"current": "
|
|
1830
|
-
"help": "
|
|
1825
|
+
"label": "スクリプトディレクトリの検証",
|
|
1826
|
+
"description": "検証スクリプト用のカスタム ディレクトリ",
|
|
1827
|
+
"current": "現在: {value}",
|
|
1828
|
+
"help": "検証スクリプトのカスタム ソース ディレクトリを指定します。グローバル設定を使用するには、空のままにしておきます。"
|
|
1831
1829
|
},
|
|
1832
1830
|
"security_adminPinEnabled": {
|
|
1833
|
-
"label": "管理者PIN
|
|
1834
|
-
"description": "
|
|
1835
|
-
"current": "
|
|
1836
|
-
"help": "
|
|
1831
|
+
"label": "管理者PINの保護",
|
|
1832
|
+
"description": "機密性の高い設定に対して管理者 PIN 認証を有効にする",
|
|
1833
|
+
"current": "現在: {value}",
|
|
1834
|
+
"help": "セキュリティと詳細設定を変更するには管理者 PIN が必要です"
|
|
1837
1835
|
},
|
|
1838
1836
|
"fields": {
|
|
1839
1837
|
"adminPinEnabled": {
|
|
1840
|
-
"label": "管理者
|
|
1841
|
-
"description": "
|
|
1842
|
-
"help": "
|
|
1838
|
+
"label": "管理者PINの保護",
|
|
1839
|
+
"description": "機密性の高い設定に対して管理者 PIN 認証を有効にする",
|
|
1840
|
+
"help": "セキュリティと詳細設定を変更するには管理者 PIN が必要です"
|
|
1843
1841
|
}
|
|
1844
1842
|
},
|
|
1845
1843
|
"security_pinProtection_enabled": {
|
|
1846
|
-
"label": "PIN
|
|
1847
|
-
"description": "
|
|
1848
|
-
"current": "
|
|
1849
|
-
"help": "
|
|
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": "
|
|
1859
|
-
"current": "
|
|
1860
|
-
"help": "
|
|
1855
|
+
"label": "「デバッグツール」メニュー",
|
|
1856
|
+
"description": "「デバッグツール」メニューにはPINが必要です",
|
|
1857
|
+
"current": "現在: {value}",
|
|
1858
|
+
"help": "デバッグ ツールにアクセスするための PIN 保護を有効にする"
|
|
1861
1859
|
},
|
|
1862
1860
|
"pinProtection_deleteReports": {
|
|
1863
1861
|
"label": "レポートの削除",
|
|
1864
|
-
"description": "
|
|
1865
|
-
"current": "
|
|
1866
|
-
"help": "
|
|
1862
|
+
"description": "レポートの削除には PIN が必要です",
|
|
1863
|
+
"current": "現在: {value}",
|
|
1864
|
+
"help": "レポートを削除するために PIN 保護を有効にする"
|
|
1867
1865
|
},
|
|
1868
1866
|
"pinProtection_summaryReports": {
|
|
1869
|
-
"label": "
|
|
1870
|
-
"description": "
|
|
1871
|
-
"current": "
|
|
1872
|
-
"help": "
|
|
1867
|
+
"label": "概要レポート",
|
|
1868
|
+
"description": "概要レポートには PIN が必要です",
|
|
1869
|
+
"current": "現在: {value}",
|
|
1870
|
+
"help": "概要レポートを生成するために PIN 保護を有効にする"
|
|
1873
1871
|
},
|
|
1874
1872
|
"pinProtection_settingsMenu": {
|
|
1875
1873
|
"label": "設定メニュー",
|
|
1876
|
-
"description": "
|
|
1877
|
-
"current": "
|
|
1878
|
-
"help": "
|
|
1874
|
+
"description": "設定メニューにはPINが必要です",
|
|
1875
|
+
"current": "現在: {value}",
|
|
1876
|
+
"help": "設定にアクセスするための PIN 保護を有効にする"
|
|
1879
1877
|
},
|
|
1880
1878
|
"pinProtection_initScript": {
|
|
1881
|
-
"label": "
|
|
1882
|
-
"description": "
|
|
1883
|
-
"current": "
|
|
1884
|
-
"help": "
|
|
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": "❌
|
|
1908
|
-
"resetConfirm": "
|
|
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}
|
|
1915
|
-
"pinProtectionReset": "✅ すべてのPIN
|
|
1916
|
-
"pinProtectionConfigure": "
|
|
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": "
|
|
1933
|
-
"es": "
|
|
1934
|
-
"fr": "
|
|
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": "
|
|
1945
|
-
"invalidOption": "
|
|
1946
|
-
"editing": "
|
|
1947
|
-
"enterNewValue": "
|
|
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": "
|
|
1960
|
-
"success": "✅
|
|
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": "
|
|
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": "
|
|
1987
|
-
"excludedFiles": "
|
|
2016
|
+
"supportedExtensions": "サポートされている拡張子: {extensions}",
|
|
2017
|
+
"excludedFiles": "除外されるファイル: {files}",
|
|
1988
2018
|
"reportContent": "{report}",
|
|
1989
|
-
"fatalError": "❌
|
|
2019
|
+
"fatalError": "❌ 致命的なエラー: {error}",
|
|
1990
2020
|
"helpTitle": "📊 I18NTK サマリーレポートジェネレーター",
|
|
1991
|
-
"helpDescription": "i18n
|
|
1992
|
-
"helpUsage": "使用法:
|
|
1993
|
-
"helpOptions": "
|
|
1994
|
-
"helpSourceDir": "
|
|
1995
|
-
"helpOutput": "
|
|
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": "
|
|
2002
|
-
"helpExample2": "
|
|
2003
|
-
"helpExample3": "
|
|
2004
|
-
"helpExample4": "
|
|
2005
|
-
"helpExample5": "
|
|
2006
|
-
"couldNotReadFile": "⚠️
|
|
2007
|
-
"couldNotParseJSFile": "⚠️
|
|
2008
|
-
"errorReadingFile": "⚠️
|
|
2009
|
-
"analyzingFolder": "🔍
|
|
2010
|
-
"noLanguageDirectoriesFound": "❌
|
|
2011
|
-
"foundLanguages": "✅
|
|
2012
|
-
"referenceLanguageFiles": "📁 参照言語 '{language}'
|
|
2013
|
-
"analyzingLanguage": "🌍
|
|
2014
|
-
"keysInFiles": "📊 {
|
|
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": "
|
|
2048
|
+
"generated": "生成されるもの: {timestamp}",
|
|
2019
2049
|
"sourceDirectory": "ソースディレクトリ: {dir}",
|
|
2020
2050
|
"overview": "📈 概要",
|
|
2021
|
-
"languagesCount": "
|
|
2022
|
-
"totalFiles": "
|
|
2023
|
-
"totalKeys": "
|
|
2024
|
-
"avgKeysPerLanguage": "
|
|
2025
|
-
"languagesBreakdown": "🌍
|
|
2026
|
-
"languageBreakdown": "{language}: {files}
|
|
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": "⚠️
|
|
2030
|
-
"issuesFound": "❌
|
|
2031
|
-
"missingFiles": "📁
|
|
2059
|
+
"missingInLanguages": "⚠️ 不足しているもの: {languages}",
|
|
2060
|
+
"issuesFound": "❌ 問題が見つかりました",
|
|
2061
|
+
"missingFiles": "📁 不足しているファイル:",
|
|
2032
2062
|
"emptyFiles": "📄 空のファイル:",
|
|
2033
|
-
"malformedFiles": "⚠️
|
|
2034
|
-
"duplicateKeys": "🔑
|
|
2035
|
-
"inconsistentKeys": "🔍
|
|
2036
|
-
"missingKeys": "
|
|
2037
|
-
"extraKeys": "
|
|
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": "•
|
|
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.
|
|
2052
|
-
"nextStep4": "4.
|
|
2053
|
-
"couldNotFindI18nDirectory": "❌ i18n
|
|
2054
|
-
"sourceDirectoryDoesNotExist": "❌
|
|
2055
|
-
"i18nSummaryReportGenerator": "📊
|
|
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": "📊
|
|
2058
|
-
"processedFiles": "📁
|
|
2059
|
-
"foundTranslationKeys": "🔑
|
|
2060
|
-
"foundIssues": "❌
|
|
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": "
|
|
2093
|
+
"usageReportTitle": "📊 I18NTK 使用レポート",
|
|
2094
|
+
"usageReportGenerated": "生成されるもの: {timestamp}",
|
|
2065
2095
|
"usageReportSourceDir": "ソースディレクトリ: {sourceDir}",
|
|
2066
2096
|
"usageReportI18nDir": "I18n ディレクトリ: {i18nDir}",
|
|
2067
2097
|
"usageReportSummary": "📈 概要",
|
|
2068
|
-
"usageReportSourceFilesScanned": "
|
|
2069
|
-
"usageReportTranslationFilesFound": "
|
|
2070
|
-
"usageReportAvailableKeys": "
|
|
2071
|
-
"usageReportUsedKeys": "
|
|
2072
|
-
"usageReportDynamicKeys": "
|
|
2073
|
-
"usageReportUnusedKeys": "
|
|
2074
|
-
"usageReportMissingKeys": "
|
|
2075
|
-
"usageReportNotTranslatedKeys": "
|
|
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}
|
|
2109
|
+
"usageReportTranslationFilesDiscovered": "📁 翻訳ファイル",
|
|
2110
|
+
"usageReportFileInfo": "{relativePath} (名前空間: {namespace}、 タイプ: {type})",
|
|
2081
2111
|
"usageReportUnusedTranslationKeys": "🗑️ 未使用の翻訳キー",
|
|
2082
|
-
"usageReportUnusedKeysDescription": "
|
|
2112
|
+
"usageReportUnusedKeysDescription": "これらのキーは翻訳ファイルには存在しますが、ソース コードでは使用されません。",
|
|
2083
2113
|
"usageReportUnusedKey": "• {key}",
|
|
2084
|
-
"usageReportMoreUnusedKeys": "
|
|
2085
|
-
"usageReportMissingTranslationKeys": "❌
|
|
2086
|
-
"usageReportMissingKeysDescription": "
|
|
2114
|
+
"usageReportMoreUnusedKeys": "... そして {count} 未使用のキーが増える",
|
|
2115
|
+
"usageReportMissingTranslationKeys": "❌ 翻訳キーがありません",
|
|
2116
|
+
"usageReportMissingKeysDescription": "これらのキーはソース コードで使用されていますが、翻訳ファイルには含まれていません。",
|
|
2087
2117
|
"usageReportMissingKey": "• {key}",
|
|
2088
|
-
"usageReportUsedIn": "
|
|
2089
|
-
"usageReportMoreFiles": "
|
|
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": "使用法:
|
|
2101
|
-
"interactiveMode": "💡
|
|
2102
|
-
"initProject": "🚀
|
|
2103
|
-
"analyzeTranslations": "🔍
|
|
2104
|
-
"validateTranslations": "✅
|
|
2105
|
-
"checkUsage": "📊
|
|
2106
|
-
"showHelp": "📖
|
|
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": "
|
|
2110
|
-
"validateCommand": "validate
|
|
2111
|
-
"usageCommand": "
|
|
2112
|
-
"sizingCommand": "sizing
|
|
2113
|
-
"completeCommand": "complete
|
|
2114
|
-
"summaryCommand": "
|
|
2115
|
-
"scannerCommand": "
|
|
2116
|
-
"translateCommand": "
|
|
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}:
|
|
2127
|
-
"extra_keys": "ℹ️ {file}:
|
|
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": "❌
|
|
2132
|
-
"warnings": "⚠️
|
|
2133
|
-
"missing_translations_title": "🔍
|
|
2161
|
+
"failed": "❌ 失敗: {failed}",
|
|
2162
|
+
"warnings": "⚠️ 警告: {warnings}",
|
|
2163
|
+
"missing_translations_title": "🔍 翻訳がありません ({count}):",
|
|
2134
2164
|
"missing_translation_key": "- {key}",
|
|
2135
|
-
"missing_translations_more": "
|
|
2165
|
+
"missing_translations_more": "... そして {count} もっと",
|
|
2136
2166
|
"errors_title": "❌ エラー:",
|
|
2137
2167
|
"error_message": "- {error}",
|
|
2138
|
-
"overall_status": "📊
|
|
2168
|
+
"overall_status": "📊 全体的なステータス: {status}",
|
|
2139
2169
|
"success_message": "✅ {message}",
|
|
2140
2170
|
"failure_message": "❌ {message}",
|
|
2141
2171
|
"failure_error_message": "{errorMessage}",
|
|
2142
|
-
"warning_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": "
|
|
2159
|
-
"scanning_files_for_console_statements": "
|
|
2160
|
-
"found_javascript_files": "
|
|
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": "
|
|
2163
|
-
"translated_statements": "
|
|
2192
|
+
"total_console_statements": "コンソールステートメントの合計: {count}",
|
|
2193
|
+
"translated_statements": "翻訳されたステートメント: {count}",
|
|
2164
2194
|
"hardcoded_statements": "ハードコードされたステートメント: {count}",
|
|
2165
|
-
"translation_coverage": "
|
|
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": "
|
|
2170
|
-
"line_statement": "
|
|
2171
|
-
"suggested_key": "
|
|
2172
|
-
"suggested_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.
|
|
2178
|
-
"translation_keys_to_add": "
|
|
2179
|
-
"add_keys_instruction": "
|
|
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": "
|
|
2184
|
-
"script_description_line2": "
|
|
2185
|
-
"analysis_completed_in_duration": "
|
|
2186
|
-
"report_saved_to_path": "
|
|
2187
|
-
"found_hardcoded_messages": "
|
|
2188
|
-
"all_console_messages_use_translation": "
|
|
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": "
|
|
2197
|
-
"run_with_apply_instruction": "💡 --apply
|
|
2198
|
-
"no_translation_mappings": "⚠️
|
|
2199
|
-
"translation_applied": "✅ {key}:
|
|
2200
|
-
"saved_translations": "💾 {count}
|
|
2201
|
-
"found_translatable_items": "
|
|
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}
|
|
2233
|
+
"error_processing_file": "❌ エラー処理 {filename}: {errorMessage}",
|
|
2204
2234
|
"coverage_report_title": "📊 翻訳カバレッジレポート",
|
|
2205
2235
|
"coverage_report_separator": "===============================",
|
|
2206
2236
|
"file_header": "📄 {filename}:",
|
|
2207
|
-
"total_keys": "
|
|
2208
|
-
"translated_keys": "
|
|
2209
|
-
"untranslated_markers": "
|
|
2210
|
-
"contains_english": "
|
|
2211
|
-
"coverage_percentage": "
|
|
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": "
|
|
2243
|
+
"use_help": "使用方法については --help を使用してください"
|
|
2214
2244
|
},
|
|
2215
2245
|
"cleaningUpReportFiles": "古いレポート ファイルをクリーンアップしています...",
|
|
2216
|
-
"couldNotDelete": "{file}
|
|
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": "
|
|
2252
|
+
"reportSaved": "レポートの保存場所: {reportPath}"
|
|
2223
2253
|
},
|
|
2224
2254
|
"ui": {
|
|
2225
2255
|
"autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {path}",
|
|
2226
|
-
"executingCommand": "
|
|
2227
|
-
"unknownCommand": "
|
|
2228
|
-
"errorExecutingCommand": "
|
|
2229
|
-
"errorLoadingTranslationFile": "
|
|
2230
|
-
"errorSavingLanguagePreference": "
|
|
2231
|
-
"noActiveReadlineInterface": "
|
|
2232
|
-
"uiLanguageUpdated": "
|
|
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": "
|
|
2235
|
-
"detectedSourceDirectory": "
|
|
2264
|
+
"pressEnterToReturn": "Enterを押してメインメニューに戻ります...",
|
|
2265
|
+
"detectedSourceDirectory": "検出されたソース ディレクトリ: {sourceDir}",
|
|
2236
2266
|
"detectedI18nDirectory": "検出された i18n ディレクトリ: {directory}",
|
|
2237
|
-
"toolkitTitle": "
|
|
2238
|
-
"versionInfo": "
|
|
2239
|
-
"releaseDate": "
|
|
2240
|
-
"maintainer": "
|
|
2241
|
-
"nodeVersion": "
|
|
2242
|
-
"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": "🐛
|
|
2247
|
-
"versionInfoUnavailable": "i18ntk
|
|
2248
|
-
"versionInfoError": "
|
|
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": "
|
|
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": "❌ 無効 -
|
|
2283
|
-
"no_validation_rules": "{language}
|
|
2284
|
-
"error_reading_file": "
|
|
2285
|
-
"issue_forbidden_marker": "
|
|
2286
|
-
"issue_english_phrase": "
|
|
2287
|
-
"issue_english_words": "
|
|
2288
|
-
"issue_missing_cyrillic": "
|
|
2289
|
-
"issue_missing_japanese": "
|
|
2290
|
-
"issue_missing_chinese": "
|
|
2291
|
-
"summary_title": "📊
|
|
2292
|
-
"overall_results_header": "📋
|
|
2293
|
-
"total_files_validated": "
|
|
2294
|
-
"valid_files": "
|
|
2295
|
-
"invalid_files": "
|
|
2296
|
-
"total_violations": "
|
|
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": "
|
|
2306
|
-
"workflow_execution_completed": "
|
|
2307
|
-
"workflow_execution_failed": "
|
|
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": "🕐
|
|
2318
|
-
"initialViolations": "📊
|
|
2319
|
-
"finalViolations": "📉
|
|
2320
|
-
"totalFixes": "🔧
|
|
2321
|
-
"improvement": "📈
|
|
2322
|
-
"stepResults": "📝
|
|
2323
|
-
"stepDetail": "{number}
|
|
2324
|
-
"violations": "
|
|
2325
|
-
"fixesApplied": "
|
|
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": "
|
|
2371
|
-
"script_description_line1": "
|
|
2372
|
-
"script_description_line2": "
|
|
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
|
}
|