我正在尝试通过进行控制器中的翻译ServiceLocator
,但这不是翻译,我在stackoverflow中尝试了许多支持,但均未成功。我的系统使用多种语言,我的目标是在视图,控制器,表单和过滤器中使用Transtor。我认为翻译器正在运行。任何建议和帮助将不胜感激。
无法在控制器中工作:
$this->getServiceLocator()->get('translator')->translate('my text',$myLocale);
我的应用程序mudole.config.php:
'service_manager' => array(
'abstract_factories' => array(
'Zend\Cache\Service\StorageCacheAbstractServiceFactory',
'Zend\Log\LoggerAbstractServiceFactory',
),
'factories' => array(
'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
),
),
'translator' => array(
'locale' => 'en_US',// 'locale' => 'dk_DK',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
我将本地的mudole.config.php更改为另一种语言,但仍未翻译。
似乎语言环境不是直接在翻译文本中设置的,而是通过设置 $this->getServiceLocator()->get('translator')->setLocale($locale)
,现在它正在翻译我的文本。
我的应用程序mudole.config.php:
'service_manager' => array(
'factories' => array(
'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
),
),
'translator' => array(
'locale' => 'en_US',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
并在控制器中:
$this->getServiceLocator()->get('translator')->setLocale($locale);
echo $c=$this->getServiceLocator()->get('translator')->translate('Book'); // Print(Danish): Bog
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句