Главная

Руководство: Локализация

Локализация

Начиная с версии 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".