В Корпорации 2 CMS созданы компоненты для локализации приложения.
Компонента называется translate.
translate - компонента реализующая непосредственно перевод.
lang_bar - компонента для вывода перечня языков в котором можно переключиться.
В основном классе Корпорации внесены 3 свойства, связанных с переводом (локализацией):
public $lang='ru'; // Текущий язык публичной части
public $lang_adm='ru'; // Текущий язык админ-части
public $langs=array('ru','ua', 'en'); // Доступные языки
Соответственно, данные переменные можно указывать в основном конфигурационном файле: config_main.php
Для каждой компоненты есть папка lang в ней сохраняются файлы с массивами переводов.
Например:
/lang/ua/index.php - файл перевода для украинского языка.
Его содержимое:
defined( '_VALID_CORP' ) or die( 'Прямой вызов запрещён' );
$this->msg=array(
array('login_label', 'Логін'),
array('password_label' , 'Пароль'),
array('reg_label' , 'Реєстрація'),
array('forg_label' , 'Згадати пароль'),
array('hello_label' , 'Ласкаво просимо'),
array('exit_btn' , 'Вихід')
);
В компоненте, в которой реализовывается перевод создаётся класс перевода:
function CMain()
{
$GLOBALS["c"]->ins_comp_file("translate/main_class.php");
$this->trans=new translate($application);
$this->trans->get_msg('auth');
}
В шаблоне, используются вместо названий латинское обозначение выражения, например:
// Шаблон формы авторизации
$GLOBALS["myauth"]->auth_form='
Перед тем, как вывести информацию на экран, переводим её:
echo $this->trans->tr($this->auth_form);
На данный момент, пример применения перевода можно просмотреть в компоненте авторизации auth.
12.02.09, 8:43
0 комментариев