2

スケルトン アプリケーションから始めて、多言語プロジェクトを作成したいと考えています。ナビゲーションには Zend\Navigation を使用しています。すべてがうまく機能します - ナビゲーション ビュー ヘルパーのトランスレーターを設定しません。

トランスレーターは、module.config.php 内に登録されており、あらゆる種類の翻訳 (翻訳ビュー ヘルパーを含む、レイアウト内でも) に適しています。しかし、ナビゲーションのラベルを翻訳できるようにするには、トランスレータをナビゲーション ビュー ヘルパーに設定する必要があります。ドキュメントによると、これは次のように実行できます。

$this->navigation()->setTranslator($translator);

またはそのようなもの。問題は、構成されたトランスレーターをレイアウト内から取得する方法が見つからないことです。ServiceManager にアクセスしたり、サービス ロケーターを取得したりする方法はありますか?

4

1 に答える 1

0

ナビゲーションでトランスレータを設定する代わりに、あなたが言ったようにすでに設定されているので、代わりにTextDomainを使用することができます。これが私が現在していることです:

$ this-> Navigation('Zend \ Navigation \ Navigation')-> setTranslatorTextDomain('textdomainhere');

もちろん、すべての翻訳がデフォルトの同じテキストドメインにある場合は、何も設定する必要はありません。$ this-> Navigation('Zend \ Navigation \ Navigation');

レイアウトで翻訳を機能させることに関しては、次のことを行うだけです。

echo $ this-> translate('Translate This Text'、'textdomainhere');

于 2012-11-27T23:11:31.520 に答える