0

나는 ZF2와 함께 일하고 있는데 나는 번역기를 사용하고있다. 내 응용 프로그램의 구성에서 service_manager 팩토리에 변환기를 추가 했으므로 ZF2 도우미가이를 사용합니다.ZF 번역 형태

이 내 번역기 설정이 모습입니다 같은 :

/** 
* 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); 
} 

으로 : 내 응용 프로그램, 내가 가지고있는 나의 onBootstrap 방법의 코드 조각 다음의 module.php 파일에서

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

당신은 볼 수 있습니다. 이미 onBootstrap 메소드의 로케일 수정 때문에 몇 가지 문제가있었습니다.

이제 나를 도울 수있는 두 가지가 있습니다. - 올바른 도우미를 양식 도우미에 다시 삽입하는 방법을 찾도록 도와주세요. - ZF2가 좋아하는 방식이나 이렇게해야하는 방식을 찾도록 도와주세요 (검색 결과가 해결책으로 연결되지 않았습니다).

여러분이 도와 주길 바랍니다.

답변

1

양식 도우미와 동일한 방식으로 작동해야합니다.

$serviceManager->get('ViewHelperManager')->get('form')->setTranslator($translator); 

대신 translatorMvcTranslator 서비스를 사용하여 편집.

if (!is_null($locale)) { 
    $translator = $serviceManager->get('MvcTranslator'); 
    $translator->setLocale($locale); 
    // ... 
} 

이렇게하면 setTranslator() 전화를하지 않아도됩니다.

+0

는 불행히도이 ... –

+0

를 작동하지 않는 대신 translator''의'MvcTranslator' 서비스를 사용하려고합니다. – jchampion

+0

이렇게하면 $ serviceManager-> get ('MvcTranslator') -> setLocale ($ locale); $ serviceManager-> get ('translator') -> setLocale ($ locale); 그 때 그것은 작동한다 ... 이것은 당신이 의미하는 것인가? 왜냐하면 지금 나는 $ serviceManager-> get ('MvcTranslator') -> setCache ($ cache); $ serviceManager-> get ('translator') -> setCache()도 사용하십시오. –

0

사용하는 대신 translatorMvcTranslator :

$translator = $serviceManager->get('MvcTranslator'); 
$translator->setLocale($locale); 
$serviceManager->get('ViewHelperManager') 
       ->get('translate')->setTranslator($translator);