intelligence-i18n
项目简介
intelligence-i18n 是一个智能的国际化解决方案,专为多语言应用开发设计。它能自动扫描代码、提取文本、翻译内容并生成语言文件,简化了国际化流程。
核心特性
- 智能文本扫描:自动识别代码中需要翻译的文本
- 多语言翻译:支持Google翻译等服务,自动翻译缺失的文本
- 语言文件管理:以源语言为标准,维护多语言文件的一致性
- 特殊文本保护:自动保护占位符、数字等不需要翻译的内容
- 增量更新:仅翻译新增或变更的文本,保留已有翻译
- 嵌套键支持:支持扁平和嵌套两种键值结构
安装【待支持,先用mac可执行工具的方案或者clone项目到本地使用】
bash
npm install intelligence-i18n --save-dev配置
在项目根目录创建 i18n.config.json 文件 (通过init命令的方式)
json
{
"sourceDir": "src",
"outputDir": "src/locales",
"sourceLanguage": "en",
"targetLanguages": ["bn", "ar", "hi"],
"translator": {
"provider": "google",
"apiKey": ""
},
"include": ["**/*.vue", "**/*.js", "**/*.ts"],
"exclude": ["node_modules/**", "dist/**", "**/locales/**"],
"customTranslations": {}
}使用方法
CLI 命令
bash
# 扫描代码并提取需要翻译的文本
npx i18n-vue scan
# 翻译提取的文本
npx i18n-vue translate
# 生成语言文件
npx i18n-vue generate
# 替换代码中的文本为i18n调用[中文场景下]
npx i18n-vue replace
# 一次执行完整流程
npx i18n-vue full特性说明
源语言为标准
以源语言(如英文)为标准,只翻译源语言文件中存在的键到目标语言。目标语言特有的键只保留在各自文件中,不会影响其他语言文件。
例如:
- 如果英文文件(en.json)有键
"hello": "Hello",它会被翻译到所有目标语言 - 如果阿拉伯语文件(ar.json)有特有的键
"special": "مرحبا"而英文文件没有,这个键不会被添加到英文或其他语言文件中
空字符串处理
对于源语言中的空字符串,会在目标语言中保持空字符串,而不是添加语言前缀。
特殊文本保护
工具自动保护以下类型的文本不被翻译:
- 占位符:
{name},{time}d - 复合模式:
({count}),({current}/{total}) - 数字和特殊格式:
10%,1-2,1~2
工作流程
- 扫描:分析代码识别需要翻译的文本
- 翻译:使用翻译服务翻译缺失的文本
- 生成:创建或更新语言文件,保持源语言为标准
- 替换:可选步骤,将代码中的文本替换为i18n函数调用
高级使用
多输出目录和通配符支持
工具支持将翻译文件输出到多个目录,同时支持通配符路径:
json
{
"outputDir": ["src/locales", "libs/i18n/locales"],
"outputDir": ["src/locales", "src/**/locales/**"]
}通配符规则说明:
*匹配单个目录层级的任意字符**匹配任意层级的目录- 例如
src/**/locales/**会匹配所有在src目录下任意层级的locales文件夹及其内容
当使用多输出目录时,工具会:
- 从所有目录读取现有翻译文件并合并
- 生成翻译时将相同内容写入所有指定的输出目录
- 如果路径不存在但包含通配符,会自动创建基本路径
增量更新
当您添加新内容或修改现有内容时,可以重新运行工具链。工具会:
- 保留现有的翻译
- 仅翻译新增或更改的文本
- 保持源语言为标准
导出与导入
支持将翻译内容导出到Excel进行人工修改,然后再导入:
bash
# 导出到Excel
npx i18n-vue export --output translations.xlsx
# 从Excel导入
npx i18n-vue import --input translations.xlsx注意事项
- 首次运行可能需要较长时间,特别是项目规模较大时
- 翻译结果建议由人工审核,确保准确性和语境适配