0

ZF2 でトランスレータを使用しているときに問題に直面しています。つまり、Php 変数ではなくインライン文字列のみを受け入れます。

翻訳するインライン文字列を指定すると、「更新」後に.POファイルに翻訳者の単語が表示され、完璧に機能しています

    $translator = $this->getServiceLocator()->get('translator');
    $translator->translate("message to translate") ;

しかし、PHP変数に保存されている文字列を翻訳したいです。「更新」後、.PO ファイルに翻訳語が表示されません。以下のコードを参照してください。

    $translator = $this->getServiceLocator()->get('translator');
    $msg1="message to translate";
    $translator->translate($msg1) ;

このコードは、コントローラー アクションの 1 つからのものです。

ご意見をお聞かせください

4

1 に答える 1

0

デフォルトまたは translate メソッドを呼び出すときに、「テキスト ドメイン」を指定する必要があります。それが完了したら、$msg1 に実際に文字列があることを確認してください。

http://framework.zend.com/manual/2.0/en/modules/zend.i18n.translating.html

$translator->translate($message, $textDomain, $locale);

メッセージは、翻訳するメッセージの ID です。ローダーの翻訳に存在しないか空の場合は、元のメッセージ ID が返されます。テキスト ドメイン パラメータは、翻訳を追加するときに指定したものです。省略した場合、デフォルトのテキスト ドメインが使用されます。locale パラメータは通常、このコンテキストでは使用されません。デフォルトでは、ロケールはトランスレータで設定されたロケールから取得されるためです。

于 2013-05-30T10:06:35.607 に答える