Skip to main content
Назад к глоссарию
Термин глоссария

XLIFF (XML Localization Interchange File Format)

Аббревиатура: XLIFF

Формат на основе XML, стандартизированный OASIS для обмена локализуемыми данными и их переводами между инструментами в процессе локализации.

4 мин чтения
формат файластандартлокализацияXMLрабочий процесс

Что такое XLIFF?

XLIFF (XML Localization Interchange File Format) — это открытый стандарт на основе XML, разработанный для хранения локализуемых данных и их переноса между различными этапами процесса локализации. Стандартизированный OASIS, XLIFF обеспечивает обмен переводимым контентом между различными инструментами независимо от исходного формата файла.

В отличие от TMX, который хранит завершённые переводы, XLIFF разработан как рабочий формат для активного процесса перевода, содержащий исходный контент, переводы и метаданные рабочего процесса.

Версии XLIFF

XLIFF 1.2 (2008)

Наиболее широко принятая версия:

  • Зрелая и стабильная спецификация
  • Широкая поддержка инструментами
  • Обширная поддержка встроенных элементов
  • До сих пор основной рабочий формат индустрии

XLIFF 2.0 (2014) / 2.1 (2018)

Современная переработка с модульной архитектурой:

  • Более чистое, простое ядро
  • Модульные расширения
  • Лучше определённая семантика
  • Растущее принятие

Структура XLIFF

Базовая структура XLIFF 1.2

<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" target-language="ru"
        datatype="plaintext" original="example.txt">
    <body>
      <trans-unit id="1">
        <source>Hello, world!</source>
        <target>Привет, мир!</target>
      </trans-unit>
    </body>
  </file>
</xliff>

Базовая структура XLIFF 2.x

<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0"
       version="2.0" srcLang="en" trgLang="ru">
  <file id="f1" original="example.txt">
    <unit id="1">
      <segment>
        <source>Hello, world!</source>
        <target>Привет, мир!</target>
      </segment>
    </unit>
  </file>
</xliff>

Ключевые элементы (XLIFF 1.2)

ЭлементОписание
<xliff>Корневой элемент с версией
<file>Контейнер для одного файла
<body>Содержит единицы перевода
<trans-unit>Один переводимый сегмент
<source>Оригинальный текст
<target>Переведённый текст
<note>Комментарии для переводчиков
<alt-trans>Альтернативные переводы

Ключевые элементы (XLIFF 2.x)

ЭлементОписание
<xliff>Корневой с srcLang, trgLang
<file>Контейнер для содержимого файла
<unit>Переводимая единица
<segment>Пара исходник-перевод
<source>Оригинальный контент
<target>Перевод
<notes>Контейнер для заметок
<note>Отдельный комментарий

Атрибуты элемента File

XLIFF 1.2

<file
  source-language="en-US"
  target-language="ru-RU"
  datatype="html"
  original="index.html"
  product-name="MyApp"
  product-version="2.0"
  build-num="1234">

XLIFF 2.x

<file
  id="f1"
  original="index.html">

Коды языков перемещены в корневой элемент <xliff> в версии 2.x.

Статусы Trans-Unit / Unit

Статусы перевода (XLIFF 1.2)

СтатусЗначение
newЕщё не переведено
needs-translationТребует перевода
needs-review-translationПеревод требует проверки
translatedПеревод завершён
finalУтверждён и окончателен
signed-offОфициально подписан

Пример со статусом

<trans-unit id="1" state="needs-review-translation">
  <source>Welcome</source>
  <target state="needs-review-translation">Добро пожаловать</target>
</trans-unit>

Встроенные элементы

XLIFF поддерживает богатую встроенную разметку:

Встроенные теги XLIFF 1.2

ТегОписаниеПример
<g>Общая группа<g id="1">жирный</g>
<x>Общий плейсхолдер<x id="1"/>
<bx>Начало парного тега<bx id="1"/>
<ex>Конец парного тега<ex id="1"/>
<bpt>Начало парного тега (с содержимым)<bpt id="1">&lt;b&gt;</bpt>
<ept>Конец парного тега (с содержимым)<ept id="1">&lt;/b&gt;</ept>
<ph>Плейсхолдер<ph id="1">{0}</ph>
<it>Изолированный тег<it id="1">&lt;br/&gt;</it>

Пример со встроенными тегами

<trans-unit id="msg1">
  <source>Click <g id="1">here</g> to continue.</source>
  <target>Нажмите <g id="1">здесь</g>, чтобы продолжить.</target>
</trans-unit>

Метаданные и заметки

Добавление заметок

<trans-unit id="1">
  <source>File</source>
  <target>Файл</target>
  <note from="developer">Метка пункта меню</note>
  <note from="translator">Контекст: главное меню</note>
</trans-unit>

Группы контекста

<trans-unit id="1">
  <source>OK</source>
  <context-group name="location">
    <context context-type="sourcefile">dialog.cpp</context>
    <context context-type="linenumber">42</context>
  </context-group>
</trans-unit>

Модули XLIFF 2.x

XLIFF 2.0+ использует модульные расширения:

МодульНазначение
Translation CandidatesАльтернативные переводы
GlossaryОпределения терминов
Format StyleИнформация о форматировании
MetadataПользовательские метаданные
Resource DataВнешние ресурсы
Change TrackingИстория изменений
Size RestrictionОграничения длины
ValidationПравила QA

XLIFF vs TMX

АспектXLIFFTMX
НазначениеРабочий процесс локализацииХранение/обмен TM
СодержимоеДокументы в процессе переводаЗавершённые переводы
МетаданныеОриентированы на процессОриентированы на TM
СтруктураИерархическая (файлы, единицы)Плоская (только TU)
СтатусыОтслеживает прогресс переводаНет отслеживания статусов
ИспользованиеАктивные проектыАрхив/справочник

Лучшие практики

Создание файлов XLIFF

  1. Выбирайте правильную версию

    • XLIFF 1.2 для максимальной совместимости
    • XLIFF 2.x для современных рабочих процессов
  2. Сохраняйте контекст

    • Включайте информацию о пути к файлу
    • Добавляйте значимые заметки
    • Используйте группы контекста
  3. Правильно сегментируйте

    • Одна переводимая единица на сегмент
    • Сохраняйте встроенное форматирование
    • Включайте ID для отслеживания

Обработка XLIFF

  1. Валидируйте структуру

    • Проверяйте корректность XML
    • Валидируйте по схеме
  2. Обрабатывайте статусы

    • Отслеживайте прогресс перевода
    • Обновляйте статусы соответственно
  3. Сохраняйте встроенные элементы

    • Поддерживайте порядок тегов
    • Правильно сопоставляйте ID тегов

FAQ

В чём разница между XLIFF и TMX?

XLIFF предназначен для активного рабочего процесса локализации — он переносит документы в процессе перевода со всеми их метаданными и контекстом. TMX — для хранения и обмена завершёнными переводами (памятью переводов). Вы работаете в XLIFF, храните в TMX.

Какую версию XLIFF использовать?

XLIFF 1.2 обеспечивает максимальную совместимость с инструментами. XLIFF 2.x чище и современнее, но имеет меньшую распространённость поддержки. Проверьте свою цепочку инструментов перед выбором.

Может ли XLIFF хранить память переводов?

XLIFF не предназначен для хранения TM, но XLIFF 2.x имеет модуль Translation Candidates, который может хранить альтернативные переводы. Для TM используйте TMX.

Как конвертировать файлы в XLIFF?

Большинство CAT-систем могут извлекать контент из различных форматов (DOCX, HTML и т.д.) в XLIFF. Специализированные инструменты вроде Okapi Framework предоставляют фильтры для многих типов файлов.

Обязателен ли XLIFF для локализации?

Нет, но он очень полезен. XLIFF предоставляет стандартный способ обмена проектами локализации между различными инструментами и командами, улучшая совместимость.

Может ли XLIFF обрабатывать сложное форматирование?

Да, XLIFF имеет обширную поддержку встроенных элементов для работы с форматированием, плейсхолдерами и разметкой. Правильная обработка встроенных элементов — ключ к сохранению структуры документа.

Связанные термины

Часто задаваемые вопросы

В чём разница между XLIFF и TMX?

XLIFF предназначен для активного рабочего процесса локализации — он переносит документы в процессе перевода со всеми их метаданными и контекстом. TMX — для хранения и обмена завершёнными переводами (памятью переводов). Вы работаете в XLIFF, храните в TMX.

Какую версию XLIFF использовать?

XLIFF 1.2 обеспечивает максимальную совместимость с инструментами. XLIFF 2.x чище и современнее, но имеет меньшую распространённость поддержки. Проверьте свою цепочку инструментов перед выбором.

Может ли XLIFF хранить память переводов?

XLIFF не предназначен для хранения TM, но XLIFF 2.x имеет модуль Translation Candidates, который может хранить альтернативные переводы. Для TM используйте TMX.

Как конвертировать файлы в XLIFF?

Большинство CAT-систем могут извлекать контент из различных форматов (DOCX, HTML и т.д.) в XLIFF. Специализированные инструменты вроде Okapi Framework предоставляют фильтры для многих типов файлов.

Обязателен ли XLIFF для локализации?

Нет, но он очень полезен. XLIFF предоставляет стандартный способ обмена проектами локализации между различными инструментами и командами, улучшая совместимость.

Может ли XLIFF обрабатывать сложное форматирование?

Да, XLIFF имеет обширную поддержку встроенных элементов для работы с форматированием, плейсхолдерами и разметкой. Правильная обработка встроенных элементов — ключ к сохранению структуры документа.

Команда KTTC
Эксперты по технологиям перевода
4 мин чтения

We use cookies to improve your experience. Learn more in our Cookie Policy.