К списку «Проектирование модуля для Joomla 3.x»
И так, сразу пройдемся по теме локализации модуля. На данный момент, у нас есть модуль, который, практически, ничего не делает и обеднен функционалом. Так как основными элементами модуля являются элементы управления, то давайте создадим для них локализацию, так, чтобы при смене системного языка менялся и зык модуля с английского на русский и с русского на английский.
Файлова структура модуля
Структура модуля изменится, мы добавим папку languages, в котором создадим подпапки ru-RU и en-GB, в которых, соответственно, будут находиться по паре файлов:
*.mod_portfolio.ini — этот файл является языковым пакетом для общего описания функционала.
*.mod_portfolio.sys.ini — этот файл является языковым пакетом для системной информации модуля.
Структура установочного файла mod_portfolio.xml
Теперь необходимо добавить дополнительный код в файл установки, чтобы определить папку языковых файлов и языковые пакеты. Если коротко, то каждое поле имеет 2 параметра(атрибута) в теге, которые выступают названием name и описанием — description. В предыдущем примере мы просто писали в эти атрибуты текст, а сейчас определим для них константы, которые будут потом по своему определены в каждом языковом файле, где в файле en-GB.mod_portfolio.ini этой константе будет присвоен английский текст, а в ru-RU.mod_portfolio.ini — русский текст. Код данного файла изменится следующим образом:
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.0" client="site"> <name>WebSofter Module Portfolio. Stage 2</name> <author>David Amirkhanov</author> <creationDate>August 2016</creationDate> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>mail.websofter@gmail.com</authorEmail> <authorUrl>www.wsofter.com</authorUrl> <version>1.0.0</version> <description>Module Portfolio for Joomal CMS designed by David Amirkhanov</description> <files> <filename module="mod_portfolio">mod_portfolio.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <folder>tmpl</folder> <folder>language</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.mod_portfolio.ini</language> <language tag="en-GB">en-GB/en-GB.mod_portfolio.sys.ini</language> <language tag="ru-RU">ru-RU/ru-RU.mod_portfolio.ini</language> <language tag="ru-RU">ru-RU/ru-RU.mod_portfolio.sys.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="title" type="text" label="MOD_PORTFOLIO_TITLE" description="MOD_PORTFOLIO_TITLE_DESC" required="true" size="30" class="mod-portfolio-title" validate="" /> <field name="description" type="editor" default="" label="MOD_PORTFOLIO_DESCRIPTION" description="MOD_PORTFOLIO_DESCRIPTION_DESC"/> <field name="icon" type="file" label="MOD_PORTFOLIO_FILE" description="MOD_PORTFOLIO_FILE_DESC" accept="images/*"/> </fieldset> </fields> </config> </extension>
А языковые файлы будут содержать описания этих констант
;System translate for module MOD_PORTFOLIO_TITLE="Title" MOD_PORTFOLIO_TITLE_DESC="Title of project" MOD_PORTFOLIO_DESCRIPTION="Description" MOD_PORTFOLIO_DESCRIPTION_DESC="Description of project" MOD_PORTFOLIO_FILE="icon" MOD_PORTFOLIO_FILE_DESC="Icon of project"
;Общий перевод для модуля MOD_PORTFOLIO_TITLE="Название" MOD_PORTFOLIO_TITLE_DESC="Название проекта" MOD_PORTFOLIO_DESCRIPTION="Описание" MOD_PORTFOLIO_DESCRIPTION_DESC="Описание проекта" MOD_PORTFOLIO_FILE="Иконка" MOD_PORTFOLIO_FILE_DESC="Иконка проекта"
После установки и при смене языка сайта вы увидите, что модуль тоже меняет язык и при этом важно, чтобы и в системе были установлены те же языки, что в модуле. Скачать данный шаг проекта можно по ссылке mod_portfolio_v1.0.0_stage_2.zip.