Начиная с версии 4.1.5 (55) внедрена новая система локализации расширений.
Основные изменения в новой системе локализации:
- Каждое расширение теперь переводится отдельным файлом перевода. Благодаря этому появилась возможность переводить внешние (индивидуальные) расширения.
- Помимо возможности локализации в метафайле и data-скрипте, появилась возможность переводить непосредственно в шаблоне
Для подключения локализации в Метафайл необходимо добавить следующее поле:
"locales": {
"ru_RU": "langs/my_ru.lng",
"en_US": "langs/my_en.lng",
...
}
где "ru_RU", "en_US" и т.п. соответствуют языку перевода, а значение поля соответствует имени файла с переводом.
Поддерживаются следующие языки:
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".