0

我使用的.ini文件的應用程序資源的插件設置我的這個代碼把Zend_Translate:Zend_Translate,通過應用程序資源插件設置日誌?

resources.translate.data = APPLICATION_PATH "/../languages" 
resources.translate.adapter = "gettext" 
resources.translate.options.scan = "directory" 

現在我想日誌功能添加到翻譯,這在引導我不喜歡這樣的:

$writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . '/../logs/translate.log'); 
$log = new Zend_Log($writer); 
$translate->setOptions(
       array(
        'log'    => $log, 
        'logUntranslated' => true 
       ) 
      ); 

2提問一下: 首先,是有可能這個.ini文件?其次,可以在引導程序中「擴展」資源設置嗎?換句話說,我可以在bootstrap中添加例如這個日誌選項到翻譯中,同時保持.ini文件中已經創建的其他設置?

回答

0

好吧,我還沒有在ini文件中找到這個解決方案,但是我找到了一種方法,可以在啓動時將ini文件中的設置「擴展」而不會覆蓋它們。我設法這樣做:

protected function _initTranslate() 
{ 

    $writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . '/../somedir/somefile.log'); 
    $log = new Zend_Log($writer); 

    // get the translate resource from the ini file and fire it up 
    $resource = $this->getPluginResource('translate'); 
    $translate = $resource->getTranslate(); 

    // add the log to the translate 
    $translate->setOptions(
      array(
       'log'    => $log, 
       'logUntranslated' => true 
      ) 
     ); 


    // return the translate to get it in the registry and so on 
    return $translate;  

} 

這工作得很好。我將從.ini中刪除翻譯,因爲我正在切換到我自己的適配器,並且不知道(但是)如何從ini中取消該翻譯。