XLIFF¶
Примечание
Weblate в настоящее время поддерживает XLIFF 1.2. XLIFF 2.0 не поддерживается и не имеет обратной совместимости с XLIFF 1.2.
Формат на основе XML, созданный для стандартизации файлов перевода, но в конечном итоге ставший просто ещё одним из многочисленных стандартов в этой области.
Формат файла XML для обмена локализациями (XLIFF) обычно используется как двуязычный, но Weblate поддерживает его использование и в качестве одноязычного.
Weblate поддерживает XLIFF в нескольких вариантах:
- Файл перевода XLIFF 1.2
Простой файл XLIFF, в котором содержимое элементов хранится в виде обычного текста (все Escape-элементы XML).
- XLIFF 1.2 с поддержкой размещаемых объектов
Стандартный XLIFF, поддерживающий размещаемые объекты и другие элементы XML.
- XLIFF 1.2 с расширениями gettext
XLIFF дополнен Руководством по представлению XLIFF 1.2 для Gettext PO для поддержки множественного числа.
См. также
Спецификация XML Localization Interchange File Format (XLIFF), XLIFF 1.2 Representation Guide for Gettext PO, XLIFF на Википедии, XLIFF
Состояния перевода¶
Атрибуту состояния state
из XLIFF-файла частично соответствует состояние «На правку» в Weblate (строки в следующих состояниях считаются отмеченными на правку, если перевод на целевой язык уже присутствует в файле: new
, needs-translation
, needs-adaptation
, needs-l10n
). Если атрибут state
отсутствует, а собственно перевод есть (существует элемент <target>
), то строка считается переведённой.
Если строка перевода имеет атрибут approved="yes"
, она также будет импортирована в Weblate в состоянии «Одобрено», все остальные строки будут импортированы в состоянии «Ожидает рецензирования» (что соответствует спецификации XLIFF).
При сохранении Weblate добавляет эти атрибуты только если они действительно необходимы:
Атрибут
state
добавляется только в том случае, если строка помечена на правку.Атрибут
approved
добавляется только в том случае, если строка была отрецензирована.В остальных случаях эти атрибуты не добавляются, но если они присутствуют, то они будут обновлятся.
Таким образом, при использовании формата XLIFF настоятельно рекомендуется включить рецензирование в Weblate, чтобы видеть и изменять состояние одобрения строк.
Аналогично, при импорте таких файлов (в форме загрузки) необходимо выбрать пункт Импортировать как переведённое в выпадающем списке Обработка строк, отмеченных «На правку».
См. также
Пробелы и переводы строк в файлах XLIFF¶
Как правило, тип или количество пробельных символов в XML-форматах не различаются. Если вы хотите их сохранить, вы должны добавить к строке флаг xml:space="preserve"
.
Например:
<trans-unit id="10" approved="yes">
<source xml:space="preserve">hello</source>
<target xml:space="preserve">Hello, world!
</target>
</trans-unit>
Указание флагов перевода¶
С помощью атрибута weblate-flags
вы можете указать дополнительные флаги перевода (смотрите раздел Настройка поведения с помощью флагов). Также Weblate понимает атрибуты maxwidth
и font
из спецификации XLIFF:
<trans-unit id="10" maxwidth="100" size-unit="pixel" font="ubuntu;22;bold">
<source>Hello %s</source>
</trans-unit>
<trans-unit id="20" maxwidth="100" size-unit="char" weblate-flags="c-format">
<source>Hello %s</source>
</trans-unit>
Из атрибута font
извлекается название семейства шрифтов, а также размер и насыщенность шрифта. Приведённый выше пример показывает использование всех трёх параметров, хотя обязательным к указанию является только семейство шрифта. Любые пробельные символы в наименовании семейства шрифта преобразуются в подчёркивания, так что Source Sans Pro
становится Source_Sans_Pro
, поэтому при указании группы шрифтов (смотрите раздел Управление шрифтами) имейте это в виду.
Ключи строк¶
В качестве идентификаторов единиц перевода (unit) из XLIFF-файла Weblate использует значение атрибута resname
, а если его нет, то id
(совместно с тегом file
, если есть).
То что именно аттрибут resname
используется в качестве идентификатора, а не id
вызвано тем, что для resname
поддерживаются значения в виде, удобном для человека, что делает из более подходящими для отображения в интерфейсе Weblate. Значение resname
должно быть уникальным для всего XLIFF-файла. Это требование Weblate, а не стандарта XLIFF, который не накладывает таких ограничений.
Файлы примеров¶
Пример XLIFF-файла:
<?xml version='1.0' encoding='UTF-8'?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1">
<file>
<body>
<trans-unit weblate-flags="c-format, max-length:100">
<source xml:space="preserve">Hello, world!
</source>
</trans-unit>
<trans-unit>
<source xml:space="preserve">Orangutan has %d banana.
</source>
</trans-unit>
<trans-unit>
<source xml:space="preserve">Try Weblate at <https://demo.weblate.org/>!
</source>
</trans-unit>
<trans-unit>
<source>Thank you for using Weblate.</source>
</trans-unit>
</body>
</file>
</xliff>
Настройка Weblate¶
Типовые настройки компонента Weblate для двуязычного XLIFF |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
Пусто |
Шаблон для новых переводов |
|
Формат файла |
Файл перевода XLIFF |
Типовые настройки компонента Weblate для одноязычного XLIFF |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Файл перевода XLIFF |