Визначення мов

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

Вбудовані визначення мов

У Weblate містяться визначення для близько 800 мов, і цей список поповнюється з кожним випуском. При кожному оновленні Weblate (а точніше, при кожному виконанні команди migrate, див. Загальні настанови щодо оновлення) база даних мов оновлюється, щоб включити всі визначення мов, що постачаються в Weblate.

Оновлення можна вимкнути за допомогою параметра UPDATE_LANGUAGES. Ви також можете примусово оновити базу даних так, щоб вона відповідала вбудованим до Weblate даним, за допомогою команди setuplang.

Обробка кодів мов

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

Ви можете поліпшити цю прив’язку на рівні проєкту за допомогою Альтернативні назви мови.

Якщо точної прив’язки не буде знайдено, буде зроблено спробу встановлення найкращої відповідності до наявного запису мови. Буде виконано такі кроки:

  • Пошук без врахування регістру символів.

  • Нормалізація підкреслень та дефісів.

  • Пошук вбудованих альтернативних назв мов.

  • Пошук за назвою мови.

  • Ігнорування типового коду країни для вибраної мови — вибираємо cs замість cs_CZ.

Якщо і це не допоможе, нове визначення мови буде створено за допомогою типових значень (напрям запису тексту зліва праворуч, одна форма множини). Автоматично створений запис мови із кодом xx_XX матиме назву xx_XX (generated). Ви можете змінити цю назву пізніше за допомогою адміністративного інтерфейсу (див. Зміна визначень мов) і повідомити про помилку у системі стеження за вадами (see Участь у розробці 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;