XLIFF: формат обмена данными локализации

XLIFF это XML-формат для обмена данными между системами локализации. Он описывает, какие строки нужно перевести, где они находятся в исходнике и куда вставить результат. Файл XLIFF это мост между автором контента и переводчиком, а также между CAT-системой и разработкой. Если вы локализуете ПО или регулярно передаёте строки между командами, с XLIFF вы рано или поздно столкнётесь.

3 мин чтения

Как устроен файл XLIFF

Файл XLIFF это XML. Внутри он содержит секции trans-unit, и каждая секция описывает одну строку для перевода. В ней хранятся исходный текст, перевод, контекст, метаданные и ссылка на место, где строка используется в исходнике.

<trans-unit id="button.save">
  <source>Save changes</source>
  <target>Сохранить изменения</target>
  <note>Кнопка в нижней части панели</note>
</trans-unit>

Каждый trans-unit это независимый сегмент. Переводчик работает с сегментами, а не с целым файлом. Это позволяет распределить работу, отслеживать прогресс по строкам и возвращать результат на исходные позиции.

Зачем нужен XLIFF

Основная причина: XLIFF даёт однозначный контракт между сторонами. Разработчик знает, где каждая строка находится в коде. Переводчик знает, что переводить и в каком контексте. CAT-система знает, какие строки новые, какие изменённые и какие уже переведены ранее.

Без XLIFF передача строк идёт через таблицы, документы или ручное копирование. Каждый способ вносит потери: строки теряют привязку к коду, контекст исчезает, дубли не распознаются.

Что хранит XLIFF

Помимо исходного текста и перевода, в файле могут быть:

Поле Что хранит
source Исходная строка
target Перевод
id Идентификатор строки
context Где строка используется
note Примечание переводчику
state Статус: новый, переведён, утверждён
approved Флаг утверждения
tool-state Состояние в CAT-системе

Контекст и note особенно важны. Они объясняют, где строка появляется и как на неё влияет окружение. Например, что это заголовок и нужен определённый регистр, или что это часть предложения и нужна определённая форма слова.

Как XLIFF работает в процессе локализации ПО

Типичный сценарий. Разработчик выгружает строки интерфейса в XLIFF. CAT-система или Платформа перевода подгружает файл, сопоставляет строки с памятью переводов и глоссарием. Перевод выполняется сегментно. Перевод проходит агентские проверки. Готовые строки возвращаются в XLIFF и передаются обратно в репозиторий.

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

Ограничения XLIFF

XLIFF не идеален. Файл XML, значит его можно сломать, если менять вручную. Разметка внутри строк требует осторожности: если переводчик поменяет порядок тегов, строка может не отобразиться. Для больших проектов файл становится тяжёлым, и CAT-системам приходится делать инкрементальные загрузки, чтобы не пересылать весь файл каждый раз.

Варианты стандарта, XLIFF 1.2 и 2.0, имеют различия в структуре. Большинство CAT-систем поддерживают оба, но при обмене файлами между инструментами стоит убедиться, что версии совместимы.

FAQ

Что такое XLIFF?

XLIFF это XML-формат для передачи строк локализации между системами. Он описывает, какие строки переводить, где они находятся и куда вставить результат.

Зачем нужен XLIFF, если можно просто передать текстовый файл?

XLIFF сохраняет привязку строк к коду, контекст, метаданные и статус перевода. Без этого передача строк теряет структуру, дубли не распознаются и процесс деградирует.

Чем XLIFF 1.2 отличается от 2.0?

Основное различие в структуре XML. Версия 2.0 добавляет поддержку инлайн-разметки и более гибкую модель строк. Большинство CAT-систем поддерживают оба варианта, но при обмене файлами стоит проверить совместимость.

Можно ли редактировать XLIFF вручную?

Технически да, но не рекомендуется. Файл XML, и ручное редактирование легко ломает структуру. Лучше использовать CAT-систему или Платформу перевода, которая работает с XLIFF корректно.

Что такое trans-unit в XLIFF?

Trans-unit это основная единица файла. Каждая секция описывает одну строку для перевода: исходный текст, перевод, контекст, метаданные и статус.

Попробуйте на практике

Глоссарии, память переводов и контроль качества уже есть в Платформе перевода.