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

To present different translations properly, info about language name, text direction, plural definitions and language code are needed.

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

Определения около 800 языков включены в Weblate, и список расширяется в каждом выпуске. При каждом обновлении Weblate (точнее, при каждом выполнении migrate, см. Общие инструкции по обновлению) база данных языков обновляется, чтобы включить все определения языков, поставляемые с 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, также локализуются в зависимости от языка пользовательского интерфейса.

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

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

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

Число говорящих на этом языке во всём мире.

Определения во множественном числе

Weblate поставляется со встроенным набором определений множественного числа. Они основаны на спецификациях формата файлов, CLDR и других источниках.

Предупреждение

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

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

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

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

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

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

The formula uses the same expression syntax as the plural= part of the Gettext Plural-Forms header. The nplurals value sets how many plural forms the language has, and the formula returns the zero-based index of the plural form to use for a count n.

Weblate validates the formula using the Gettext parser provided by Python. The accepted syntax is a C-like integer expression with n as the only variable. It can use decimal numbers, parentheses, arithmetic operators (+, -, *, /, %), comparison and equality operators, logical operators (&&, ||, !), and the ternary operator (condition ? value1 : value2). The result must be between 0 and nplurals - 1.

For example, English uses:

nplurals=2; plural=n != 1;