Lingo.dev + .jsonc(带注释的 JSON)

Lingo.dev CLI 可翻译 JSONC(带注释的 JSON)文件,支持所有标准 JSON 功能以及注释和尾随逗号。CLI 提取注释作为翻译提示,保留精确的格式,智能处理嵌套结构,并仅处理修改过的内容以提高成本效率。

快速设置

创建一个 i18n.json 配置文件:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "jsonc": {
      "include": ["locales/[locale].jsonc"]
    }
  }
}

提醒[locale] 是一个占位符,在 CLI 运行时会被实际的语言区域替换,因此应在配置中保持原样。

翻译一切

npx lingo.dev@latest i18n

自动处理嵌套结构,提取注释作为翻译提示,并仅更新更改的内容。

基于注释的翻译提示

JSONC 的主要优势是使用注释提供翻译上下文:

{
  // 此注释为问候语提供上下文
  "greeting": "Hello, world!",
  "button": "Click me" /* 解释按钮的用途 */,
  /*
   * 多行注释用于复杂上下文
   * 解释文化差异
   */
  "welcome": "Welcome to our app"
}

注释会被自动提取为提示,以提高翻译质量并为 AI 翻译提供上下文。

智能结构保留

保留复杂的层次结构并支持尾随逗号:

{
  "nav": {
    "home": "Home", // 导航项
    "about": {
      "team": "Our Team" // 嵌套导航
    },
  },
  "items": {
    "one": "{{count}} item",
    "other": "{{count}} items", // 支持复数形式
  },
}

高级配置

排除文件

"jsonc": {
  "include": ["locales/[locale]/*.jsonc"],
  "exclude": ["locales/[locale]/config.jsonc"]
}

锁定技术键

"jsonc": {
  "lockedKeys": ["app/version", "settings/apiKey"]
}

使用正斜杠 (/) 表示嵌套键路径,或使用星号 (*) 匹配多个键路径。