0

我在 .ini 文件中使用应用程序资源插件来设置我的 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 文件中这样做?

其次,是否可以在引导程序中“扩展”资源设置?换句话说,我是否可以将引导程序中的这个日志选项添加到翻译中,同时保持 .ini 文件中已经进行的其他设置?

4

1 回答 1

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 中删除它。

于 2010-11-12T09:08:35.160 回答