Я работаю с ZF2, и я пользуюсь переводчиком. В конфигурации моего приложения я добавил переводчика на фабрики service_manager, поэтому он будет использоваться помощниками ZF2.Формы перевода ZF
Это как мой переводчик конфигурация выглядит следующим образом:
'translator' => array(
'locale' => 'nl_NL',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
В module.php файл моего приложения, у меня есть следующий фрагмент кода в моем методе onBootstrap:
/**
* Magic to determine the right locale to be used.
*
* Check cookie
* Check GET parameter
* Check HOST (application can be used from several domain names)
*/
$translator = $serviceManager->get('translator');
// We have to change the current locale if $locale is not null.
if (!is_null($locale)) {
$translator->setLocale($locale);
// The translate helper of the view has some problems with what we're doing.
// So we'll manually add the translator with the correct locale to the view helper.
$serviceManager->get('viewhelpermanager')->get('translate')->setTranslator($translator);
}
As вы можете видеть, у меня уже были некоторые проблемы из-за модификации локали в методе onBootstrap.
Теперь есть две вещи, которые могут мне помочь: - Помогите мне найти способ повторного ввода правильного переводчика в хелпер формы; - Помогите мне найти способ сделать это, как нравится ZF2, или это должно быть сделано (мои поиски не привели к решению).
Надеюсь, вы, ребята, можете мне помочь!
Unfortunatly это не работает .. –
Вы должны попытаться использовать 'службу MvcTranslator' вместо' translator'. – jchampion
Если я это сделаю: $ serviceManager-> get ('MvcTranslator') -> setLocale ($ locale); $ ServiceManager-> Get ('переводчик') -> Setlocale ($ локали); то это работает ... Это то, что вы имеете в виду? Потому что теперь мне нужно сделать $ serviceManager-> get ('MvcTranslator') -> setCache ($ cache); $ serviceManager-> get ('translator') -> setCache(). –