내 응용 프로그램에 Zend_Navigation, Zend_Translate를 구현했습니다. 라우팅은 Bootstrap.php에서 다음과 같이 설정됩니다. 내가젠드 프레임 워크 : Zend_translate 및 라우팅 관련 문제
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
$this->createLangUrl($request);
$this->_language = $request->getParam('lang');
if ((!isset($this->_language)) || !in_array($this->_language, $this->_languagesArray)) {
$this->_language = 'en_US';
$request->setParam('lang', 'en_US');
}
$file = APPLICATION_PATH.$this->_directory.$this->_language.'.csv';
$translate = new Zend_Translate('csv', $file, $this->_language);
Zend_Registry::set('Zend_Translate', $translate);
$zl = Zend_Registry::get('Zend_Locale');
$zl->setLocale($this->_language);
Zend_Registry::set('Zend_Locale', $zl);
// $fc = Zend_Controller_Front::getInstance();
// $router = $fc->getRouter();
// $route = new Zend_Controller_Router_Route(':lang/:module/:controller/:action/*', array(
// 'lang'=>$this->_language, 'module'=>'default', 'controller'=>'index', 'action'=>'index'
// ));
// $router->addRoute('default', $route);
// $fc->setRouter($router);
}
는 무엇 일 언어 PARAM의 검사를 수행 할 dispatchLoopStartup 방법을 정의 LaunguageSetup 플러그인에
$fc = Zend_Controller_Front::getInstance();
$zl=new Zend_Locale();
Zend_Registry::set('Zend_Locale',$zl);
$lang=$zl->getLanguage().'_'.$zl->getRegion();
$router = $fc->getRouter();
$route = new Zend_Controller_Router_Route(':lang/:module/:controller/:action/*',
array(
'lang'=>$lang, 'module'=>'default', 'controller'=>'index', 'action'=>'index'
));
$router->addRoute('default', $route);
$fc->setRouter($router);
$fc->registerPlugin(new Plugin_LanguageSetup());
언어는 항상 기본 값이되면, '랭'PARAM 랭 기본 없다 값을 직접 입력 할 수 있습니다. ie/en_US/module/controller/action/항상 기본 Zend_locale();
내가 고칠 수있는 유일한 방법은 플러그인에서 경로를 다시 설정하고 올바른 언어 값을 기본값으로 삽입하는 것입니다. 어떤 아이디어?
나는 어떤 이유로 든 print_r 경로가 고정되어 있다고 생각했다. 하지만 내 Zend_Navigation은 여전히 기본 'lang'을 사용합니다. 당신의 샘플을 살펴 보았습니다.이 설정으로 Zend_Navigation을 사용 했습니까? 어떤 트릭이 있는지 궁금합니다. $ view-> navigation() -> Menu()를 사용하면 항상 기본 'lang'이 출력됩니다. 내비게이션 데이터를 저장하기 위해 xml 파일을 사용하고 있습니다. – Dan