- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在结合 Zend_Navigation、Zend_Translate 和所需的路由方面遇到了一些困难。
我的站点导航是通过基于 XML 文件的 Zend_Navigation 完成的。我现在已将翻译添加到基于 Zend_Translate 的站点,并添加到 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);
然后我用 preDispatc 方法创建了一个 View_Helper:
$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/< strong>zh/module2/controller2/"
我不知道你在/da/语言。如有任何帮助,我们将不胜感激。
亲切的问候,
莫腾
最佳答案
这并没有直接回答您的问题。但是 Zend_View_Helper_Navigation,导航的 View 助手,有一个 setTranslator() 方法,它将提供您添加到 Zend_Navigation 容器的导航“页面”的隐式翻译。
class MyModule_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initMyModuleNavigation()
{
$langSess = new Zend_Session_Namespace('language');
$translate = $langSess->translate;
$this->getApplication()->bootstrap('navigation');
$view = $this->getApplication()->getResource('view');
$navigationHelper = $view->getHelper('navigation');
$navigation = $navigationHelper->getContainer();
$navigationHelper->setTranslator($translate);
//...
}
这样您就不必为每个项目手动调用翻译
$navigation->addPages(array(
new Zend_Navigation_Page_Mvc(array(
'label' => $translate->_('Wiki'), //<-- This can be eliminated
'action' => 'index',
'controller' => 'article',
'module' => 'wiki',
'pages' => //...
因为它会自动完成,因为 setTranslator() 已完成。
关于php - Zend_Translate - Zend_Navigation 和 Routing 组合问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2346671/
您好,如果没有身份验证,我尝试保护路由,但它不起作用 警告:您不应在同一个 route 使用路线组件和路线渲染;路线渲染将被忽略 App.js import React, { Fragment,
几乎我见过的每个示例,app.js 都使用 require 和路径 ./。我想知道为什么我们不能只使用 /。例如,为什么我们不能执行以下操作。 var express = require('expre
如果router.all()只匹配所有方法,是否可以用router.use()代替?router.use() 和 router.route() 之间有什么区别? 最佳答案 router.all:这意味
在我的 Symfony应用程序我想根据当前用户的文化选择 routing.yml; 'en' => routing.en.yml 'no' => routing.no.yml 等等。 关于如何做到这一
我正在使用 React Router v6 并为我的应用程序创建私有(private)路由。 在文件 PrivateRoute.js 中,我有代码 import React from 'react';
这个问题在这里已经有了答案: Error "Error: A is only ever to be used as the child of element" (14 个回答) Error: [P
我正在关注 Ember Quick Start guide (ember-cli v 2.11),并按照说明构建玩具应用程序。在“定义路线”部分,说明说要运行命令 ember generate rou
这个问题在这里已经有了答案: ReactJS: [Home] is not a component. All component children of must be a or (5 个答
这个问题在这里已经有了答案: ReactJS: [Home] is not a component. All component children of must be a or (5 个答
单击“开始测验”按钮时,我试图导航到“/quiz”。 但是,当我编译我的代码时,我在网站应用程序上收到以下错误:[Home] is not a component. All component ch
我有一点咸菜。我正在使用路由保护(实现 CanActivate 接口(interface))来检查用户是否被授予访问特定路由的权限: const routes: Routes = [ {
我正在尝试测试我的应用程序正在使用的引擎内部的 Controller 。规范不在引擎中,而是在应用程序本身中(我试图在引擎中进行测试,但也遇到了问题)。 我的引擎有以下 routes.rb: Revi
我是Remix的新手,我正在尝试使用V2路由方法实现特定的路由解决方案。。这是一个人为的例子,不是真实的东西,只是为了说明这一点。。我想要的URL方案是:。我从以下几条路线开始:。App/routes
我正在尝试从 rails 2.3.x(使用 subdomain_routes 插件)转换一些子域路由,如下所示: map.subdomain :biz do |biz| biz.resources
我将 Symfony 的 3.1 路由组件用作独立组件。 我想调试路由。 据此: http://symfony.com/doc/current/routing/debug.html 这是通过运行以下命
我是 Sparkjava 的新手,总体上喜欢它。但是,是否必须在 main 方法中定义新的路由/端点?对于任何重要的 Web 应用程序,这将导致一个非常长的 main 方法,或者我需要有多个 main
我刚刚使用node.js 和express.js 开发了一个原型(prototype)。在这里,我使用了 Express 路由来对后端进行 CRUD。 server.js 文件: app.get('/
我不明白 Angular 4 中路由的一些基本概念。 index.html: 文件结构: - app |- app.routings.ts |- collections |-- collection
我在反应路线和理解合成路线方面遇到了一些困难。我尝试了一些代码,但不幸的是,它不能像预期的那样工作。“/”路径运行得很好,但是,当我尝试访问“/Child”时,它似乎不起作用。我认为包装器路由}/>可
我正在尝试使用 cakephp 3 实现 REST api。 为了给我的问题提供一个易于重现的示例,我从全新安装 cakephp 3.1.11 开始。 在 config/routes.php 中,我添
我是一名优秀的程序员,十分优秀!