Skip to content

配置说明

hias-cli 使用项目级 .hias/setting.json 管理翻译行为。

创建配置

sh
hias setting

配置文件通常位于当前业务项目:

text
.hias/setting.json

翻译服务商

示例:

json
{
  "translationSetting": {
    "locales": ["zh-CN", "en-US"],
    "provider": "baidu",
    "replaceOriginalFile": false,
    "pruneUnusedKeys": false,
    "keyStrategy": {
      "maxLength": 40,
      "collision": "number",
      "hashLength": 6
    },
    "appId": "your_app_id",
    "secretKey": "your_secret_key"
  }
}

没有密钥时,工具仍可提取中文并生成语言包,只是目标语言可能暂时回退为中文原文。

语言方向

源语言由 locales 数组的第一项决定,其余为目标语言。

json
{
  "translationSetting": {
    "locales": ["zh-CN", "en-US", "ja-JP"]
  }
}

如果源码是英文,希望生成中文和日文:

json
{
  "translationSetting": {
    "locales": ["en-US", "zh-CN", "ja-JP"]
  }
}

此时源语言为 en-US,目标语言自动变成 zh-CNja-JP

完整配置示例:

json
{
  "translationSetting": {
    "locales": ["zh-CN", "en-US"],
    "outDir": ".hias/lang",
    "fallbackToKey": true,
    "replaceOriginalFile": false,
    "provider": "tencent",
    "i18nCallTemplate": "$t",
    "i18nImport": "",
    "extensions": [".vue", ".js", ".ts", ".jsx", ".tsx", ".json"],
    "capitalizeTranslations": false,
    "pruneUnusedKeys": false,
    "keyStrategy": {
      "maxLength": 40,
      "collision": "number",
      "hashLength": 6
    },
    "appId": "",
    "secretKey": ""
  }
}

字段说明

字段默认值说明
locales["zh-CN", "en-US"]locales[0] 为源语言,其余为目标语言
outDir.hias/lang语言包和翻译副本输出目录
fallbackToKeytrue翻译失败时是否回退到原文 key
replaceOriginalFilefalse是否直接覆盖源文件
providertencent翻译服务商:baidutencent
i18nCallTemplate$t替换源码时使用的 i18n 调用
i18nImport""可选导入语句;默认不注入,适合项目使用自动导入
extensions[".vue", ".js", ".ts", ".jsx", ".tsx", ".json"]自定义扫描扩展名;空数组表示全部支持类型
capitalizeTranslationsfalse是否把含拉丁字符的翻译结果首字母大写
pruneUnusedKeysfalse是否移除当前命名空间未被源码引用的旧 key
keyStrategy.maxLength40自动生成 key 的最大长度
keyStrategy.collisionnumberkey 冲突策略:numberhash
keyStrategy.hashLength6hash 冲突策略的短 hash 长度
appId""百度 AppId 或腾讯 SecretId
secretKey""百度 SecretKey 或腾讯 SecretKey

Key 策略

默认使用翻译后的英文生成 snake_case key,并在冲突时追加序号:

json
{
  "translationSetting": {
    "keyStrategy": {
      "maxLength": 40,
      "collision": "number",
      "hashLength": 6
    }
  }
}

如果你更希望多次运行时 key 后缀稳定,可以改为 hash:

json
{
  "translationSetting": {
    "keyStrategy": {
      "collision": "hash"
    }
  }
}

未使用 key 清理

默认会保留语言包中已有 key,避免删除人工维护的历史翻译。确认要清理当前命名空间未引用 key 时,再开启:

json
{
  "translationSetting": {
    "pruneUnusedKeys": true
  }
}

翻译缓存

缓存文件位于:

text
.hias/.translation-cache.json

缓存 key 使用语言方向:

json
{
  "zh-CN|en-US": {
    "登录": "Login"
  }
}

推荐通过 hias tci 导入,而不是手写缓存文件。

输出目录

翻译结果通常写入 locale module 目录,例如:

text
src\locale\module\demo
.hias\locale\module\demo

实际路径以项目配置为准。

Released under the MIT License.