Как добавить новый язык в панель управления

Материал из ISPWiki
Перейти к: навигация, поиск

Нередко встает вопрос: каким образом можно добавить в панель управления новый язык и перевести панель не него? Рассмотрим в текущей статье как добавить, например, шведский язык в ISPmanager.


Как добавить свой язык?

Чтобы в поле выбора языков появился шведский язык необходимо создать файл /usr/local/mgr5/etc/xml/ispmgr_msg_sv.xml со следующим содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<lang name="sv">
</lang>
</mgrdata>

Где - sv произвольное значение. Обычно соответствует коду языка.

Чтобы язык отображался не как sv, а в панели отображалось название языка, необходимо добавить файл /usr/local/mgr5/etc/xml/core_mod_sv.xml со следующим содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<lang name="en">
       <messages name="label_langs">
       <msg name="sv">Svenska</msg>
       </messages>
</lang>
</mgrdata>

Где Svenska - название языка.

После того, как оба файла добавлены, необходимо перезапустить панель командой

killall core

В ISPmanager появится возможность выбрать шведский язык на странице логина и на странице изменения языка пользователя.

Ispmgr-lang.png

Аналогично добавляется новый язык в любую другую панель управления ISPsystem. Единственным отличием будет то, что файл ispmgr_msg_<язык>.xml нужно называть в соответствии с именем панели, то есть для BILLmanager файл будет называться billmgr_msg__<язык>.xml, для VMmanager файл будет называться vmmgr_msg__<язык>.xml и т.д.

Как сделать перевод панели на этот язык?

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

Способ 1

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

Выделяем в панели любой текст, который хотим перевести и нажимаем Ctrl + Enter, откроется окно, в котором вводим перевод.

Ispmgr-lang2.png

После того, как введено новое сообщение и изменения сохранены (на форме нажали ОК), то в интерфейсе моментально изменится сообщение на новое.

Ispmgr-lang3.png

Все изменения, которые будут производиться с помощью Ctrl + Enter будут сохраняться в файл /usr/local/mgr5/etc/xml/ispmgr_mod_local_msg.xml

Впоследствии, как перевод будет завершен, получится, что все сообщения языка находятся в файле ispmgr_mod_local_msg.xml.

В итоге получится три файла языка:

  • core_mod_sv.xml - содержит название языка. Файл необходим, чтобы в списке выбора языка отображалось название языка, а не его короткое обозначение.
  • ispmgr_msg_sv_msg.xml - файл с описанием языка.
  • ispmgr_mod_local_msg.xml - файл с описанием языка и всеми переведенными сообщениями.

Можно объединить файлы ispmgr_msg_sv_msg.xml и ispmgr_mod_local_msg.xml. То есть скопировать все сообщения из ispmgr_mod_local_msg.xml в ispmgr_msg_sv_msg.xml . Либо переименовать ispmgr_mod_local_msg.xml в ispmgr_msg_sv_msg.xml , но тогда новые правки по Ctrl + Enter запишутся в новый файл ispmgr_mod_local_msg.xml .

Способ 2

Первый способ позволяет делать перевод напрямую из интерфейса панели, но не всегда это удобно и не все сообщения удается перевести таким образом. Рассмотрим еще один вариант перевода панели на какой-либо язык, в нашем примере это шведский.

Берем за основу файл с английскими сообщениями ispmgr_msg_en.xml и копируем его

cp /usr/local/mgr5/etc/xml/ispmgr_msg_en.xml /usr/local/mgr5/etc/xml/ispmgr_msg_sv.xml 

В новом файле ispmgr_msg_sv.xml меняем <lang name="en"> на <lang name="sv">

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

Чтобы изменения вступили в силу требуется перезапуск панели управления.