вторник, 24 января 2012 г.

Создание расширения для CMS Joomla 1.7. Часть 8. Добавление языков.

Доброго времени суток. И мы с Вами продолжим наращивание функционала нашего компонента для CMS Joomla 1.7.  Итак, давайте немного вернемся назад и вспомним, что мы уже сделали:
  1. В статье “Создание расширения для CMS Joomla 1.7. Введение.” мы рассмотрели идею принципа MVC и дали основные определения компонентам, модулям, плагинам.
  2. А уже в посте “Создание расширения для CMS Joomla 1.7. Часть 1 мы остановились на файловой структуре компонента и создали каркас для компонента.
  3. В третьем посте “Создание расширения для CMS Joomla 1.7. Часть 2” мы начали наращивать функционал. Теперь наш компонент для CMS Joomla выводит сообщение “Hello World”
  4. В четвертой статье из серии о создании компонента для Joomla “Создание расширения для CMS Joomla 1.7. Часть 3” мы добавили тип меню для нашего компонента.
  5. Дальше мы остановились на создании модели в нашем компоненте  “Создание расширения для CMS Joomla 1.7. Часть 4
  6. В шестой статье “Создание расширения для CMS Joomla 1.7. Часть 5. Добавление переменной запроса.” мы разобрали, как добавить переменную к запросу, а точнее добили параметры в меню компонента.
  7. В следующем посте “Создание расширения для CMS Joomla 1.7. Часть 6. Работа с базой данных.” мы остановились на работе нашего компонента с базой данных.
  8. И в следующей статье “Создание расширения для CMS Joomla 1.7. Часть 7. Дизайн административного (backend) интерфейса.” мы изменили представление нашего компонента в административной части нашего сайта.
А сегодня мы остановимся на добавлении различных языков компонента для CMS Joomla. Ну. что готовы? Тогда приступим...

Управление языками для CMS Joomla необходимо в четырех случаях:
  1. Правильность отображения компонента на сайте.
  2. Управление компонентом в админ части сайта.
  3. Управление меню для CMS Joomla а админке.
  4. При установке компонента.
В Joomla 1.7 есть две различные папки для языковых файлов:
  1. Первая administrator/language или language
  2. Вторая administrator/component/<название компонента>/language или component/<название компонента>/language
Это зависит от того, как установлен наш компонент.
Для тех, кто присоединился к нам с этого поста я рекомендую скачать компонент, на базе которого мы и продолжим наращивать функциональность.
Языковый файл для сайта.
Создадим языковый файл для сайта. Для этого в папке нашего компонента в подпапке site создадим папку language, а в ней папку en-GB. В этой папке ( en-GB ) создадим файл en-GB.com_helloworld.ini. И оставим его пока пустым.
Языковый файл для административной части сайта.
Теперь давайте создадим языковый файл для административной части нашего сайта. Для этого создадим в папке нашего компонента в подпапке admin создадим папку language, а в ней папку en-GB. В этой папке ( en-GB ) создадим файл en-GB.com_helloworld.ini. И добавим в него следующий код:


COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC="This message will be displayed"
COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL="Message"
COM_HELLOWORLD_HELLOWORLD_HEADING_GREETING="Greeting"
COM_HELLOWORLD_HELLOWORLD_HEADING_ID="Id"


Языковый файл для управления меню нашего компонента.
Следующим шагом добавим языковый файл для управления меню в административной части нашего сайта. Для этого в admin/language/en-GB/ файл en-GB.com_helloworld.sys.ini.
И добавим в него следующий код:

COM_HELLOWORLD="Hello World!"
COM_HELLOWORLD_DESCRIPTION="This is the Hello World description"
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE="Hello World"
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC="This view displays a selected message"
COM_HELLOWORLD_MENU="Hello World!"


Параметры языка компонента.
Начиная с версии Joomla 1.7 при установке языковых файлов мы можем пойти двумя способами:
  1. Как и в Joomla 1.5 засунуть наши языковые файлы в саму CMS
  2. Языковые файлы хранить в самом компоненте. Это способ удобнее и он доступен только с версии 1.6. И в дальнейшем будет использоваться этот способ.
Таким образом, xml файл будет иметь следующий вид:

<files>
[...]
<folder>language</folder>  //В этой папке находятся подпапки с языковыми файлами

<filename>whatever</filename>
[...]
</files>


Создание языкового файла при установке компонента.
В корневой папке для нашего компонента создадим попдпапку language, в которой создадим папку en-GB, а уже в этой папке создадим языковый файл en-GB.ini.
И в него добавим следующий код::

COM_HELLOWORLD="Hello World!"
COM_HELLOWORLD_DESCRIPTION="This is the Hello World description"


На этом добавление языковых файлов завершено. Осталось только немного изменить наш файл описания helloworld.xml, который имеет следующий вид:

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="1.7.0" method="upgrade">
   <name>Hello World!</name><!-- Название -->
   <creationDate>2011</creationDate><!-- Дата создания -->

    <!-- Данные о разработчике -->
   <author>zloykolobok</author><!-- Инициалы автора -->
   <authorEmail></authorEmail><!-- e-mail автора -->
   <authorUrl>http://zloykolobok.blogspot.com</authorUrl><!-- адрес ресурса автора -->
    <!-- /Данные о разработчике -->
     
   <copyright></copyright><!-- Права -->
   <license>GNU</license> <!-- Тип лицензии -->
   <version>0.0.8</version><!-- версия продукта -->
   <description>Продолжение статей по созданию расширений для CMS Joomla</description><!-- Описание продукта -->

     <!-- Будет выполняться при установке продукта -->
   <install>  
       <sql>
           <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
       </sql>
   </install>
   
   <!-- Будет выполняться при удалении продукта -->
   <uninstall>  
       <sql>
           <file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
       </sql>
   </uninstall>
   
   <!-- Будет выполняться при обновлении продукта
   * Данная функция доступна с версии CMS Joomla 1.6
   -->
   <update>  
       <schemas>
           <schemapath type="mysql">sql/updates/mysql</schemapath>
       </schemas>
   </update>

     <!-- Копирование файлов в секцию site-->
   <files folder="site">
       <filename>index.html</filename>
       <filename>helloworld.php</filename>
       <filename>controller.php</filename>
       <folder>views</folder>
       <folder>models</folder>
       <!-- Новая папка с языковыми файлами для сайта -->
       <folder>language</folder>
   </files>

     <!-- Настройка административного раздела -->
   <administration>
   
       <!-- меню в административном разделе-->
       <menu>Hello World!</menu>
       
       <!-- Копирование сайтов в секцию Administration  -->
       <files folder="admin">
           <filename>index.html</filename>
           <filename>helloworld.php</filename>
           <filename>controller.php</filename>
           <!-- папка для SQL файлов -->
           <folder>sql</folder>
           <!-- папка tables -->
           <folder>tables</folder>
           <!-- папка models -->
           <folder>models</folder>
           <!-- папка views -->
           <folder>views</folder>
       </files>
       <!-- Настройка языка -->
       <languages folder="admin">
           <language tag="en-GB">language/en-GB/en-GB.com_helloworld.ini</language>
           <language tag="en-GB">language/en-GB/en-GB.com_helloworld.sys.ini</language>
       </languages>        
   </administration>
   <!-- /Настройка административного раздела -->
</extension>

Скачать готовый компонент вы можете по этой ссылке.

В этой статье мы с Вами добавили к нашему компоненту языковый файл. А в следующей статье мы добавим некоторые действия в админку для нашего компонента и поговорим о панели управления. Так, что не пропускайте выхода новых статей, подписавшись на RSS-рассылку для этого блога. Или следите за мной в twitter. А на этом пока все.

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



0 коммент.:

Отправить комментарий