我在 Zend2 框架中使用翻译模块,或者说我打算使用它。目前我只使用默认语言,在模板中我使用此代码进行翻译:
<?php echo $this->translate("Text to translate") ?>
我正在使用基于数组的翻译。目前我不想使用翻译,但我已经准备好一切,以便以后添加,所以我担心性能。这将发送翻译每个句子的请求,因此我将保存已翻译句子的文件保留为空,因此找不到翻译。
这会对性能产生很大影响吗?有没有办法在不更改模板的情况下关闭翻译?
我在 Zend2 框架中使用翻译模块,或者说我打算使用它。目前我只使用默认语言,在模板中我使用此代码进行翻译:
<?php echo $this->translate("Text to translate") ?>
我正在使用基于数组的翻译。目前我不想使用翻译,但我已经准备好一切,以便以后添加,所以我担心性能。这将发送翻译每个句子的请求,因此我将保存已翻译句子的文件保留为空,因此找不到翻译。
这会对性能产生很大影响吗?有没有办法在不更改模板的情况下关闭翻译?
你可以简单地用你自己的助手覆盖 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 方法,将你的自定义助手注册到 viewHelper PluginManager。
class Module
{
public function getViewHelperConfig()
{
return array(
'invokables' => array(
'translate' => 'MyNamespace\I18n\View\Helper\Translate'
)
);
}
}