0

私の見解では、通話$this->translate('test')は機能していません。

ブートストラップには、翻訳を開始する次のコードがあります。

protected function _initTranslate() {
    $apc = $this->getOption('enable_apc_cache');
    if ($apc) {
        $cache = Zend_Registry::get('cache');
        Zend_Translate::setCache($cache);
    }

    // Set the correct locale
    $locale = new Zend_Locale('nl');
    Zend_Registry::set('Zend_Locale', $locale);


    // Form error translations
    $translator = new Zend_Translate(
        'array',
        APPLICATION_PATH.'/../resources/languages',
        'auto',
        array('scan' => Zend_Translate::LOCALE_DIRECTORY)
    );
    Zend_Form::setDefaultTranslator($translator);

    // All other translations, including form labels
    $translate = new Zend_Translate(
        'gettext',
        APPLICATION_PATH.'/../resources/languages/',
        'auto',
        array('scan' => Zend_Translate::LOCALE_DIRECTORY));
    Zend_Registry::set('Zend_Translate', $translate);
}

私が正しく理解している場合(stackoverflowとGoogleで検索した場合)、キーZend_Translateを使用してトランスレータをレジストリに配置すると、うまくいくはずです。

今、私の見解では、電話をかけると<?php echo $this->translate->_('Purchaseorder'); ?>エラー<?php echo $this->translate->('Purchaseorder'); ?>が発生します。

Call to a member function _() on a non-objectアンダースコア呼び出しありとアンダースコア呼び出しParse error: syntax error, unexpected '(', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'なし。

私は何を間違っている/行方不明ですか? http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.translateによると、これでうまくいくはずです。

4

1 に答える 1

4

正しい構文は次のとおりです。

<?php echo $this->translate('Purchaseorder'); ?>

投稿の上部でこの構文を使用していますが、後で言及するコードから、実際には別の構文を使用しているようです。

于 2012-07-19T19:46:44.237 に答える