Tôi gặp một số khó khăn khi kết hợp Zend_Navigation, Zend_Translate và định tuyến cần thiết.Zend_Translate - Zend_Navigation và định tuyến sự cố kết hợp!
Điều hướng trang web của tôi được thực hiện thông qua Zend_Navigation dựa trên và tệp XML. bây giờ tôi đã thêm dịch đến các trang web dựa trên Zend_Translate và thêm vào sau thay đổi định tuyến để bootstrap:
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);
sau đó tôi đã tạo ra một View_Helper với một phương pháp 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);
Bây giờ khi tôi đi đến: "site/vi/module/controller/action" nó hoạt động tốt.
Khi tôi đi đến: "Trang web/da/module/controller/action" bản dịch hoạt động tốt, nhưng liên kết của tôi từ Zend_Navigation được trỏ đến mặc định 'en' liên kết ngôn ngữ "trang web/en/module2/controller2/"
Tôi không thể biết được rằng bạn/at/da/language. Bất kỳ trợ giúp nào sẽ được đánh giá cao.
Trân trọng!
Morten
Với thông số nào bạn sử dụng url() helper? –
cách bạn tạo tệp XML của mình? –
Ngoài ra có vấn đề với bản dịch tự động của Zend Navigation - tài liệu là vô ích về điều này - hoặc rất tốt ẩn. –