Принятое решение не сработало для меня (возможно, некоторые проблемы совместимости версий), поэтому я пишу свое решение здесь, может, оно кому-нибудь поможет.
Моя проблема заключалась в том, что усы проходили мимоMustache_LambdaHelper объект как второй параметр, где I18n :: get () ожидал язык и выдавал исключение.
Решение:
public function i18n() {
return function($value, $helper) {
return I18n::get($value);
};
}
Вы также можете использовать метод массива,если анонимные функции представляют собой проблему, но вам необходимо создать дополнительный класс или функцию для обработки этого, например, так:
class i18nFilter {
public function get($value, $helper) {
return I18n::get($value);
}
}
В этом случае функция станет:
public function i18n() {
return array('I18nFilter', 'get');
}
Кроме того, вам не нужно изменять класс Kohana_Kostache, чтобы заставить это работать.Вы также можете создать функцию в классе представления.