0

Zend Framework 2を使用してアプリケーションを開発しており、フォームで作成したラジオボタン(「表示」、「非表示」)のテキストを翻訳する必要があります。

    //within the Form

    public function addRadioButtons ()
        {
            $isPublicRadioButtons = new Element\Radio('isPublic');
            $isPublicRadioButtons->setAttribute('id', 'isPublic')
                    ->setAttribute('value', '0')
                    ->setValueOptions(array(
                        '0' => 'Show',
                        '1' => 'Hide',
                    ));

            $this->add($isPublicRadioButtons);
        }

それらを翻訳できるようにするには、ビュー側で何をする必要がありますか?

ビューに翻訳をレンダリングするには、$ this→translate()ビューヘルパーを使用する必要があることを知っています。したがって、ビュー内で、ラジオボタンのテキストをなんとかして呼び出す必要があります。

//Whithin the view

echo $this->translate($someHowCallTheTextOfRadioButton('isPublic') , $textDomain, $locale);
4

3 に答える 3

0

フォームに TranslatorAwareInterface を実装させ、PHP 5.4 以降を使用している場合は TranslatorAwareTrait を使用させることができます (それ以外の場合は、インターフェイスを自分で実装する必要があります)。トランスレータ インスタンスをフォーム (フォームのファクトリなど) に挿入できるようになりました。次に、次のようにラベルを翻訳できます。

//within the Form

public function addRadioButtons ()
    {
        $isPublicRadioButtons = new Element\Radio('isPublic');
        $isPublicRadioButtons->setAttribute('id', 'isPublic')
                ->setAttribute('value', '0')
                ->setValueOptions(array(
                    '0' => $this->getTranslator()->translate('Show'),
                    '1' => $this->getTranslator()->translate('Hide'),
                ));

        $this->add($isPublicRadioButtons);
    }
于 2013-04-04T14:54:05.017 に答える
0

あなたの見解では、次のようなことができます:

$this->formRadio()->setTranslatorTextDomain('textdomainhere');

于 2012-12-20T15:22:16.753 に答える
0

FormLabelセクションを見て、zend フレームワーク 2 でのラベルの翻訳について読んでください。覚えておくべき最も重要なことは次のとおりです。

Service Manager のキー「translator」の下にトランスレーターがある場合、ビュー ヘルパー プラグイン マネージャーは自動的にトランスレーターを FormLabel ビュー ヘルパーにアタッチします。詳細については、Zend\View\HelperPluginManager::injectTranslator() を参照してください。

ZendSkeletonApplicationにあるトランスレータを適切にセットアップする方法

于 2012-12-18T19:15:12.293 に答える