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 に答える