键忽略

Lingo.dev CLI 允许您忽略特定的翻译键,使其完全排除在翻译处理之外。被忽略的键不会被复制到目标文件,并且在 CLI 操作期间保持不变。

当您忽略键时,CLI 在内容发现和翻译生成过程中会完全跳过它们。

设置键忽略

i18n.json 的存储桶配置中添加 ignoredKeys

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "ignoredKeys": ["internal/debug", "dev/settings", "temp/cache"]
    }
  }
}

ignoredKeys 数组使用正斜杠(/)表示法来指定嵌套键。

键忽略的工作原理

在翻译处理过程中,Lingo.dev CLI

  1. 从配置中识别被忽略的键
  2. 从内容发现中排除它们——被忽略的键不会被处理
  3. 在目标文件中跳过它们——被忽略的键不会出现在生成的翻译中
  4. 保持开发内容与生产内容的分离

示例工作流程:

// locales/en.json (源文件)
{
  "welcome": "Welcome to our platform",
  "system": {
    "component": "Lingo.dev CLI",
    "version": "1.0.0"
  },
  "internal": {
    "debug": "Debug mode enabled",
    "testData": "Sample test content"
  }
}

使用忽略键配置:

{
  "ignoredKeys": ["internal/debug", "internal/testData"]
}

生成的西班牙语翻译:

// locales/es.json (生成文件)
{
  "welcome": "Bienvenido a nuestra plataforma",
  "system": {
    "component": "Lingo.dev CLI",
    "version": "1.0.0"
  }
}

只有未被忽略的键会被翻译。整个 internal 部分被排除在目标文件之外。

嵌套键路径

使用正斜杠(/)表示法忽略任意深度的键:

{
  "ignoredKeys": [
    "development/logging/level",
    "testing/mock/data",
    "admin/internal/config"
  ]
}

此表示法适用于复杂的嵌套结构:

// 源结构
{
  "development": {
    "logging": {
      "level": "verbose"
    }
  }
}

路径 development/logging/level 将此配置从翻译中排除。

含有点号的键

正斜杠表示法可以处理名称中包含点号的键:

// 含有点号键名的源文件
{
  "dev": {
    "api.mock": "启用 Mock API",
    "cache.clear": "启动时清除缓存"
  }
}

可以通过以下方式忽略这些键:

{
  "ignoredKeys": ["dev/api.mock", "dev/cache.clear"]
}

多种存储桶类型

不同的文件格式可以有不同的忽略键:

{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "ignoredKeys": ["internal/debug", "dev/settings"]
    },
    "yaml": {
      "include": ["translations/[locale].yml"],
      "ignoredKeys": ["test/data", "admin/config"]
    }
  }
}

每种存储桶类型根据内容结构维护其自己的忽略键列表。

键忽略与键锁定

键忽略键锁定的用途不同:

键忽略 (ignoredKeys):

  • 键完全从翻译处理中排除
  • 忽略的键不会出现在目标文件中
  • 用于开发、测试或不需要翻译的内部内容

键锁定 (lockedKeys):

  • 键包含在翻译处理中,但值保持不变
  • 锁定的键会出现在目标文件中,且值与源文件相同
  • 用于技术标识符、组件名称或必须保持一致的值

示例对比:

// 源文件
{
  "welcome": "欢迎",
  "system": {
    "component": "Lingo.dev 引擎"
  },
  "internal": {
    "debug": "启用调试"
  }
}

// 配置
{
  "lockedKeys": ["system/component"],
  "ignoredKeys": ["internal/debug"]
}

// 生成的目标文件
{
  "welcome": "欢迎",
  "system": {
    "component": "Lingo.dev 引擎"
  }
  // internal/debug 完全缺失
}