2012-04-10 8 views
3

cakePHP 2.0を使用し、コンソールツールを使用して.../app/locale/default.potを作成します。今、私は自分のサイトを複数の言語に翻訳したいと思っています。 cakephp料理の本(http://book.cakephp.org/1.2/en/view/162/Internationalizing-Your-Application)の国際化についての段落を読んだ。.potファイルを.potファイルから取得する方法

私は

  • ... /アプリ/ロケール/ ENG/LC_MESSAGES/default.pot
  • ... /アプリ/ロケール/ FRE/LC_MESSAGES /デフォルトにdefault.potファイルをコピーします。ポット
  • ... /アプリ/ロケール/ POL/LC_MESSAGES/default.pot
  • ...

そして(geditのように)UTF-8のテキストエディタでtranalations文字列を入力してください。そして...私のサイトは全く翻訳されません。

私は、AppControllerがConfigure :: write( 'Config.language'、some_three_letters_language)を変更するためのコードを実装していることに気がつきました。設定が変更されていないので、私は非常に簡単なコードを実装しました。

// in AppController 
public function beforeFilter() { 
     Configure::write('Config.language', 'fre'); 
} 

なぜ翻訳機能は、常に引数とない(ビューでは、__(「何か」)-answers->「何か」).POTファイルで翻訳された文字列を返すのですか?

.potファイルが.poに翻訳されていませんでした。 REHLまたはCentOS(名前にpoまたはpoeditorを含む適切なパケットを取得できない)で、これらの.poファイルを取得するにはどうすればよいですか?

ご回答ありがとうございます。

答えて

8

.potと.poファイルは同じファイル形式です。 .potは "PO テンプレート"の略です。違いは、このテンプレートファイルを使用して翻訳者に提供し、変換された.poファイルが作成されることです。 .potファイルは、いくつかのローカライズされた.poファイルのテンプレートです。 http://www.gnu.org/software/gettext/manual/gettext.html#Filesを参照してください。

つまり、.potを.poに変更するだけで問題ありません。
適切なgettextワークフローには、これを行うためのmsginitツールがあります。このツールは、選択したロケールの正しい値にいくつかのヘッダーを設定します。

+0

ありがとうございます。私はfre/RC_MESSAGES/default.potをdefault.poに改名しましたが、これは問題を解決しませんでした。 –

+1

"RC_MESSAGES"? 'LC_MESSAGES'でなければなりません。 – deceze

+0

はい、申し訳ありませんが、私はそれを変更しました。 .poファイルの正当性をチェックする方法を知っていますか? –

関連する問題