2017-03-07 7 views
2

언어 (설정 언어)를 메뉴에서 변경하고 싶습니다. 번역 모듈이 이미 구성되었습니다. 그래서 전직을위한 코드. : $this->translate('Some Text', 'default', 'de_DE') ?>가 작동 중입니다. 하지만 메뉴에서 언어를 변경해야합니다. 그리고 Zend/I18n을 사용했습니다.메뉴에서 언어 설정

답변

1

이것은 메뉴에서 변경된 언어를 구현 한 방법입니다. 당신은 initialized.` 수 없습니다 젠드 MvcTranslator 구성 요소

public function changeLanguageAction() 
{ 
    $language = $this->params()->fromRoute('lang', 'en'); 
    //CAN USE PHP setcookie() instead of this 
    $this->cookieService->createCookie('xuage', $language, $this->getResponse()->getHeaders()); 
    //redirect to homepage 
    $this->redirect()->toRoute('home'); 
} 

에게 Module.php

public function onBootstrap(Event $e) 
{ 
    $app = $e->getParam('application'); 
    $em = $e->getApplication()->getEventManager(); 

    //Translation 
    $this->initTranslator($e); 
} 

protected function initTranslator($event) 
{ 
    $serviceManager = $event->getApplication()->getServiceManager(); 

    $lang = @$event->getRequest()->getCookie()->xuage; 

    //if language is not set in the cookie, set the default language to english 
    if (!$lang) { 
     $lang = 'en'; 
    } 

    $translator = $serviceManager->get('MvcTranslator'); 
    $translator 
     ->setLocale($lang) 
     ->setFallbackLocale('en'); 
} 
+0

내가 MvcTranslator를 설치하기 위해 노력하고있어하지만 난'모듈 (젠드 \ MVC \ 국제화를) 얻을를 설치해야합니다 오류 메시지 modules.config.php에''Zend \ Mvc \ I18n ','을 추가했습니다. 당신이 말한대로 Module.php와 IndexController가 변경되었습니다 module.config.php에서도 똑같이 변경해야합니까? –

+0

composer.json에 추가하고 composer update를 실행 한 다음 composer install – code9monkey

+0

과 마지막 라우팅은 다음과 같습니다. ' 'lang'=> ['type'=> Segment :: class, '옵션 '=> ['route '=>'/ : lang ', '컨트롤러 '=> Controller \ IndexController :: 클래스, 'action '=>'index ', 'lang ' => 'en', ], ], ], ' '하지만 나는 그것을 올바르게 변경해야한다는 것을 알고 있습니까? –