Определение языковых файлов для модуля Joomla 3.x

К списку «Проектирование модуля для Joomla 3.x»

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

Файлова структура модуля

Структура модуля изменится, мы добавим папку languages, в котором создадим подпапки ru-RU и en-GB, в которых, соответственно, будут находиться по паре файлов:

*.mod_portfolio.ini — этот файл является языковым пакетом для общего описания функционала.

*.mod_portfolio.sys.ini — этот файл является языковым пакетом для системной информации модуля.

new-structure-of-module-by-stage-2

Структура установочного файла 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.websofter.ru</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.