- 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/
使用 zend 框架,我和许多其他人一样发送电子邮件。现在对于电子邮件,我使用 View 模板。 f.x.欢迎.phtml 欢迎来到我的网站 Hi name; ?> Welcome to my sit
我目前正处于一个相当大的项目的规划阶段,我将在 Zend Framework 中开发该项目。我面临的问题之一是,客户不仅要翻译内容,还要翻译界面。我目前正在使用 gettext 和 poedit 来管
请提供simple small的文件夹结构和代码zend_translate 和 zend_locale 的应用。 这样我就会有一些想法。我提到了 framework.zend 但无法理解我应该在 C
我正在创建一个具有多语言功能的网站。我搜索并发现 zend_translate 是翻译文本的最佳方式。但我已经用简单的 php(无框架)开始了我的网站并完成了许多模块。 但现在我想在我的站点中使用翻译
我在结合 Zend_Navigation、Zend_Translate 和所需的路由方面遇到了一些困难。 我的站点导航是通过基于 XML 文件的 Zend_Navigation 完成的。我现在已将翻译
我正在构建一个简单的 PHP 网站,并希望将其翻译成 2 种语言(西类牙语、英语)。我在这里读了一些问题,每个人都推荐 Zend_Translate。我读过 documentation看起来还不错。
我试图在必须将变量值注入(inject)结果字符串并使字符串尊重复数形式的情况下使用 Zend_translate。在 View 脚本中使用常规(非复数) View 助手 $this->transla
我是一名优秀的程序员,十分优秀!