i18n.lock

更新时间:上季度 · 预计阅读 1 分钟

已弃用

这些文档介绍的是旧版 CLI(v0)。当前 CLI 版本为 v1。 查看当前 CLI 文档

i18n.lock 是一个锁文件,用于存储源内容的 SHA-256 指纹。Lingo.dev CLI 会在每次运行时比对这些指纹,判断哪些字符串是新增或已修改的——只有这些内容会进入翻译流程,其余都会被跳过。

文件结构#

锁文件采用 YAML 格式:

yaml
version: 1
checksums:
  a07974ea09011daa56f9df706530e442:
    title: f8692d39317193acf0e2e47172703c46
    description: g9703e40428204bdf1f3f58283814d57
字段说明
version锁文件 schema 版本。
checksums内容指纹映射。每个条目都会将源内容哈希映射到 key 哈希。

双哈希结构(内容哈希 + key 哈希)支持 key 重命名检测——当 key 被重命名但内容保持不变时,CLI 会保留现有翻译。

工作流程#

首次运行——为所有源内容创建包含指纹的锁文件:

bash
npx lingo.dev@latest run
# Creates i18n.lock

后续运行——仅翻译增量内容:

bash
npx lingo.dev@latest run
# Compares against i18n.lock, translates only changes

强制重新翻译——绕过锁文件,重新翻译全部内容:

bash
npx lingo.dev@latest run --force

重建锁文件——根据当前源文件状态重新生成锁文件:

bash
npx lingo.dev@latest lockfile --force

在解决合并冲突时,可使用 lockfile --force 重置锁文件。这个命令随时运行都很安全。

冻结校验——如果有任何内容需要翻译,则会直接失败(专为 CI/CD 设计):

bash
npx lingo.dev@latest run --frozen

去重#

合并分支时,锁文件的 YAML 里可能会累积重复条目。CLI 会在每次加载时自动去重——同一 checksum 块下的重复 key 会保留最后一次出现的条目。如果清除了重复项,CLI 会记录对应数量。

所有会读取锁文件的命令都会执行去重:run、status、lockfile 等。

版本控制#

i18n.lock 必须与 locale 文件一起提交到你的代码仓库中。它是实现增量翻译的关键机制——没有它,每次运行都会重新翻译整个项目。

下一步#