2012-04-06 11 views
5

私はビュー内に<?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の

答えて

8

あなたは、各言語を呼び出す方法を知るために、ファイルのlib /ケーキ/国際化/ L10n.phpで見ることができます。ドイツ語

設定:

Configure::write('Config.language','de'); 

=>アプリ/ロケール/ DEU/LC_MESSAGES/default.po

+0

L10n.phpファイルのヒントをありがとう将来の参照のためにそれを使用してください。 –

+0

ありがとう、cakePhpのコアを見て、私の理解に役立ちます。 –

6

Configure::write('Config.language', 'eng');を追加した場合は、その " deu "not" ger "

CakePHPは、公式(T)c http://www.loc.gov/standards/iso639-2/php/code_list.phpからの頌歌は、CakePHPの1.3のためにそれはInternationalizing Your Applicationの下で文書化されて:あなたは、地域のロケール(などはen_US、en_GBを、)作成ケーキがあれば、それらを使用する場合が

3文字のロケールコードは、ISO 639-2標準に準拠します適切な。

ISO 639-2 | ISO 639-1 | English name | French name | German name | 
Code  | Code  | of Language | of Language | of Language | 
------------------------------------------------------------------- 
ger (B) |   |    |    |    | 
deu (T) | de  | German  | allemand | Deutsch  | 
+1

ああ、今では動作します。ファイルの "T"値を使用しなければならないということは私には明らかではありませんでした。他の多くのCakePHPユーザーがそれを知らないかもしれないと思うので、ドキュメントには言及していません。 –

+0

あなたの答えをありがとう!私は正しい答えとして1つしかマークできません.L10nファイルへの参照のため、del_danのものを取っていました。 –

+1

問題ありません。ドキュメンテーションについては、github担当者(https://github.com/cakephp/docs)にプッシュすることで参加できます。欠けている情報を入れてください。 – mark

関連する問題