This document is for CakePHP's development version, which can be significantly different from previous releases.
You may want to read current stable release documentation instead.

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