Часть 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'));
?>
Вложения:
mod_helloworld_part3.zip[ ] (1016) Загрузок

5 

Комментарии   

 
+1 Guazzo
16.07.2012 16:41
Ну гуд, че)
Все работает. Уроки правильные. Спасибо.
Вот делаю 1 шажки под жумлу кодить.
 
 
0 Guazzo
16.07.2012 16:51
Только откуда берется %s эта переменная...если она только в языковом файле заюзана
 
 
0 Дмитрий
06.08.2012 11:15
это подстановка sprintf, только переменной text отбъекта params не существует.
 
 
+1 Sergey
21.11.2012 22:26
афтар, допиши, что файлы локализации надо кидать в папку /language/ru-RU
а то у новичков опять ничего не получится :)
 
 
0 Guazzo
22.11.2012 09:04
Sergey, в установщике же все прописывается,что куда закидывается, руками не надо ничего ставить.
 
 
-3 sergey
23.12.2012 19:48
Разрабы уебаны. Нафига менять параметры, все модули под 1.5 теперь приходится переписывать. Было param, теперь надо писать field, вот нафига это надо было делать? Что от этого изменилось, надежность джумлы или что.
 
 
-1 HeG
22.01.2013 20:52
sergey, а как же ! А наследить в истории !
 
 
-3 IONEX
02.07.2013 03:21
Чем вызвана необходимость создания двух файлов локализации, почему нельзя все уместить в один?
 

Реклама

Company https://www.xcritical.com/: fintech software development