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"]
}