Zend framework Zend_导航与导航;Zend_translate href属性不随语言更改而切换

Zend framework Zend_导航与导航;Zend_translate href属性不随语言更改而切换,zend-framework,localization,zend-navigation,zend-translate,Zend Framework,Localization,Zend Navigation,Zend Translate,我有一个zend框架项目,zend版本为1.12。 我将zend_导航与xml文件一起使用,zend_翻译与gettext适配器一起使用 此代码创建主菜单: echo '<ul class="nav1">'; foreach ($this->container as $page) { // check if it is active (not recursive) $isActive = $page->isActive(false); $liCla

我有一个zend框架项目,zend版本为1.12。 我将zend_导航与xml文件一起使用,zend_翻译与gettext适配器一起使用

此代码创建主菜单:

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>';
当我使用选择框更改语言时,我网站上的文本会更改语言,但导航目标不会更改。导航标签也会改变

当我使用默认语言时: www.example.de/de/controller/action 然后我把语言换成英语 ->my navigation的href属性仍在旧值(www.example.de/de/controller/action)上,但它们应该具有www.example.de/en/controller/action


我的问题在哪里?我忘记重新呈现菜单了吗

我相信你是说标签(“主页”、“联系我们”)正在改变,但链接(“主页”、“联系我们”)没有改变。Zend_菜单仅对菜单标签使用Zend_Translate的方式

如果菜单是由MVC而不是URI创建的,则可以通过添加行使其接受您的语言值

$page->setParam('lang', Zend_Registry::get('Zend_Locale')->getLocale());
这将出现在导航呈现中,介于“foreach($page as$subpage){”和“echo”之间

如果您的菜单使用URI,您可以在同一点上对页面HREF进行替换

现在,如果我误解了你的问题,并且它没有翻译菜单中的链接或标签,那么请检查并查看你的菜单是否在插件的预发布之前执行

$page->setParam('lang', Zend_Registry::get('Zend_Locale')->getLocale());