2013-10-24 35 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' 
      ) 
     ); 
    } 
}