Определение языков
Для правильного представления различных переводов необходима информация о названии языка, направлении текста, определения форм множественного числа и код языка.
Встроенные определения языков
Определения для около 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 формула множественного числа, используемая для определения того, какая форма множественного числа используется для данного количества.
Добавление новых переводов
Изменено в версии 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
Style suitable for uploading metadata to appstores. This should be suitable for both Apple App Store and Google Play Store.
- Стиль Android
Используется только в приложениях для Android, выдаёт коды языков вида
pt-rBR
.- Стиль Linux
Локали, используемые в Linux, используют устаревшие коды для обозначения китайского языка и стиля POSIX.
В дополнение к этому, любое отображение, определённое как псевдоним языка, применяется в обратном направлении.
Примечание
Weblate распознаёт любой из этих стилей при разборе файлов перевода, вышеуказанные настройки влияют только на то, в каком стиле создавать новые файлы.
См.также