【问题标题】:Use Zend Translate in Zend Plugin在 Zend 插件中使用 Zend Translate
【发布时间】:2013-01-08 06:43:58
【问题描述】:

我在我的一个插件中定义了一个翻译模式,它在视图中工作正常,但我有其他插件为菜单创建一个 html,我需要它来填充世界的当前翻译,但是当我使用时:

   public function preDispatch(Zend_Controller_Request_Abstract $request){
    .......
    $translate = Zend_Registry::get('Zend_Translate');
    $translate->_($Nrow['name']);
    .......

它给了我:

消息:没有为键“Zend_Translate”注册条目

但如果我使用print_r($translate);,它会显示我的翻译文件的内容。

当我使用print_r(get_class_methods($translate)); 时,它会返回:

数组 ( [0] => __construct [1] => setAdapter [2] => getAdapter [3] => getCache [4] => setCache [5] => hasCache [6] => removeCache [7] => clearCache [8] => __call )

我在我的翻译插件中使用这些代码来设置注册:

Zend_Registry::set('Zend_Translate',$translate);

我该怎么办?

【问题讨论】:

    标签: php zend-framework zend-translate


    【解决方案1】:

    把它放在你的引导程序中:

    $translate = new Zend_Translate('YOURADAPTER', YOURLANG); 
    Zend_Registry::set('Zend_Translate', $translate); 
    

    现在您应该可以通过以下方式访问它:

    $translations = Zend_Registry::get('Zend_Translate'); 
    // or operate on it directly: 
    $translation = Zend_Registry::get('Zend_Translate')->translate($string); 
    

    【讨论】:

    • 是的,但我需要获取用户请求“Zend_Controller_Request_Abstract $request”来填充我的参数“$translate = new Zend_Translate('array',APPLICATION_PATH.'/configs/lang/'.$lang. '.php',$lang);"但它应该是avoided .
    • 您可以通过在引导程序中设置默认值并使用 addTranslation 和 setLocale 添加当前语言来做到这一点?
    • 如果我将默认语言添加到引导程序中,这意味着 Zend 始终翻译该语言中的单词。我想我正在寻找在插件中设置 Zend_Registry 的解决方案。有可能吗?
    【解决方案2】:

    据我了解 preDispatch 在调用 Zend_Registry 之前运行,如果你想拥有 Zend_Registry 键,你应该将代码放在 Zend_Controller_Plugin_Abstract 或插件类中的 postDispatch 函数中。

    对这些进行代码更改并解决问题:

       public function preDispatch(Zend_Controller_Request_Abstract $request){
        .......
        $translate = Zend_Registry::get('Zend_Translate');
        $translate->_($Nrow['name']);
        .......
    

    更多信息请看:

    http://devzone.zend.com/1224/front-controller-plugins-in-zend-framework/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      相关资源
      最近更新 更多