Печать

Часть 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'));
?>
Интересная статья? Поделись ей с другими: