|
文档
预约演示平台
平台MCPCLI
API工作流
指南更新日志

概览

  • @lingo.dev/cli

快速开始

  • 快速上手
  • 配置

参考

  • lingo push
  • lingo pull
  • 其他命令
  • lingo purge

配置

  • 键级控制
  • 格式
  • Locale

指南

  • 添加语言
  • 现有翻译
  • 重新翻译
  • 翻译备注
  • 运行、状态与恢复
  • CI/CD
  • Monorepo
  • 大型项目

在找旧版 CLI(v0)? 查看旧版 CLI 文档

键级控制

大多数时候,你会希望文件里的每个字符串都被翻译。但总有例外——品牌名、功能开关、法务文案、内部杂项——CLI 为每个文件提供了三种控制方式,可在 .lingo/config.json 中的 files[] 条目里设置。

控制方式配置字段引擎行为
锁定lockedKeys将源值原样复制到所有目标语言,不做翻译。
保留preservedKeys保留目标中已有的内容,绝不覆盖。
忽略ignoredKeys将该键从目标文件中彻底省略。

这三种方式都接受采用点号/方括号表示法的键路径,与文件结构一一对应:

json
{
  "files": [
    {
      "pattern": "content/en/app.json",
      "lockedKeys": ["meta.version"],
      "preservedKeys": ["legal.terms"],
      "ignoredKeys": ["internal.debug"]
    }
  ]
}

锁定——让值在所有地方保持一致#

lockedKeys 会把源值直接复制到每个目标文件中,不经过翻译。适用于那些必须在所有语言环境中保持逐字节一致的值:

json
{
  "pattern": "content/en/app.json",
  "lockedKeys": ["meta.version", "config.apiUrl"]
}

de.json 和 fr.json 会用完全一致的源字符串进行 meta.version。源值一旦变更,下一次 lingo push 就会把新值同步到所有语言环境中,且依然不会翻译。

保留——保护手写的目标文本#

preservedKeys 会告诉引擎:只要目标值已经存在,就永远不要覆盖。适用于某个键需要人工翻译的场景——法务文本、合规文案,或任何你已经审核过、不希望模型改动的内容:

json
{
  "pattern": "content/en/settings.jsonc",
  "preservedKeys": ["featureFlags"]
}

首次翻译时,引擎会先用源值填充该键;之后无论运行多少次,都会保留你的修改不动。可与下方的 overrides 对比理解。

忽略——从输出中移除该键#

ignoredKeys 会将该键彻底从目标文件中移除——不会翻译、不会复制,也不会写入。适用于调试字符串、内部标记和测试数据,这些内容不该出现在翻译后的构建中:

json
{
  "pattern": "content/en/app.json",
  "ignoredKeys": ["internal.debug", "dev.testData"]
}

JSON 和 JSONC

键级控制适用于结构化的键值格式——json 和 jsonc。对于 markdown 系列格式,请改用 translateFrontmatterFields 和 translateComponentProps 来限定翻译范围(参见 Formats)。

overrides 与 preserve#

现有目标值在一次运行后得以保留,主要有两种方式:

  • Preserve(preservedKeys)——声明式。这个键会通过配置被持续保护,适用于所有语言环境,且长期生效。
  • 本地编辑——lingo push 会将每个目标文件的哈希与 lockfile 对比。如果你手动修改过目标文件,push 会将其标记为 skipped (local edits),并保持不动。传入 --force(配合作用域)即可覆盖。参见 lingo push。

如果这种保护是长期的,且适用于所有语言环境,就用 preservedKeys;如果只是一次性的手动微调,则依赖本地编辑检测即可。

从旧版 CLI 迁移#

旧版 CLI 还支持键重命名(即键 ID 变更时沿用已有翻译)。这一能力不属于当前 CLI——翻译状态按文件哈希跟踪,因此一旦重命名某个键,下一次 push 时就会重新翻译。lock、preserve 和 ignore 依然保留,但有一处变化:路径现在使用点号/方括号表示法(meta.version),而不再是旧版的斜杠表示法(meta/version)。

这个页面对你有帮助吗?

Max PrilutskiyMax Prilutskiy·已更新 4 天前·1 分钟阅读