Администрирование системы  / Установка новой локали

Установка новой локали

В ELMA365 можно изменять язык интерфейса в настройках компании и профиле пользователя. Использовать можно один из поддерживаемых языков. Если для компании или отдельных пользователей нужен перевод интерфейса на язык, недоступный по умолчанию, вы можете добавить дополнительную локаль. Для этого:

  1. Создайте и установите модуль типа Языковой пакет для новой локали.
  2. Переведите пользовательскую конфигурацию и системные разделы.
  3. Выполните проверку новой локали.

Если вы хотите переопределить стандартные переводы для языков, доступных по умолчанию, выполните такой же порядок действий, как для новой локали.

Создать и установить языковой пакет

  1. Отправьте запрос на новую локаль в техподдержку.

Специалист направит вашу заявку разработчику и после её выполнения передаст вам:

  • список файлов формата .po с ресурсами для перевода;
  • утилиту с инструкцией для создания из этих файлов модуля типа Языковой пакет для целевой локали.
  1. Переведите ресурсы в полученных po-файлах, используя специальную программу, например Poеdit.
  2. Соберите модуль типа Языковой пакет в виде файла формата .e365, запустив утилиту согласно инструкции.
  3. Проверьте корректность работы модуля.
  4. Установите модуль. Если в нём содержатся некорректно переведённые данные, во время установки возникнет ошибка. В этом случае проверьте перевод po-файлов через специальную программу, например Poеdit
  5. Включите модуль.

new-locale-setting-1

После этого в настройках компании и профиле пользователя можно переключить язык интерфейса на новый. Название и код языка задаются установленным модулем.

Если новая локаль нужна только отдельным пользователям, вы можете не менять язык в настройках компании.

  1. Чтобы обновить локаль, повторите шаги, указанные выше. Новые ресурсы появляются после каждого обновления системы. Получите po-файлы с новыми ресурсами, добавьте их в модуль и установите его. Для каждого языка в системе может использоваться только один модуль, поэтому установленный ранее языковой пакет целевой локали заменится на новый.
  2. После установки локали можно приступить к переводу пользовательской конфигурации. По умолчанию функция перевода недоступна. Обратитесь в техподдержку ELMA365, чтобы активировать эту опцию.

Обратите внимание, системные разделы CRM, Поступления, Маркетинг, Линии, Проекты и Системные справочники не переводятся в модуле. Для новой локали переведите их так же, как пользовательскую конфигурацию.

Перевести пользовательскую конфигурацию

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

начало внимание

Перевод конфигурации недоступен по умолчанию. Для активации опции обратитесь в техподдержку ELMA365. Если функция перевода включена, в настройках разделов и пользовательских модулей появится пункт Переводы.

конец внимание

Чтобы добавить перевод ресурсов:

  1. Откройте страницу Переводы в настройках компонента системы, выполнив следующие действия:
  • для пользовательских модулей — перейдите в раздел Администрирование > Модули, выберите нужный модуль, нажмите Управление и откройте вкладку Переводы;

set-new-locale-2

  • для пользовательских и системных разделов — перейдите на страницу раздела, нажмите на значок шестерёнки рядом с его названием и выберите пункт Переводы.

set-new-locale-3

Дальнейшие действия одинаковы для перевода ресурсов модулей и разделов.

  1. Загрузите на ПК файл с ресурсами текущего раздела или модуля. Для этого на странице Переводы в правом верхнем углу нажмите кнопку Сгенерировать .po файл.

set-new-locale-4

  1. Сохраните ро-файл, указав его название по шаблону {код целевой локали}.po. Например:
    • en-US.po — для английского (United States);
    • en-UK.po — для английского (United Kingdom);
    • tr-TR.po — для турецкого (Turkey).

Ро-файл содержит список оригинальных ресурсов раздела (msgid) и пустые строки для их перевода (msgstr), например:

msgid "Мои юридические лица"
msgstr ""
 
msgid "Юридическое лицо"
msgstr ""
 
msgid "Название"
msgstr ""
 
msgid "Полное наименование"
msgstr ""
 
msgid "Юридический адрес"
msgstr ""
 
msgid "Фактический адрес"
msgstr ""
 
msgid "ИНН"
msgstr ""
 
msgid "КПП"
msgstr ""
 
msgid "Расчетный счет"
msgstr ""

  1. Откройте ро-файл через специальную программу для перевода, например Poеdit, и выполните в нём перевод ресурсов. При этом пустые строки в файле заполнятся.

начало внимание

Переводите ресурсы в специализированной программе, чтобы в дальнейшем исключить возможные ошибки.

конец внимание

Рекомендуем сохранять ро-файлы с выполненными переводами локально на ПК. Они могут пригодиться на случай потери данных, например после обновления системных разделов.

  1. Загрузите файл с выполненным переводом обратно в раздел или модуль. Для этого на странице Переводы нажмите кнопку +Файл. Обратите внимание, если название файла не соответствует коду локали, возникнет ошибка.

set-new-locale-5

Загруженный перевод автоматически применится, если пользователь в настройках профиля выберет соответствующий язык интерфейса.

начало внимание

Все функции раздела Администрирование доступны только на исходном языке интерфейса, который использовался при создании компании. Для работы в этом разделе администратору достаточно в своём профиле изменить язык на исходный.

конец внимание

  1. Таким образом создайте и загрузите ро-файлы для каждой локали, используемой в вашей компании.

Перевод в сценариях

В пользовательских сценариях, включая сценарии в виджете Код, для перевода строк используйте объект SR, для которого есть метод T(str: string): string.

Тогда строка, указанная в методе, добавится в ро-файл раздела или модуля. Затем добавьте перевод этой строки в ро-файле и загрузите файл с целевой локалью обратно в раздел или модуль. Если после этого пользователь в настройках профиля сменит локаль, выполнится перевод строки на значение, указанное в ро-файле.

Пример сценария в виджете Код с использованием функции перевода:

<% if (true) { %>
You can delete this block after reading.
<br>
 
/* SR.T('комментарий') */
Перевод строки: <%= SR.T('строка 1') %>
<% } %>

При генерации ро-файла в него добавится значение строка 1.

Проверить новую локаль

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

  1. Убедитесь, что в настройках разделов и модулей:
    • на странице Переводы содержатся корректные po-файлы с переводами ресурсов;
    • установлен исходный язык интерфейса, на котором создан раздел или модуль.

Если вы импортировали раздел или модуль из другой компании, проверьте, что в его настройках указан исходный язык интерфейса. Установив исходный язык до выполнения экспорта, после импорта в целевую компанию вы увидите его указанным в настройках по умолчанию.

  1. Проверьте, что в настройках профиля пользователя новый язык доступен для выбора.
  2. Установите в своём профиле новый язык и проверьте перевод интерфейса на страницах разделов системы.

Ошибки в установке локали и их причины

  1. Ошибка: после смены языка в профиле пользователя не загружается страница. При этом текст ошибки в консоли ссылается на языковой пакет.

Стандартная причина такой ошибки: не установлен исходный язык в настройках раздела.

  1. Ошибка: пустой интерфейс раздела, зависает страница.

Причиной может быть некорректный перевод ресурсов в ро-файле. Чтобы этого избежать, переводите ро-файлы в специальной программе, например Poеdit. Исправляйте некорректный перевод также в этой программе.

Пример ро-файла с ошибками, который открыт в Poеdit:

set-new-locale-9

  1. Ошибка оформления кода в ро-файле.

Причиной может быть некорректное использование двойных кавычек. Соблюдайте следующие правила их оформления:

  1. Двойные кавычки могут быть только в начале и конце каждой строки перевода.

Пример кода с ошибкой:

msgid ""
"текст1\n"
"текст2\n"
msgstr ""text1\n"text2\n"

Пример верного кода 1:

msgid ""
"текст1\n"
"текст2\n"
msgstr "text1\ntext2\n"

Пример верного кода 2:

msgid ""
"текст1\n"
"текст2\n"
msgstr ""
"text1\n"
"text2\n"

  1. Если двойные кавычки нужны внутри перевода, их нужно экранировать знаком \, например:

msgstr "Add the \"Start\" button";

msgstr "Тестовое значение равно = \"1\""

Другие особенности оформления кода в ро-файле:

  • если значение параметра msgstr разбито на две строки, вы можете его написать в одну строку. Это не вызовет ошибку;
  • значение параметра msgid (ключ перевода) нельзя изменять, чтобы исключить такие ошибки, как опечатки, лишние пробелы, изменение регистра и т. п. При наличии этих ошибок ключ перевода может не примениться;
  • если в переводе есть специальные символы, их также нельзя изменять. В этом случае переводите только русские слова.

Дополнить перевод

Если вы внесли изменения в разделе, например, добавили приложение, дополните переводы во всех ро-файлах. Для этого:

  1. В настройках раздела или модуля перейдите на страницу Переводы.
  2. Справа от названия каждого файла нажмите на три точки и выберите Перегенерировать .po файл. Новые ресурсы с пустым переводом добавятся в ро-файлы, а выполненные ранее переводы сохранятся.

set-new-locale-6

  1. Загрузите ро-файлы на ПК и добавьте новые переводы, используя специальную программу, например Poеdit.
  2. Перейдите на страницу Переводы, выберите устаревшие ро-файлы и удалите их.

set-new-locale-7

  1. Нажмите +Файл и загрузите дополненные ро-файлы с выполненным переводом.