我试图在控制器中进行翻译ServiceLocator,但这不是翻译,我在stackoverflow中尝试了许多索引但是没有成功.我的系统使用多种语言,我的目标是在视图,控制器,表单和过滤器中使用transtor.在我看来,翻译工作正在进行中.任何消化和帮助将不胜感激.
不在控制器中工作:
$this->getServiceLocator()->get('translator')->translate('my text',$myLocale);
Run Code Online (Sandbox Code Playgroud)
我的应用程序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',
),
),
),
Run Code Online (Sandbox Code Playgroud)
我将mudole.config.php中的local更改为另一种语言,但仍未进行翻译.
看来区域设置不是直接在翻译文本中设置的,而是通过 $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',
),
),
),
Run Code Online (Sandbox Code Playgroud)
在控制器中:
$this->getServiceLocator()->get('translator')->setLocale($locale);
echo $c=$this->getServiceLocator()->get('translator')->translate('Book'); // Print(Danish): Bog
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |