젠드 버전 1.12의 젠드 프레임 워크 프로젝트가 있습니다. 저는 XML 파일과 함께 zend_navigation을 사용하고 gettext 어댑터와 함께 zend_translation을 사용하고 있습니다.Zend_navigation & Zend_translate href 속성이 언어 변경으로 전환되지 않습니다.
이 코드는 메인 메뉴 작성
echo '<ul class="nav1">';
foreach ($this->container as $page) {
// check if it is active (not recursive)
$isActive = $page->isActive(false);
$liClass = $isActive ? ' class="active"' : '';
echo '<li ' . $liClass . '>' . $this->menu()->htmlify($page);
// subnavigation in second layer
if (sizeof($page) > 0) {
echo '<ul class="subNavHead">';
foreach ($page as $subpage) {
$isActive = $subpage->isActive(false);
$liClass = $isActive ? ' class="active"' : '';
echo '<li ' . $liClass . '>' . $this->menu()->htmlify($subpage) . '</li>';
}
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
을 그리고 여기 내 언어 선택 클래스입니다 : 내가 선택 상자와 언어를 변경하면
class AW_Controller_Plugin_LangSelector extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$lang = $request->getParam('lang', '');
if ($lang !== 'de' && $lang !== 'en' && $lang !== 'pl')
$request->setParam('lang', 'de');
switch ($request->getParam('lang')) {
case 'de':
$locale = 'de';
break;
case 'en':
$locale = 'en';
break;
case 'pl':
$locale = 'pl';
break;
default :
$locale = 'de';
break;
}
$zl = new Zend_Locale();
$zl->setLocale($locale);
Zend_Registry::set('Zend_Locale', $zl);
$translate = Zend_Registry::get('Zend_Translate');
$translate->setLocale($zl);
}
}
내 사이트의 텍스트가 언어를 변경 하지만 탐색 목표는 변경되지 않습니다. 탐색 라벨도 변경됩니다.
나는 기본 언어입니다 : www.example.de/de/controller/action 을 그리고 나서 영어 에 언어를 전환은 -> 내 탐색의 HREF 속성은 이전 값 (www가 여전히 있습니다. example.de/de/controller/action)하지만 www.example.de/en/controller/action을 가져야합니다.
내 문제는 어디에 있습니까? 메뉴를 다시 렌더링하는 것을 잊었습니까?
대단히 감사합니다. :) – Tomben