XLIFF 翻訳

XLIFF翻訳ファイルのチェック方法

XLIFFは翻訳ツールやTMSとの受け渡しで広く使われます。構文が正しいだけでなく、翻訳ユニットとインラインコードが原文から維持されているか確認が必要です。

対応形式:JSON、YAML、XLIFF、Android XML、Apple .strings/.xcstrings、Java .properties

XLIFFユニット
<trans-unit id="cart.count">
  <source><x id="COUNT"/> items</source>
  <target><x id="TOTAL"/> 件</target>
</trans-unit>
検出したい問題
インラインID: COUNT → TOTAL
欠落ユニット: checkout.pay
未翻訳候補: Account settings

XLIFFのバージョンとユニット

XLIFF 1.2ではtrans-unit、XLIFF 2.xではunitとsegmentが中心になります。TMSから書き出したファイルがXMLとして有効でも、ユニットの欠落、IDの変化、targetの不足があると納品物として不完全です。

原文XLIFFと訳文XLIFFを同じバージョン・同じ案件単位で比較し、ユニット対応を確認します。

インラインコードを翻訳対象から守る

x、g、ph、pcなどのインライン要素は、変数、タグ、書式情報を表します。翻訳ツール上では保護されていても、手作業編集、形式変換、エクスポート設定によって欠落やID変更が起きることがあります。

  • trans-unit・unitの欠落
  • targetの有無
  • インライン要素
  • 要素IDと出現回数
  • プレースホルダー
  • 原文と同じ訳文候補

TMSからの書き出し後に検証する

検証のタイミングは、TMSやCATツールから最終XLIFFを書き出した直後が適しています。ツール内のQAが通っていても、エクスポートされた実ファイルが開発側の原文構造と一致するとは限りません。

LocaleQAはXLIFFを翻訳するのではなく、原文と訳文のユニット、タグ、トークンを決定論的に比較します。HTML・PDFレポートを納品確認に利用できます。

ツール内QAの後にも差分が生まれる理由

CATツール上で警告がなくても、別バージョンの原文から作ったジョブ、対象外になったユニット、エクスポート設定、書き出し後の手修正によって、納品XLIFFと開発側の原文XLIFFに差が残ることがあります。ツールはジョブ内の整合性を確認できても、そのジョブが最新の原文一式かどうかまでは保証できません。

実務では、開発側が渡した確定原文XLIFFと、実際に返却する日本語XLIFFを最後に比較します。欠落ユニットがあれば対象外設定や原文世代を確認し、インラインIDの差分があれば翻訳画面だけでなく書き出されたXMLを確認します。これはTMSやCATツールの代替ではなく、受け渡し境界での確認です。

関連ページ