私はビュー内に<?php echo __("this is my string"); ?>
を使用して、複数の言語でテキストを表示します。私はドイツ語の.poファイルのディレクトリを作成しました:CakePHP 2.1 .poファイル/変換が機能しない
=>アプリ/ロケール/ GER/LC_MESSAGES/default.po
は、 "これは私の文字列である"
msgStrをは「イストmeineダイMSGID
Configure::write('Config.language','ger');
を私のAppController.php beforeFilter関数に追加すると、テキストは "this is my string"のままです。別のmsgstrを使って英語の.poを作成したとしても、テキストは同じままです。
翻訳を有効にするには、特定の設定を変更する必要がありますか?
私がフォローアップ問題を抱えている:私は私のデフォルトの言語を設定する core.phpのにConfigure::write('Config.language','eng');
を追加しましたが、今私はAppController.phpでそれを上書きしようとした場合でも、値を変更することはできませんのbeforeFilterで:
Configure::write('Config.language', 'deu'); //'de' also doesn't work
CakeSession::write('Config.language', 'deu'); //'de' also doesn't work
私はcore.phpの中で値を変更した場合、それは完全に正常に動作しますが、一度core.phpの中に設定され、私はそれを変更傾けます。
解決済み:ああ、すべてのコントローラのbeforeFilter機能内にparent::beforeFilter();
を追加するのを忘れました。
追加情報:
- デフォルトの言語を定義したい(そして、あなたは通常ます)、core.phpの
L10n.phpファイルのヒントをありがとう将来の参照のためにそれを使用してください。 –
ありがとう、cakePhpのコアを見て、私の理解に役立ちます。 –