Локализация Joomla

Материал из Newman's WiKi.

Перейти к: навигация, поиск

Локализация позволяет использовать различные языки в интерфейсе без переписывания кода. Изначально обходились константами описаными в разных файлах языков. А в зависимости от активного языка подключался нужный файл. В основном о том что бы активировать язык должен был заботиться программист. В версии Joomla 1.5.x возможности локализации встроенны в систему.

Содержание

Класс JText

Данный класс занимается переводом текстовых строк. Для того что бы ваш компонент, модуль или плагин поддерживал различные языки надо любой вывод текста делать через методы класса JText. Самый простой метод это метод _ (подчеркивание). Данный метод берет строку полученную в качестве аргумента и переводит ее на активный язык. Если для данной строки нет перевода, то она выводится как есть.

echo JText::_('Hello world');

Языковые файлы

Формат файла

Языковые файлы являются файлами формата INI. В качестве ключа используется строка для перевода, а в качестве значения перевод. Замеченно что в Joomla строка в ключе указывается с использованием верхнего регистра. При создании языкового файла следует учитывать все пробельные и служебные символы. Значения строк необходимо писать в кодировке UTF-8.

HELLO WORLD=Привет всем

Расположение и соглашение о имени файла

Файлы перевода могут распологаться в папке /language - для пользовательской части и в папке /administrator/language - для админки. Пути указаны относительно корневой папки Joomla.

Внутри этих папок распологаются папки для конкретных языков. В качестве примера:

  • ru-RU - русский
  • en-GB - английский(Великобритания)

Файл с переводом имеет префикс, указывающий на используемый язык, название компонента, модуля или плагина и расширение ini. Так файл русского языка для компонента helloworld будет иметь следующие имя: ru-RU.com_helloworld.ini

Прописывание в инсталяторе компонента

Для установки файлов языковой поддержки в файле инсталяции есть секция languages

<languages>
		<language tag="en-GB">en-GB.com_helloworld.ini</language>
		<language tag="ru-RU">ru-RU.com_helloworld.ini</language>
</languages>

Эту секцию можно использовать как в клиентской так и в админской части инсталятора.

Личные инструменты