Часть 3 Локализация модуля
14/04/2012
Разработка модуля Joomla 2.5
Файлы локализации для модуля подключаются автоматически. Необходимо только создать их для конкретного языка. Для примера можно добавить в модуль "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>email@example.org</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')); ?>
5
Комментарии
16.07.2012 16:41
Все работает. Уроки правильные. Спасибо.
Вот делаю 1 шажки под жумлу кодить.
16.07.2012 16:51
06.08.2012 11:15
21.11.2012 22:26
а то у новичков опять ничего не получится :)
22.11.2012 09:04
23.12.2012 19:48
22.01.2013 20:52
02.07.2013 03:21
RSS лента комментариев этой записи