Початкові кроки у інтернаціоналізації

Маєте проєкт і хочете перекласти його декількома мовами? Цей розділ підручника допоможе вам у цьому. Описано декілька типових випадків. Втім, більшість прикладів є загальними — їх може бути застосовано у інших сценаріях.

Перш ніж перекладати будь-яке програмне забезпечення, вам слід зрозуміти, що мови світу є дуже різними — ви не можете робити ніяких припущень на основі вашого попереднього життєвого досвіду. Для більшості мов поділ речення на шматки, які потім з’єднуються, дуже ускладнює переклад. Вам слід належним чином обробляти форми множини, оскільки у багатьох мовах доволі складні правила щодо цього, отже оболонка перекладу, якою ви користуєтеся, має підтримувати ці форми множини.

Нарешті, хоча це також є важливим, вам, ймовірно, слід додати певний контекст до рядка, який буде перекладено. Уявіть, що перекладачеві показано рядок Sun, який слід перекласти. Без контексту більшість перекладачів виконають переклад, який відповідатиме назві найближчої до нас зірки, але це слово може насправді використовуватися як скорочення слова, яке позначає день тижня — неділю.

Вибір оболонки інтернаціоналізації

Виберіть стандартну оболонку для вашої програмної платформи. Намагайтеся не винаходити колеса створенням власної бібліотеки для локалізації. У Weblate передбачено підтримку більшості поширених бібліотек, див. розділ щодо форматів, щоб дізнатися більше (особливо, допоміжний розділ Можливості типів перекладу).

Наші особисті рекомендації для деяких платформ викладено у наведеній нижче таблиці. Вміст таблиці засновано на наших власних враженнях, він не є абсолютно повним, тому зважайте на ваше середовище, коли робитимете вибір.

Платформа

Рекомендований формат

Android

Рядкові ресурси Android

iOS

Рядки Apple iOS

Qt

Qt Linguist .ts

Python

GNU Gettext

PHP

GNU Gettext 1

C/C++

GNU Gettext

C#

Файли ресурсів .XML

Perl

GNU Gettext

Ruby

Файли YAML Ruby

Веброзширення

JSON WebExtension

Java

XLIFF 2

JavaScript

Файли JSON i18next 3

1

Вбудована підтримка Gettext у PHP має вади, її часто не передбачено у збірках для Windows. Рекомендуємо скористатися замість неї сторонньою бібліотекою motranslator.

2

Ви також можете скористатися Властивості Java, якщо форми множини не використовуються.

3

Ви також можете скористатися простим файли JSON, якщо форми множини не використовуються.

Докладнішу процедуру для деяких форматів описано у наступних розділах:

Інтеграція із Weblate

Отримання оновлень перекладів з Weblate

Щоб отримати оновлені рядки з Weblate в можете просто отримати базове сховище (або з файлової системи, або за допомогою Засіб експортування Git). До цього, вам, можливо, варто внести усі зміни з черги (див. «Ліниві» внески). Досягти цього можна за допомогою графічного інтерфейсу користувача (розділ Супровід сховища) або інтерфейсу командного рядка за допомогою Клієнт Weblate.

Це можна автоматизувати, якщо ви надасте Weblate доступ до запису до вашого сховища і налаштуєте Адресу запису у складнику перекладу.

Надсилання змін у рядках на Weblate

Щоб записати щойно оновлені рядки до Weblate, просто надайте програмі можливість отримання даних основного сховища. Досягти цього можна за допомогою графічного інтерфейсу користувача (розділ Супровід сховища) або інтерфейсу командного рядка за допомогою Клієнт Weblate.

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