2015-06-07 5 views
0

Следующий код отлично работает в контроллере, как глобально?Zend 2 Translation global

XXXController.php

$lang = 'nl'; 
$loc = $this->getServiceLocator(); 
$translator = $this->get('translator'); 
$translator->addTranslationFile("phparray",'./module/admin/language/lang.array.'.$lang.'.php');  
$loc->get('ViewHelperManager')->get('translate')->setTranslator($translator); 

view.phtml

echo $this->translate('homepage'); 

awnser:

module.config.php

'translator' => array(
    'locale' => 'it_IT', 
    'translation_files' => array(
    array(
     'type' => 'phpArray', 
     'filename' => './module/admin/language/lang.array.nl.php', 

    ), 
    ), 
    'translation_file_patterns' => array(
    array(
     'type' => 'gettext', 
     'base_dir' => __DIR__ . '/../language/mydomain', 
     'pattern' => '%s.mo', 
    ), 
    ), 
),  

ответ

1

Установить переводчик в модуле конфигурации, как в Zend Skeleton Application

+0

Это уже было указано в конфигурации модуля. И сейчас? – Bas

+0

Что и теперь? Это все. Когда вы настраиваете переводчик, просто возьмите сервис mvctranslator от servicemanager и используйте его. – venca

+0

Мой вопрос состоял в том, как это сделать глобально, поэтому я хочу установить его один раз и использовать echo $ this-> translate ('xxxx'); в каждом представлении. Как я могу это сделать? – Bas

0

Thewnser!

'translator' => array(
    'locale' => 'it_IT', 
    'translation_files' => array(
    array(
     'type' => 'phpArray', 
     'filename' => './module/admin/language/lang.array.nl.php', 

    ), 
    ), 
    'translation_file_patterns' => array(
    array(
     'type' => 'gettext', 
     'base_dir' => __DIR__ . '/../language/mydomain', 
     'pattern' => '%s.mo', 
    ), 
    ), 
),