3

私は、初期データベース構造(インストーラの一種)の作成を担当するモデルをアプリケーションに持っています。私は最近、翻訳可能なコンテンツ(gettextを使用)を追加しました。初期のコンテンツ言語を依存させたいと思います。Zend Framework:モデル内の翻訳可能なコンテンツ

モデル内で翻訳可能なコンテンツを使用する最もよい方法は何ですか?モデル内でview->translate()関数を使用する方法はありますか?既に翻訳された文字列を外側から渡す必要がありますか?パラメータとして?

答えて

15

次のようにあなたがあなたのモデルでtranslate()メソッドにアクセスすることができます(デフォルトでは、彼らはそれぞれのキー「はZend_Locale」と「Zend_Translateの」下のレジストリである)あなたはZend_LocaleのとZend_Translateのをbootsrapedしている、と彼らはなZend_Registryに保存されていると仮定すると:

/*@var $translator Zend_Translate */ 
    $translator = Zend_Registry::get('Zend_Translate'); 

    /*@var $adapter Zend_Translate_Adapter */ 
    $adapter = $translator->getAdapter(); 

    var_dump($adapter->translate('Text to be translated')); 

上記の例の翻訳は、あなたのZend_Localeに従って行われます。

あなたのモデルでデータを変換するにはどうすればよいでしょうか?よく分かりません。あなたのコントローラやモデルにも翻訳を '不可視'または '透明'にしたい場合は、Zend_DB_Table_Rowの__getと__setという魔法のメソッドをオーバーロードし、そこにtranslate()メソッドを埋め込むことができます。

+0

うわー、完璧な答え、ちょうど私が後にしたもの。魅力のように動作します。ありがとうございました! – mingos

+0

そのような明確な答えをありがとう。 –

+0

jqueryはメッセージを検証する方法を教えてください。任意のアイデアまたは提案。 –

関連する問題