Локализация

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

Сообщения расширения делятся на следующие группы:

  • Мета-информация.
    Эти сообщения хранятся в файле meta.xml в корневой папке расширения. Чтобы выполнить перевод элемента этого файла, укажите такой же элемент со специальным атрибутом xml:lang, содержащим 4-буквенный код языка, соответствующий RFC1766. Например:
3563<description>Easily add customers and websites</description>
<description xml:lang="de-DE">Einfache Neukundenerfassung & simple Website-Erstellung</description>
  • Другие сообщения.
    Эти сообщения являются частью кода расширения, например, надписи полей ввода форм, заголовки страниц, названия действий и так далее. Далее в этой главе мы расскажем, как помочь системе найти переводы, чтобы отобразить их для пользователей Plesk.

 

Интерфейс, позволяющий автоматически переводить сообщения, называется pm_Locale, он представлен соответствующим классом. Чтобы использовать этот интерфейс, вам надо:

  1. Создать заполнители (ключи), которые вы будете использовать вместо настоящих значений в сообщениях графического интерфейса. Например, чтобы заменить надпись на кнопке Accept, вы можете использовать acceptButtonText. Ключ может быть произвольной строкой.
  2. Используйте pm_Locale::lmsg(key) вместо настоящей строки в коде расширения. Здесь key может иметь значение acceptButtonText, которое мы получили на шаге 1.
  3. Добавить языкозависимые значения для каждого ключа.

Пары "ключ-значение" должны быть включены в ассоциативный массив $messages, например:

<?php

$messages = array(
 '<em>acceptButtonText</em>' => 'Accept',
);

Файл, содержащий массив $messages, должен находиться в папке /plib/resources/locales/ (в корневой папке расширения), и его имя должно совпадать с соответствующим 4-буквенным кодом локали. Например: de-DE.php. Все сообщения, относящиеся к определенному языку, должны храниться в файле для соответствующего языка. Например,

/plib/resources/locales/en-US.php:

<?php

$messages = array(
 '<em>acceptButtonText</em>' => 'Accept',
 '<em>cancelButtonText</em>' => 'Cancel',
);

/plib/resources/locales/de-DE.php:

<?php

$messages = array(
 '<em>acceptButtonText</em>' => 'Accept',
 '<em>cancelButtonText</em>' => 'Stornieren',
);