Zend Framework翻译语言文本

时间:2014-06-14 05:18:25

标签: zend-framework

我有一些工作正常的翻译代码。

<?php echo $this->translate("54"); ?>

输出

Hello World

是否可以输出而不是上面的

<div class='lang' id='54'>Hello World</div>

后来使用jquery我想操纵div。

2 个答案:

答案 0 :(得分:0)

创建一个名为MyTranslate extends \Zend\I18n\View\Helper\Translate的自定义视图助手,然后覆盖_invoke方法:

public function __invoke($message, $textDomain = null, $locale = null)
{
    $t = parent::__invoke($message, $textDomain , $locale);
    //change the value of $t however you wnat
    return $t;
}

如果您在使用translate之前没有更改代码的内容,请将此新视图助手注册为translate而不是my_translate

答案 1 :(得分:0)

如果您使用Zend1,您可以使用这样的视图助手:

  1. 在您的资料库中创建Helper目录 例如,在我的情况下,我有这个目录:
    库/ DoyDoy /助手/
  2. 像这样创建你的助手:
    库/ DoyDoy /助手/的 TranslateID.php

    <?php
     class DoyDoy_Helper_TranslateID extends Zend_View_Helper_Abstract
    {
        public function translateID($id)
        {
            return '<div class=\'lang\' id=\'' . $id . '\'>'. $this->view->translate($id) . '</div>';
        }
    }
    
  3. 在助手程序中添加助手:

    protected function _initDoyDoyView(){
        $this->bootstrap('view');
        $view = $this->getResource('view');
        $view->addHelperPath('DoyDoy/Helper/', 'DoyDoy_Helper');        
    }
    
  4. 在您看来,请按照以下方式调用帮助程序:

    <?php echo $this->translateID("54");?>
    

    这应该显示:

    <div class='lang' id='54'>Hello World</div>
    
  5. 我希望它会对你有所帮助:)。