Часть 3. Локализация модуля
Файлы локализации для модуля подключаются автоматически. Необходимо только создать их для конкретного языка. Для примера можно добавить в модуль "mod_helloworld" еще один параметр с использованием локализации, а так же вывести значение этого параметра в макете.
mod_helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
<!-- Названия модуля -->
<name>mod_helloworld</name>
<!-- Следующие элементы являются не обязательными,
информация об авторе, копирайте и т.п. -->
<creationDate>November 2010</creationDate>
<author>SomeBody</author>
<authorEmail>Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.</authorEmail>
<authorUrl>http://www.joomla-code.ru</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- Версия модуля запишется в БД таблица extension -->
<version>0.0.1</version>
<!-- Описание, не обязательно, по умолчанию использеуется имя модуля -->
<description>MOD_HELLOWORLD_XML_DESCRIPTION</description>
<!-- Обратите внимание на атрибут folder, он указывает из
какой директории будут копироваться файлы -->
<files>
<filename module="mod_helloworld">mod_helloworld.php</filename>
<filename>mod_helloworld.xml</filename>
<filename>index.html</filename>
<folder>tmpl</folder>
</files>
<config>
<fields name="params">
<!-- Основные параметры для модуля -->
<fieldset name="basic">
<field name="text" type="text"
label="MOD_HELLOWORLD_TEXT_FIELD_LABEL"
description="MOD_HELLOWORLD_TEXT_FIELD_DESC" />
</fieldset>
<!-- Дополнительные параметры для модуля -->
<fieldset name="advanced">
<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC" />
</fieldset>
</fields>
</config>
<!-- Файлы локализации -->
<languages folder="language">
<language tag="ru-RU">ru-RU/ru-RU.mod_helloworld.ini</language>
<language tag="ru-RU">ru-RU/ru-RU.mod_helloworld.sys.ini</language>
</languages>
</extension>
Для локализации соответствующих констант создадим файлы
ru-RU.mod_helloworld.ini
; Helloworld
; Copyright © http://joomla-code.ru
; License GNU/GPL v.2 or later.
; Внимаение: все файлы должны быть сохранены в кодировке UTF-8 (без BOM)
MOD_HELLOWORLD_XML_DESCRIPTION="Описание модуля HELLO WORLD!"
MOD_HELLOWORLD_TEXT_FIELD_LABEL="Текст"
MOD_HELLOWORLD_TEXT_FIELD_DESC="Введите текст, который будет отображаться модулем"
MOD_HELLOWORLD_PARAMETR_LABEL="Ваш текст в параметре модуля - '%s'"
Так же есть системный файл локализации, в котором можно перевести название модуля и описание.
ru-RU.mod_helloworld.sys.ini
; Helloworld
; Copyright © http://joomla-code.ru
; License GNU/GPL v.2 or later.
; Внимаение: все файлы должны быть сохранены в кодировке UTF-8 (без BOM)
MOD_HELLOWORLD="Название модуля HELLO WORLD"
MOD_HELLOWORLD_XML_DESCRIPTION="Описание модуля HELLO WORLD!"
Для корректного отображения описания модуля после установки, данные файлы нужно сохранять в директории "language", т.е. для русской локализации это будет директория "language/ru-RU".
Для отображения параметра "text" нужно изменить макет модуля
tmpl/default.php
<?php /** * @package Joomla.Tutorials * @subpackage Module * @copyright (C) 2012 http://jomla-code.ru * @license License GNU General Public License version 2 or later; see LICENSE.txt */ // No direct access. defined('_JEXEC') or die('(@)|(@)'); echo JText::sprintf('MOD_HELLOWORLD_PARAMETR_LABEL', $params->get('text')); ?>