Мобильная Торговля
Версия
Локализация

Начиная с версии 4.1.5 (55) внедрена новая система локализации расширений.
Основные изменения в новой системе локализации:

  • Каждое расширение теперь переводится отдельным файлом перевода. Благодаря этому появилась возможность переводить внешние (индивидуальные) расширения.
  • Помимо возможности локализации в манифесте и data-скрипте, появилась возможность переводить непосредственно в шаблоне

Для подключения локализации в Манифест необходимо добавить следующее поле:

"locales": {
    "ru_RU": "langs/my_ru.lng",
    "en_US": "langs/my_en.lng",
    ...
}

где "ru_RU", "en_US" и т.п. соответствуют языку перевода, а значение поля соответствует имени файла с переводом.

С версии 4.6.31 появилась возможность использовать несколько файлов с переводами. Для этого в поле со значением необходимо указать массив путей к файлам:

"locales": {
    "ru_RU": [ "langs/my_ru.lng", "newLangs/my_ru.lng" ],
    "en_US": [ "langs/my_en.lng", "newLangs/my_en.lng" ]
    ...
}

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

Поддерживаются следующие языки:
ru_RU - русский
en_US - английский
az_AZ - азербайджанский
uk_UA - украинский
ka_GE - грузинский

Формат файла перевода:

# Комментарий: Переводы для манифеста
[manifest]
Ключ = Значение
Title = Название

# Переводы для data-скрипта и шаблона
[content]
Ключ = Значение
Amount = Сумма
Price = Цена

Чтобы перевести строку в манифесте, необходимо написать функцию qsTr(Ключ):

"title": "qsTr(Outlet report)"

Обратите внимание, что ключ в манифесте передается без кавычек. На данный момент в манифесте перевод поддерживается для полей "title" и "group.group_title"
Чтобы перевести строку в data-скрипте, нужно написать функцию qsTr("Ключ"):

function data() {
    var str1_tr = qsTr("Sum") // В str1_tr попадет значение из файла перевода текущего языка

    var str2 = "Price"
    var str2_tr = qsTr(str2) // В str2_tr попадет значение из файла перевода текущего языка
}

Чтобы перевести строку в шаблоне, необходимо интерполировать функцию qsTr("Ключ"):

<h3> {{ qsTr("Sum") }} </h3>

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

Динамические переводы

Чтобы подключить динамический перевод, пропишите внутри тэга <head> в HTML-шаблоне {{ TRANSLATION|safe }}

После подключения станет доступна функция qsTr("Ключ"), работающая аналогично статической версии.