2

CakePHP で i18n を探索するプロセスを始めたばかりで、複数の po ファイルを使用できるようにするファイルと関数の適切な組み合わせが見つからないようです。翻訳可能なテキストのすべてのビットに対して 1 つの po ファイル (default.po) を使用したい場合、それは問題なく動作しますが、非常に急速に維持できない毛玉になることがわかります。ドキュメントと見つけたいくつかの記事を読みましたが、1 つの .po ファイルの些細な使用を超えて、実際に i18n に飛び込むものはありません。

これが私が今いる場所です:

  • po テンプレート (.pot ファイル) を「焼き付け」、それらを app/locale/eng/LC_MESSAGES にコピーしました (不足しているキーを簡単に見つけられるように、デフォルトのテキストをキーとして使用するつもりはありません)。今のところ、-views-layouts-default.po と -views-pages-index.po があります。
  • これらの .po ファイルに、各キーに使用するテキストを入力しました。
  • 私のホームページ (views/pages/index.ctp) とデフォルト レイアウト (views/layouts/default.ctp) で、翻訳したいテキスト キーを __() 関数でラップしました。

ただし、ホームページをロードすると、それらのキーしか表示されません。テキストは翻訳されていません。ただし、default.po ファイルをスローすると、そこにドロップしたキーは問題なく入力されます。明らかにパズルのピースが欠けていますが、見つかりません。どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

6

CakePHP Google Group のおかげで、私が見逃していた部分を見つけました。私は __d() 便利な関数をいじっていましたが、それを .po ファイルに結び付ける方法がはっきりとわかりませんでした。あなたがそれを知っていれば、答えは簡単です:

ドメインの翻訳:

__d ( 'login', 'PLEASE_LOGIN' );

login.po という名前のファイルで「PLEASE_LOGIN」キーを探します。domain == po ファイル名 (拡張子なし) とは知りませんでした (どこも読んでいませんでした)。すべての違いを生んだ学習。

于 2009-04-06T18:57:58.630 に答える