kra*_*zky 6 php localization zend-framework
我想让设计师尽可能简单地在视图中本地化字符串,这意味着我想这样做:
...
<p><?php echo $this->_("Hello, world!"); ?></p>
...
Run Code Online (Sandbox Code Playgroud)
这里的下划线符号是必要的,以允许Poedit自动提取所有字符串进行本地化.实施是微不足道的:
public function _($string)
{
return Zend_Registry::get('Zend_Translate')->_($string);
}
Run Code Online (Sandbox Code Playgroud)
目前,我已将其直接放入Zend_View_Abstract,这很糟糕(我不想通过修改任何Zend库来实现这一点).理想情况下,我会扩展Zend_View_Abstract以允许我实现我们需要的其他具体功能,但我不知道如何设置它.另一种方法可能是实现View Helper,但我知道如何执行此操作的唯一方法是使视图中的代码更加冗长.任何指针(不,不是那种)将非常感激.谢谢!
rg8*_*g88 14
显然忽略了我自己的道路......
Zend_View Zend_Controller_Action_HelperBroker'saddHelper方法在/ library/MegaHAL/Zend/create View.php中:
class MegaHAL_Zend_View extends Zend_View
{
public function _($string)
{
return Zend_Registry::get('translate')->_($string);
}
}
Run Code Online (Sandbox Code Playgroud)
在你的引导程序中:
require_once APPLICATION_PATH.'../library/MegaHAL/Zend/View.php';
$view = new MegaHAL_Zend_View();
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
Run Code Online (Sandbox Code Playgroud)
在你看来:
<p><?php echo $this->_("Hello");?></p>
Run Code Online (Sandbox Code Playgroud)
我相信会做你想做的事,是吗?
| 归档时间: |
|
| 查看次数: |
2889 次 |
| 最近记录: |