XLIFF 1.1 і 1.2

Примітка

XLIFF 2.0 — це інший формат, який не сумісний з XLIFF 1.2.

Формат на основі XML створено для стандартизації файлів перекладу, але, врешті, він став лише одним із багатьох стандартів у цій області.

XML Localization Interchange File Format (XLIFF) зазвичай використовується як двомовний, але у Weblate передбачено підтримку і одномовних варіантів.

У Weblate передбачено підтримку декількох варіантів XLIFF:

файл перекладу XLIFF 1.2

Простий файл XLIFF, де вміст елементів зберігається у формі простого тексту (усі елементи XML екрановано).

XLIFF 1.2 із підтримкою замінників

Стандартний XLIFF із підтримкою замінників та інших елементів XML.

XLIFF 1.2 із розширеннями gettext

XLIFF, удосконалений за XLIFF 1.2 Representation Guide for Gettext PO з метою забезпечення підтримки форм множини.

XLIFF 1.2 з розширеннями Apple

XLIFF доповнено компанією Apple для підтримки множини.

Стани перекладу

Дані атрибута state у файлі частково обробляються і пов’язуються зі станом «Потребує редагування» у 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, будь ласка, пам’ятайте про це, називаючи групу шрифтів (див. Керування шрифтами).

Ключі рядків

Weblate визначає модулі у файлі XLIFF за допомогою атрибута resname, якщо його вказано у файлі та використовує резервний атрибут id (разом з міткою file, якщо її вказано).

Атрибут resname має бути зручним для користувача ідентифікатором одиниці, що робить його більш зручним для відображення у Weblate замість id. 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 &lt;https://demo.weblate.org/&gt;!
</source>
            </trans-unit>
            <trans-unit>
                <source>Thank you for using Weblate.</source>
            </trans-unit>
        </body>
    </file>
</xliff>
Підтримувані можливості

Розширення файлів

.sdlxliff, .xlf, .xliff

Мовна різноманітність

Як одномовні, так і двомовні

Підтримує множину:

Yes

Підтримує описи

Yes

Підтримує пояснення

No

Підтримує контекст

Yes

Підтримує розташування

Yes

Підтримує прапорці

Yes

Додаткові стани

Затверджено, Потребує редагування

Ідентифікатор API

apple-xliff, plainxliff, poxliff, xliff

Підтримує рядки, доступні лише для читання

Yes

Налаштування Weblate

Типовий Налаштовування складників Weblate для двомовних XLIFF

Маска файлів

localizations/*.xliff

Основний файл для одномовного перекладу

Порожньо

Шаблон для нових перекладів

localizations/en-US.xliff

Формат файлу

файл перекладу XLIFF

Типовий Налаштовування складників Weblate для одномовних XLIFF

Маска файлів

localizations/*.xliff

Основний файл для одномовного перекладу

localizations/en-US.xliff

Шаблон для нових перекладів

localizations/en-US.xliff

Формат файлу

файл перекладу XLIFF