戻る

gtx-cli@2.10.0

Fernando Aviles avatarFernando Aviles
gtx-cli2.10.0メタデータコンテキスト翻訳品質JSONYAML

概要

gtx-cli 2.10.0 では、JSON および YAML の翻訳ファイルで キー単位のメタデータ がサポートされました。これはキーごとの翻訳指示で、個々の文字列をどのように翻訳するかを細かく制御できます。

これまで、キー形式のファイルに対する翻訳コンテキストは、プロジェクトレベルでのみ機能していました。スタイル設定、用語集エントリ、ロケール固有のルールは、すべてのコンテンツに対して一律に適用されていました。キー単位のメタデータを使うと、さらに一段踏み込んで、ファイル内の個々のキーに特定の翻訳ヒントを直接付与できます。


どのような見た目か

ソースファイルの隣に、そのキー構造を反映した対応するメタデータファイルを作成します。末端のレベルでは、文字列の代わりに、翻訳指示を含むメタデータオブジェクトを指定します。

{
  "nav": {
    "home": "Home",
    "bank": "Bank",
    "save": "Save"
  },
  "alerts": {
    "new_lead": "You have a new lead!"
  }
}
{
  "nav": {
    "home": {
      "context": "野球用語 — ダイヤモンドのホームベース。家のことではない。"
    },
    "bank": {
      "context": "川岸 — 川の岸辺のこと。金融機関ではない。"
    },
    "save": {
      "context": "スポーツ用語 — ゴールキーパーがゴールを防ぐこと。データの保存ではない。",
      "maxChars": 12
    }
  },
  "alerts": {
    "new_lead": {
      "context": "営業/CRMの文脈。「リード」は見込み客のこと。",
      "maxChars": 30
    }
  }
}

付随ファイルはソースファイルと同じディレクトリに配置し、{name}.metadata.json (YAML ファイルの場合は .metadata.yaml) という命名規則に従う必要があります。npx gt translate を実行すると、CLI (コマンドラインインターフェース) が自動的にこれを読み取ります。

キーごとのコンテキストがあると、"Bank" は候補となりうる "Banco" (金融機関) ではなく "Ribera" (川岸) と翻訳され、"Save" も "Guardar" (保存する) ではなく "Parada" (ゴールキーパーのセーブ) になります。すでに意味が明確な文字列については、メタデータをまったく指定する必要はありません。必要なのは、その恩恵を受けるキーに対するエントリだけです。


サポートされているフィールド

現在、サポートしているメタデータフィールドは 3 つあります。

  • context — 特定の文字列に対する翻訳指示です。最も重要なフィールドで、語句の曖昧さを解消したり、ドメイン固有の用語を指定したり、意図を明確にしたりするために使用します。
  • maxChars — 翻訳結果の最大文字数制限です。これはベストエフォートで適用されます。エンジンは制限内に収まるよう、より短い同義語や簡潔な表現を使いますが、無理な文字数に合わせるために翻訳を切り詰めることはありません。
  • sourceCode — 文字列の周辺のソースコードコンテキストです。これにより、その文字列がコードベース内のどこでどのように使われているかをエンジンに示せるため、トーン、用語、言い回しについてより適切に判断できるようになります。

すべてのフィールドはキーごとに任意です。各フィールドの詳細と例については、キー単位のメタデータ リファレンス を参照してください。


YAML サポート

同じ方法はYAMLファイルにも使えます。同じキー構造を持つ .metadata.yaml の補助ファイルを作成します。

ui:
  buttons:
    save:
      context: "Sports term — a goalkeeper's save. NOT saving data."
    draft:
      context: "Beer on tap, as in 'draft beer'. NOT a document version."
  labels:
    date:
      context: "The edible fruit of the date palm. NOT a calendar date."
    chips:
      context: "British English: hot fried potato strips (french fries). NOT crisps or microchips."