报告与检查
批量迁移国际化时,建议把预览、报告和一致性检查作为固定流程。这样可以在写入前知道会改哪些文件,也可以在写入后检查源码引用和语言包是否匹配。
翻译报告
tf 和 tfo 都支持 --report <file>:
sh
hias tf src\views\user\index.vue user --dry-run --report .hias\reports\user.json
hias tfo src\views user --report .hias\reports\user-folder.json报告是 JSON 格式,适合人工审查、CI 上传或后续脚本处理:
json
{
"mode": "dry-run",
"summary": {
"filesScanned": 1,
"filesWithExtractions": 1,
"replacements": 3,
"written": 0,
"skipped": 1,
"failed": 0
},
"files": [
{
"file": "src/views/user/index.vue",
"outputFile": ".hias/lang/user/index.vue",
"replacements": [
{
"text": "User Detail",
"key": "user.user_detail",
"context": "attribute",
"start": 42,
"end": 53
}
]
}
],
"failedFiles": []
}字段含义:
| 字段 | 说明 |
|---|---|
mode | dry-run 或 write |
summary.filesScanned | 实际扫描的文件数量 |
summary.filesWithExtractions | 有取词结果的文件数量 |
summary.replacements | 准备替换或已替换的文案数量 |
summary.written | 已写入文件数量 |
summary.skipped | 跳过文件数量 |
summary.failed | 失败文件数量 |
files[].replacements | 每个文件内的取词、key、上下文和位置 |
failedFiles | 语法校验失败或处理失败的文件 |
Dry Run 与交互确认
只想预览,不写文件:
sh
hias tfo src\views user --dry-run预览后再确认是否应用:
sh
hias tfo src\views user --interactive两者都可以配合 --report:
sh
hias tfo src\views user --dry-run --report .hias\reports\preview.json失败汇总
文件夹翻译结束后会输出汇总:
text
Translation summary
scanned: 12
replacements: 35
written: 10
skipped: 1
failed: 1如果替换后的文件无法通过语法校验,工具会跳过该文件并记录失败原因,避免写入破坏语法的结果。
一致性检查
hias tcheck 用于检查源码中的 $t(...)、this.$t(...)、t(...) 引用和 locale JSON 是否一致:
sh
hias tcheck src
hias tcheck src --report .hias\reports\tcheck.json检查内容:
| 类型 | 说明 |
|---|---|
| missing | 源码引用了但所有语言包都不存在的 key |
| unused | 语言包存在但源码没有引用的 key |
| inconsistent | 某个 key 在部分 locale JSON 中缺失 |
| invalid locale files | 无法解析的 JSON 语言包 |
tcheck 适合在批量迁移后执行,也适合放进 CI,阻止缺失语言包或 JSON 损坏进入主分支。