配置说明
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-CN 和 ja-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 | 语言包和翻译副本输出目录 |
fallbackToKey | true | 翻译失败时是否回退到原文 key |
replaceOriginalFile | false | 是否直接覆盖源文件 |
provider | tencent | 翻译服务商:baidu 或 tencent |
i18nCallTemplate | $t | 替换源码时使用的 i18n 调用 |
i18nImport | "" | 可选导入语句;默认不注入,适合项目使用自动导入 |
extensions | [".vue", ".js", ".ts", ".jsx", ".tsx", ".json"] | 自定义扫描扩展名;空数组表示全部支持类型 |
capitalizeTranslations | false | 是否把含拉丁字符的翻译结果首字母大写 |
pruneUnusedKeys | false | 是否移除当前命名空间未被源码引用的旧 key |
keyStrategy.maxLength | 40 | 自动生成 key 的最大长度 |
keyStrategy.collision | number | key 冲突策略:number 或 hash |
keyStrategy.hashLength | 6 | hash 冲突策略的短 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实际路径以项目配置为准。