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

ネストされたキーパスにはフォワードスラッシュ(/)を使用するか、複数のキーパスに一致させるにはアスタリスク(*)を使用します。