XLIFF

Примітка

У поточній версії Weblate передбачено підтримку XLIFF 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 з метою забезпечення підтримки форм множини.

Дивись також

Специфікація XML Localization Interchange File Format (XLIFF), Настанови щодо представлення XLIFF 1.2 для Gettext PO, XLIFF у Вікіпедії, XLIFF

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

Дані атрибута 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>

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

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

Маска файлів

localizations/*.xliff

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

Порожньо

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

localizations/en-US.xliff

Формат файлу

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

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

Маска файлів

localizations/*.xliff

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

localizations/en-US.xliff

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

localizations/en-US.xliff

Формат файлу

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