0

link의 지침을 성공적으로 준수 했으므로 "traslate()"호출에 "locale"을 넣지 않아도 내 웹은 다국어가되었습니다. 하지만 TextDomain을 호출 할 때마다 놓아야합니다.zend framework 2 onBootstrap의 TextDomain 설정

$this->traslate("Hello", __NAMESPACE__) //where __NAMESPACE__ is the text domain. 

는 I는 onBootstrap 방법에 TEXTDOMAIN 설정 대신은 "으로 번역한다()"도우미의 각 호출에 넣고 싶습니다. setTextDomain 메서드로 시도했지만 존재하지 않습니다. 누군가 어떻게 알 수 있습니까?

onBootStrap 코드는 다음입니다 :

.....//Code for define $locale. 
    $sm = $e->getApplication()->getServiceManager(); 
    $translator = $sm->get('translator'); 
    $translator->setLocale($locale); 
    $traslator->SetTextDomain($textdomain); //This line not work!!!!! 
+0

이 복사 & 붙여 넣기인가? 왜냐하면'$ traslator' =>'$ translator'와'SetTextDomain()'=>'setTextDomain()' – Sam

+0

오, 죄송합니다. 이것은 쓰기 오류입니다 (복사 및 붙여 넣기는하지 마십시오). 나는 또한 zend API 문서를 보았고이 메소드는 존재하지 않는다. – josepmra

답변

0

좋아요를. 우리는 한 걸음 더 나아갔습니다. ('HELLO') 번역

$ this-> :

첫 번째 솔루션은 지금 내 웹 페이지 비방 텍스트 만 설정하여 지역 및 TEXTDOMAIN을 정의하고,이 도우미 매개 변수를 사용하여, 확인 (뷰 솔루션을) 작동 ;

하지만 두 번째 해결책은 효과가 없습니다. 이름이 같을 때 같은 플러그인이보기에서 허용되고 onBootstrap에서는 허용되지 않기 때문에 이해할 수 없습니다.

나는 울부 짖는 소리 내 onBootstrap 코드를 재 작성 :

$translator = $e->getApplication()->getServiceManager()->get('translator'); 
    $pm = $translator->getPluginManager(); //until here works ok. 
    $pm->get('translate'); //this throws an error message how if 'translate' not found. 
1

가이 권리를 처음 보지 않았다. 올바른 함수가 호출 DASPRIDS Presentation about ZF2 I18N으로가는 것은 : 내가 올바르게 표시되면

$this->plugin('translate')->setTranslatorTextDomain('module-b'); 

비록, 즉 뷰 스크립트 내에서입니다. 그러나, ServiceManager에의 번역기를 얻기 -이 시험하지 않았다 -하지만 다음을 시도하십시오

$translator->getPluginManager()->get('translate')->setTranslatorTextDomain('foo'); 
관련 문제