나는 하나의 질문에 대해, ZF2 번역기에 대한 특정 경우에 costruction에서 langauge 변경 dunamically 사용자가 플래그 또는 메뉴 링크를 클릭하면 링크가 있습니다. 내 응용 프로그램/설정/module.config.php에서zf2 동적으로 언어 변경
이 코드가 있습니다
'service_manager' => array(
'factories' => array(
'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
),
),
을 내 경로는 다음과 같습니다
return array(
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:lang[/:action]]',
'constraints' => array(
'lang' => '[a-zA-Z]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
그리고 내 응용 프로그램에서/Module.php 내가이 설정 부트 스트랩에 코드 :
public function onBootstrap(MvcEvent $e)
{
$sm = $e->getApplication()->getServiceManager();
$router = $sm->get('router');
$request = $sm->get('request');
$matchedRoute = $router->match($request);
$params = $matchedRoute->getParams();
if(isset($params['lang']) && $params['lang'] !== '') {
$translator = $e->getApplication()->getServiceManager()->get('translator');
//or
//$translator = $e->getApplication()->getServiceManager()->get('MvcTranslator');
if($params['lang'] == 'en') {
$translator->setLocale('en_US');
}
}
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
지금 내 경로 http://www.xxxx.com/it/index 또는 http://www.xxxx.com/it/company하지만 난 린을 만들 수 없습니다 k 내 응용 프로그램에서 내 언어 변경에 대한 내보기 ...
어떻게 진행하나요?
감사
당신은 다음과 같은 경우에만lang
매개 변수 변경에 같은 페이지로 연결되는 링크를 만들 수 있습니다
감사를 위해 ... 나는이 방법을 레졸 : [ZF2 세계적으로 layout.phtml 변수를 전달하는 방법] [1] [1] : HTTP ://stackoverflow.com/questions/18439364/how-to-pass-variables-to-layout-phtml-globally-in-zf2/18549487#18549487 –