+38 (067) 901-63-22 Вс 09:00—18:00
+38 (067) 901-63-22 Вс 09:00—18:00
usapolukr

Например: VDoc

Корзина

0 товара(ов) на сумму
0 грн.

Концепция локализации в системе Корпорация 2

В Корпорации 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='


















<%login_label%>:





<%password_label%>:

<%reg_label%> | <%forg_label%>

Перед тем, как вывести информацию на экран, переводим её:

echo $this->trans->tr($this->auth_form);

На данный момент, пример применения перевода можно просмотреть в компоненте авторизации auth.

12.02.09, 8:43