1

我在 Zend2 框架中使用翻译模块,或者说我打算使用它。目前我只使用默认语言,在模板中我使用此代码进行翻译:

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

我正在使用基于数组的翻译。目前我不想使用翻译,但我已经准备好一切,以便以后添加,所以我担心性能。这将发送翻译每个句子的请求,因此我将保存已翻译句子的文件保留为空,因此找不到翻译。

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

4

1 回答 1

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 方法,将你的自定义助手注册到 viewHelper PluginManager。

class Module
{
    public function getViewHelperConfig()
    {
        return array(
            'invokables' => array(
                'translate' => 'MyNamespace\I18n\View\Helper\Translate'
            )
        );
    }
}
于 2013-10-24T20:54:07.113 回答