|
Расширения файлов |
.xlf, .xliff |
|
Расширение API |
xlf |
|
Импорт |
Да |
|
Экспорт |
Да |
|
Поддержка форм множественного числа |
Да |
|
Поддержка описания |
Да |
|
Варианты формата Эти параметры могут быть указаны при загрузке и/или скачивании файла. В зависимости от метода загрузки/скачивания (API, CLI, синхронизация репозитория и т.д.) они могут быть указаны в параметрах запроса |
enclose_in_cdata включить_состояние_перевода indent_size indent_style ignore_source_translations ignore_target_translations export_key_id_as_resname export_key_name_hash_as_extradata override_file_language strip_placeholder_delimiters delimit_placeholders |
Наиболее широко используемый формат файла в индустрии перевода. Его можно рассматривать как зеркало исходного файла, которое разбивает исходный контент на различные сегменты, хранящиеся в тегах (например, <trans-unit>, <seg-source>).
XLIFF основан на XML и подчиняется основным XML-конвенциям, таким как корректность и правильная структура. Всегда проводите проверку перед переводом, изменив расширение файла с .xliff (.xlf) на .xml и открыв его в веб-браузере. Если файл действителен, будет представлена хорошо организованная структура документа, а если нет, он будет либо неотображаемым, либо с сообщением об ошибке.
XLIFF был обновлен до XLIFF 2.0. Он похож на более широко используемый XLIFF, но является другим форматом файла, обычно несовместимым с XLIFF.
Xcode может упаковать локализуемые строки в стандартный формат XLIFF для отправки на локализацию с Phrase.
Параметры формата
|
Идентификатор |
enclose_in_cdata |
|
Тип |
булевский |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
false |
|
Описание |
Заключает переводы, содержащие html-теги, в CDATA. Если отключено, неподдерживаемые HTML-сущности заменяются их декодированными значениями. Например:
|
|
Идентификатор |
включить_состояние_перевода |
|
Тип |
булевский |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
false |
|
Описание |
Включить состояние переводов в целевом языковом стандарте. Каждый |
|
Идентификатор |
indent_size |
|
Тип |
integer |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
4 |
|
Описание |
Указывает количество символов отступа |
|
Идентификатор |
indent_style |
|
Тип |
строка |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
каталог |
|
Описание |
Указывает символ отступа. Допустимые значения: |
|
Идентификатор |
ignore_source_translations |
|
Тип |
булевский |
|
Загрузить |
Да |
|
Скачать |
Нет |
|
По умолчанию |
false |
|
Описание |
Игнорирует переводы источника в файле во время загрузки (чтобы избежать случайных обновлений языка источника) |
|
Идентификатор |
ignore_target_translations |
|
Тип |
булевский |
|
Загрузить |
Да |
|
Скачать |
Нет |
|
По умолчанию |
false |
|
Описание |
Игнорирует переводы цели в файле во время загрузки (чтобы избежать случайных обновлений языка источника) |
|
Идентификатор |
export_key_id_as_resname |
|
Тип |
булевский |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
false |
|
Описание |
Экспортирует идентификатор ключа как атрибут resname. |
|
Идентификатор |
export_key_name_hash_as_extradata |
|
Тип |
булевский |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
false |
|
Описание |
Экспортирует хэш имени ключа как атрибут extradata. |
|
Идентификатор |
override_file_language |
|
Тип |
булевский |
|
Загрузить |
Да |
|
Скачать |
Нет |
|
По умолчанию |
false |
|
Описание |
Этот формат файла обычно содержит информацию о языке в самом файле. Используйте эту опцию, чтобы переопределить язык на указанный вами. |
|
Идентификатор |
strip_placeholder_delimiters |
|
Тип |
булевский |
|
Загрузить |
Да |
|
Скачать |
Нет |
|
По умолчанию |
false |
|
Описание |
Удаляет |
|
Идентификатор |
delimit_placeholders |
|
Тип |
булевский |
|
Загрузить |
Нет |
|
Скачать |
Да |
|
По умолчанию |
false |
|
Описание |
Оборачивайте заполнители перевода в теги |
Образец кода
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="global" datatype="plaintext" source-language="de-DE" target-language="en-GB">
<body>
<trans-unit id="boolean_key">
<source xml:lang="de-DE">--- true
</source>
<target xml:lang="en-GB">--- true
</target>
</trans-unit>
<trans-unit id="empty_string_translation">
<оригинал xml:lang="de-DE"/>
<перевод xml:lang="en-GB"/>
</trans-unit>
<trans-unit id="key_with_description">
<оригинал xml:lang="de-DE">Посмотри на это! Этот ключ имеет описание!</оригинал>
<перевод xml:lang="en-GB">Проверь это! This key has a description! (По крайней мере, в некоторых форматах)</перевод>
<note>Это удивительное описание для этого ключа!</note>
</trans-unit>
<trans-unit id="key_with_line-break">
<оригинал xml:lang="de-DE">Этот перевод содержит
перенос строки.</оригинал>
<перевод xml:lang="en-GB">Этот перевод содержит
перенос строки.</перевод>
</trans-unit>
<trans-unit id="nested.deeply.key">
<оригинал xml:lang="de-DE">Я глубоко вложенный ключ.</оригинал>
<перевод xml:lang="en-GB">Я глубоко вложенный ключ.</перевод>
</trans-unit>
<trans-unit id="nested.key">
<оригинал xml:lang="de-DE">Этот ключ вложен внутри пространства имен.</оригинал>
<перевод xml:lang="en-GB">Этот ключ вложен внутри пространства имен.</перевод>
</trans-unit>
<trans-unit id="null_translation">
<оригинал xml:lang="de-DE"/>
<перевод xml:lang="en-GB"/>
</trans-unit>
<trans-unit id="sample_collection">
<source xml:lang="de-DE">---
- первый элемент
- второй элемент
</source>
<target xml:lang="en-GB">---
- first item
- second item
- third item
</target>
</trans-unit>
<trans-unit id="simple_key">
<source xml:lang="de-DE">Простой ключ, простое сообщение, так просто</source>
<target xml:lang="en-GB">Простой ключ, простое сообщение, так просто.</target>
</trans-unit>
<trans-unit id="unverified_key">
<source xml:lang="de-DE">Этот перевод еще не подтвержден и ждет подтверждения!</source>
<target xml:lang="en-GB">Этот перевод еще не подтвержден и ждет подтверждения. (В некоторых форматах мы также экспортируем этот статус)</target>
</trans-unit>
</body>
</file>
</xliff>
Формы множественного числа
Плюрализованные ключи экспортируются с использованием следующего синтаксиса:
<trans-unit id="plural_key">
<source xml:lang="en">{"one":"один стул","other":"{nrOfChairs} стульев","zero":"нет стульев"}</source>
<target xml:lang="de">{"one":"один стул","other":"{nrOfChairs} стульев","zero":"нет стульев"}</target>
</trans-unit>