Zend_Translate - Zend_Navigation и проблема комбинации Маршрутизации!

Я испытываю некоторые трудности с комбинацией Zend_Navigation, Zend_Translate и необходимой маршрутизации.

Моя навигация сайта сделана через Zend_Navigation на основе и XML-файл. Я теперь добавил перевод в сайт на основе Zend_Translate и добавил к следующему изменению маршрутизации к начальной загрузке:

protected function _initRoutes()

    $config = new Zend_Config($this->getOptions());
    $languages = array_keys($config->languages->toArray());
    $zl = new Zend_Locale();
    $lang = in_array($zl->getLanguage(), $languages)
                  ? $zl->getLanguage() : 'en';

    $zfc = Zend_Controller_Front::getInstance();


    // add language to default route
    $route = new Zend_Controller_Router_Route(
            ':lang/:module/:controller/:action/*',
      array('controller'=>'index',
                'action' => 'index',
                'module'=>'default',
                'lang'=>$lang));

    $router = $zfc->getRouter();
    $router->addRoute('default', $route);
    $zfc->setRouter($router);

Я тогда создал View_Helper с preDispatc методом:

    $language = $request->getParam('lang','');

 if ($language !== 'en' && $language !== 'da')
     $request->setParam('lang','en');

 $language = $request->getParam('lang');
 if ($language == 'en')
     $locale = 'en_EN';
 else
     $locale = 'da_DK';

 $zl = new Zend_Locale();
 $zl->setLocale($locale);
 Zend_Registry::set('Zend_Locale', $zl);

 $translate = new Zend_Translate('csv', APPLICATION_PATH . '/configs/language/'. $language . '.csv' , $language);
 Zend_Registry::set('Zend_Translate', $translate);

Теперь, когда я перехожу в: "site/en/module/controller/action" это хорошо работает.

Когда я перехожу в: "site/da/module/controller/action" перевод хорошо работает, но мои ссылки от Zend_Navigation указывают на значение по умолчанию 'en' ссылка языка "site/en/module2/controller2 /"

Я не могу выяснить, чтобы знать что Ваш в/da/языке. Любая справка ценилась бы.

С наилучшими пожеланиями,

Morten

9
задан skaffman 27 February 2010 в 08:50
поделиться