6

CakePHP 2.0 を使用し、コンソール ツールを使用して .../app/locale/default.pot を作成します。今、私は自分のサイトを複数の言語に翻訳したいと考えています。Cakephp クックブック (http://book.cakephp.org/1.2/en/view/162/Internationalizing-Your-Application) の国際化に関する段落を読みました。

default.pot ファイルをコピーします

  • .../app/locale/eng/LC_MESSAGES/default.pot
  • .../app/locale/fre/LC_MESSAGES/default.pot
  • .../app/locale/pol/LC_MESSAGES/default.pot
  • ...

そして、utf-8 テキスト エディター (gedit として) で tranalations 文字列を入力します。そして...私のサイトはまったく翻訳されません。

AppController が Configure::write('Config.language', some_three_letters_language) を変更するコードを実装している可能性があることに気付きました。構成は何も変更されていないため、非常に単純なコードを実装しました。

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

翻訳関数が常に引数を返し、.pot ファイル内の翻訳された文字列を返さないのはなぜですか (ビューでは __('Something') -answers-> 'Something')?

.pot ファイルが .po に変換されている場所はどこにもありませんでした。REHL または CentOS を使用してこれらの .po ファイルを取得するにはどうすればよいですか (名前に po または poeditor を含む適切なパケットを取得できません)。

ご回答有難うございます。

4

1 に答える 1

11

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

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

于 2012-04-10T07:49:39.943 に答える