2014-01-17 5 views
0

У меня есть разные языки в моем веб-приложении.Усы отправляют данные в php-функцию?

Теперь я хотел бы написать: О нас в файле уса.

, но в зависимости от языка, который выбрал пользователь (логика в представлении/контроллере), он должен отображать правильный перевод для О нас.

перевода будет что-то я храню ровно слова: О нас

Я видел другой WebApplication, что делает это таким образом:

{{#lang}}About us{{/lang}} 

Но я не понимаю, как это работает? Как метод lang() в модели представления захватывает данные в #lang, «О нас», а затем заменяет его чем-то другим, если существует.

(процедура захвата перевода из базы данных или файла, который соответствует «О нас» не я должен знать)

я не знаю, что можно отменить, как это, отправив " О нас "к методу lang() в виде модели?

Надеюсь, что кто-то может объяснить и с примером. Благодаря

Это то, что я пытался, на мой взгляд:

public function lang($input) 
{ 
    return "test" . $input; 
} 

Но это не работает. (Аргумент не передается Ланг())

Я использую Усы (Kostache) вместе с PHP в рамках MVC (Kohana)

ответ

0

После много головной боли, очень плохие результаты Google, здесь является правильным решением, если вы используете Kostache 2 и Kohana 3,2/3,0 :

ПРОСТОЙ, в классе Kohana_Kostache на заводе(), где Mustache_Engi пе intializes, добавить вспомогательную функцию:

'helpers' => array(
        'i18n' => function($text) { 
         return __($text); 
        }), 

Так как я использую систему Kohana перевода, я назвал его i18n и возвращает __ ($ текста), который является $ перевод текста, если существует.

0

Предполагая, что вы усы определены как $m следующих бы добавить функцию lang, когда шаблон анализируется.

Ключ здесь передается функции в усы при рендеринге.

$data = new StdClass; 
$data->lang = function($text) { 
    return "Requested lang: $text"; 
} 

$m.render($template, $data); 

Этот шаблон

{{#lang}}About us{{/lang}} 

стал бы

Requested lang: About us 
+0

Здравствуйте. Я не могу сделать функцию для $ data-> lang, как это, это дает синтаксическую ошибку? – Karem

Смежные вопросы