Локализация Smart Launcher
Базовым языком для локализации интерфейса Ministra TV platform является английский.
Для перевода ро-файлов локализации интерфейса Ministra TV platform рекомендуется использовать редактор Poedit.
Каждое приложение в виде npm-пакета содержит свои json-файлы локализаций, сгенерированные на основе ро-файлов с переводом.
Пример пути к json-файлам локализации:
где
magcore-app-tv- название пакета
2.2.8- версия пакета.
Порядок работы
Рекомендуемая процедура работы с po-файлами:
1. Создание новых или обновление имеющихся po-файлов программистом. Подробнее в разделе Генерация файлов локализации.
2. Передача po-файлов лицу, ответственному за сбор и систематизацию po-файлов, а также работу с переводчиками. Проверка наличия всех необходимых файлов.
3. Передача po-файлов переводчику. Перевод. Подробнее в разделе Осуществление перевода.
4. Возврат po-файлов, проверка наличия всех необходимых файлов и перевода в них.
5. Возврат po-файлов единым архивом программисту. Применение.
Генерация файлов локализации
Для локализации приложений используется система интернационализации gettext. Рекомендуется использовать команду gettext платформ magsdk, spasdk, stbsdk для сканирования кода, создания и обновления файлов локализации.
Для этого укажите в файле
require('magsdk/node_modules/spa-plugin-gettext/config').default.languages = ['de', 'ru', 'sl', 'uk'];
Далее необходимо в консоли (находясь в корне проекта) выполнить команду “magsdk gettext”.
При её запуске выполняется генерация (либо обновление, если они уже существуют) самих ро-файлов, а также создаются json-файлы с переводом на их основе. Данные json-файлы помещаются в приложение и используются при работе программы.
Для получения актуального перевода в коде используйте npm-пакет cjs-gettext. Для работы с ро-файлами используйте редактор Poedit.
Для обозначения языков используется стандарт ISO 639-1.
После выполнения указанных действий ро-файлы передаются на перевод. По возвращении файлов с переводом замените старые ро-файлы переведенными. Затем выполните команду gettext. Команда просканирует ро-файлы и обновит json-файлы.
Осуществление перевода
1. Скачайте редактор Poedit с официального сайта http://www.poedit.net/download.php
2. Установите программу.
3. Запустите редактор Poedit. Выберите Файл→Параметры→Общие. Введите введите ваше имя и электронную почту.
Описание интерфейса редактора Poedit
Внешний вид программы при открытии po-файла
На картинке описаны следующие элементы программы:
(1) - текст, требующий перевода.
(2) - текст, переведенный в автоматическом режиме и потому требующий проверки. Если он является правильным, то нужно подтвердить его правильность снятием нажатия с кнопки "неточно" (вверху, с нарисованными тучами). Либо вручную исправить.
(3) - текст, требующий перевода.
(4) - собственно, место для вписания перевода.
(5) - комментарий к исходному тексту, - часто используется в случае, если текст для перевода является частью более обширного предложения. Либо если необходимо указать разработчику на ошибку в исходном тексте.
(6) - у данного текста есть комментарий.
(7) - данный текст переведен либо исправлен вами и считается верным.
Перевод
Для внесения перевода в po-файл:
- Откройте файл с локализацией с помощью программы Poedit;
- Выберите фразу с отсутствующим переводом;
- Введите перевод в соответствующее поле (элемент (4) на картинке).
Исправление ошибок в файле с готовым переводом осуществляется путем редактированием поля Перевод. Исправление ошибок в исходных ключах (английской локализации) невозможно. Чтобы в дальнейшем программист внес исправления в поле Исходный текст (элемент (3)) сделайте пометку в поле Комментарий (элемент (5)).
Также важно помнить об особенностях перевода программ.
После смены языка в приложении, все текстовые части одной локализации будут заменены на соответствующие части другой локализации. Для корректного отображения перевода:
- объем переведенного текста не должен значительно превышать оригинальный;
- избегайте использования лишних пробелов или переводов строки.
Например:
В исходном ключе имеется фраза "Hello world!". Предположим, что в процессе перевода на русский язык эта фраза превратилась в " Здравствуй дивный большой мир! ". Причем в конце фразы несколько раз нажата клавиша Enter. После смены локализации на русскую будут выведены все символы (вместе с пробелами и переводами строк). В результате, текст займет несколько строк и деформирует интерфейс программы. Или отобразится только та часть текста, которая поместится в выделенный для текста участок.