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/zh.json
CHANGED
|
@@ -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": "⚠️ 源目录等于国际化目录 ({sourceDir})。回退到 {fallback} 进行源扫描。"
|
|
64
|
-
"initializationCancelled": "❌ Initialization cancelled by user."
|
|
64
|
+
"sourceEqualsI18nWarn": "⚠️ 源目录等于国际化目录 ({sourceDir})。回退到 {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,16 +99,9 @@
|
|
|
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
|
-
"initializationCancelled": "🚫 初始化被用户取消。",
|
|
103
|
-
"languageCompletenessTitle": "📈 翻译完整性按语言",
|
|
104
102
|
"startingSettings": "🎛️ 开始设置 CLI...",
|
|
105
|
-
"
|
|
103
|
+
"confirm": "确认",
|
|
104
|
+
"errorExiting": "退出时出错。"
|
|
106
105
|
},
|
|
107
106
|
"errors": {
|
|
108
107
|
"invalidOption": "❌ 无效的选项:{option}。请重试。",
|
|
@@ -110,7 +109,59 @@
|
|
|
110
109
|
"noPackageJson": "未找到 package.json 文件。无法自动检测 i18n 框架。",
|
|
111
110
|
"noI18nDir": "未在项目根目录找到 i18n 目录。",
|
|
112
111
|
"noI18nConfig": "未在项目根目录找到 i18n 配置文件。",
|
|
113
|
-
"errorReadingDebugLogs": "
|
|
112
|
+
"errorReadingDebugLogs": "读取调试日志时出错:{error}"
|
|
113
|
+
},
|
|
114
|
+
"scanner": {
|
|
115
|
+
"help_message": "i18n文本扫描器 使用方法: node i18ntk-scanner.js [选项] 选项: --source-dir <目录> 要扫描的源目录 (默认: ./src) --output <文件> 结果输出文件 (默认: ./i18ntk-scanner-report.json) --framework <名称> 目标框架 (react, vue, angular, vanilla) --patterns <模式> 自定义正则表达式模式 (逗号分隔) --include-tests 在扫描中包含测试文件 --exclude-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=./扫描结果.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": "📝 找到 {count} 个需要翻译的文本",
|
|
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": "输入框架类型 (或按回车键自动检测):",
|
|
151
|
+
"input": "框架:"
|
|
152
|
+
},
|
|
153
|
+
"directoryPrompt": {
|
|
154
|
+
"title": "📁 选择源目录",
|
|
155
|
+
"current": "当前目录: {dir}",
|
|
156
|
+
"description": "输入要扫描的目录 (或按回车键使用当前目录):",
|
|
157
|
+
"input": "目录:"
|
|
158
|
+
},
|
|
159
|
+
"options": {
|
|
160
|
+
"includeTests": "包含测试文件?",
|
|
161
|
+
"excludeDirs": "要排除的目录 (逗号分隔):",
|
|
162
|
+
"customPatterns": "要扫描的自定义模式 (正则表达式):"
|
|
163
|
+
},
|
|
164
|
+
"reportGenerated": "生成的扫描报告:{path}"
|
|
114
165
|
},
|
|
115
166
|
"fixer": {
|
|
116
167
|
"help_message": "I18n 翻译修复工具 用法: node i18ntk-fixer.js [选项] 选项: --source-dir <dir> 要扫描的源目录(默认: ./locales) --languages <langs> 要修复的语言列表,用逗号分隔 --markers <markers> 视为未翻译的标记列表,用逗号分隔 --no-backup 跳过自动备份创建 --help 显示此帮助信息 示例: node i18ntk-fixer.js --languages de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
|
|
@@ -147,7 +198,7 @@
|
|
|
147
198
|
"choicePrompt": "请选择 (y/n/s):",
|
|
148
199
|
"nonInteractiveMode": "⚡ 检测到非交互模式 - 自动应用修复...",
|
|
149
200
|
"reportGenerated": "📊 修复报告已生成: {path}",
|
|
150
|
-
"summary": "
|
|
201
|
+
"summary": "固定器总结:",
|
|
151
202
|
"welcome": {
|
|
152
203
|
"title": "🎯 欢迎使用翻译修复工具!",
|
|
153
204
|
"description": "此工具将帮助您修复语言文件中损坏的翻译和占位符标记。"
|
|
@@ -171,16 +222,16 @@
|
|
|
171
222
|
"description": "输入包含语言文件的目录(或按Enter使用当前目录):",
|
|
172
223
|
"input": "目录:"
|
|
173
224
|
},
|
|
174
|
-
"backupLocation": "
|
|
175
|
-
"completed": "
|
|
176
|
-
"creatingBackup": "
|
|
177
|
-
"dryRunMode": "
|
|
178
|
-
"error": "
|
|
179
|
-
"fixing": "
|
|
180
|
-
"foundLanguages": "
|
|
181
|
-
"languageFixed": "{language}
|
|
182
|
-
"running": "
|
|
183
|
-
"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}"
|
|
184
235
|
},
|
|
185
236
|
"autorun": {
|
|
186
237
|
"stepAnalyzeTranslations": "分析翻译",
|
|
@@ -437,26 +488,25 @@
|
|
|
437
488
|
"no_translation_files_found": "未找到翻译文件",
|
|
438
489
|
"analysis_completed": "分析在${duration}毫秒内完成",
|
|
439
490
|
"analysis_failed": "分析失败: {errorMessage}",
|
|
491
|
+
"starting_analysis": "正在开始分析...",
|
|
492
|
+
"found_files": "找到 {count} 个文件",
|
|
440
493
|
"failed_to_parse_language_error": "无法解析${language}翻译: {errorMessage}",
|
|
441
494
|
"recommendations": {
|
|
442
495
|
"keys_have_significant_size_variations": "键有显著的大小变化",
|
|
443
496
|
"consider_reviewing_translations": "考虑检查 ${lang} 翻译 - 它们比基准 ${comparison} ${percentageDifference}%",
|
|
444
497
|
"long_translations_detected": "${lang} 有 ${data.longKeys} 个翻译超过 ${data.threshold} 个字符 - 考虑拆分它们"
|
|
445
498
|
},
|
|
446
|
-
"
|
|
447
|
-
"
|
|
448
|
-
"
|
|
449
|
-
"
|
|
450
|
-
"
|
|
451
|
-
"
|
|
452
|
-
"status_long": "long",
|
|
453
|
-
"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": "好的"
|
|
454
505
|
},
|
|
455
506
|
"usage": {
|
|
456
507
|
"help_message": "国际化使用分析器 用法: 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",
|
|
457
508
|
"source_directory_thissourcedir": "📁 源目录: {sourceDir}",
|
|
458
509
|
"translationCompletenessTitle": "🌍 翻译完整性:",
|
|
459
|
-
"failedToExtractKeys": "提取键时出错:{error}",
|
|
460
510
|
"i18n_directory_thisi18ndir": "🌐 I18n 目录: {i18nDir}",
|
|
461
511
|
"failed_to_parse_filename_error": "⚠️ 解析失败 {fileName}: {errorMessage}",
|
|
462
512
|
"analyzing_source_files": "🔍 正在分析源文件...",
|
|
@@ -466,6 +516,7 @@
|
|
|
466
516
|
"loading_available_translation_": "📋 正在加载可用翻译键...",
|
|
467
517
|
"found_thisavailablekeyssize_av": "✅ 找到 {availableKeysSize} 个可用键",
|
|
468
518
|
"foundTranslationFiles": "✅ 找到 {count} 个翻译文件",
|
|
519
|
+
"errorReadingI18nDirectory": "⚠️ 读取 i18n 目录时出错: {error}",
|
|
469
520
|
"pressEnterToReturnToMenu": "📝 按 Enter 键返回主菜单...",
|
|
470
521
|
"notTranslatedKeysTotal": "⚠️ 未翻译键: {total}",
|
|
471
522
|
"noSourceFilesFound": "⚠️ 未找到源文件目录中的源文件。",
|
|
@@ -476,6 +527,8 @@
|
|
|
476
527
|
"fileInfo": "📄 {namespace}: {keys} 个键",
|
|
477
528
|
"failedToAnalyzeUsage": "❌ 使用分析失败: {error}",
|
|
478
529
|
"failedToAnalyzeFile": "❌ 文件分析失败: {error}",
|
|
530
|
+
"failedToExtractKeys": "提取键时出错:{error}",
|
|
531
|
+
"analysisFailedError": "❌ 分析失败: {error}",
|
|
479
532
|
"analyzerInitialized": "分析器已初始化",
|
|
480
533
|
"analyzerInitFailed": "分析器初始化失败: {error}",
|
|
481
534
|
"argsParsed": "参数已解析",
|
|
@@ -483,9 +536,9 @@
|
|
|
483
536
|
"argsParseFailed": "参数解析失败: {error}",
|
|
484
537
|
"translationDiscoveryError": "翻译发现错误: {error}",
|
|
485
538
|
"fileTraversalError": "文件遍历错误: {error}",
|
|
486
|
-
"usageAnalysisFailed": "使用分析失败: {error}",
|
|
487
539
|
"sourceEqualsI18nWarn": "⚠️ 源目录和 i18n 目录相同。这可能会导致分析问题。",
|
|
488
540
|
"i18nEqualsSourceWarn": "⚠️ I18n 目录和源目录相同。这可能会导致分析问题。",
|
|
541
|
+
"usageAnalysisFailed": "使用分析失败: {error}",
|
|
489
542
|
"translationFileParseError": "⚠️ 翻译文件解析错误: {error}",
|
|
490
543
|
"translationKeysLoadError": "⚠️ 翻译键加载错误: {error}",
|
|
491
544
|
"languageCompletenessStats": "🌍 {language}: {translated}/{total} ({completeness}% 已翻译)",
|
|
@@ -499,53 +552,53 @@
|
|
|
499
552
|
"sourceDirectoryNotFound": "⚠️ 未找到源目录:{dir}",
|
|
500
553
|
"checkUsage": {
|
|
501
554
|
"title": "🔍 国际化使用分析",
|
|
502
|
-
"
|
|
503
|
-
"help_message": "国际化使用分析器 用法: 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": "🔍 正在分析源文件...",
|
|
504
556
|
"source_directory_thissourcedir": "📁 源目录: {sourceDir}",
|
|
505
557
|
"i18n_directory_thisi18ndir": "🌐 I18n 目录: {i18nDir}",
|
|
506
|
-
"loading_available_translation_": "📋 正在加载可用翻译键...",
|
|
507
|
-
"found_thisavailablekeyssize_av": "✅ 找到 {availableKeysSize} 个可用键",
|
|
508
|
-
"analyzing_source_files": "🔍 正在分析源文件...",
|
|
509
558
|
"found_files_in_source": "📂 在源目录中找到 {numFiles} 个文件",
|
|
559
|
+
"no_source_files_found": "⚠️ 未找到源文件",
|
|
560
|
+
"processedFiles": "已处理 {processedFiles} / {totalFiles} 个文件。",
|
|
561
|
+
"failedToProcessFile": "❌ 处理文件 {filePath} 失败: {error}",
|
|
510
562
|
"found_thisusedkeyssize_unique_": "🎯 找到 {usedKeysSize} 个唯一使用键",
|
|
511
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}",
|
|
512
574
|
"translation_completeness_title": "📊 翻译完整性",
|
|
513
575
|
"language_completeness_stats": "{language}: {translated}/{total} ({completeness}% 已翻译)",
|
|
514
576
|
"n_sample_unused_keys": "示例未使用键:",
|
|
515
577
|
"key": "- {key}",
|
|
516
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}",
|
|
517
583
|
"n_recommendations": "📋 建议",
|
|
518
584
|
"consider_removing_unused_trans": "💡 考虑移除未使用的翻译以保持项目整洁。",
|
|
585
|
+
"add_missing_translation_keys_t": "➕ 向翻译文件添加缺失键以保持一致性",
|
|
586
|
+
"review_dynamic_keys_manually_t": "🔍 手动检查动态键 (可能有效)",
|
|
587
|
+
"all_translation_keys_are_prope": "✅ 所有翻译键都已正确使用!",
|
|
519
588
|
"n_next_steps": "📋 下一步",
|
|
589
|
+
"2_check_the_detailed_report_fo": "2. 检查详细报告以获取特定问题",
|
|
590
|
+
"help_message": "国际化使用分析器 用法: 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",
|
|
520
591
|
"1_review_the_analysis_results": "1. 在控制台或生成的报告中查看分析结果。",
|
|
521
592
|
"2_run_with_outputreport_for_de": "2. 使用 --output-report 运行以获取详细报告。",
|
|
522
593
|
"3_remove_unused_keys_or_add_mi": "3. 移除未使用的键或在源代码中添加缺失的键。",
|
|
523
594
|
"4_rerun_analysis_to_verify_imp": "4. 重新运行分析以验证改进。",
|
|
524
|
-
"usage_analysis_results": "📊 使用分析结果",
|
|
525
|
-
"source_files_scanned_thisfileu": "已扫描源文件: {fileUsageSize}",
|
|
526
|
-
"available_translation_keys_thi": "可用翻译键: {availableKeysSize}",
|
|
527
|
-
"used_translation_keys_thisused": "已使用翻译键: {usedKeysSize}",
|
|
528
|
-
"dynamic_keys_detected_dynamick": "检测到动态键: {dynamicKeysLength}",
|
|
529
|
-
"unused_keys_unusedkeyslength": "未使用键: {unusedKeysLength}",
|
|
530
|
-
"missing_keys_missingkeyslength": "缺失键: {missingKeysLength}",
|
|
531
595
|
"noSourceFilesFound": "未找到要分析的源文件。",
|
|
532
|
-
"processedFiles": "已处理 {processedFiles} / {totalFiles} 个文件。",
|
|
533
596
|
"i18nDirectoryNotFound": "未找到 I18n 目录: {i18nDir}",
|
|
534
597
|
"noTranslationLanguagesFound": "未找到翻译语言。",
|
|
535
598
|
"failedToAnalyzeFile": "分析文件 {filePath} 失败: {error}",
|
|
536
599
|
"failedToAnalyzeLanguage": "分析语言 {language} 失败: {error}",
|
|
537
600
|
"translationCompletenessAnalysisFailed": "翻译完整性分析失败: {error}",
|
|
538
|
-
"n": ""
|
|
539
|
-
"no_source_files_found": "⚠️ 未找到源文件",
|
|
540
|
-
"failedToProcessFile": "❌ 处理文件 {filePath} 失败: {error}",
|
|
541
|
-
"n_sample_missing_keys": "❌ 示例缺失键 (前 5 个):",
|
|
542
|
-
"and_missingkeyslength_5_more": "...以及 {count} 个更多缺失键",
|
|
543
|
-
"n_generating_detailed_report": "📊 正在生成详细报告...",
|
|
544
|
-
"report_saved_reportpath": "📄 报告已保存: {reportPath}",
|
|
545
|
-
"add_missing_translation_keys_t": "➕ 向翻译文件添加缺失键以保持一致性",
|
|
546
|
-
"review_dynamic_keys_manually_t": "🔍 手动检查动态键 (可能有效)",
|
|
547
|
-
"all_translation_keys_are_prope": "✅ 所有翻译键都已正确使用!",
|
|
548
|
-
"2_check_the_detailed_report_fo": "2. 检查详细报告以获取特定问题"
|
|
601
|
+
"n": "\\n"
|
|
549
602
|
},
|
|
550
603
|
"complete": {
|
|
551
604
|
"configLoadedSuccessfully": "配置加载成功",
|
|
@@ -585,13 +638,11 @@
|
|
|
585
638
|
"noTranslationLanguagesFound": "未找到翻译语言。",
|
|
586
639
|
"failedToAnalyzeLanguage": "分析语言 {language} 失败: {error}",
|
|
587
640
|
"translationCompletenessAnalysisFailed": "翻译完整性分析失败: {error}",
|
|
588
|
-
"
|
|
589
|
-
"
|
|
590
|
-
"
|
|
591
|
-
"
|
|
592
|
-
"
|
|
593
|
-
"reportSavedTo": "Usage report saved to: {reportPath}",
|
|
594
|
-
"sourceDirectoryDoesNotExist": "Source directory does not exist: {dir}"
|
|
641
|
+
"failedToProcessFile": "处理文件失败:",
|
|
642
|
+
"failedToSaveReport": "无法保存使用报告:{error}",
|
|
643
|
+
"i18nDirectoryDoesNotExist": "国际化目录不存在:{dir}",
|
|
644
|
+
"reportSavedTo": "使用情况报告保存至:{reportPath}",
|
|
645
|
+
"sourceDirectoryDoesNotExist": "源目录不存在:{dir}"
|
|
595
646
|
},
|
|
596
647
|
"validate": {
|
|
597
648
|
"help_message": "I18n翻译验证器 用法: node 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",
|
|
@@ -689,8 +740,8 @@
|
|
|
689
740
|
"failedToCreateSampleTranslationFile": "创建示例翻译文件失败",
|
|
690
741
|
"invalidFilePathDetected": "检测到无效的文件路径",
|
|
691
742
|
"failedToWriteFile": "写入文件失败: {filePath}",
|
|
692
|
-
"invalidSourceDirectory": "
|
|
693
|
-
"invalidSourceLanguageDirectory": "
|
|
743
|
+
"invalidSourceDirectory": "无效的源目录:{sourceDir}",
|
|
744
|
+
"invalidSourceLanguageDirectory": "无效的源语言目录:{sourceDir}"
|
|
694
745
|
},
|
|
695
746
|
"adminCli": {
|
|
696
747
|
"setupPinProtectionTitle": "🔐 设置管理员PIN保护",
|
|
@@ -939,18 +990,17 @@
|
|
|
939
990
|
"initializationTitle": "🚀 i18n 管理工具 - 项目初始化",
|
|
940
991
|
"initializationCancelled": "🚫 初始化已被用户取消。",
|
|
941
992
|
"sourceDirectoryLabel": "📁 源目录:{dir}",
|
|
942
|
-
"createdSourceLanguageDirectory": "✅ 创建源语言目录:{dir}",
|
|
943
993
|
"requiredTitle": "需要初始化",
|
|
944
994
|
"requiredBody": "在运行此命令之前,必须先初始化项目。",
|
|
945
995
|
"promptRunNow": "现在要运行初始化吗?(y/N):",
|
|
946
996
|
"sourceLanguageLabel": "🌍 源语言:{language}",
|
|
947
997
|
"detectedI18nFrameworks": "🔍 检测到的 i18n 框架:{frameworks}",
|
|
998
|
+
"pinMustBe4Digits": "🔐 PIN 必须是 4 位数字。",
|
|
948
999
|
"existingDirectoriesFound": "📁 发现已有翻译目录:",
|
|
949
1000
|
"useExistingDirectoryPrompt": "要使用已有目录吗?(y/n)",
|
|
950
1001
|
"selectDirectoryPrompt": "选择目录(输入数字或选择 '创建新目录'):",
|
|
951
1002
|
"enterNewDirectoryName": "输入新目录名称:",
|
|
952
1003
|
"createdNewDirectory": "✅ 已创建新目录: {dir}",
|
|
953
|
-
"pinMustBe4Digits": "🔐 PIN 必须是 4 位数字。",
|
|
954
1004
|
"directoryAlreadyExists": "⚠️ 目录已存在:{dir}",
|
|
955
1005
|
"invalidDirectoryName": "❌ 无效目录名称:{name}",
|
|
956
1006
|
"usingExistingDirectory": "使用现有目录: {dir}",
|
|
@@ -1017,15 +1067,15 @@
|
|
|
1017
1067
|
"installFramework": "要安装框架,请运行:npm install <包名>"
|
|
1018
1068
|
},
|
|
1019
1069
|
"frameworks": {
|
|
1020
|
-
"react": "-
|
|
1021
|
-
"vue": "-
|
|
1070
|
+
"react": "- 反应 i18next (react-i18next)",
|
|
1071
|
+
"vue": "-Vue i18n (vue-i18n)",
|
|
1022
1072
|
"i18next": "- i18next (i18next)",
|
|
1023
|
-
"nuxt": "- Nuxt
|
|
1073
|
+
"nuxt": "- Nuxt ??? (@nuxtjs/i18n)",
|
|
1024
1074
|
"svelte": "- Svelte i18n (svelte-i18n)"
|
|
1025
1075
|
},
|
|
1026
1076
|
"continueWithoutI18nPrompt": "未检测到 i18n 框架。是否继续?(y/N):",
|
|
1027
1077
|
"detectedI18nFramework": "检测到 i18n 框架:{frameworks}",
|
|
1028
|
-
"existingDirectoryItem": "{index}
|
|
1078
|
+
"existingDirectoryItem": "{index}。 {location}",
|
|
1029
1079
|
"usingExistingStructure": "使用已有结构:{dir}",
|
|
1030
1080
|
"creatingSourceDirectory": "创建源目录:{dir}",
|
|
1031
1081
|
"creatingSourceLanguageDirectory": "创建源语言目录:{dir}",
|
|
@@ -1036,34 +1086,36 @@
|
|
|
1036
1086
|
"noJsonFilesInSourceDirectory": "源目录中未找到 JSON 文件:{dir}",
|
|
1037
1087
|
"invalidFilePathDetected": "检测到无效的文件路径",
|
|
1038
1088
|
"initializationFailed": "初始化失败:{error}",
|
|
1039
|
-
"noFramework": "
|
|
1040
|
-
"packageJsonRead": "
|
|
1089
|
+
"noFramework": "未检测到 i18n 框架。继续通用模式。",
|
|
1090
|
+
"packageJsonRead": "读取 package.json 时出错。"
|
|
1041
1091
|
},
|
|
1042
1092
|
"processingFile": "正在为 {language} 处理文件 {file}...",
|
|
1043
1093
|
"fileAlreadyExistsMerging": "文件 {file} 已存在。正在合并新键。",
|
|
1044
1094
|
"createdNewFile": "已创建新文件:{file}",
|
|
1045
1095
|
"updatedFile": "已更新文件:{file}",
|
|
1046
1096
|
"skippingExcludedFile": "已跳过 {language} 的 {file},因其在排除列表中。",
|
|
1047
|
-
"continuingWithoutAdminPin": "
|
|
1048
|
-
"
|
|
1049
|
-
"
|
|
1050
|
-
"
|
|
1051
|
-
"
|
|
1052
|
-
"
|
|
1053
|
-
"
|
|
1097
|
+
"continuingWithoutAdminPin": "无需设置管理员 PIN 码即可继续。",
|
|
1098
|
+
"createdSourceLanguageDirectory": "✅ 创建源语言目录:{dir}",
|
|
1099
|
+
"errorSettingUpAdminPin": "设置管理员 PIN 码时出错:{error}",
|
|
1100
|
+
"noTargetLanguagesSpecified": "未指定目标语言。",
|
|
1101
|
+
"translationFilesCreatedWarning": "翻译文件是使用占位符创建的;生产使用前进行审查。",
|
|
1102
|
+
"warningCannotReadSourceDir": "警告:无法读取源目录 {dir}:{error}",
|
|
1103
|
+
"warningInvalidLanguageCodes": "警告:忽略无效的语言代码:{languages}",
|
|
1104
|
+
"warningProceedingWithoutFramework": "未检测到 i18n 框架即可继续。"
|
|
1054
1105
|
},
|
|
1055
1106
|
"language": {
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
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 继续..."
|
|
1067
1119
|
},
|
|
1068
1120
|
"maintainLanguagePurity": {
|
|
1069
1121
|
"workflow_title": "🚀 语言纯洁度维护工作流",
|
|
@@ -1093,6 +1145,7 @@
|
|
|
1093
1145
|
"complete": "🎯 完成翻译(100% 覆盖)",
|
|
1094
1146
|
"sizing": "📏 分析大小差异",
|
|
1095
1147
|
"fix": "🛠️ 修复占位翻译",
|
|
1148
|
+
"scanner": "🔍 扫描i18n问题",
|
|
1096
1149
|
"workflow": "🔄 运行完整工作流",
|
|
1097
1150
|
"status": "📋 显示项目状态",
|
|
1098
1151
|
"delete": "🗑️ 删除全部报告",
|
|
@@ -1100,7 +1153,6 @@
|
|
|
1100
1153
|
"settings": "⚙️ 设置",
|
|
1101
1154
|
"help": "❓ 帮助",
|
|
1102
1155
|
"debug": "🔧 调试工具",
|
|
1103
|
-
"scanner": "🔍 扫描i18n问题",
|
|
1104
1156
|
"exit": "🚪 退出"
|
|
1105
1157
|
},
|
|
1106
1158
|
"update": "📦 更新软件包",
|
|
@@ -1119,7 +1171,7 @@
|
|
|
1119
1171
|
"autoDetectedI18nDirectory": "📂 自动检测到的 i18n 目录:{directory}",
|
|
1120
1172
|
"executingCommand": "正在执行命令:{command}",
|
|
1121
1173
|
"unknownCommand": "未知命令:{command}",
|
|
1122
|
-
"languageOption": "{index}
|
|
1174
|
+
"languageOption": "{index}。 {displayName}{current}",
|
|
1123
1175
|
"debugTools": {
|
|
1124
1176
|
"1": "日志文件分析",
|
|
1125
1177
|
"2": "翻译键使用分析",
|
|
@@ -1341,6 +1393,7 @@
|
|
|
1341
1393
|
"goodbyeMessage": "感谢使用 i18ntk 设置管理器!",
|
|
1342
1394
|
"relativePathHint": "请使用相对路径(例如:./src/i18n/locales)",
|
|
1343
1395
|
"currentDirectory": "当前项目目录",
|
|
1396
|
+
"startingSettings": "开始设置...",
|
|
1344
1397
|
"pin": "PIN:",
|
|
1345
1398
|
"reportBug": {
|
|
1346
1399
|
"title": "报告错误",
|
|
@@ -1404,8 +1457,8 @@
|
|
|
1404
1457
|
"promptDesc": "注意:这会将 i18ntk 包更新到最新版本。",
|
|
1405
1458
|
"confirm": "y",
|
|
1406
1459
|
"cancelled": "更新已取消。",
|
|
1407
|
-
"error": "
|
|
1408
|
-
"updating": "
|
|
1460
|
+
"error": "更新包失败",
|
|
1461
|
+
"updating": "正在更新包..."
|
|
1409
1462
|
},
|
|
1410
1463
|
"admin": {
|
|
1411
1464
|
"selectOption": "选择操作:",
|
|
@@ -1462,11 +1515,11 @@
|
|
|
1462
1515
|
"importFailed": "导入设置失败:${error}",
|
|
1463
1516
|
"backupSuccess": "已创建备份:${file}",
|
|
1464
1517
|
"backupFailed": "创建备份失败:${error}",
|
|
1465
|
-
"exportFilenamePrompt": "
|
|
1466
|
-
"importConfirm": "
|
|
1467
|
-
"importFilenamePrompt": "
|
|
1468
|
-
"manageBackups": "
|
|
1469
|
-
"restore": "
|
|
1518
|
+
"exportFilenamePrompt": "输入导出文件名:",
|
|
1519
|
+
"importConfirm": "导入此设置文件? (是/否):",
|
|
1520
|
+
"importFilenamePrompt": "输入导入文件名:",
|
|
1521
|
+
"manageBackups": "管理备份",
|
|
1522
|
+
"restore": "恢复设置"
|
|
1470
1523
|
},
|
|
1471
1524
|
"selectOption": "请选择操作:",
|
|
1472
1525
|
"resetToDefaultsTitle": "重置为默认值",
|
|
@@ -1475,10 +1528,10 @@
|
|
|
1475
1528
|
"resetConfirm": "确定要继续吗?(y/N):",
|
|
1476
1529
|
"resetSuccess": "设置已成功重置为默认值。",
|
|
1477
1530
|
"resetFailed": "重置设置失败:{error}",
|
|
1478
|
-
"saveSuccess": "设置已成功保存。",
|
|
1479
|
-
"saveFailed": "保存设置失败。",
|
|
1480
1531
|
"resetDone": "设置已成功重置为默认值。",
|
|
1481
1532
|
"resetScriptDirsDone": "脚本目录已成功重置为系统默认值。",
|
|
1533
|
+
"saveSuccess": "设置已成功保存。",
|
|
1534
|
+
"saveFailed": "保存设置失败。",
|
|
1482
1535
|
"saveError": "保存设置时出错:{error}",
|
|
1483
1536
|
"pressEnter": "按 Enter 继续…",
|
|
1484
1537
|
"initFailed": "初始化设置失败:{error}",
|
|
@@ -1833,13 +1886,13 @@
|
|
|
1833
1886
|
"description": "将所有 PIN 保护设置重置为默认值",
|
|
1834
1887
|
"help": "将各脚本的 PIN 保护设置恢复为默认值"
|
|
1835
1888
|
},
|
|
1836
|
-
"${helperKey}": {
|
|
1837
|
-
"help": "帮助"
|
|
1838
|
-
},
|
|
1839
1889
|
"removeUiLanguages": {
|
|
1840
1890
|
"label": "删除 UI 语言",
|
|
1841
1891
|
"description": "删除未安装的 UI 语言",
|
|
1842
1892
|
"help": "删除未安装在系统上的 UI 语言"
|
|
1893
|
+
},
|
|
1894
|
+
"${helperKey}": {
|
|
1895
|
+
"help": "帮助"
|
|
1843
1896
|
}
|
|
1844
1897
|
},
|
|
1845
1898
|
"actions": {
|
|
@@ -1918,11 +1971,10 @@
|
|
|
1918
1971
|
"confirmYes": "是",
|
|
1919
1972
|
"confirmNo": "否"
|
|
1920
1973
|
},
|
|
1921
|
-
"startingSettings": "开始设置...",
|
|
1922
1974
|
"validation": {
|
|
1923
|
-
"valid": "
|
|
1924
|
-
"validatingPaths": "
|
|
1925
|
-
"validationComplete": "
|
|
1975
|
+
"valid": "有效的",
|
|
1976
|
+
"validatingPaths": "正在验证配置的路径...",
|
|
1977
|
+
"validationComplete": "路径验证完成:{valid}/{total} 有效。"
|
|
1926
1978
|
}
|
|
1927
1979
|
},
|
|
1928
1980
|
"summary": {
|
|
@@ -2058,8 +2110,8 @@
|
|
|
2058
2110
|
"sizingCommand": "sizing - 分析大小差异",
|
|
2059
2111
|
"completeCommand": "complete - 完成翻译(100% 覆盖)",
|
|
2060
2112
|
"summaryCommand": "summary - 显示项目状态",
|
|
2061
|
-
"
|
|
2062
|
-
"
|
|
2113
|
+
"scannerCommand": "scanner - 🔍 扫描i18n问题",
|
|
2114
|
+
"debugCommand": "debug - 调试翻译问题"
|
|
2063
2115
|
},
|
|
2064
2116
|
"test_complete_system": {
|
|
2065
2117
|
"starting_test": "🧪 正在启动完整系统测试",
|
|
@@ -2082,9 +2134,9 @@
|
|
|
2082
2134
|
"error_message": "- {error}",
|
|
2083
2135
|
"overall_status": "📊 总体状态:{status}",
|
|
2084
2136
|
"success_message": "✅ {message}",
|
|
2085
|
-
"failure_message": "❌
|
|
2137
|
+
"failure_message": "❌{message}",
|
|
2086
2138
|
"failure_error_message": "{errorMessage}",
|
|
2087
|
-
"warning_message": "⚠️
|
|
2139
|
+
"warning_message": "⚠️{message}",
|
|
2088
2140
|
"test_runner_failed": "❌ 测试运行器失败:",
|
|
2089
2141
|
"recommendations": {
|
|
2090
2142
|
"add_missing_translation_keys": "添加缺失的翻译键以保持一致性",
|
|
@@ -2157,14 +2209,14 @@
|
|
|
2157
2209
|
"error_general": "❌ 错误:",
|
|
2158
2210
|
"use_help": "使用 --help 查看用法信息"
|
|
2159
2211
|
},
|
|
2160
|
-
"cleaningUpReportFiles": "
|
|
2161
|
-
"couldNotDelete": "
|
|
2162
|
-
"deletedOldReportFiles": "
|
|
2163
|
-
"errorCleaningUpReports": "
|
|
2164
|
-
"noOldReportFilesToDelete": "
|
|
2165
|
-
"reportFilesPreserved": "
|
|
2166
|
-
"reportSaveFailed": "
|
|
2167
|
-
"reportSaved": "
|
|
2212
|
+
"cleaningUpReportFiles": "清理旧报告文件...",
|
|
2213
|
+
"couldNotDelete": "无法删除 {file}:{error}",
|
|
2214
|
+
"deletedOldReportFiles": "已删除 {count} 旧报告文件。",
|
|
2215
|
+
"errorCleaningUpReports": "清理报告时出错:{error}",
|
|
2216
|
+
"noOldReportFilesToDelete": "没有要删除的旧报告文件。",
|
|
2217
|
+
"reportFilesPreserved": "报告文件已保存。",
|
|
2218
|
+
"reportSaveFailed": "无法将报告保存到:{reportPath}",
|
|
2219
|
+
"reportSaved": "报告保存至:{reportPath}"
|
|
2168
2220
|
},
|
|
2169
2221
|
"ui": {
|
|
2170
2222
|
"autoDetectedI18nDirectory": "自动检测到i18n目录:${path}",
|
|
@@ -2265,7 +2317,7 @@
|
|
|
2265
2317
|
"totalFixes": "🔧 应用的总修复数: {count}",
|
|
2266
2318
|
"improvement": "📈 改进: {percentage}%",
|
|
2267
2319
|
"stepResults": "📝 步骤结果:",
|
|
2268
|
-
"stepDetail": "{number}
|
|
2320
|
+
"stepDetail": "{number}。 {status} {stepName}",
|
|
2269
2321
|
"violations": "违规: {count}",
|
|
2270
2322
|
"fixesApplied": "应用的修复: {count}",
|
|
2271
2323
|
"nextSteps": "💡 后续步骤:",
|
|
@@ -2320,9 +2372,6 @@
|
|
|
2320
2372
|
"found_hardcoded_messages": "找到硬编码消息",
|
|
2321
2373
|
"all_console_messages_use_translation": "所有控制台消息都使用翻译"
|
|
2322
2374
|
},
|
|
2323
|
-
"\\nSelect directory to clean (0-${availableDirs": {
|
|
2324
|
-
"length + 1}): ": "选择要清理的目录(0-${availableDirs.length}):"
|
|
2325
|
-
},
|
|
2326
2375
|
"exportTranslations": {
|
|
2327
2376
|
"createdDirectory": "创建目录",
|
|
2328
2377
|
"foundFiles": "找到文件",
|
|
@@ -2338,9 +2387,6 @@
|
|
|
2338
2387
|
"location": "位置",
|
|
2339
2388
|
"nextSteps": "后续步骤"
|
|
2340
2389
|
},
|
|
2341
|
-
")) {\n console": {
|
|
2342
|
-
"log(": "日志("
|
|
2343
|
-
},
|
|
2344
2390
|
"dashboard": {
|
|
2345
2391
|
"title": "标题",
|
|
2346
2392
|
"overview": "概览"
|
|
@@ -2353,66 +2399,14 @@
|
|
|
2353
2399
|
"forgotPassword": "忘记密码",
|
|
2354
2400
|
"signUp": "注册"
|
|
2355
2401
|
},
|
|
2356
|
-
"scanner": {
|
|
2357
|
-
"help_message": "i18n文本扫描器 使用方法: node i18ntk-scanner.js [选项] 选项: --source-dir <目录> 要扫描的源目录 (默认: ./src) --output <文件> 结果输出文件 (默认: ./i18ntk-scanner-report.json) --framework <名称> 目标框架 (react, vue, angular, vanilla) --patterns <模式> 自定义正则表达式模式 (逗号分隔) --include-tests 在扫描中包含测试文件 --exclude-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=./扫描结果.json",
|
|
2358
|
-
"help_options": {
|
|
2359
|
-
"source_dir": "要扫描的源目录",
|
|
2360
|
-
"output_dir": "结果输出文件",
|
|
2361
|
-
"framework": "目标框架 (react, vue, angular, vanilla)",
|
|
2362
|
-
"patterns": "自定义正则表达式模式 (逗号分隔)",
|
|
2363
|
-
"exclude": "要排除的目录 (逗号分隔)",
|
|
2364
|
-
"output_report": "报告输出文件",
|
|
2365
|
-
"min_length": "包含文本的最小长度",
|
|
2366
|
-
"max_length": "包含文本的最大长度",
|
|
2367
|
-
"include_tests": "在扫描中包含测试文件"
|
|
2368
|
-
},
|
|
2369
|
-
"starting": "🔍 正在为框架启动文本扫描器: {framework}",
|
|
2370
|
-
"sourceDirectory": "📁 正在扫描目录: {sourceDir}",
|
|
2371
|
-
"frameworkDetected": "🎯 检测到框架: {framework}",
|
|
2372
|
-
"scanningFiles": "📊 正在扫描 {fileCount} 个文件...",
|
|
2373
|
-
"foundTexts": "📝 找到 {count} 个需要翻译的文本",
|
|
2374
|
-
"foundText": "找到 {count} 个潜在的硬编码文本实例",
|
|
2375
|
-
"generatingReport": "📊 正在生成详细报告...",
|
|
2376
|
-
"reportSaved": "💾 扫描报告已保存到: {reportPath}",
|
|
2377
|
-
"noTextsFound": "✅ 未找到硬编码的英文文本",
|
|
2378
|
-
"scanComplete": "🎉 扫描成功完成!",
|
|
2379
|
-
"analysisTitle": "🔍 翻译扫描器分析",
|
|
2380
|
-
"fileSummary": "📄 {file}: 找到 {count} 个文本",
|
|
2381
|
-
"textLocation": "📍 第 {line} 行: {text}",
|
|
2382
|
-
"context": "📝 上下文: {context}",
|
|
2383
|
-
"severity": "⚠️ 严重程度: {severity}",
|
|
2384
|
-
"recommendation": "💡 建议: {recommendation}",
|
|
2385
|
-
"welcome": {
|
|
2386
|
-
"title": "🎯 欢迎使用文本扫描器!",
|
|
2387
|
-
"description": "此工具扫描您的源代码以查找可能需要翻译的硬编码英文文本。"
|
|
2388
|
-
},
|
|
2389
|
-
"frameworkPrompt": {
|
|
2390
|
-
"title": "🎯 选择框架",
|
|
2391
|
-
"available": "可用框架: react, vue, angular, vanilla",
|
|
2392
|
-
"description": "输入框架类型 (或按回车键自动检测):",
|
|
2393
|
-
"input": "框架:"
|
|
2394
|
-
},
|
|
2395
|
-
"directoryPrompt": {
|
|
2396
|
-
"title": "📁 选择源目录",
|
|
2397
|
-
"current": "当前目录: {dir}",
|
|
2398
|
-
"description": "输入要扫描的目录 (或按回车键使用当前目录):",
|
|
2399
|
-
"input": "目录:"
|
|
2400
|
-
},
|
|
2401
|
-
"options": {
|
|
2402
|
-
"includeTests": "包含测试文件?",
|
|
2403
|
-
"excludeDirs": "要排除的目录 (逗号分隔):",
|
|
2404
|
-
"customPatterns": "要扫描的自定义模式 (正则表达式):"
|
|
2405
|
-
},
|
|
2406
|
-
"reportGenerated": "Scan report generated: {path}"
|
|
2407
|
-
},
|
|
2408
2402
|
"checkUsage": {
|
|
2409
|
-
"usage_analysis_failed": "
|
|
2403
|
+
"usage_analysis_failed": "使用情况分析失败。"
|
|
2410
2404
|
},
|
|
2411
2405
|
"completeTranslations": {
|
|
2412
|
-
"warning_could_not_parse_filepa": "
|
|
2406
|
+
"warning_could_not_parse_filepa": "警告:无法解析文件路径:{filePath}"
|
|
2413
2407
|
},
|
|
2414
|
-
"pressEnterToContinue": "
|
|
2408
|
+
"pressEnterToContinue": "按 Enter 键继续...",
|
|
2415
2409
|
"status": {
|
|
2416
|
-
"exitingCompleted": "
|
|
2410
|
+
"exitingCompleted": "工作流程完成。正在退出..."
|
|
2417
2411
|
}
|
|
2418
2412
|
}
|