2013-05-30 8 views
0

ZF2에서 번역기를 사용할 때 문제가 있습니다. 즉 Php 변수가 아닌 인라인 문자열 만 허용합니다.ZF2 translate accept only inline string PHP 변수가 아닙니다

그것은 완벽하게 작동하고 난

$translator = $this->getServiceLocator()->get('translator'); 
    $translator->translate("message to translate") ; 

을 번역하는 인라인 문자열을 제공하지만 PHP 변수에 저장되는 문자열을 번역 할 때, "업데이트"후와 .po 파일에서 번역기 단어를 보이고있다. "업데이트"후에 .PO 파일에 번역기 단어가 표시되지 않습니다. 아래 코드를 참조하십시오.

$translator = $this->getServiceLocator()->get('translator'); 
    $msg1="message to translate"; 
    $translator->translate($msg1) ; 

이 코드는 내 컨트롤러 액션 중 하나입니다.

조언을 주시기 바랍니다

답변

0

당신은,는 '텍스트 영역'를 지정하기 위해 기본이나 전화 할 때 방법을 번역 중 하나가 필요합니다. 그런 다음 $ msg1에 실제로 문자열이 있는지 확인하십시오.

http://framework.zend.com/manual/2.0/en/modules/zend.i18n.translating.html

$ translator-> 번역 ($ 메시지, $ TEXTDOMAIN, $ 로케일);

메시지는 번역 할 메시지의 ID입니다. 이 로더 변환에 없거나 비어 있으면 원래 메시지 ID 이 리턴됩니다. 텍스트 도메인 매개 변수는 번역을 추가 할 때 을 지정한 매개 변수입니다. 생략하면 기본 텍스트 도메인은 이 사용됩니다. locale 매개 변수는 일반적으로 과 같이이 컨텍스트에서는 사용되지 않으며 로케일은 변환기의 로켈에서 가져옵니다.

+0

감사합니다. @Rijidael. 왜 텍스트 도메인이 필요한가? $ textDomain의 예상 가치는 무엇입니까? –