Комментарии

Языковые расширения в Joomla 2.5
( 2 Голосов )
К сильным сторонам Joomla относится высокая степень локализации. В настоящее время осуществлена локализация Joomla на более чем 68 языков мира. Это дает пользователям возможность работать с программой Joomla на их родном языке.
 
Локализация Joomla реализуется с помощью языковых расширений. Языковое расширение представляет собой набор специальных файлов (с расширением *.ini), содержащих все слова и выражения, отображаемые в пользовательском интерфейсе Joomla. Это позволяет перевести пользовательский интерфейс на любой язык мира. Покажем, как это делается.
 
Для отображения текста на странице, выводимой в окне браузера, в языке РНР служит команда echo. 
 
Рассмотрим для примера экран авторизации администратора на веб-сайте Joomla, как показано скриншоте ниже. 
 экран авторизации администратора
Глядя на экран, можно предположить, что где-то в недрах кода РНР для Joomla находится PHP команда вроде (echo 'Joomla! Administration Login') для регистрации администрирования Joomla!. Но если мы попытаемся найти эту команду в файле исходного кода РНР, то ничего подобного нам найти в итоге не удастся.
 
В Joomla текст оформления пользовательского интерфейса не кодируется жестко, иначе пришлось бы вносить изменения в программный код для каждого языка мира в отдельности. Вместо этого жестко кодируются ключи в файлах языковой поддержки, а их значения читаются как конкретный текст во время выполнения. Если же мы попытаемся найти символьную строку 'Joomla! Administration Login'в файле языковой поддержки с расширением .ini, то в конечном итоге обнаружим ее в файле administrator/language/en-GB/en-GB.com_login.ini.
 
Языковой перевод расширений Joomla
 
Левая часть COM_LOGIN_JOOMLA_ADMINISTRATION_LOGIN седьмой строки кода в данном файле называется языковым ключом (или дескриптором). А в правой ее части, заключенной в кавычки и представляющей собой значение ключа, содержится конкретный текст, отображаемый средствами Joomla при выборе британского английского языка (en-GB).
 
Как видите, в результате поиска по данному языковому ключу (или дескриптору) в исходных файлах РНР он обнаруживается дважды в файлах administrator/templates/bluestork/login.php и administrator/templates/hathor/login.php. Ниже приведена строка кода с PHP командой echo.
 

 
Вместо команды echo с текстом на английском языке мы можем вывести результат выполнения метода JText: : _ (). В качестве аргумента этого метода указывается языковый ключ из файла с расширением .ini. Метод JText: :_() осуществляет поиск по заданному языковому ключу в файле с расширением .ini и возвращает совпадающий текст. Если же по какой-нибудь причине поиск по заданному языковому ключу не даст никакого результата, метод возвратит сам ключ.
 
Если бы было установлено и выбрано другое языковое расширение, называемое иначе языковым пакетом, то в результате аналогичного поиска появился бы текст на данном языке.
 
Для создания языковых расширений следует сформировать новые файлы, соответствующие каждому основному файлу с расширением .ini, где все дескрипторы переведены на целевой язык. Нетрудно себе представить, насколько трудоемкой оказывается такая задача, и поэтому нет ничего удивительного в том, что самой большой в рамках проекта Joomla является группа разработчиков, занимающаяся локализацией Joomla на более чем 68 языков мира (Joomla Translation Team).
 
Если вы будете создавать расширение для сообщества пользователей Joomla, настоятельно рекомендуется сформировать для него файлы языковой поддержки с расширением .ini и воспользоваться методами из класса JText для вывода текста. Тем самым вы облегчите другим задачу локализации вашего расширения на другие языки мира.
 
 

Понравился материал? Пригодилась информация? Плюсани в социалки!

 
Похожие новости