i18ntk 2.0.4 → 2.2.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/README.md +38 -60
- package/main/i18ntk-analyze.js +49 -44
- package/main/i18ntk-complete.js +75 -74
- package/main/i18ntk-fixer.js +3 -3
- package/main/i18ntk-init.js +5 -5
- package/main/i18ntk-scanner.js +2 -2
- package/main/i18ntk-sizing.js +35 -35
- package/main/i18ntk-summary.js +4 -4
- package/main/i18ntk-ui.js +54 -8
- package/main/i18ntk-usage.js +14 -14
- package/main/i18ntk-validate.js +6 -5
- package/main/manage/commands/AnalyzeCommand.js +40 -35
- package/main/manage/commands/FixerCommand.js +2 -2
- package/main/manage/commands/ScannerCommand.js +2 -2
- package/main/manage/commands/ValidateCommand.js +9 -9
- package/main/manage/index.js +147 -75
- package/main/manage/managers/LanguageMenu.js +7 -2
- package/main/manage/services/UsageService.js +7 -7
- package/package.json +269 -290
- package/settings/settings-cli.js +3 -3
- package/ui-locales/de.json +161 -166
- package/ui-locales/en.json +13 -18
- package/ui-locales/es.json +171 -184
- package/ui-locales/fr.json +155 -161
- package/ui-locales/ja.json +192 -243
- package/ui-locales/ru.json +145 -196
- package/ui-locales/zh.json +179 -185
- package/utils/cli-helper.js +26 -98
- package/utils/extractors/regex.js +39 -12
- package/utils/i18n-helper.js +88 -40
- package/{scripts → utils}/locale-optimizer.js +61 -60
- package/utils/security-check-improved.js +16 -13
- package/utils/security.js +6 -4
- package/main/i18ntk-go.js +0 -283
- package/main/i18ntk-java.js +0 -380
- package/main/i18ntk-js.js +0 -512
- package/main/i18ntk-manage.js +0 -1694
- package/main/i18ntk-php.js +0 -462
- package/main/i18ntk-py.js +0 -379
- package/main/i18ntk-settings.js +0 -23
- package/main/manage/index-fixed.js +0 -1447
- package/main/manage/services/ConfigurationService-fixed.js +0 -449
- package/scripts/build-lite.js +0 -279
- package/scripts/deprecate-versions.js +0 -317
- package/scripts/export-translations.js +0 -84
- package/scripts/fix-all-i18n.js +0 -215
- package/scripts/fix-and-purify-i18n.js +0 -213
- package/scripts/fix-locale-control-chars.js +0 -110
- package/scripts/lint-locales.js +0 -80
- package/scripts/prepublish.js +0 -348
- package/scripts/security-check.js +0 -117
- package/scripts/sync-translations.js +0 -151
- package/scripts/sync-ui-locales.js +0 -20
- package/scripts/validate-all-translations.js +0 -139
- package/scripts/verify-deprecations.js +0 -157
- package/scripts/verify-translations.js +0 -63
- package/utils/security-fixed.js +0 -607
package/ui-locales/ja.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"tryReconnect": "再接続を試みる",
|
|
20
20
|
"logout": "ログアウト",
|
|
21
21
|
"login": "ログイン",
|
|
22
|
-
"amount": "
|
|
22
|
+
"amount": "額",
|
|
23
23
|
"success": "成功",
|
|
24
24
|
"error": "エラー",
|
|
25
25
|
"warning": "警告",
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
"errors": "エラー:",
|
|
55
55
|
"genericError": "❌ エラー:{error}",
|
|
56
56
|
"initializationFailed": "❌ 初期化に失敗しました: {error}",
|
|
57
|
+
"initializationCancelled": "❌ ユーザーにより初期化がキャンセルされました。",
|
|
57
58
|
"translationKeyNotFound": "翻訳キーが見つかりません: {key}",
|
|
58
59
|
"sourceDirectoryNotFound": "ソースディレクトリが見つかりません: {directory}",
|
|
59
60
|
"configLoadingFailed": "構成の読み込みに失敗しました",
|
|
60
61
|
"invalidSourceDirectory": "無効なソースディレクトリ: {directory}",
|
|
61
62
|
"securityViolation": "セキュリティ違反が検出されました",
|
|
62
63
|
"authenticationFailed": "認証が失敗しました",
|
|
63
|
-
"sourceEqualsI18nWarn": "⚠️ ソースディレクトリと I18n ディレクトリが等しいため、ソーススキャンを {fallback} にフォールバックします。"
|
|
64
|
-
"initializationCancelled": "❌ Initialization cancelled by user."
|
|
64
|
+
"sourceEqualsI18nWarn": "⚠️ ソースディレクトリと I18n ディレクトリが等しいため、ソーススキャンを {fallback} にフォールバックします。"
|
|
65
65
|
},
|
|
66
66
|
"errorGeneratingStatusSummary": "ステータスサマリーの生成エラー:{error}",
|
|
67
67
|
"errorRunningDebugTool": "デバッグツール'{displayName}'の実行エラー:{error}",
|
|
@@ -69,6 +69,12 @@
|
|
|
69
69
|
"errorAnalyzingLogFile": "ログファイルの分析エラー:{error}",
|
|
70
70
|
"errorAnalyzingTranslationKeys": "翻訳キーの分析エラー:{error}",
|
|
71
71
|
"errorAnalyzingTranslationCompleteness": "翻訳の完全性分析エラー:{error}",
|
|
72
|
+
"analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
|
|
73
|
+
"i18nDirectoryNotFound": "⚠️ i18nディレクトリが見つかりません: {i18nDir}",
|
|
74
|
+
"translationCompletenessAnalysisFailed": "⚠️ 翻訳の完全性分析が失敗しました: {error}",
|
|
75
|
+
"failedToAnalyzeLanguage": "❌ 言語 {language} の分析に失敗しました: {error}",
|
|
76
|
+
"errorReadingI18nDirectory": "❌ i18nディレクトリの読み取りに失敗しました: {error}",
|
|
77
|
+
"languageCompletenessTitle": "📈 翻訳の完全性を言語別に表示",
|
|
72
78
|
"errorAnalyzingTranslationFormat": "翻訳形式の分析エラー:{error}",
|
|
73
79
|
"errorAnalyzingTranslationType": "翻訳タイプの分析エラー:{error}",
|
|
74
80
|
"errorAnalyzingTranslationStructure": "翻訳構造の分析エラー:{error}",
|
|
@@ -93,26 +99,72 @@
|
|
|
93
99
|
"partialKeys": "部分的なキー:",
|
|
94
100
|
"home": "ホーム",
|
|
95
101
|
"settings": "設定",
|
|
96
|
-
"confirm": "確認",
|
|
97
|
-
"analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
|
|
98
|
-
"i18nDirectoryNotFound": "⚠️ i18nディレクトリが見つかりません: {i18nDir}",
|
|
99
|
-
"translationCompletenessAnalysisFailed": "⚠️ 翻訳の完全性分析が失敗しました: {error}",
|
|
100
|
-
"failedToAnalyzeLanguage": "❌ 言語 {language} の分析に失敗しました: {error}",
|
|
101
|
-
"errorReadingI18nDirectory": "❌ i18nディレクトリの読み取りに失敗しました: {error}",
|
|
102
|
-
"languageCompletenessTitle": "📈 翻訳の完全性を言語別に表示",
|
|
103
102
|
"startingSettings": "🎛️ 設定 CLI を開始します...",
|
|
104
|
-
"
|
|
103
|
+
"confirm": "確認",
|
|
104
|
+
"errorExiting": "終了中にエラーが発生しました。"
|
|
105
105
|
},
|
|
106
106
|
"errors": {
|
|
107
|
+
"invalidOption": "❌ 無効なオプション: {option}。もう一度試してください。",
|
|
107
108
|
"readlineClosed": "入力ストリームが閉じられています。非対話モードで実行中です。",
|
|
108
109
|
"noPackageJson": "package.jsonが見つかりません。i18nフレームワークを自動検出できません。",
|
|
109
110
|
"noI18nDir": "プロジェクトルートにi18nディレクトリが見つかりません。",
|
|
110
111
|
"noI18nConfig": "プロジェクトルートにi18n設定ファイルが見つかりません。",
|
|
111
|
-
"errorReadingDebugLogs": "
|
|
112
|
-
|
|
112
|
+
"errorReadingDebugLogs": "デバッグ ログの読み取りエラー: {error}"
|
|
113
|
+
},
|
|
114
|
+
"scanner": {
|
|
115
|
+
"help_message": "I18n テキスト スキャナの使用法: node i18ntk-scanner.js [options] Options: --source-dir <dir> Source directory to scan (default: ./src) --output <file> Output file for scan results (default: ./i18ntk-scanner-report.json) --framework <name> Framework to target (react, vue, angular, vanilla) --patterns <patterns> Custom regex patterns (comma-separated) --include-tests Include test files in scan --exclude-dirs <dirs> Directories to exclude (comma-separated) --help Show this help Examples: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
|
|
116
|
+
"help_options": {
|
|
117
|
+
"source_dir": "スキャンするディレクトリ",
|
|
118
|
+
"output_dir": "結果出力ファイル",
|
|
119
|
+
"framework": "対象フレームワーク (react, vue, angular, vanilla)",
|
|
120
|
+
"patterns": "カスタム正規表現パターン (カンマ区切り)",
|
|
121
|
+
"exclude": "除外するディレクトリ (カンマ区切り)",
|
|
122
|
+
"output_report": "レポート出力ファイル",
|
|
123
|
+
"min_length": "含めるテキストの最小長",
|
|
124
|
+
"max_length": "含めるテキストの最大長",
|
|
125
|
+
"include_tests": "テストファイルをスキャンに含める"
|
|
126
|
+
},
|
|
127
|
+
"starting": "🔍 フレームワークのテキスト スキャナーを開始しています: {framework}",
|
|
128
|
+
"sourceDirectory": "📁 スキャンディレクトリ: {sourceDir}",
|
|
129
|
+
"frameworkDetected": "🎯 検出されたフレームワーク: {framework}",
|
|
130
|
+
"scanningFiles": "📊 {fileCount} ファイルをスキャンしています...",
|
|
131
|
+
"foundTexts": "📝 翻訳が必要な{textCount}テキストが見つかりました",
|
|
132
|
+
"generatingReport": "📊 詳細レポートを生成中...",
|
|
133
|
+
"reportSaved": "💾 スキャンレポートの保存先: {reportPath}",
|
|
134
|
+
"noTextsFound": "✅ ハードコードされた英語テキストは見つかりませんでした",
|
|
135
|
+
"scanComplete": "🎉 スキャンが正常に完了しました。",
|
|
136
|
+
"analysisTitle": "🔍 翻訳スキャン分析",
|
|
137
|
+
"fileSummary": "📄 {file}: {count} 個のテキストが見つかりました",
|
|
138
|
+
"textLocation": "📍 {line} 行目: {text}",
|
|
139
|
+
"foundText": "{count} 件のハードコードされた英語テキストが見つかりました",
|
|
140
|
+
"context": "📝 コンテキスト: {context}",
|
|
141
|
+
"severity": "⚠️ 重大度: {severity}",
|
|
142
|
+
"recommendation": "💡 推奨事項: {recommendation}",
|
|
143
|
+
"welcome": {
|
|
144
|
+
"title": "🎯 テキスト スキャナーへようこそ!",
|
|
145
|
+
"description": "このツールは、ソース コードをスキャンして、翻訳が必要な可能性のあるハードコーディングされた英語テキストを探します。"
|
|
146
|
+
},
|
|
147
|
+
"frameworkPrompt": {
|
|
148
|
+
"title": "🎯 フレームワークを選択",
|
|
149
|
+
"available": "利用可能なフレームワーク: React、Vue、Angular、Vanilla",
|
|
150
|
+
"description": "フレームワークのタイプを入力します (または自動検出するには Enter キーを押します)。",
|
|
151
|
+
"input": "フレームワーク:"
|
|
152
|
+
},
|
|
153
|
+
"directoryPrompt": {
|
|
154
|
+
"title": "📁 ソースディレクトリを選択",
|
|
155
|
+
"current": "現在のディレクトリ: {dir}",
|
|
156
|
+
"description": "スキャンするディレクトリを入力します (または Enter キーを押して現在のディレクトリを入力します)。",
|
|
157
|
+
"input": "ディレクトリ:"
|
|
158
|
+
},
|
|
159
|
+
"options": {
|
|
160
|
+
"includeTests": "テストファイルを含めますか?",
|
|
161
|
+
"excludeDirs": "除外するディレクトリ (カンマ区切り):",
|
|
162
|
+
"customPatterns": "スキャンするカスタム パターン (正規表現):"
|
|
163
|
+
},
|
|
164
|
+
"reportGenerated": "生成されたスキャン レポート: {path}"
|
|
113
165
|
},
|
|
114
166
|
"fixer": {
|
|
115
|
-
"help_message": "I18n
|
|
167
|
+
"help_message": "I18n 変換フィクサーの使用法: node i18ntk-fixer.js [options] Options: --source-dir <dir> Source directory to scan (default: ./locales) --languages <langs> Comma separated list of languages to fix --markers <markers> Comma separated markers to treat as untranslated --no-backup Skip automatic backup creation --help Show this help Examples: node i18ntk-fixer.js --languages de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
|
|
116
168
|
"starting": "🚀 翻訳修正を開始します。言語: {languages}",
|
|
117
169
|
"sourceDirectory": "📁 ソースディレクトリ: {sourceDir}",
|
|
118
170
|
"sourceLanguage": "🔤 ソース言語: {sourceLanguage}",
|
|
@@ -146,7 +198,7 @@
|
|
|
146
198
|
"choicePrompt": "選択肢を入力 (y/n/s):",
|
|
147
199
|
"nonInteractiveMode": "⚡ 非対話モードが検出されました。修正を自動的に適用します...",
|
|
148
200
|
"reportGenerated": "📊 修正レポートが生成されました: {path}",
|
|
149
|
-
"summary": "
|
|
201
|
+
"summary": "フィクサーの概要:",
|
|
150
202
|
"welcome": {
|
|
151
203
|
"title": "🎯 翻訳フィクサーへようこそ!",
|
|
152
204
|
"description": "このツールは、壊れた翻訳やプレースホルダーマーカーを言語ファイルから修復するのに役立ちます。"
|
|
@@ -170,16 +222,16 @@
|
|
|
170
222
|
"description": "言語ファイルを含むディレクトリを入力してください(またはEnterで現在のディレクトリを使用):",
|
|
171
223
|
"input": "ディレクトリ:"
|
|
172
224
|
},
|
|
173
|
-
"backupLocation": "
|
|
174
|
-
"completed": "
|
|
175
|
-
"creatingBackup": "
|
|
176
|
-
"dryRunMode": "
|
|
177
|
-
"error": "
|
|
178
|
-
"fixing": "
|
|
179
|
-
"foundLanguages": "
|
|
180
|
-
"languageFixed": "{language}:
|
|
181
|
-
"running": "
|
|
182
|
-
"totalFixed": "
|
|
225
|
+
"backupLocation": "バックアップの場所: {dir}",
|
|
226
|
+
"completed": "修正が完了しました。",
|
|
227
|
+
"creatingBackup": "{dir} にバックアップを作成しています...",
|
|
228
|
+
"dryRunMode": "ドライランモード: {mode}",
|
|
229
|
+
"error": "修正が失敗しました: {error}",
|
|
230
|
+
"fixing": "{language} を修正しています...",
|
|
231
|
+
"foundLanguages": "{count} 言語が見つかりました: {languages}",
|
|
232
|
+
"languageFixed": "{language}: {fixed} キーを修正し、{skipped} をスキップしました。",
|
|
233
|
+
"running": "翻訳フィクサーを実行しています...",
|
|
234
|
+
"totalFixed": "合計修正数: {count}"
|
|
183
235
|
},
|
|
184
236
|
"autorun": {
|
|
185
237
|
"stepAnalyzeTranslations": "翻訳の分析",
|
|
@@ -403,17 +455,17 @@
|
|
|
403
455
|
"sizing_analysis_results": "i18n サイズ分析結果",
|
|
404
456
|
"file_sizes_title": "ファイルサイズ",
|
|
405
457
|
"file_sizes_header": "言語 サイズ(KB) 行数 文字数",
|
|
406
|
-
"file_size_row": "{lang}
|
|
458
|
+
"file_size_row": "{lang} {sizeKB} {lines} {characters}",
|
|
407
459
|
"language_statistics_title": "言語統計",
|
|
408
460
|
"language_stats_header": "言語 キー数 文字数 平均長 最大長 空 長い",
|
|
409
|
-
"language_stats_row": "{lang}
|
|
461
|
+
"language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
|
|
410
462
|
"size_variations_title": "サイズのばらつき",
|
|
411
463
|
"size_variations_header": "言語 文字差分 差分(%) 問題あり",
|
|
412
|
-
"size_variation_row": "{lang}
|
|
464
|
+
"size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
|
|
413
465
|
"problematic_yes": "はい",
|
|
414
466
|
"problematic_no": "いいえ",
|
|
415
467
|
"recommendations_title": "推奨事項",
|
|
416
|
-
"recommendation_item": "{index}
|
|
468
|
+
"recommendation_item": "{index}。 {recommendation}",
|
|
417
469
|
"problematic_key_detail": "{index}. キー: '{key}' - バリエーション: {variations}",
|
|
418
470
|
"generating_detailed_report": "詳細レポートを生成中...",
|
|
419
471
|
"keysHaveSignificantSizeVariations": "キーに大きなサイズのばらつきがあります",
|
|
@@ -427,7 +479,7 @@
|
|
|
427
479
|
"human_report_saved": "人間が読めるレポートを保存しました: {reportPath}",
|
|
428
480
|
"folder_summary_title": "フォルダー要約",
|
|
429
481
|
"folder_summary_table_header": "言語 サイズ(KB) キー数 平均長 総文字数",
|
|
430
|
-
"folder_summary_row": "{lang}
|
|
482
|
+
"folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
|
|
431
483
|
"language_comparison_title": "言語比較",
|
|
432
484
|
"language_comparison_row": "{lang}: {diff} 文字 ({percent}%) {status}",
|
|
433
485
|
"summary_stats": "📊 サマリー: {totalLanguages} 言語, {totalKeys} キー - レポートの保存先: {reportPath}",
|
|
@@ -436,26 +488,25 @@
|
|
|
436
488
|
"no_translation_files_found": "翻訳ファイルが見つかりません",
|
|
437
489
|
"analysis_completed": "分析が完了しました({duration}ms)",
|
|
438
490
|
"analysis_failed": "分析に失敗しました: {errorMessage}",
|
|
491
|
+
"starting_analysis": "分析を開始します...",
|
|
492
|
+
"found_files": "検出されたファイル: {count}",
|
|
439
493
|
"failed_to_parse_language_error": "{language} の翻訳の解析に失敗しました: {errorMessage}",
|
|
440
494
|
"recommendations": {
|
|
441
495
|
"keys_have_significant_size_variations": "キーに大きなサイズのばらつきがあります",
|
|
442
496
|
"consider_reviewing_translations": "{lang} の翻訳を見直すことを検討してください - ベースラインより {percentageDifference}% {comparison} です",
|
|
443
497
|
"long_translations_detected": "{lang} では長さが {threshold} 文字を超える翻訳が {longKeys} 件検出されました - 分割を検討してください"
|
|
444
498
|
},
|
|
445
|
-
"
|
|
446
|
-
"
|
|
447
|
-
"
|
|
448
|
-
"
|
|
449
|
-
"
|
|
450
|
-
"
|
|
451
|
-
"status_long": "long",
|
|
452
|
-
"status_ok": "ok"
|
|
499
|
+
"detailed_key_analysis_title": "詳細なキー分析",
|
|
500
|
+
"key_analysis_detail": "{lang}: {length} 文字 ({status}) - {translation}",
|
|
501
|
+
"key_analysis_header": "キー: {key}",
|
|
502
|
+
"status_empty": "空の",
|
|
503
|
+
"status_long": "長さ",
|
|
504
|
+
"status_ok": "わかりました"
|
|
453
505
|
},
|
|
454
506
|
"usage": {
|
|
455
507
|
"help_message": "I18n 使用解析ツール 使い方: node i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ(デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ(デフォルト: ./src/locales) --output-report 詳細レポートを生成する --output-dir <dir> レポートの出力ディレクトリ(デフォルト: ./reports) --help このヘルプを表示する 例: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
|
|
456
508
|
"source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}",
|
|
457
509
|
"translationCompletenessTitle": "🌍 翻訳の完全性:",
|
|
458
|
-
"failedToExtractKeys": "⚠️ キーの抽出中にエラーが発生しました: {error}",
|
|
459
510
|
"i18n_directory_thisi18ndir": "🌐 I18n ディレクトリ: {i18nDir}",
|
|
460
511
|
"failed_to_parse_filename_error": "⚠️ {fileName} の解析に失敗しました: {errorMessage}",
|
|
461
512
|
"analyzing_source_files": "🔍 ソースファイルを解析中...",
|
|
@@ -465,6 +516,7 @@
|
|
|
465
516
|
"loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
|
|
466
517
|
"found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
|
|
467
518
|
"foundTranslationFiles": "✅ {count} 件の翻訳ファイルを検出",
|
|
519
|
+
"errorReadingI18nDirectory": "⚠️ i18nディレクトリの読み取りに失敗しました: {error}",
|
|
468
520
|
"pressEnterToReturnToMenu": "Enter キーを押してメインメニューに戻ります",
|
|
469
521
|
"notTranslatedKeysTotal": "⚠️ 翻訳されていないキー: {total}",
|
|
470
522
|
"noSourceFilesFound": "⚠️ ソースディレクトリにファイルが見つかりません。",
|
|
@@ -475,6 +527,8 @@
|
|
|
475
527
|
"fileInfo": "📄 {namespace}: {keys} 件のキー",
|
|
476
528
|
"failedToAnalyzeUsage": "❌ 使用状況の解析に失敗しました: {error}",
|
|
477
529
|
"failedToAnalyzeFile": "❌ ファイルの解析に失敗しました: {error}",
|
|
530
|
+
"failedToExtractKeys": "⚠️ キーの抽出中にエラーが発生しました: {error}",
|
|
531
|
+
"analysisFailedError": "❌ 分析が失敗しました: {error}",
|
|
478
532
|
"analyzerInitialized": "アナライザが初期化されました",
|
|
479
533
|
"analyzerInitFailed": "アナライザの初期化に失敗しました: {error}",
|
|
480
534
|
"argsParsed": "引数を解析しました",
|
|
@@ -482,11 +536,11 @@
|
|
|
482
536
|
"argsParseFailed": "引数の解析に失敗しました: {error}",
|
|
483
537
|
"translationDiscoveryError": "翻訳の検出エラー: {error}",
|
|
484
538
|
"fileTraversalError": "ファイル走査エラー: {error}",
|
|
539
|
+
"sourceEqualsI18nWarn": "⚠️ ソースディレクトリと i18n ディレクトリは同じです。分析に問題が発生する可能性があります。",
|
|
540
|
+
"i18nEqualsSourceWarn": "⚠️ I18n ディレクトリとソースディレクトリは同じです。分析に問題が発生する可能性があります。",
|
|
485
541
|
"usageAnalysisFailed": "使用状況分析に失敗しました: {error}",
|
|
486
542
|
"translationFileParseError": "翻訳ファイルの解析エラー: {error}",
|
|
487
543
|
"translationKeysLoadError": "翻訳キーの読み込みエラー: {error}",
|
|
488
|
-
"sourceEqualsI18nWarn": "⚠️ ソースディレクトリと i18n ディレクトリは同じです。分析に問題が発生する可能性があります。",
|
|
489
|
-
"i18nEqualsSourceWarn": "⚠️ I18n ディレクトリとソースディレクトリは同じです。分析に問題が発生する可能性があります。",
|
|
490
544
|
"languageCompletenessStats": "🌍 {language}: {translated}/{total} ({completeness}% 翻訳済み)",
|
|
491
545
|
"missingKeysCount": "⚠️ 不足しているキー: {count}",
|
|
492
546
|
"analyzingTranslationCompleteness": "翻訳の完全性を分析中...",
|
|
@@ -498,53 +552,53 @@
|
|
|
498
552
|
"sourceDirectoryNotFound": "⚠️ ソースディレクトリが見つかりません: {dir}",
|
|
499
553
|
"checkUsage": {
|
|
500
554
|
"title": "🔍 I18NTK 使用状況分析",
|
|
501
|
-
"
|
|
502
|
-
"help_message": "I18n 使用解析ツール 使い方: node i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ(デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ(デフォルト: ./src/locales) --output-report 詳細レポートを生成する --output-dir <dir> レポートの出力ディレクトリ(デフォルト: ./reports) --help このヘルプを表示する 例: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
|
|
555
|
+
"analyzing_source_files": "🔍 ソースファイルを解析中...",
|
|
503
556
|
"source_directory_thissourcedir": "📁 ソースディレクトリ: {sourceDir}",
|
|
504
557
|
"i18n_directory_thisi18ndir": "🌐 I18n ディレクトリ: {i18nDir}",
|
|
505
|
-
"loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
|
|
506
|
-
"found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
|
|
507
|
-
"analyzing_source_files": "🔍 ソースファイルを解析中...",
|
|
508
558
|
"found_files_in_source": "📂 ソースディレクトリで {numFiles} 件のファイルを検出",
|
|
559
|
+
"no_source_files_found": "⚠️ 指定されたディレクトリにソースファイルが見つかりません",
|
|
560
|
+
"processedFiles": "{totalFiles} ファイルのうち {processedFiles} を処理済み。",
|
|
561
|
+
"failedToProcessFile": "❌ ファイルの処理に失敗しました: {filePath}",
|
|
509
562
|
"found_thisusedkeyssize_unique_": "🎯 一意の使用中キーを {usedKeysSize} 件検出",
|
|
510
563
|
"total_key_usages_totalkeysfoun": "📊 キーの使用合計: {totalKeysFound}",
|
|
564
|
+
"loading_available_translation_": "📋 利用可能な翻訳キーを読み込み中...",
|
|
565
|
+
"found_thisavailablekeyssize_av": "✅ 利用可能なキーを {availableKeysSize} 件検出",
|
|
566
|
+
"message": "プロジェクト全体の i18n キー使用を分析しています。",
|
|
567
|
+
"usage_analysis_results": "📊 使用状況分析の結果",
|
|
568
|
+
"source_files_scanned_thisfileu": "スキャンされたソースファイル: {fileUsageSize}",
|
|
569
|
+
"available_translation_keys_thi": "利用可能な翻訳キー: {availableKeysSize}",
|
|
570
|
+
"used_translation_keys_thisused": "使用された翻訳キー: {usedKeysSize}",
|
|
571
|
+
"dynamic_keys_detected_dynamick": "検出された動的キー: {dynamicKeysLength}",
|
|
572
|
+
"unused_keys_unusedkeyslength": "未使用のキー: {unusedKeysLength}",
|
|
573
|
+
"missing_keys_missingkeyslength": "不足しているキー: {missingKeysLength}",
|
|
511
574
|
"translation_completeness_title": "📊 翻訳の完全性",
|
|
512
575
|
"language_completeness_stats": "{language}: {translated}/{total} ({completeness}% 翻訳済み)",
|
|
513
576
|
"n_sample_unused_keys": "未使用のキーの例:",
|
|
514
577
|
"key": "- {key}",
|
|
515
578
|
"and_unusedkeyslength_5_more": "...およびさらに {count} 件。",
|
|
579
|
+
"n_sample_missing_keys": "❌ 不足しているキーのサンプル (最初の 5 件):",
|
|
580
|
+
"and_missingkeyslength_5_more": "... そしてさらに {count} 件の不足しているキー",
|
|
581
|
+
"n_generating_detailed_report": "📊 詳細レポートを生成中...",
|
|
582
|
+
"report_saved_reportpath": "📄 レポートが保存されました: {reportPath}",
|
|
516
583
|
"n_recommendations": "📋 推奨事項",
|
|
517
584
|
"consider_removing_unused_trans": "💡 プロジェクトをクリーンに保つために未使用の翻訳を削除することを検討してください。",
|
|
585
|
+
"add_missing_translation_keys_t": "➕ 不足している翻訳キーを追加して一貫性を保つ",
|
|
586
|
+
"review_dynamic_keys_manually_t": "🔍 動的キーを手動で確認 (有効な場合があります)",
|
|
587
|
+
"all_translation_keys_are_prope": "✅ すべての翻訳キーが適切に使用されています!",
|
|
518
588
|
"n_next_steps": "📋 次のステップ",
|
|
589
|
+
"2_check_the_detailed_report_fo": "2. 詳細レポートを確認して特定の問題を特定します",
|
|
590
|
+
"help_message": "I18n 使用解析ツール 使い方: node i18ntk-usage.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ(デフォルト: ./src) --i18n-dir <dir> I18n ディレクトリ(デフォルト: ./src/locales) --output-report 詳細レポートを生成する --output-dir <dir> レポートの出力ディレクトリ(デフォルト: ./reports) --help このヘルプを表示する 例: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
|
|
519
591
|
"1_review_the_analysis_results": "1. コンソールまたは生成されたレポートで分析結果を確認します。",
|
|
520
592
|
"2_run_with_outputreport_for_de": "2. 詳細なレポートを得るには --output-report を付けて実行します。",
|
|
521
593
|
"3_remove_unused_keys_or_add_mi": "3. 未使用のキーを削除するか、欠落しているキーをソースコードに追加します。",
|
|
522
594
|
"4_rerun_analysis_to_verify_imp": "4. 改善を確認するために再度分析を実行します。",
|
|
523
|
-
"usage_analysis_results": "📊 使用状況分析の結果",
|
|
524
|
-
"source_files_scanned_thisfileu": "スキャンされたソースファイル: {fileUsageSize}",
|
|
525
|
-
"available_translation_keys_thi": "利用可能な翻訳キー: {availableKeysSize}",
|
|
526
|
-
"used_translation_keys_thisused": "使用された翻訳キー: {usedKeysSize}",
|
|
527
|
-
"dynamic_keys_detected_dynamick": "検出された動的キー: {dynamicKeysLength}",
|
|
528
|
-
"unused_keys_unusedkeyslength": "未使用のキー: {unusedKeysLength}",
|
|
529
|
-
"missing_keys_missingkeyslength": "不足しているキー: {missingKeysLength}",
|
|
530
595
|
"noSourceFilesFound": "解析するソースファイルが見つかりませんでした。",
|
|
531
|
-
"processedFiles": "{totalFiles} ファイルのうち {processedFiles} を処理済み。",
|
|
532
596
|
"i18nDirectoryNotFound": "I18n ディレクトリが見つかりません: {i18nDir}",
|
|
533
597
|
"noTranslationLanguagesFound": "翻訳言語が見つかりませんでした。",
|
|
534
598
|
"failedToAnalyzeFile": "{filePath} の解析に失敗しました: {error}",
|
|
535
599
|
"failedToAnalyzeLanguage": "{language} の解析に失敗しました: {error}",
|
|
536
600
|
"translationCompletenessAnalysisFailed": "翻訳の完全性分析に失敗しました: {error}",
|
|
537
|
-
"n": ""
|
|
538
|
-
"no_source_files_found": "⚠️ 指定されたディレクトリにソースファイルが見つかりません",
|
|
539
|
-
"failedToProcessFile": "❌ ファイルの処理に失敗しました: {filePath}",
|
|
540
|
-
"n_sample_missing_keys": "❌ 不足しているキーのサンプル (最初の 5 件):",
|
|
541
|
-
"and_missingkeyslength_5_more": "... そしてさらに {count} 件の不足しているキー",
|
|
542
|
-
"n_generating_detailed_report": "📊 詳細レポートを生成中...",
|
|
543
|
-
"report_saved_reportpath": "📄 レポートが保存されました: {reportPath}",
|
|
544
|
-
"add_missing_translation_keys_t": "➕ 不足している翻訳キーを追加して一貫性を保つ",
|
|
545
|
-
"review_dynamic_keys_manually_t": "🔍 動的キーを手動で確認 (有効な場合があります)",
|
|
546
|
-
"all_translation_keys_are_prope": "✅ すべての翻訳キーが適切に使用されています!",
|
|
547
|
-
"2_check_the_detailed_report_fo": "2. 詳細レポートを確認して特定の問題を特定します"
|
|
601
|
+
"n": "\\n"
|
|
548
602
|
},
|
|
549
603
|
"complete": {
|
|
550
604
|
"configLoadedSuccessfully": "設定が正常に読み込まれました",
|
|
@@ -584,13 +638,11 @@
|
|
|
584
638
|
"noTranslationLanguagesFound": "翻訳言語が見つかりませんでした。",
|
|
585
639
|
"failedToAnalyzeLanguage": "{language} の解析に失敗しました: {error}",
|
|
586
640
|
"translationCompletenessAnalysisFailed": "{language} の翻訳完全性分析に失敗しました: {error}",
|
|
587
|
-
"
|
|
588
|
-
"
|
|
589
|
-
"
|
|
590
|
-
"
|
|
591
|
-
"
|
|
592
|
-
"reportSavedTo": "Usage report saved to: {reportPath}",
|
|
593
|
-
"sourceDirectoryDoesNotExist": "Source directory does not exist: {dir}"
|
|
641
|
+
"failedToProcessFile": "ファイルの処理に失敗しました:",
|
|
642
|
+
"failedToSaveReport": "使用状況レポートの保存に失敗しました: {error}",
|
|
643
|
+
"i18nDirectoryDoesNotExist": "I18n ディレクトリが存在しません: {dir}",
|
|
644
|
+
"reportSavedTo": "使用状況レポートの保存先: {reportPath}",
|
|
645
|
+
"sourceDirectoryDoesNotExist": "ソース ディレクトリが存在しません: {dir}"
|
|
594
646
|
},
|
|
595
647
|
"validate": {
|
|
596
648
|
"help_message": "I18n 翻訳バリデータ 使い方: node i18ntk-validate.js [オプション] オプション: --source-dir <dir> スキャンするソースディレクトリ (デフォルト: ./locales) --i18n-dir <dir> I18n ディレクトリ (デフォルト: ./locales) --output-report 詳細レポートを生成 --output-dir <dir> レポートの出力ディレクトリ (デフォルト: ./i18ntk-reports) --help ヘルプを表示 例: node i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./analysis --output-report",
|
|
@@ -688,8 +740,8 @@
|
|
|
688
740
|
"failedToCreateSampleTranslationFile": "サンプル翻訳ファイルの作成に失敗しました",
|
|
689
741
|
"invalidFilePathDetected": "無効なファイルパスが検出されました",
|
|
690
742
|
"failedToWriteFile": "ファイルの書き込みに失敗しました: {filePath}",
|
|
691
|
-
"invalidSourceDirectory": "
|
|
692
|
-
"invalidSourceLanguageDirectory": "
|
|
743
|
+
"invalidSourceDirectory": "無効なソース ディレクトリ: {sourceDir}",
|
|
744
|
+
"invalidSourceLanguageDirectory": "無効なソース言語ディレクトリ: {sourceDir}"
|
|
693
745
|
},
|
|
694
746
|
"adminCli": {
|
|
695
747
|
"setupPinProtectionTitle": "🔐 管理者PIN保護の設定",
|
|
@@ -936,8 +988,8 @@
|
|
|
936
988
|
},
|
|
937
989
|
"init": {
|
|
938
990
|
"initializationTitle": "🚀 i18n 管理ツールキット – プロジェクト初期化",
|
|
991
|
+
"initializationCancelled": "🚫 ユーザーによって初期化がキャンセルされました。",
|
|
939
992
|
"sourceDirectoryLabel": "📁 ソースディレクトリ: {dir}",
|
|
940
|
-
"createdSourceLanguageDirectory": "✅ ソース言語ディレクトリを作成しました: {dir}",
|
|
941
993
|
"requiredTitle": "初期化が必要です",
|
|
942
994
|
"requiredBody": "このコマンドを実行する前にプロジェクトを初期化する必要があります。",
|
|
943
995
|
"promptRunNow": "今すぐ初期化を実行しますか?(y/N):",
|
|
@@ -1017,13 +1069,13 @@
|
|
|
1017
1069
|
"frameworks": {
|
|
1018
1070
|
"react": "- React i18next (react-i18next)",
|
|
1019
1071
|
"vue": "- Vue i18n (vue-i18n)",
|
|
1020
|
-
"i18next": "- i18next (
|
|
1021
|
-
"nuxt": "- Nuxt
|
|
1072
|
+
"i18next": "- i18next (アイ18ネクスト)",
|
|
1073
|
+
"nuxt": "- Nuxt ??? (@nuxtjs/i18n)",
|
|
1022
1074
|
"svelte": "- Svelte i18n (svelte-i18n)"
|
|
1023
1075
|
},
|
|
1024
1076
|
"continueWithoutI18nPrompt": "i18nフレームワークが検出されません。続行しますか? (y/N):",
|
|
1025
1077
|
"detectedI18nFramework": "検出されたi18nフレームワーク: {frameworks}",
|
|
1026
|
-
"existingDirectoryItem": "{index}
|
|
1078
|
+
"existingDirectoryItem": "{index}。 {location}",
|
|
1027
1079
|
"usingExistingStructure": "既存の構造を使用: {dir}",
|
|
1028
1080
|
"creatingSourceDirectory": "ソースディレクトリを作成中: {dir}",
|
|
1029
1081
|
"creatingSourceLanguageDirectory": "ソース言語ディレクトリを作成中: {dir}",
|
|
@@ -1034,35 +1086,36 @@
|
|
|
1034
1086
|
"noJsonFilesInSourceDirectory": "ソースディレクトリにJSONファイルが見つかりません: {dir}",
|
|
1035
1087
|
"invalidFilePathDetected": "無効なファイルパスが検出されました",
|
|
1036
1088
|
"initializationFailed": "初期化に失敗しました: {error}",
|
|
1037
|
-
"noFramework": "
|
|
1038
|
-
"packageJsonRead": "
|
|
1089
|
+
"noFramework": "i18n フレームワークが検出されませんでした。汎用モードで続行します。",
|
|
1090
|
+
"packageJsonRead": "package.json の読み取り中にエラーが発生しました。"
|
|
1039
1091
|
},
|
|
1040
1092
|
"processingFile": "{language} の {file} を処理中…",
|
|
1041
1093
|
"fileAlreadyExistsMerging": "{file} は既に存在します。新しいキーをマージ中。",
|
|
1042
1094
|
"createdNewFile": "新しいファイルを作成しました: {file}",
|
|
1043
1095
|
"updatedFile": "ファイルを更新しました: {file}",
|
|
1044
1096
|
"skippingExcludedFile": "{language} の {file} は除外リストにあるためスキップされました。",
|
|
1045
|
-
"continuingWithoutAdminPin": "
|
|
1046
|
-
"
|
|
1047
|
-
"
|
|
1048
|
-
"
|
|
1049
|
-
"
|
|
1050
|
-
"
|
|
1051
|
-
"
|
|
1052
|
-
"
|
|
1097
|
+
"continuingWithoutAdminPin": "管理者 PIN を設定せずに続行します。",
|
|
1098
|
+
"createdSourceLanguageDirectory": "✅ ソース言語ディレクトリを作成しました: {dir}",
|
|
1099
|
+
"errorSettingUpAdminPin": "管理者 PIN の設定エラー: {error}",
|
|
1100
|
+
"noTargetLanguagesSpecified": "ターゲット言語が指定されていません。",
|
|
1101
|
+
"translationFilesCreatedWarning": "翻訳ファイルはプレースホルダーを使用して作成されました。実稼働環境で使用する前に確認してください。",
|
|
1102
|
+
"warningCannotReadSourceDir": "警告: ソース ディレクトリ {dir}: {error} を読み取れません",
|
|
1103
|
+
"warningInvalidLanguageCodes": "警告: 無効な言語コードは無視されます: {languages}",
|
|
1104
|
+
"warningProceedingWithoutFramework": "i18n フレームワークが検出されないまま続行します。"
|
|
1053
1105
|
},
|
|
1054
1106
|
"language": {
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1107
|
+
"title": "🌍 言語を変更",
|
|
1108
|
+
"separator": "============================================================",
|
|
1109
|
+
"current": "現在の言語: {language}",
|
|
1110
|
+
"available": "利用可能な言語:",
|
|
1111
|
+
"languageOption": "{index}。 {displayName}{current}",
|
|
1112
|
+
"backToMainMenu": "メインメニューに戻る",
|
|
1113
|
+
"prompt": "言語を選択してください (0-8):",
|
|
1114
|
+
"cancelled": "言語変更がキャンセルされました。",
|
|
1115
|
+
"invalid": "無効な選択です。もう一度お試しください。",
|
|
1116
|
+
"changed": "言語が {language} に変更されました",
|
|
1117
|
+
"changeFailed": "言語の変更に失敗しました: {error}",
|
|
1118
|
+
"pressEnterToContinue": "続行するにはEnterキーを押してください…"
|
|
1066
1119
|
},
|
|
1067
1120
|
"maintainLanguagePurity": {
|
|
1068
1121
|
"workflow_title": "🚀 言語純度維持ワークフロー",
|
|
@@ -1092,6 +1145,7 @@
|
|
|
1092
1145
|
"complete": "🎯 翻訳を完了 (100% カバレッジ)",
|
|
1093
1146
|
"sizing": "📏 サイズを分析",
|
|
1094
1147
|
"fix": "🛠️ プレースホルダー翻訳を修正",
|
|
1148
|
+
"scanner": "🔍 i18n問題をスキャン",
|
|
1095
1149
|
"workflow": "🔄 フルワークフローを実行",
|
|
1096
1150
|
"status": "📋 プロジェクトステータスを表示",
|
|
1097
1151
|
"delete": "🗑️ すべてのレポートを削除",
|
|
@@ -1099,7 +1153,6 @@
|
|
|
1099
1153
|
"settings": "⚙️ 設定",
|
|
1100
1154
|
"help": "❓ ヘルプ",
|
|
1101
1155
|
"debug": "🔧 デバッグツール",
|
|
1102
|
-
"scanner": "🔍 i18n問題をスキャン",
|
|
1103
1156
|
"exit": "🚪 終了"
|
|
1104
1157
|
},
|
|
1105
1158
|
"update": "📦 パッケージを更新",
|
|
@@ -1118,7 +1171,7 @@
|
|
|
1118
1171
|
"autoDetectedI18nDirectory": "📂 自動検出されたi18nディレクトリ: {directory}",
|
|
1119
1172
|
"executingCommand": "コマンドを実行中: {command}",
|
|
1120
1173
|
"unknownCommand": "不明なコマンド: {command}",
|
|
1121
|
-
"languageOption": "{index}
|
|
1174
|
+
"languageOption": "{index}。 {displayName}{current}",
|
|
1122
1175
|
"debugTools": {
|
|
1123
1176
|
"1": "ログファイル分析",
|
|
1124
1177
|
"2": "翻訳キー使用状況分析",
|
|
@@ -1250,13 +1303,13 @@
|
|
|
1250
1303
|
"unknown_command_argument": "セキュリティ: 不明なコマンド引数: {key}",
|
|
1251
1304
|
"unknownConfigKey": "セキュリティ: 不明な設定キー: {key}",
|
|
1252
1305
|
"unknown_config_key": "セキュリティ: 不明な設定キー: {key}",
|
|
1253
|
-
"securityAlert": "[
|
|
1306
|
+
"securityAlert": "[セキュリティ警告] {timestamp}: {event}",
|
|
1254
1307
|
"contentTooLarge": "セキュリティ: ファイルに対してコンテンツが大きすぎます: {validatedPath}",
|
|
1255
1308
|
"inputDisallowedCharacters": "セキュリティ: 入力に許可されない文字が含まれています",
|
|
1256
1309
|
"unknownCommandArg": "不明なコマンド引数です",
|
|
1257
|
-
"logMessage": "[
|
|
1258
|
-
"alertMessage": "[
|
|
1259
|
-
"securityWarning": "[
|
|
1310
|
+
"logMessage": "[セキュリティ {level}] {timestamp}: {event}",
|
|
1311
|
+
"alertMessage": "[セキュリティ警告] {timestamp}: {event}",
|
|
1312
|
+
"securityWarning": "[セキュリティ警告] {timestamp}: {event}",
|
|
1260
1313
|
"json_parse_error": "セキュリティ: JSON解析エラー: {errorMessage}",
|
|
1261
1314
|
"file_too_large": "セキュリティ: ファイルが大きすぎます",
|
|
1262
1315
|
"file_read_error": "セキュリティ: ファイル読み取りエラー",
|
|
@@ -1340,7 +1393,8 @@
|
|
|
1340
1393
|
"goodbyeMessage": "i18ntk設定マネージャーをご利用いただきありがとうございます!",
|
|
1341
1394
|
"relativePathHint": "このディレクトリからの相対パスを使用 (例: ./src/i18n/locales)",
|
|
1342
1395
|
"currentDirectory": "現在のプロジェクトディレクトリ",
|
|
1343
|
-
"
|
|
1396
|
+
"startingSettings": "設定を開始します...",
|
|
1397
|
+
"pin": "ピン:",
|
|
1344
1398
|
"reportBug": {
|
|
1345
1399
|
"title": "バグを報告",
|
|
1346
1400
|
"description": "発生した問題やバグを報告する",
|
|
@@ -1403,8 +1457,8 @@
|
|
|
1403
1457
|
"promptDesc": "注: 最新バージョンに更新します。",
|
|
1404
1458
|
"confirm": "y",
|
|
1405
1459
|
"cancelled": "更新がキャンセルされました。",
|
|
1406
|
-
"error": "
|
|
1407
|
-
"updating": "
|
|
1460
|
+
"error": "パッケージの更新に失敗しました",
|
|
1461
|
+
"updating": "パッケージを更新しています..."
|
|
1408
1462
|
},
|
|
1409
1463
|
"admin": {
|
|
1410
1464
|
"selectOption": "オプションを選択してください:",
|
|
@@ -1461,11 +1515,11 @@
|
|
|
1461
1515
|
"importFailed": "設定のインポートに失敗しました: {error}",
|
|
1462
1516
|
"backupSuccess": "バックアップを作成しました: {file}",
|
|
1463
1517
|
"backupFailed": "バックアップの作成に失敗しました: {error}",
|
|
1464
|
-
"exportFilenamePrompt": "
|
|
1465
|
-
"importConfirm": "
|
|
1466
|
-
"importFilenamePrompt": "
|
|
1467
|
-
"manageBackups": "
|
|
1468
|
-
"restore": "
|
|
1518
|
+
"exportFilenamePrompt": "エクスポート ファイル名を入力してください:",
|
|
1519
|
+
"importConfirm": "この設定ファイルをインポートしますか? (y/N):",
|
|
1520
|
+
"importFilenamePrompt": "インポートファイル名を入力してください:",
|
|
1521
|
+
"manageBackups": "バックアップの管理",
|
|
1522
|
+
"restore": "設定を復元する"
|
|
1469
1523
|
},
|
|
1470
1524
|
"selectOption": "オプションを選択してください:",
|
|
1471
1525
|
"resetToDefaultsTitle": "デフォルトにリセット",
|
|
@@ -1833,9 +1887,9 @@
|
|
|
1833
1887
|
"help": "すべてのスクリプト保護を工場出荷時の値にリセット"
|
|
1834
1888
|
},
|
|
1835
1889
|
"removeUiLanguages": {
|
|
1836
|
-
"label": "
|
|
1837
|
-
"description": "
|
|
1838
|
-
"help": "
|
|
1890
|
+
"label": "UI言語の削除",
|
|
1891
|
+
"description": "インストールされていない UI 言語を削除する",
|
|
1892
|
+
"help": "システムにインストールされていない UI 言語を削除する"
|
|
1839
1893
|
},
|
|
1840
1894
|
"${helperKey}": {
|
|
1841
1895
|
"help": "ヘルプ"
|
|
@@ -1872,7 +1926,7 @@
|
|
|
1872
1926
|
"system": "システム"
|
|
1873
1927
|
},
|
|
1874
1928
|
"languages": {
|
|
1875
|
-
"en": "
|
|
1929
|
+
"en": "英語",
|
|
1876
1930
|
"de": "Deutsch",
|
|
1877
1931
|
"es": "Español",
|
|
1878
1932
|
"fr": "Français",
|
|
@@ -1896,7 +1950,7 @@
|
|
|
1896
1950
|
"resetScriptDirectoriesTitle": "スクリプトディレクトリをデフォルトにリセット",
|
|
1897
1951
|
"resetScriptDirectoriesWarning1": "これによりすべてのスクリプトディレクトリ設定がシステムデフォルトに戻ります。",
|
|
1898
1952
|
"resetScriptDirectoriesWarning2": "すべてのカスタムディレクトリパスがクリアされます。この操作は取り消せません。",
|
|
1899
|
-
"resetScriptDirectoriesConfirm": "
|
|
1953
|
+
"resetScriptDirectoriesConfirm": "すべてのスクリプト ディレクトリをデフォルトにリセットしてもよろしいですか? (y/N):",
|
|
1900
1954
|
"backup": {
|
|
1901
1955
|
"title": "バックアップ設定",
|
|
1902
1956
|
"description": "現在の設定をファイルにバックアップ",
|
|
@@ -1917,11 +1971,10 @@
|
|
|
1917
1971
|
"confirmYes": "はい",
|
|
1918
1972
|
"confirmNo": "いいえ"
|
|
1919
1973
|
},
|
|
1920
|
-
"startingSettings": "設定を開始します...",
|
|
1921
1974
|
"validation": {
|
|
1922
|
-
"valid": "
|
|
1923
|
-
"validatingPaths": "
|
|
1924
|
-
"validationComplete": "
|
|
1975
|
+
"valid": "有効",
|
|
1976
|
+
"validatingPaths": "構成されたパスを検証しています...",
|
|
1977
|
+
"validationComplete": "パス検証が完了しました: {valid}/{total} は有効です。"
|
|
1925
1978
|
}
|
|
1926
1979
|
},
|
|
1927
1980
|
"summary": {
|
|
@@ -2057,8 +2110,8 @@
|
|
|
2057
2110
|
"sizingCommand": "sizing - サイズを分析",
|
|
2058
2111
|
"completeCommand": "complete - 翻訳を完了 (100% カバレッジ)",
|
|
2059
2112
|
"summaryCommand": "summary - プロジェクトステータスを表示",
|
|
2060
|
-
"
|
|
2061
|
-
"
|
|
2113
|
+
"scannerCommand": "scanner - 🔍 i18nの問題をスキャン",
|
|
2114
|
+
"debugCommand": "debug - 翻訳の問題をデバッグ"
|
|
2062
2115
|
},
|
|
2063
2116
|
"test_complete_system": {
|
|
2064
2117
|
"starting_test": "🧪 完全システムテストを開始します",
|
|
@@ -2083,7 +2136,7 @@
|
|
|
2083
2136
|
"success_message": "✅ {message}",
|
|
2084
2137
|
"failure_message": "❌ {message}",
|
|
2085
2138
|
"failure_error_message": "{errorMessage}",
|
|
2086
|
-
"warning_message": "⚠️
|
|
2139
|
+
"warning_message": "⚠️ {message}",
|
|
2087
2140
|
"test_runner_failed": "❌ テストランナーが失敗しました:",
|
|
2088
2141
|
"recommendations": {
|
|
2089
2142
|
"add_missing_translation_keys": "一貫性を保つために欠落した翻訳キーを追加してください",
|
|
@@ -2140,7 +2193,7 @@
|
|
|
2140
2193
|
"total_translations_applied": "適用された翻訳総数: {totalTranslations}",
|
|
2141
2194
|
"run_with_apply_instruction": "💡 --apply フラグを付けて実行するとこれらの翻訳を適用します",
|
|
2142
2195
|
"no_translation_mappings": "⚠️ {language} に利用可能な翻訳マッピングがありません",
|
|
2143
|
-
"translation_applied": "✅ {key}:
|
|
2196
|
+
"translation_applied": "✅ {key}: 「{oldValue}」 → 「{newValue}」",
|
|
2144
2197
|
"saved_translations": "💾 {count} 件の翻訳を {filename} に保存しました",
|
|
2145
2198
|
"found_translatable_items": "🔍 翻訳可能な項目を {count} 件検出",
|
|
2146
2199
|
"no_automatic_translations": "✨ 自動翻訳は利用できません",
|
|
@@ -2156,14 +2209,14 @@
|
|
|
2156
2209
|
"error_general": "❌ エラー:",
|
|
2157
2210
|
"use_help": "使用法情報は --help を参照してください"
|
|
2158
2211
|
},
|
|
2159
|
-
"cleaningUpReportFiles": "
|
|
2160
|
-
"couldNotDelete": "
|
|
2161
|
-
"deletedOldReportFiles": "
|
|
2162
|
-
"errorCleaningUpReports": "
|
|
2163
|
-
"noOldReportFilesToDelete": "
|
|
2164
|
-
"reportFilesPreserved": "
|
|
2165
|
-
"reportSaveFailed": "
|
|
2166
|
-
"reportSaved": "
|
|
2212
|
+
"cleaningUpReportFiles": "古いレポート ファイルをクリーンアップしています...",
|
|
2213
|
+
"couldNotDelete": "{file} を削除できませんでした: {error}",
|
|
2214
|
+
"deletedOldReportFiles": "{count} 個の古いレポート ファイルを削除しました。",
|
|
2215
|
+
"errorCleaningUpReports": "レポートのクリーンアップ中にエラーが発生しました: {error}",
|
|
2216
|
+
"noOldReportFilesToDelete": "削除する古いレポート ファイルはありません。",
|
|
2217
|
+
"reportFilesPreserved": "レポート ファイルは保存されます。",
|
|
2218
|
+
"reportSaveFailed": "レポートを次の場所に保存できませんでした: {reportPath}",
|
|
2219
|
+
"reportSaved": "レポートの保存先: {reportPath}"
|
|
2167
2220
|
},
|
|
2168
2221
|
"ui": {
|
|
2169
2222
|
"autoDetectedI18nDirectory": "自動検出された i18n ディレクトリ: {path}",
|
|
@@ -2264,7 +2317,7 @@
|
|
|
2264
2317
|
"totalFixes": "🔧 適用された修正総数: {count}",
|
|
2265
2318
|
"improvement": "📈 改善率: {percentage}%",
|
|
2266
2319
|
"stepResults": "📝 ステップ結果:",
|
|
2267
|
-
"stepDetail": "{number}
|
|
2320
|
+
"stepDetail": "{number}。 {status} {stepName}",
|
|
2268
2321
|
"violations": "違反数: {count}",
|
|
2269
2322
|
"fixesApplied": "適用修正数: {count}",
|
|
2270
2323
|
"nextSteps": "💡 次のステップ:",
|
|
@@ -2319,9 +2372,6 @@
|
|
|
2319
2372
|
"found_hardcoded_messages": "ハードコードされたメッセージが見つかりました",
|
|
2320
2373
|
"all_console_messages_use_translation": "すべてのコンソールメッセージが翻訳を使用しています"
|
|
2321
2374
|
},
|
|
2322
|
-
"\\nSelect directory to clean (0-${availableDirs": {
|
|
2323
|
-
"length + 1}): ": ""
|
|
2324
|
-
},
|
|
2325
2375
|
"exportTranslations": {
|
|
2326
2376
|
"createdDirectory": "ディレクトリを作成しました",
|
|
2327
2377
|
"foundFiles": "ファイルが見つかりました",
|
|
@@ -2337,9 +2387,6 @@
|
|
|
2337
2387
|
"location": "場所",
|
|
2338
2388
|
"nextSteps": "次のステップ"
|
|
2339
2389
|
},
|
|
2340
|
-
")) {\n console": {
|
|
2341
|
-
"log(": "ログ("
|
|
2342
|
-
},
|
|
2343
2390
|
"dashboard": {
|
|
2344
2391
|
"title": "タイトル",
|
|
2345
2392
|
"overview": "概要"
|
|
@@ -2352,112 +2399,14 @@
|
|
|
2352
2399
|
"forgotPassword": "パスワードを忘れた",
|
|
2353
2400
|
"signUp": "サインアップ"
|
|
2354
2401
|
},
|
|
2355
|
-
"scanner": {
|
|
2356
|
-
"title": "🕵️ i18n テキストスキャナー",
|
|
2357
|
-
"description": "ソースファイル内のハードコードされた英語テキストをスキャンします",
|
|
2358
|
-
"usage": "使用方法: i18ntk-scanner [オプション]",
|
|
2359
|
-
"foundText": "{count} 件のハードコードされた英語テキストが見つかりました",
|
|
2360
|
-
"options": {
|
|
2361
|
-
"sourceDir": "スキャンするディレクトリ",
|
|
2362
|
-
"outputDir": "レポート出力ディレクトリ",
|
|
2363
|
-
"patterns": "カスタム正規表現パターン",
|
|
2364
|
-
"framework": "フレームワーク (react, vue, angular, vanilla)",
|
|
2365
|
-
"extensions": "スキャンするファイル拡張子",
|
|
2366
|
-
"exclude": "除外するパターン",
|
|
2367
|
-
"minLength": "スキャンするテキストの最小長",
|
|
2368
|
-
"maxLength": "スキャンするテキストの最大長",
|
|
2369
|
-
"includeTests": "Include test files?",
|
|
2370
|
-
"excludeDirs": "Directories to exclude (comma-separated):",
|
|
2371
|
-
"customPatterns": "Custom patterns to scan for (regex):"
|
|
2372
|
-
},
|
|
2373
|
-
"status": {
|
|
2374
|
-
"scanning": "🔍 ファイルをスキャン中...",
|
|
2375
|
-
"analyzing": "📊 検出されたテキストを分析中...",
|
|
2376
|
-
"generating": "📄 レポートを生成中...",
|
|
2377
|
-
"complete": "✅ スキャンが完了しました",
|
|
2378
|
-
"found": "🎯 {count} 個の翻訳が必要な項目を検出しました"
|
|
2379
|
-
},
|
|
2380
|
-
"results": {
|
|
2381
|
-
"title": "📊 スキャン結果",
|
|
2382
|
-
"summary": "サマリー",
|
|
2383
|
-
"filesScanned": "スキャンしたファイル数",
|
|
2384
|
-
"textItemsFound": "検出したテキスト項目数",
|
|
2385
|
-
"uniqueTexts": "一意のテキスト",
|
|
2386
|
-
"filesWithText": "テキストを含むファイル数",
|
|
2387
|
-
"exportLocation": "エクスポート先"
|
|
2388
|
-
},
|
|
2389
|
-
"prompts": {
|
|
2390
|
-
"selectFramework": "フレームワークを選択してください:",
|
|
2391
|
-
"enterSourceDir": "ソースディレクトリを入力してください",
|
|
2392
|
-
"enterOutputDir": "出力ディレクトリを入力してください",
|
|
2393
|
-
"confirmScan": "スキャンを開始しますか?",
|
|
2394
|
-
"saveReport": "レポートを保存しますか?"
|
|
2395
|
-
},
|
|
2396
|
-
"errors": {
|
|
2397
|
-
"invalidDirectory": "無効なディレクトリです",
|
|
2398
|
-
"noFilesFound": "スキャンするファイルが見つかりませんでした",
|
|
2399
|
-
"scanFailed": "スキャンに失敗しました",
|
|
2400
|
-
"exportFailed": "レポートのエクスポートに失敗しました"
|
|
2401
|
-
},
|
|
2402
|
-
"help": {
|
|
2403
|
-
"examples": "使用例:",
|
|
2404
|
-
"example1": "i18ntk-scanner --source-dir ./src --framework react",
|
|
2405
|
-
"example2": "i18ntk-scanner --patterns 'console\\.log\\s*\\([^)]*'",
|
|
2406
|
-
"example3": "i18ntk-scanner --extensions js,ts,tsx --min-length 3"
|
|
2407
|
-
},
|
|
2408
|
-
"help_options": {
|
|
2409
|
-
"source_dir": "スキャンするディレクトリ",
|
|
2410
|
-
"output_dir": "結果出力ファイル",
|
|
2411
|
-
"framework": "対象フレームワーク (react, vue, angular, vanilla)",
|
|
2412
|
-
"patterns": "カスタム正規表現パターン (カンマ区切り)",
|
|
2413
|
-
"exclude": "除外するディレクトリ (カンマ区切り)",
|
|
2414
|
-
"output_report": "レポート出力ファイル",
|
|
2415
|
-
"min_length": "含めるテキストの最小長",
|
|
2416
|
-
"max_length": "含めるテキストの最大長",
|
|
2417
|
-
"include_tests": "テストファイルをスキャンに含める"
|
|
2418
|
-
},
|
|
2419
|
-
"reportGenerated": "Scan report generated: {path}",
|
|
2420
|
-
"help_message": "I18n Text Scanner Usage: node i18ntk-scanner.js [options] Options: --source-dir <dir> Source directory to scan (default: ./src) --output <file> Output file for scan results (default: ./i18ntk-scanner-report.json) --framework <name> Framework to target (react, vue, angular, vanilla) --patterns <patterns> Custom regex patterns (comma-separated) --include-tests Include test files in scan --exclude-dirs <dirs> Directories to exclude (comma-separated) --help Show this help Examples: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
|
|
2421
|
-
"starting": "🔍 Starting text scanner for framework: {framework}",
|
|
2422
|
-
"sourceDirectory": "📁 Scanning directory: {sourceDir}",
|
|
2423
|
-
"frameworkDetected": "🎯 Detected framework: {framework}",
|
|
2424
|
-
"scanningFiles": "📊 Scanning {fileCount} files...",
|
|
2425
|
-
"foundTexts": "📝 Found {textCount} texts requiring translation",
|
|
2426
|
-
"generatingReport": "📊 Generating detailed report...",
|
|
2427
|
-
"reportSaved": "💾 Scan report saved to: {reportPath}",
|
|
2428
|
-
"noTextsFound": "✅ No hardcoded English texts found",
|
|
2429
|
-
"scanComplete": "🎉 Scan completed successfully!",
|
|
2430
|
-
"analysisTitle": "🔍 TRANSLATION SCAN ANALYSIS",
|
|
2431
|
-
"fileSummary": "📄 {file}: {count} texts found",
|
|
2432
|
-
"textLocation": "📍 Line {line}: {text}",
|
|
2433
|
-
"context": "📝 Context: {context}",
|
|
2434
|
-
"severity": "⚠️ Severity: {severity}",
|
|
2435
|
-
"recommendation": "💡 Recommendation: {recommendation}",
|
|
2436
|
-
"welcome": {
|
|
2437
|
-
"title": "🎯 Welcome to the Text Scanner!",
|
|
2438
|
-
"description": "This tool scans your source code for hardcoded English text that may need translation."
|
|
2439
|
-
},
|
|
2440
|
-
"frameworkPrompt": {
|
|
2441
|
-
"title": "🎯 Select Framework",
|
|
2442
|
-
"available": "Available frameworks: react, vue, angular, vanilla",
|
|
2443
|
-
"description": "Enter the framework type (or press Enter for auto-detection):",
|
|
2444
|
-
"input": "Framework:"
|
|
2445
|
-
},
|
|
2446
|
-
"directoryPrompt": {
|
|
2447
|
-
"title": "📁 Select Source Directory",
|
|
2448
|
-
"current": "Current directory: {dir}",
|
|
2449
|
-
"description": "Enter the directory to scan (or press Enter for current):",
|
|
2450
|
-
"input": "Directory:"
|
|
2451
|
-
}
|
|
2452
|
-
},
|
|
2453
2402
|
"checkUsage": {
|
|
2454
|
-
"usage_analysis_failed": "
|
|
2403
|
+
"usage_analysis_failed": "使用状況の分析に失敗しました。"
|
|
2455
2404
|
},
|
|
2456
2405
|
"completeTranslations": {
|
|
2457
|
-
"warning_could_not_parse_filepa": "
|
|
2406
|
+
"warning_could_not_parse_filepa": "警告: ファイル パスを解析できませんでした: {filePath}"
|
|
2458
2407
|
},
|
|
2459
|
-
"pressEnterToContinue": "
|
|
2408
|
+
"pressEnterToContinue": "Enter キーを押して続行します...",
|
|
2460
2409
|
"status": {
|
|
2461
|
-
"exitingCompleted": "
|
|
2410
|
+
"exitingCompleted": "ワークフローが完了しました。終了中..."
|
|
2462
2411
|
}
|
|
2463
2412
|
}
|