Zend_Translate, настроить лог через плагин ресурса приложения? - PullRequest
0 голосов
/ 08 ноября 2010

Я использую плагины ресурсов приложения в 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-файле?

1 Ответ

0 голосов
/ 12 ноября 2010

Хорошо, я не нашел решения этой проблемы в 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.

...