나는 po 파일을 사용하는 번역기로 Zend Framework 3 Application을 사용하고 있습니다.zf3 사용자 선택에 따라 로케일 변경
것은 내 \ 설정 \ global.php 파일이처럼 구성한 :
'translator' => [
'locale' => 'en_US',
'translation_file_patterns' => [
[
'type' => 'gettext',
'base_dir' => getcwd() . '/data/language/',
'pattern' => '/%s/general.mo',
],
],
],
은 난의 값을 변경하면 "로케일"이 작품을 좋아하고 적절한와 .po 파일을 찾습니다. 데이터베이스에 저장된 사용자 프로필의 값에 따라 로캘을 설정할 수 있어야합니다.
여기서 http://zendframework.github.io/zend-i18n/translation/의 설명서와 https://docs.zendframework.com/tutorials/i18n/의 설명서를 확인했지만 설명이나 예제없이 setLocale() 메서드를 언급했습니다. 여기에 유사한 스레드가 있습니다 Zend framework 2 : How to set locale globaly?하지만 ZF2 용이며 작동중인 솔루션을 제공하지는 않습니다.
전체 응용 프로그램에서 효과적 일 수 있도록 모든 방법으로 setLocale() 메서드를 어떻게 사용해야합니까? 모든보기 파일에서 $this->translate($message)
은 구성 파일에 사용 된 기본 로캘 대신 새 로캘을 사용합니까?
토마스, 이건 정말 작동, 나는 공장도 시도 할 것입니다, 아직 나는 그것에 도움이 될 것입니다.프레임 워크 도구가있을 때 프레임 워크 도구를 사용하는 것이 더 일관성이 있다고 생각합니다. 나는 다른 누군가가 다른 것을 제안 할 수있는 기회를 줄 것이며, 아무도 들어 가지 않으면 당신의 대답을 "받아 들였습니다"라고 표시 할 것입니다. 다시 한 번 감사드립니다. – Ivomasterche
방금 대답을 조금 업데이트했습니다 ... 조금 오래 걸렸습니다. 아마도 조금 혼란 스럽 겠지만 필요한 경우 자세한 내용을 문의하십시오. –
다시 한번 감사드립니다. 나는 생각한다 - 우리는이 위임자와 함께 "$ this-> translate ($ msg)'가 호출 될 때마다 (그리고 로케일을 설정할 것임) 번역기 서비스를"포장 "하고 있는가? 불행히도 내가 그것을 작동하게 만들 수 없다, 응용 프로그램 모듈의 module.config.php에 구성을 추가했고, /Application/src/Factory/TranslatorFactory.php 파일에 TranslatorFactory 클래스를 만들었습니다. – Ivomasterche