lingo push 只会翻译有变更的内容:它会根据锁文件对每条源文本进行哈希比对,匹配的内容会直接跳过。这是默认且推荐的行为,但有时即使源文本完全没变,你也可能希望重新翻译——比如切换了引擎模型、更新了指令或术语表,或修复了质量问题之后。
要强制重新翻译,有两种方式:执行限定范围的 --force push,或先执行 purge,再进行一次普通 push。
强制执行限定范围 push#
--force 会重新翻译所有匹配的目标内容,忽略现有翻译和服务端缓存。它必须带上作用范围——如果直接裸用 lingo push --force,命令会被拒绝,以免你误把整个项目都重新翻译一遍。
单个文件#
bash
lingo push content/en/landing.mdx --force某个子树#
bash
lingo push 'content/en/**/*.md' --force全部内容#
bash
lingo push --backfill-missing --force --yes--force 在覆盖前会先提示确认;传入 --yes 可跳过提示(CI)。完整参数说明请参见 lingo push。
只重新翻译单个语言区域#
push 没有按语言区域操作的参数。若只想重做某一种语言,请删除该语言的文件,然后执行回填:
bash
lingo purge --locale fr
lingo push --backfill-missingpurge 会移除 fr 对应的目标内容;随后 --backfill-missing 只会补回缺失的部分——其他语言区域完全不受影响。相比 --force,这种方式也更省钱,因为除了 fr 之外,其余内容仍然都会命中缓存。参见 Purge。
花钱前先估算#
所有 push 都支持 --estimate:它会先估算本次运行的费用,然后直接退出,不执行翻译:
bash
lingo push 'content/en/**/*.md' --force --estimate估算结果仅供参考,并非正式报价——最终费用可能会有所不同。
何时需要重新翻译#
| 场景 | 执行命令 |
|---|---|
| 源文本发生变化 | 无需额外操作——直接执行 lingo push 即可 |
| 切换了引擎模型 | lingo push <scope> --force |
| 更新了指令 / 术语表 | lingo push <scope> --force,或按语言区域执行 purge + backfill |
| 某个语言区域的翻译质量不佳 | 先执行 lingo purge --locale <code>,再执行 lingo push --backfill-missing |
| 想彻底从零开始 | lingo push --backfill-missing --force --yes |
