Определение языков

Для правильного представления различных переводов необходима информация о названии языка, направлении текста, определения форм множественного числа и код языка.

Встроенные определения языков

Определения для около 600 языков включены в сам Weblate и этот список расширяется с каждым релизом. Каждый раз, когда Weblate обновляется (точнее, каждый раз, когда выполняется weblate migrate, смотреть также generic-upgrade-instructions) база данных языков также обновляется и в неё добавляются все определения языков, поставляемые с Weblate.

Это можно отключить, отключив параметр UPDATE_LANGUAGES. Вы также можете принудительно обновить базу данных, чтобы она соответствовала встроенной БД Weblate с помощью setuplang.

Разбор кодов языков

При разборе переводов Weblate пытается сопоставить код языка (обычно по ISO 639-1) из Маска файла с любым существующим объектом языка.

Дальнейшую настройку этого сопоставления на уровне проекта можно осуществить с помощью псевдонимов языков.

Если точное совпадение не может быть найдено, будет сделана попытка подогнать его под наиболее подходящий существующий язык. Следующие попытки будут предприняты:

  • Регистронезависимый поиск.

  • Нормализация подчёркиваний и дефисов.

  • Поиск по встроенным псевдонимам языка.

  • Поиск по названию языка.

  • Игнорирование кода страны по умолчанию для данного языка — выбором ru вместо ru_RU.

Если и это также не получится, будет создано новое определение языка с использованием настроек по умолчанию (направление текста слева направо, одна форма множественного числа). Такой автоматически созданный язык с кодом xx_XX будет иметь имя xx_XX (generated). Возможно, позже вы захотите изменить его в интерфейсе администратора (смотрите раздел Изменение определений языка) и сообщить об этом в систему отслеживания ошибок (смотрите раздел Как внести свой вклад в Weblate), чтобы соответствующее определение было добавлено в последующих выпусках Weblate.

Подсказка

В случае, если вы видите в качестве языка что-то нежелательное, вам может понадобиться настроить языковой фильтр на игнорирование такого файла при разборе переводов.

Изменение определений языка

Вы можете изменить определения языка в интерфейсе по языкам (по адресу /languages/).

Во время редактирования убедитесь, что все поля заполнены правильно (особенно формы множественного числа и направление текста), иначе переводчики не смогут правильно редактировать эти переводы.

Неоднозначные коды языков и макроязыки

В большинстве случаев использовать код макроязыка для перевода не очень хорошая идея. Типичный проблемный случай — это курдский язык, разные варианты которого могут записываться либо латиницей, либо арабским письмом. Чтобы добиться корректного поведения в Weblate рекомендуется использовать только индивидуальные коды языков, избегая макроязыков.

Определение языков

Каждый язык состоит из следующих полей:

Код языка

Код, идентифицирующий язык. Weblate предпочитает двухбуквенные коды, как они определены в ISO 639-1, но для языков, для которых нет двухбуквенных кодов, использует коды ISO 639-2 или ISO 639-3. Также он может поддерживать расширенные коды, определённые в BCP 47.

Название языка

Видимое название языка. Названия языков, включенных в Weblate, также локализуются в зависимости от языка пользовательского интерфейса.

Направление текста

Определяет, идёт ли запись в языке справа налево или слева направо. Для большинства языков это свойство корректно определяется автоматически.

Количество форм множественного числа

Количество используемых в языке форм множественного числа.

Формула множественного числа

Совместимая с Gettext формула множественного числа, используемая для определения того, какая форма множественного числа используется для данного количества.

Количество говорящих

Number of worldwide speakers of this language.

Добавление новых переводов

Изменено в версии 2.18: В версиях до 2.18 поведение добавления новых переводов зависело от формата файла.

Weblate может автоматически начинать новый перевод для всех форматов файлов.

Некоторые форматы ожидают, что они будут начинаться с пустого файла и в него будут включены только переведённые строки (например, Строковые ресурсы Android), в то время как другие ожидают, что в файле будут присутствовать все ключи (например, GNU gettext). Форматы на основе документов (например, Формат OpenDocument) начинаются с копии исходного документа и всех строк, помеченных как «На правку». В некоторых ситуациях это на самом деле зависит не от формата, а от фреймворка, который вы используете для работы с файлами перевода (например, с файлами JSON).

При указании в конфигурации компонента файла шаблона нового перевода Weblate будет использовать его для начинания новых переводов. Все существующие переводы при этом будут из файла удалены.

Если шаблон для новых переводов не задан и формат файла поддерживает его, то создаётся пустой файл, в который будут добавляться новые строки по мере их перевода.

Параметр «Стиль кода языка» позволяет вам настраивать код языка, используемый в именах сгенерированных файлов:

Умолчание, основанное на формате файла

Зависит от формата файла, для большинства форматов используется стиль POSIX.

Стиль POSIX, использующий подчёркивание как разделитель

Обычно используется gettext’ом и связанными с ним инструментами, выдаёт коды языков вида pt_BR.

Стиль POSIX, использующий подчеркивание как разделитель и включающий код страны

Код языка в стиле POSIX, включающий код страны, даже если в этом нет необходимости (например, ru_RU).

Стиль BCP, использующий в качестве разделителя дефис

Обычно используется на веб-платформах, выдаёт коды языков вида pt-BR.

Стиль BCP, использующий в качестве разделителя дефис и включающий код страны

Код языка в стиле BCP, включающий код страны, даже если в этом нет необходимости (например, ``ru-RU`).

Стиль BCP с использованием дефиса в качестве разделителя, устаревшие коды языков

Использует устаревшие коды для обозначения китайского языка и стиля BCP.

Стиль BCP с использованием дефиса в качестве разделителя, в нижнем регистре

BCP style notation, all in lower case (for example cs-cz).

Стиль метаданных App Store от Apple

Style suitable for uploading metadata to Apple App Store.

Стиль метаданных Google Play

Style suitable for uploading metadata to Google Play Store.

Стиль Android

Используется только в приложениях для Android, выдаёт коды языков вида pt-rBR.

Стиль Linux

Локали, используемые в Linux, используют устаревшие коды для обозначения китайского языка и стиля POSIX.

В дополнение к этому, любое отображение, определённое как псевдоним языка, применяется в обратном направлении.

Примечание

Weblate распознаёт любой из этих стилей при разборе файлов перевода, вышеуказанные настройки влияют только на то, в каком стиле создавать новые файлы.