Lingo.dev + XLIFF
Lingo.dev CLIはXLIFF(XML Localization Interchange File Format)ファイルを翻訳する際に、ドキュメント構造、翻訳ユニット、ワークフロー状態を保持します。CLIはXLIFF 1.2と2.0の両形式をサポートし、ソース言語のメタデータを維持し、ファイル/グループ/ユニット階層を保持し、XML機密コンテンツのためのCDATAセクションを処理し、プロフェッショナルな翻訳ワークフローやCATツールと統合します。
クイックセットアップ
XLIFFファイル用の設定:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xliff": {
"include": ["localization/[locale].xliff"]
}
}
}
注意: [locale]
は設定内でそのまま残しておくべきプレースホルダーであり、CLI実行時に実際のロケールに置き換えられます。
XLIFFファイルの翻訳
npx lingo.dev@latest i18n
コンテンツを翻訳しながら、XLIFF構造、翻訳状態、およびプロフェッショナルな翻訳ワークフローのメタデータを保持します。
XLIFFファイル構造
XLIFF 1.2フォーマット
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="app.strings" source-language="en" target-language="es" datatype="plaintext">
<header></header>
<body>
<trans-unit id="welcome" resname="welcome.message">
<source>Welcome to our application</source>
<target state="translated">Bienvenido a nuestra aplicación</target>
</trans-unit>
<trans-unit id="login" resname="auth.login">
<source>Log In</source>
<target state="new"></target>
</trans-unit>
</body>
</file>
</xliff>
XLIFF 2.0フォーマット
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en">
<file id="messages">
<unit id="welcome">
<segment>
<source>Welcome to our application</source>
</segment>
</unit>
<group id="auth">
<unit id="login">
<segment>
<source>Log In</source>
</segment>
</unit>
</group>
</file>
</xliff>
キー生成
XLIFFキーは決定論的にURLエンコーディングで生成されます:
XLIFF 1.2キー
resname
属性、次にid
、次にソーステキストに基づく- シンプルな形式:
welcome.message
,auth.login
XLIFF 2.0キー
- 階層的なパス構造:
resources/{fileId}/{groupPath}{unitId}/source
- URLエンコードされたパス:
resources%2Fmessages%2Fauth%2FgroupUnits%2Flogin%2Fsource
- グループは
groupUnits
セパレータでネストされたパスを作成
XLIFF固有の機能
翻訳状態
<!-- XLIFF 1.2 ターゲット状態 -->
<target state="new">未翻訳コンテンツ</target>
<target state="translated">翻訳済みコンテンツ</target>
<target state="reviewed">レビュー済み翻訳</target>
<target state="final">最終承認済み翻訳</target>
翻訳状態は処理中に保持され、更新されます。
ソース言語メタデータ
<!-- XLIFF 1.2 -->
<file source-language="en-US" target-language="es-ES">
<!-- XLIFF 2.0 -->
<xliff srcLang="en-US" trgLang="es-ES">
ソース言語情報は自動的に保持され、更新されます。
CDATAセクション
<source><![CDATA[<tags>や"特殊"文字を含むコンテンツ]]></source>
CDATAセクションはXML敏感文字を含むコンテンツに対して自動的に使用されます。
グループ構成
<!-- XLIFF 2.0 論理的な構成のためのグループ -->
<group id="navigation">
<unit id="home"><segment><source>Home</source></segment></unit>
<unit id="settings"><segment><source>Settings</source></segment></unit>
</group>
階層的なグループ構造は保持され、キーパスに反映されます。
高度な設定
複数のXLIFFファイル
"xliff": {
"include": [
"localization/app_[locale].xliff",
"localization/ui_[locale].xliff"
]
}
ファイル拡張子
"xliff": {
"include": [
"translations/[locale].xliff",
"translations/[locale].xlf"
]
}
.xliff
と.xlf
の両方の拡張子がサポートされています。
翻訳ユニットのロック
"xliff": {
"include": ["localization/[locale].xliff"],
"lockedKeys": ["app.version", "build.number"]
}
プロフェッショナル翻訳ワークフロー
XLIFFファイルは以下と完全に統合されます:
- CAT(コンピュータ支援翻訳)ツール
- 翻訳管理システム(TMS)
- プロフェッショナル翻訳者のワークフロー
- 品質保証プロセス
- 翻訳メモリシステム
CLIは迅速なローカライゼーションのためにAI駆動の翻訳を可能にしながら、すべてのワークフローメタデータを保持します。