Поддерживаемые форматы файлов¶
Weblate поддерживает большинство форматов перевода, понимаемых translate-toolkit, однако у каждого формата есть свои особенности, поэтому могут возникнуть некоторые проблемы с форматами, которые были протестированы недостаточно тщательно.
Примечание
При выборе формата файла для вашего приложения лучше придерживаться какого-нибудь устоявшегося формата для используемого вами инструментария/платформы. Таким образом, ваши переводчики в дополнение смогут использовать любые инструменты, к которым они привыкли, и вероятность внесения ими своего вклада в ваш проект будет выше.
Двуязычные и одноязычные форматы¶
Поддерживаются как одноязычные, так и двуязычные форматы. Двуязычные форматы хранят в одном файле два языка — исходный язык и перевод (типовые примеры: GNU gettext, XLIFF или Строки Apple iOS). Одноязычные же форматы, напротив, идентифицируют строку по ID, и каждый файл перевода содержит только сопоставление этих ID с одним конкретным языком (например, Строковые ресурсы Android). Некоторые форматы файлов могут использоваться и так, и так; подробности смотрите ниже.
Для правильного использования одноязычных файлов Weblate требует доступа к файлу, содержащему полный список строк для перевода и их «перевод» на исходный язык — этот файл внутри Weblate называется одноязычным базовым файлом, хотя в вашей парадигме наименование этой сущности может отличаться.
Кроме того, этот рабочий процесс может быть расширен с помощью файла промежуточного языка, позволяющего включить в перевод строки, предоставленные разработчиками, но не использованными «как есть» в окончательных строках.
Автоматическое обнаружение¶
Weblate умеет автоматически обнаруживать некоторые широко распространённые форматы файлов, но это обнаружение может навредить вашей производительности и ограничено возможностями, специфичными для данного формата файла (к примеру, автоматическим добавлением новых переводов).
Возможности типов переводов¶
Возможности всех поддерживаемых форматов:
Формат |
Язычность 1 |
Множественные формы 2 |
Комментарии 3 |
Контекст 4 |
Расположение 5 |
Флаги 8 |
Дополнительные состояния 6 |
---|---|---|---|---|---|---|---|
двуязычный |
да |
да |
да |
да |
да 9 |
требуется правка |
|
одноязычный |
да |
да |
да |
да |
да 9 |
требуется правка |
|
оба |
да |
да |
да |
да |
да 10 |
требуется правка, одобрено |
|
оба |
нет |
да |
нет |
нет |
нет |
||
одноязычный |
нет |
да |
нет |
нет |
нет |
||
одноязычный |
да |
да |
нет |
нет |
нет |
||
одноязычный |
нет |
да |
нет |
да |
нет |
||
оба |
да |
да |
нет |
да |
да 10 |
требуется правка |
|
одноязычный |
да |
да 7 |
нет |
нет |
да 10 |
||
двуязычный |
нет |
да |
нет |
нет |
нет |
||
одноязычный |
нет 11 |
да |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
да |
нет |
нет |
нет |
нет |
||
одноязычный |
да |
нет |
нет |
нет |
нет |
||
одноязычный |
да |
да |
нет |
нет |
нет |
||
одноязычный |
да |
да |
нет |
нет |
нет |
||
одноязычный |
нет |
да |
нет |
нет |
да 10 |
||
оба |
нет |
да |
да |
да |
нет |
требуется правка |
|
одноязычный |
нет |
да |
нет |
нет |
нет |
||
одноязычный |
да |
да |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
да 10 |
||
одноязычный |
нет |
да |
нет |
нет |
нет |
||
одноязычный |
нет |
да |
да |
да |
нет |
требуется правка |
|
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
да |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
двуязычный |
нет |
да |
нет |
нет |
да 10 |
||
одноязычный |
нет |
нет |
нет |
нет |
нет |
||
одноязычный |
да |
да |
нет |
нет |
нет |
||
одноязычный |
нет 12 |
да |
нет |
нет |
нет |
- 1
Смотрите раздел Двуязычные и одноязычные форматы
- 2
Множественные формы необходимы для правильной локализации строк, содержащих переменную количества.
- 3
Комментарии могут быть использованы для указания дополнительной информации о строке для перевода.
- 4
Контекст используется для различения одинаковых строк, используемых в разных областях (например, Sun может означать как сокращённое название дня «воскресенье» — «Sunday» — так и название нашей ближайшей звезды).
- 5
Расположение строки в исходном коде может помочь опытным переводчикам понять предназначение этой строки.
- 6
Дополнительные состояния, поддерживаемые форматом файла в дополнение к состояниям «Не переведено» и «Переведено».
- 7
Комментарий XML, размещённый перед элементом
<string>
, трактуется как комментарий разработчика.- 8
Смотрите раздел Настройка поведения с помощью флагов
- 9(1,2)
В качестве флагов используются комментарии типа gettext.
- 10(1,2,3,4,5,6)
Для всех форматов на основе XML флаги извлекаются из нестандартного атрибута
weblate-flags
. Кроме того, флагmax-length:N
поддерживается через атрибутmaxwidth
, как определено в стандарте XLIFF, смотрите раздел Указание флагов перевода.- 11
Множественные формы поддерживаются только для Laravel, который использует для их определения внутристрочный синтаксис, смотрите документ Локализация в Laravel.
- 12
Множественное число обрабатывается в синтаксисе строк и не отображается как множественное число в Weblate.
Строки только для чтения¶
Добавлено в версии 3.10.
Строки из файлов перевода, доступные только для чтения, будут включены, но не могут быть отредактированы в Weblate. Поддержка этой возможности уже встроена в некоторые форматы (XLIFF и Строковые ресурсы Android), а в других может быть сэмулирована добавлением к строке флага read-only
— смотрите раздел Настройка поведения с помощью флагов.
GNU gettext¶
Самый широкоиспользуемый формат для перевода свободного програмного обеспечения.
Контекстная информация, хранящаяся в файле, поддерживается настройкой его заголовков или его привязкой к соответствующим исходным файлам.
Двуязычный PO-файл gettext обычно выглядит следующим образом:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Monday"
msgstr "Pondělí"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Tuesday"
msgstr "Úterý"
#: weblate/accounts/avatar.py:163
msgctxt "No known user"
msgid "None"
msgstr "Žádný"
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
Пусто |
Шаблон для новых переводов |
|
Формат файла |
PO-файл gettext |
См.также
Перевод программ с помощью GNU gettext, Перевод документации с помощью Sphinx, Gettext в Википедии, PO-файлы, Обновление переменной ALL_LINGUAS в файле «configure», Настройка вывода gettext, Обновление файла LINGUAS, Создание MO-файлов, Обновлять PO-файлы до соответствия POT (msgmerge)
Одноязычный gettext¶
Некоторые проекты решают использовать gettext в качестве одноязычного формата — в их исходном коде присутствуют только идентификаторы и строка должна быть переведена на все языки, в том числе и на английский. Такая конфигурация поддерживается, хотя для этого и надо явно выбирать этот формат файлов при импорте компонентов в Weblate.
Одноязычный PO-файл gettext обычно выглядит следующим образом:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Pondělí"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Úterý"
#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "Žádný"
А базовый языковой файл — вот таким образом:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Monday"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Tuesday"
#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "None"
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
PO-файл gettext (одноязычный) |
XLIFF¶
Формат на основе XML, созданный для стандартизации файлов перевода, но в конечном итоге ставший просто ещё одним из многочисленных стандартов в этой области.
Формат файла XML для обмена локализациями (XLIFF) обычно используется как двуязычный, но Weblate поддерживает его использование и в качестве одноязычного.
См.также
Спецификация формата файла XML для обмена локализациями (XLIFF)
Состояния перевода¶
Изменено в версии 3.3: Weblate игнорировал атрибут state
до выхода версии 3.3.
Атрибуту состояния 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, который не накладывает таких ограничений.
Типовые настройки компонента Weblate для двуязычного XLIFF |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
Пусто |
Шаблон для новых переводов |
|
Формат файла |
Файл перевода XLIFF |
Типовые настройки компонента Weblate для одноязычного XLIFF |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Файл перевода XLIFF |
Файлы свойств Java¶
Родной формат Java для переводов.
Файлы свойств Java обычно используются в качестве одноязычных переводов.
Weblate поддерживает варианты этого формата в кодировках ISO-8859-1, UTF-8 и UTF-16. Все они поддерживают сохранение всех символов юникода, просто в разных кодировках. В формате ISO-8859-1 используются юникодные экранирующие последовательности (например, zkou\u0161ka
), остальные кодируют символы непосредственно в UTF-8 или UTF-16.
Примечание
Загрузка экранирующих последовательностей также работает в режиме UTF-8, поэтому, пожалуйста, будьте внимательны при выборе правильного набора кодировок в соответствии с потребностями вашего приложения.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Свойства Java (ISO 8859-1) |
файлы mi18n lang¶
Добавлено в версии 4.7.
Формат файла, используемый для локализации JavaScript программой mi18n. Синтаксически он соответствует Файлы свойств Java.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
файл mi18n lang |
См.также
mi18n t:formats/properties, Файлы свойств Java, Обновление файлов целевых языков, Форматирование файла свойств Java, Очистка файлов перевода
Файлы свойств GWT¶
Родной формат GWT для переводов.
Файлы свойств GWT обычно используются в качестве одноязычных переводов.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Свойства GWT |
Переводы в INI-файлах¶
Добавлено в версии 4.1.
Формат INI-файла для переводов.
Переводы в INI-файлах обычно используются в качестве одноязычных переводов.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
INI-файл |
Переводы в INI-файлах Inno Setup¶
Добавлено в версии 4.1.
Формат INI-файлов Inno Setup для переводов.
Переводы в INI-файлах Inno Setup обычно используются в качестве одноязычных переводов.
Примечание
Единственным заметным отличием от обычных переводов в INI-файлах является поддержка заполнителей %n
и %t
для символов переноса строки и табуляции.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
INI-файл Inno Setup |
Примечание
На текущий момент поддерживаются только юникодные файлы (.islu
), файлы в кодировке ANSI (.isl
) в настоящее время не поддерживаются.
См.также
Переводы Joomla¶
Добавлено в версии 2.12.
Родной формат Joomla для переводов.
Переводы Joomla обычно используются в качестве одноязычных переводов.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Языковой файл Joomla |
Файлы .ts Qt Linguist¶
Формат перевода, используемый в приложениях на основе Qt.
Файлы Qt Linguist используются и как двуязычные, так и одноязычные переводы.
Типовые настройки компонента Weblate при использовании формата как двуязычного |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
Пусто |
Шаблон для новых переводов |
|
Формат файла |
Файл перевода Qt Linguist |
Типовые настройки компонента Weblate при использовании формата как одноязычного |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Файл перевода Qt Linguist |
Строковые ресурсы Android¶
Специфичный для Android формат файла для перевода приложений.
Строковые ресурсы Android являются одноязычными. ref:component-template хранится в другом месте, нежели остальные строки — в res/values/strings.xml
.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Строковый ресурс Android |
Примечание
Структуры строкового массива Android, string-array, в настоящее время не поддерживаются. Чтобы это обойти, вы можете разбить свои строковые массивы на части:
<string-array name="several_strings">
<item>First string</item>
<item>Second string</item>
</string-array>
станет:
<string-array name="several_strings">
<item>@string/several_strings_0</item>
<item>@string/several_strings_1</item>
</string-array>
<string name="several_strings_0">First string</string>
<string name="several_strings_1">Second string</string>
Элемент string-array, указывающий на элементы string, должен храниться в другом файле и не должен быть доступен для перевода.
Помочь в подготовке существующих файлов strings.xml и переводов вам может вот этот скрипт: https://gist.github.com/paour/11291062
Строки Apple iOS¶
Специфичный для Apple формат файла для перевода приложений, используемый для переводов приложений как для iOS, так и для iPhone’а/iPad’а.
Строки Apple iOS обычно используются в качестве двуязычных переводов.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Строки iOS (UTF-8) |
Строки PHP¶
Переводы PHP обычно одноязычные, поэтому рекомендуется указывать базовый файл со строками на (как это чаще всего бывает) английском языке.
Пример файла:
<?php
$LANG['foo'] = 'bar';
$LANG['foo1'] = 'foo bar';
$LANG['foo2'] = 'foo bar baz';
$LANG['foo3'] = 'foo bar baz bag';
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Строки PHP |
Строки Laravel PHP¶
Изменено в версии 4.1.
Файлы локализации Laravel PHP также поддерживают множественные формы:
<?php
return [
'welcome' => 'Welcome to our application',
'apples' => 'There is one apple|There are many apples',
];
См.также
JSON-файлы¶
Добавлено в версии 2.0.
Изменено в версии 2.16: Начиная с Weblate версии 2.16 и translate-toolkit версии не ниже 2.2.4 также поддерживаются JSON-файлы с вложенной структурой.
Изменено в версии 4.3: Структура JSON-файла корректно сохраняется даже в сложных ситуациях (которые некорректно обрабатывались в предыдущих выпусках).
Формат JSON используется в основном для перевода приложений, написанных на JavaScript.
В настоящее время Weblate поддерживает несколько вариантов переводов в JSON:
Простые файлы в формате ключ/значение, используемые, например, vue-i18n или react-intl.
Файлы с вложенными ключами.
Переводы JSON обычно одноязычные, поэтому рекомендуется указывать базовый файл со строками на (как это чаще всего бывает) английском языке.
Пример файла:
{
"Hello, world!\n": "Ahoj světe!\n",
"Orangutan has %d banana.\n": "",
"Try Weblate at https://demo.weblate.org/!\n": "",
"Thank you for using Weblate.": ""
}
Также поддерживается вложенная структура файлов (условия поддержки смотрите выше), такой файл может выглядеть следующим образом:
{
"weblate": {
"hello": "Ahoj světe!\n",
"orangutan": "",
"try": "",
"thanks": ""
}
}
Подсказка
И формат JSON-файл, и JSON-файл с вложенной структурой могут обрабатывать одни и теже файлы.
Единственная разница между ними проявляется при добавлении новых строк через Weblate: варианта формата «со вложенной структурой» разбирает ключи вновь добавленных строк и вставляет их в файл в виде соответствующей структуры. Например, ключ app.name
будет вставлен как:
{
"app": {
"name": "Weblate"
}
}
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл вложенной структуры JSON |
JSON -файлы i18next¶
Изменено в версии 2.17: Начиная с Weblate версии 2.17 и translate-toolkit версии не ниже 2.2.5 также поддерживаются JSON-файлы i18next с формами множественного числа.
i18next — это фреймворк интернационализации, написанный на и для JavaScript. Weblate поддерживает его файлы локализации с такими возможностями, как формы множественного числа.
Переводы i18next обычно одноязычные, поэтому рекомендуется указывать базовый файл со строками на (как это чаще всего бывает) английском языке.
Примечание
Weblate поддерживает формат JSON-файла i18next версии v3. Версии v2 и v1 в основном совместимы, за исключением того, как они работают с формами множественного числа.
Пример файла:
{
"hello": "Hello",
"apple": "I have an apple",
"apple_plural": "I have {{count}} apples",
"apple_negative": "I have no apples"
}
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
JSON-файл i18next |
JSON-файлы go-i18n¶
Добавлено в версии 4.1.
Переводы go-i18n обычно одноязычные, поэтому рекомендуется указывать базовый файл со строками на (как это чаще всего бывает) английском языке.
Примечание
Weblate поддерживает формат JSON-файла go-i18n версии v1, для плоских JSON-файлов используйте формат JSON-файлы. Формат v2 с хэшами в настоящее время не поддерживается.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
JSON -файл go-i18n |
Файл ARB¶
Добавлено в версии 4.1.
Переводы ARB обычно одноязычные, поэтому рекомендуется указывать базовый файл со строками на (как это чаще всего бывает) английском языке.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл ARB |
JSON-файлы WebExtension¶
Добавлено в версии 2.16: Поддерживаются с версии Weblate 2.16 и translate-toolkit версии не ниже 2.2.4.
Формат файла, используемый при переводе расширений для Mozilla Firefox или Google Chromium.
Примечание
Хотя этот формат называется JSON, его спецификация позволяет включать комментарии, которые не являются частью спецификации JSON. В настоящее время Weblate не поддерживает файл с комментариями.
Пример файла:
{
"hello": {
"message": "Ahoj světe!\n",
"description": "Description",
"placeholders": {
"url": {
"content": "$1",
"example": "https://developer.mozilla.org"
}
}
},
"orangutan": {
"message": "",
"description": "Description"
},
"try": {
"message": "",
"description": "Description"
},
"thanks": {
"message": "",
"description": "Description"
}
}
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
JSON-файл WebExtension |
.XML-файлы ресурсов¶
Добавлено в версии 2.3.
В .XML-файле ресурса (.resx) применяется формат одноязычного XML-файла, используемый в приложениях Microsoft .NET. Он взаимозаменяем с форматом .resw, который использует синтаксис, идентичный синтаксису .resx.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл ресурсов .NET |
Файлы CSV¶
Добавлено в версии 2.4.
Файлы CSV обычно содержат простой список исходных строк и переводов. Weblate поддерживает следующие форматы оных:
Файлы с заголовком, определяющим поля в самом файле (
location
— расположение,source
— исходная строка,target
— перевод,ID
,fuzzy
— «на правку»,context
— контекст,translator_comments
— комментарий переводчика,developer_comments
— комментарий разработчика). Это рекомендуемый подход, так как при его использовании меньше вероятность ошибок. Выберите CSV-файл в качестве формата.Файлы с двумя полями - источник и перевод (в данном порядке). Выберите Простой CSV-файл в качестве формата файла.
Файлы без заголовка, с полями в порядке, определённом translate-toolkit:
location
,source
,target
,ID
,fuzzy
,context
,translator_comments
,developer_comments
. Выберите CSV-файл в качестве формата.Не забывайте определить одноязычный базовый файл, если ваши файлы одноязычные (смотреть раздел Двуязычные и одноязычные форматы).
Предупреждение
Формат CSV в настоящее время автоматически определяет диалект файла CSV. В некоторых случаях автоматическое определение может не сработать, и вы получите смешанные результаты. Особенно это касается файлов CSV с символами новых строк внутри значений. В качестве обходного пути рекомендуется не использовать кавычки.
Пример файла:
Thank you for using Weblate.,Děkujeme za použití Weblate.
Типовые настройки компонента Weblate для двуязычного CSV |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
Пусто |
Шаблон для новых переводов |
|
Формат файла |
Файл CSV |
Типовые настройки компонента Weblate для одноязычного CSV |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Простой CSV-файл |
См.также
Файлы YAML¶
Добавлено в версии 2.9.
Простые файлы YAML со строковыми ключами и значениями. Также Weblate извлекает строки из списков и словарей.
Пример файла YAML:
weblate:
hello: ""
orangutan": ""
try": ""
thanks": ""
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл YAML |
См.также
Файлы Ruby YAML¶
Добавлено в версии 2.9.
Файлы YAML локализации Ruby с языком в качестве корневого узла.
Пример файла YAML локализации Ruby:
cs:
weblate:
hello: ""
orangutan: ""
try: ""
thanks: ""
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл Ruby YAML |
См.также
Файлы DTD¶
Добавлено в версии 2.18.
Пример DTD-файла:
<!ENTITY hello "">
<!ENTITY orangutan "">
<!ENTITY try "">
<!ENTITY thanks "">
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл DTD |
См.также
Плоские XML-файлы¶
Добавлено в версии 3.9.
Пример плоского XML-файла:
<?xml version='1.0' encoding='UTF-8'?>
<root>
<str key="hello_world">Hello World!</str>
<str key="resource_key">Translated value.</str>
</root>
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Плоский XML-файл |
См.также
Файлы ресурсов Windows¶
Изменено в версии 4.1: Поддержка файлов ресурсов Windows была переписана.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Пример файла ресурсов Windows:
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_MSG1 "Hello, world!\n"
IDS_MSG2 "Orangutan has %d banana.\n"
IDS_MSG3 "Try Weblate at http://demo.weblate.org/!\n"
IDS_MSG4 "Thank you for using Weblate."
END
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Файл RC |
См.также
Файлы метаданных магазина приложений¶
Добавлено в версии 3.5.
Метаданные, используемые для публикации приложений в различных магазинах приложений, могут быть переведены. В настоящее время совместимы следующие инструменты:
Метаданные состоят из нескольких текстовых файлов, которые Weblate представляет для перевода в виде отдельных строк.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Файлы метаданных магазина приложений |
Подсказка
Если вы не хотите переводить определённые строки (например, историю изменений), пометьте их «только для чтения» (read-only, смотреть раздел Настройка поведения с помощью флагов). Это также можно автоматизировать с помощью надстройки «Массовая правка».
Файлы субтитров¶
Добавлено в версии 3.7.
Weblate может переводить различные файлы субтитров:
Файл субтитров SubRip (
*.srt
)Файл субтитров MicroDVD (
*.sub
)Файл субтитров Advanced SubStation Alpha (
*.ass
)Файл субтитров SubStation Alpha (
*.ssa
)
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
|
Формат файла |
Файл субтитров SubRip |
См.также
Excel Open XML¶
Добавлено в версии 3.2.
Можно импортировать и экспортировать файлы Excel Open XML (.xlsx).
Загружая для перевода файлы XLSX, имейте в виду, что учитывается только активный рабочий лист, и должны быть хотя бы колонки с названием source
(содержащая исходную строку) и target
(содержащая перевод). Дополнительно может быть колонка с названием context
(содержащая путь к контексту строки перевода). Если вы используете скачанный XLSX для экспорта переводов в рабочую книгу Excel, вы уже получите файл в правильном формате.
Файлы HTML¶
Добавлено в версии 4.1.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Переводимое содержимое извлекается из HTML-файлов и предлагается для перевода.
См.также
Текстовые файлы¶
Добавлено в версии 4.6.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Переводимое содержимое извлекается из обычных текстовых файлов и предлагается для перевода. Каждый абзац переводится как отдельная строка.
Существует три варианта этого формата:
Обычный текстовый файл
Текстовый файл DokuWiki
Текстовый файл MediaWiki
См.также
Формат OpenDocument¶
Добавлено в версии 4.1.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Переводимое содержимое извлекается из файлов OpenDocument и предлагается для перевода.
См.также
Формат IDML¶
Добавлено в версии 4.1.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Переводимое содержимое извлекается из файлов языка разметки Adobe InDesign и предлагается для перевода.
Формат TermBase eXchange¶
Добавлено в версии 4.5.
TBX — это XML-формат для обмена терминологическими данными.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
Пусто |
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл TermBase eXchange |
См.также
Формат Stringsdict¶
Добавлено в версии 4.8.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Формат на основе XML, используемый компанией Apple, который способен хранить множественные формы строки.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл Stringsdict |
См.также
Формат Fluent¶
Добавлено в версии 4.8.
Примечание
Поддержка этого формата в настоящее время находится в бета-режиме, приветствуются обратная связь от тестирования.
Fluent - это моноязычный текстовый формат, ориентированный на асимметричную локализацию: простая строка на одном языке может отображаться в сложный многовариантный перевод на другом языке.
Типовые настройки компонента Weblate |
|
---|---|
Маска файла |
|
Одноязычный базовый файл |
|
Шаблон для новых переводов |
Пусто |
Формат файла |
Файл Fluent |
См.также
Поддержка других форматов¶
Большинство форматов, которые поддерживают сериализацию и которые поддерживает translate-toolkit, могут поддерживаться с лёгкостью, но они (пока) ни как не тестировались. В большинстве случаев, чтобы скрыть различия в поведении различных хранилищ translate-toolkit, в Weblate приходится добавлять тонкую прослойку.
Чтобы добавить поддержку нового формата, предпочтительный подход состоит в том, чтобы сначала реализовать его поддержку в translate-toolkit.