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

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

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

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

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

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

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

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

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

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

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

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

Підказка

Якщо у списку мов ви бачите якісь небажані записи, вам варто скоригувати Фільтр мов для ігнорування відповідного файла при обробці перекладів.

Зміна визначень мов

Ви можете змінити визначення мов за допомогою інтерфейсу роботи з мовами (адреса /languages/).

Під час редагування переконайтеся, що усі поля заповнено правильно (особливо, на форми множини та напрямок запису тексту). Якщо ви цього не зробите, перекладачі не зможуть належним чином редагувати відповідні переклади.

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

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

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

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

Здебільшого, не варто використовувати код макромови для перекладу. Типовим проблемним випадком є курдська мова, яку можна записувати арабською або латинською писемністю, залежно від варіанта. Щоб Weblate обробляв такі випадки належним чином, рекомендуємо використовувати лише коди окремих мов і уникати використання кодів макромов.

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

Кожен запис мови складається з таких полів:

Код мови

Код ідентифікації мови. Weblate надає перевагу дволітерним кодам, які визначаються стандартом ISO 639-1, але використовує коди ISO 639-2 або ISO 639-3 для мов, які не мають дволітерного коду. Крім того, передбачено підтримку розширених кодів, які визначено стандартом BCP 47.

Назва мови

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

Напрямок тексту

Визначає, записується мова справа ліворуч чи зліва праворуч. Ця властивість автоматично визначається належним чином для більшості мов.

Кількість форм множини

Кількість форм множини, які використовуються у мові.

Форма множини

Для визначення, яку форму множини буде використано для вказаної кількості, буде використано формулу множини, яка сумісна із Gettext.

Додавання нових перекладів

Змінено в версії 2.18: У версіях до 2.18 поведінка при додаванні нових перекладів була специфічною для формату файлів.

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

У деяких форматах усе починається з порожнього файла, до якого додаються лише перекладені рядки (наприклад, Рядкові ресурси Android), у інших же від початку зберігаються усі ключі (наприклад, GNU Gettext). У деяких випадках вміст залежить не від формату, а від оболонки, якою ви користуєтеся для обробки перекладу (наприклад, файли JSON).

Якщо ви вказуєте шаблон для нових перекладів у складнику, Weblate використає цей файл для започаткування перекладів. Усі наявні переклади буде вилучено з файла, коли ви так зробите.

Якщо вміст поля Шаблон для нових перекладів є порожнім, і у форматі файлів передбачено підтримку відповідних файлів, буде створено порожній файл, до якого додаватимуться нові рядки, щойно буде отримано їхній переклад.

За допомогою поля Стиль коду мови ви можете налаштувати код мови, який буде використано у назвах створених файлів:

Усталення на основі форматі файлу

Залежить від формату файлів. Для більшості форматів використовується POSIX.

Стиль POSIX з підкресленням як роздільником

Типово, використовується у gettext і пов’язаних інструментів. Створює коди мов, подібні до pt_BR.

Стиль POSIX з підкресленням як роздільником, включно із кодом країни

Код мови у стилі POSIX. Включає код країни, навіть якщо у цьому немає потреби (наприклад, cs_CZ).

Стиль BCP з дефісом як роздільником

Типово, використовується на вебплатформах. Створює коди мов, подібні до pt-BR.

Стиль BCP з дефісом як роздільником, включно з кодом країни

Код мови у стилі BCP. Включає код країни, навіть якщо у цьому немає потреби (наприклад, cs-CZ).

Стиль Android

Використовується лише у програмах Android. Створює коди мов, подібні до pt-rBR.

Стиль Java

Використовується у BCP із переважним використанням Java з застарілими кодами для китайської мови.

Крім того, будь-які прив’язки, які визначено у Альтернативні назви мови, працюють і у зворотному напрямку.

Примітка

Weblate розпізнає будь-які з цих стилів при обробці файлів перекладів. Згадані вище параметри впливають лише на те, як створюватимуться нові файли.