Lingo.dev + .yaml(数据)

Lingo.dev CLI 翻译 YAML 文件时会保留结构、数据类型和格式,用于配置和内容管理。CLI 精确维护 YAML 的层级和缩进,仅处理字符串值,同时保留数字和布尔值,保持开发者文档注释完整,确保 YAML 锚点和别名正常工作,并严格遵循 YAML 1.2 规范。

快速设置

为基于语言环境命名的 YAML 文件进行配置:

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

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

翻译 YAML 内容

npx lingo.dev@latest i18n

在翻译字符串值的同时,保留 YAML 的结构、数据类型、注释和格式。

结构保留

嵌套配置

app:
  name: "My Application"
  description: "A powerful tool for productivity"
  features:
    - "Real-time collaboration"
    - "Advanced search"
    - "Custom themes"

database:
  host: "localhost"
  port: 5432

字符串值会被翻译,而技术配置保持不变。

混合数据类型

user_interface:
  welcome_message: "Welcome to our platform!"
  max_items: 100
  enable_notifications: true
  created_at: 2024-01-15T10:30:00Z

仅可翻译的字符串会被处理;数字、布尔值和日期保持不变。

高级功能

注释保留


# 应用程序配置

app:
  # 面向用户的字符串
  title: "Dashboard"
  tagline: "Manage your projects efficiently"

  # 技术设置(不翻译)
  version: "1.2.0"

注释会完全按照源文件中的内容保留。

锚点和引用支持

defaults: &defaults
  timeout: 30
  retries: 3

production:
  <<: *defaults
  message: "Production environment ready"

在翻译过程中,YAML 锚点和引用会被保留。

高级配置

多个 YAML 文件

"yaml": {
  "include": [
    "config/[locale].yaml",
    "content/[locale]/*.yml"
  ]
}

锁定技术键

"yaml": {
  "include": ["config/[locale].yaml"],
  "lockedKeys": ["database", "api/endpoint", "version"]
}