2013-10-24 37 views
1

我在Zend2框架中使用翻译模块,或者说我打算使用它。目前我只使用默认语言和模板我使用这个代码翻译:Zend2翻译性能并关闭它

<?php echo $this->translate("Text to translate") ?> 

我使用基于阵列的翻译。此时我不想使用翻译,但是我已经准备好了所有可以稍后添加的内容,所以我很担心表演。这将发送请求来翻译每一个惯例,所以我保留翻译sentances空的文件,以便它找不到翻译。

这会对性能产生多大影响吗?有没有办法在不更改模板的情况下关闭翻译?

回答

2

您可以简单地用自己的助手覆盖ZF2翻译视图助手,让它只返回翻译键,跳过所有的翻译逻辑。无论何时您需要让您的应用程序使用多语言,您都可以简单地删除您的自定义帮助程序,并再次使用ZF2内置帮助程序。这样你就不需要改变任何视图/模板。

你的助手应该是这个样子:

namespace MyNamespace\I18n\View\Helper; 

use Zend\I18n\Exception; 

class Translate extends AbstractTranslatorHelper 
{ 
    public function __invoke($message, $textDomain = null, $locale = null) 
    { 
     return $message; 
    } 
} 

注册您的自定义助手视图助手插件管理通过在module.php实施getViewHelperConfig方法。

class Module 
{ 
    public function getViewHelperConfig() 
    { 
     return array(
      'invokables' => array(
       'translate' => 'MyNamespace\I18n\View\Helper\Translate' 
      ) 
     ); 
    } 
}