Рекомендуем

Скидки до 30% на все темы и подписки... Никаких уловок или обмана Подписка на GavickPro включает в себя полный доступ к шаблонам для Joomla и WordPress, без каких-либо...

Далее...

Elegant Icon Font - 310 великолепных иконок... ElegantThemes создали поистине самый красивый, элегантный и полный набор иконок. Набор предлагается в виде веб шрифта,...

Далее...

JA Fubix адаптивный шаблон для Joomla... JA Fubix - апрельский шаблон от JoomlArt. Отлично подходящий для сайтов с тематикой спортивных новостей использующих...

Далее...

T3 Framework от JoomlArt О фреймворке Фреймворк T3 заслужено считается одним из самых популярных шаблонных фреймворков для Joomla. Все шаблоны...

Далее...

3 популярных фреймворка для... Очень большую роль в популярности Joomla сыграла система шаблонов, позволяющая в считанные секунды преобразить...

Далее...

  • Prev
  • Next

Разработка модулей в Joomla 2.5: Часть 4. Локализация (перевод) модулей

Категории: Локализация расширений, Разработка модулей для Joomla

Мы конечно хотим, чтобы наш модуль можно было с легкостью перевести на любой другой язык. И все что для этого необходимо – это всего лишь вынести тексты в отдельный файл, а не прописывать в коде. Это даст возможность делать перевод без редактирования основного кода, что подсилу даже далекому от программирования пользователю. Разработчики Joomla уже позаботились об этой возможности.

Создаем файл language/en-GB/en-GB.mod_helloworld.ini, для английского языка

MOD_HELLOWORLD="Hello World!"
MOD_HELLOWORLD_XML_DESCRIPTION="Hello World! module description"
MOD_HELLOWORLD_GREETING_DEFAULT="I am a module"
MOD_HELLOWORLD_GREETING_LABEL="Greeting"
MOD_HELLOWORLD_GREETING_DESC="The greeting to display"

И файл language/ru-RU/ru-RU.mod_helloworld.ini для русского (кодировка UTF-8)

MOD_HELLOWORLD="Привет мир!"
MOD_HELLOWORLD_XML_DESCRIPTION="Привет мир! описание модуля"
MOD_HELLOWORLD_GREETING_DEFAULT="Я модуль"
MOD_HELLOWORLD_GREETING_LABEL="Приветствие"
MOD_HELLOWORLD_GREETING_DESC="Приветствие для отображения"

Обратите внимание, что языковые строки начинаются с MOD_HELLOWORLD. MOD – тип расширения (в нашем случае модуль), HELLOWORLD – название расширения. Этого правила нужно придерживаться, чтобы избежать пересечения с другими языковыми файлами.
Чтобы обеспечить перевод процесса установки, а также в «Менеджере расширений» и меню, нам понадобиться еще один языковой файл для «Панели управления»: language/en-GB/en-GB.mod_helloworld.sys.ini и language/ru-RU/ru-RU.mod_helloworld.sys.ini. Важно понимать, что эти файлы будут использоваться в «Панели управления». Соответственно они содержат намного меньше языковых строк, но они все таки необходимы если мы хотим чтобы в «Панели управления» все что связано с нашим модулем было на языке выбранным пользователем.
Создаем файл language/en-GB/en-GB.mod_helloworld.sys.ini, для английского языка

MOD_HELLOWORLD="Hello World!"
MOD_HELLOWORLD_XML_DESCRIPTION="Hello World! module description"

И файл language/ru-RU/ru-RU.mod_helloworld.sys.ini для русского (кодировка UTF-8)

MOD_HELLOWORLD="Привет мир!"
MOD_HELLOWORLD_XML_DESCRIPTION="Привет мир! описание модуля"

Внесем необходимые изменения в файл шаблона вывода модуляtmpl/default.php:

<?php 
/**
 * @package	Joomla.Tutorials
 * @subpackage	Module
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license	License GNU General Public License version 2 or later; see LICENSE.txt
 */
// No direct access to this file
defined('_JEXEC') or die;
?>
<p><?php echo $params->get('greeting', JText::_('MOD_HELLOWORLD_GREETING_DEFAULT')); ?></p>

Если в настройках модуля не задано приветствие, мы просто выводим приветствии по умолчанию. Функция JText::_('MOD_HELLOWORLD_GREETING_DEFAULT') вернет нам строку текста соответствующую языку, который выбрал пользователь. Если такой строки не найдется то, будет браться строка из языкового файла для английского языка, если и там ее не будет, то вернется сама строка (в нашем случае ‘MOD_HELLOWORLD_GREETING_DEFAULT’).

Ну и конечно необходимо внести изменения XML файл описания модуля mod_helloworld.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
	<name>MOD_HELLOWORLD</name>
	<!-- Следующие элементы не обязательны и могут содержать все, что вы считаете нужным -->
	<creationDate>05.05.2012</creationDate>
	<author>Dev Joomla</author>
	<authorEmail>info@dev-joomla.ru</authorEmail>
	<authorUrl>http://www.dev-joomla.ru</authorUrl>
	<copyright>Copyright Info</copyright>
	<license>License Info</license>
	<!-- Версия модуля – эта строка сохраняется в таблице расширений -->
	<version>0.0.1</version>
	<!-- Описание модуля также не обязательно и если оно не указано, то берется из тэга  name -->
	<description>MOD_HELLOWORLD_XML_DESCRIPTION</description>
	<!-- Обратите внимание на тэг  files: в нем содержится информация, о том какие файлу нужно копировать в каталог модуля -->
	<files>
		<filename module="mod_helloworld">mod_helloworld.php</filename>
		<filename>mod_helloworld.xml</filename>
		<folder>tmpl</folder>
		<folder>language</folder>
	</files>
	<!-- Описание параметров модуля -->
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="greeting"
					type="text"
					default="MOD_HELLOWORLD_GREETING_DEFAULT"
					label="MOD_HELLOWORLD_GREETING_LABEL"
					description="MOD_HELLOWORLD_GREETING_DESC"
				/>
			</fieldset>
		</fields>
	</config>
</extension>

Здесь мы добавили указание, что нужно скопировать каталог language (строка 20). И, заменили все описания на языковые константы (строки 3, 14, 29, 30, 31), которые уже описаны в языковых файлах.

Как видите, ничего сложного в добавлении в модуль возможности перевода на другие языки нет. Необходимо лишь придерживаться некоторых правил.

Скачать исходные тексты mod_helloworld-part04.zip

Предыдущая запись:

Следующая запись:


Добавить комментарий

Professional Responsive Joomla Templates