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

翻訳可能な文字列のみが処理され、数値、真偽値、日付はそのまま保持されます。

高度な機能

コメントの保持


# Application configuration

app:
  # User-facing strings
  title: "Dashboard"
  tagline: "Manage your projects efficiently"

  # Technical settings (not translated)
  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"]
}