Skip to content

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

工作流程

  1. 扫描:分析代码识别需要翻译的文本
  2. 翻译:使用翻译服务翻译缺失的文本
  3. 生成:创建或更新语言文件,保持源语言为标准
  4. 替换:可选步骤,将代码中的文本替换为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

注意事项

  • 首次运行可能需要较长时间,特别是项目规模较大时
  • 翻译结果建议由人工审核,确保准确性和语境适配