I18N ツール

CakePHP の国際化機能は、 po files を翻訳のソースとして使います。POファイルは Poedit のようなツールで簡単に編集できます。

CakePHP の i18n コマンドは、手軽に potファイル(poテンプレートファイル)を生成します。 翻訳者は、これらのテンプレートファイルを使ってアプリケーションの翻訳作業を行ないます。 翻訳が更新された pot ファイルは既存の翻訳とマージされます。

POT ファイルの生成

extract コマンドを使って、既存のアプリケーションのために POT ファイルを生成することができます。 このコマンドはアプリケーション全体から __() 形式の関数をスキャンし、メッセージ文字列を 抽出します。アプリケーション中のユニークな文字列は それぞれひとつの POT ファイルの中にマージされます。

.. code-block:: console

bin/cake i18n extract

上記は、抽出シェルを実行します。 このコマンドの結果は、 resources/locales/default.pot ファイルになります。 pot ファイルは、 po ファイルを作成するためのテンプレート として使用します。もし、手動で pot ファイルから po ファイルを 作成するなら、 Plural-Forms ヘッダー行を正しく設定してください。

プラグイン用 POT ファイルの生成

特定のプラグインで使用される POT ファイルを生成することができます。

bin/cake i18n extract --plugin <Plugin>

これにより、プラグインで使用される必要な POT ファイルが生成されます。

一括で複数のフォルダーを抽出

複数ディレクトリから文字列の抽出が必要なこともあるでしょう。 例えば、アプリケーションの config ディレクトリー内の いくつかの文字列を定義している場合、 src ディレクトリと 同様にこのディレクトリーからも文字列を抽出したくなる はずです。 それには --paths オプションを使用することができます。 そのオプションに抽出する絶対パスをカンマ区切りリストで 渡します。

bin/cake i18n extract --paths /var/www/app/config,/var/www/app/src

特定フォルダーを除外

除外したいフォルダーをカンマ区切りで指定します。指定された値に含まれるパスは無視されます。

bin/cake i18n extract --exclude vendor,tests

既存の POT ファイルの上書き警告をスキップする

--overwrite を追加することで、 POT ファイルが存在しても警告されず、 デフォルトで上書きされます。

bin/cake i18n extract --overwrite

CakePHP コアライブラリーからのメッセージ抽出

デフォルトで、抽出シェルスクリプトは CakePHP コアライブラリー中で使われているメッセージを 抽出するかどうか訊ねます。 --extract-core に yes か no を設定することで、 デフォルトの動作を指定できます。

bin/cake i18n extract --extract-core yes

// または

bin/cake i18n extract --extract-core no