[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Multilang + xTemplate
Uchenik
Решил попробовать xTemplate, очень удобно оказалось,хотя я не любитель таких вещей. Теперь возникла тупиковая ситуация.
Раньше у меня был класс, который переводил контент на нужный язык пользователя.
class Template 
{ public static function evaluate($str,$arr)
{ foreach($arr as $k=>$v)
$str = str_replace("{_".$k."_}", $v,$str);
return $str; }
}

т.е. были main.lang.php файлы, а выводилось всё вот так
print Template::evaluate($menu,$lang);

Подскажите можно ли сделать что-то такое в xTemplate? Т.е. чтобы в зависимости от языка пользователя подключался нужный lang, и всё переводилось?



Спустя 2 минуты, 37 секунд (11.01.2012 - 14:22) Uchenik написал(а):
как у меня сейчас всё работает через XTemplate
в шаблоне пишу {TEXT.HELLO} в скрипте создаю массив
$tpl = new Template($_SERVER['DOCUMENT_ROOT'].'/templates/default/index.tpl');
$arr = array
(
'HELLO' => '',
);

и вывожу
$tpl->assign('TEXT', $arr);
$tpl->parse($block);
$tpl->out($block);

Спустя 2 часа, 47 минут, 10 секунд (11.01.2012 - 17:09) SlavaFr написал(а):
не имею понятия о этой темплате, но наверное так
foreach($lang as $k=>$v){
$tpl->assign($k,$v);
}

Спустя 13 часов, 45 минут, 23 секунды (12.01.2012 - 06:55) Uchenik написал(а):
Пока сделал так:
1. подключаем класс, который переводит на нужный язык
require ('system/classes/lang.class.php');

вот сам класс:
 class Lang 
{ public static function evaluate($str,$arr)
{ foreach($arr as $k=>$v)
$str = str_replace("{".$k."}", $v,$str);
return $str; }
}

2. Прогоняем текст через класс
$hello = Lang::evaluate('{text.hello}',$L);

3.Результат обработки закидываем в массив, который передаётся в другой класс для дальнейшей обработки и выводи пользователю
$arr = array
(
'HELLO' => $hello,
);

$tpl->assign('TEXT', $arr);
$tpl->parse($block);
$tpl->out($block);

Топорный вариант, но другого пока нет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.