I18N シェル

CakePHP の国際化機能は、 po files を翻訳のソースとして使います。POファイルは Poedit のような一般的に使われている翻訳ツールと統合します。

i18n シェルは、素早く容易に po テンプレートファイルを生成します。 アプリケーション中の文字列を翻訳できるように、これらのテンプレートファイルが翻訳者に提供されます。 一度翻訳が済むと、 翻訳の更新に役立つよう pot ファイルは既存の翻訳とマージされます。

POT ファイルの生成

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

bin/cake i18n extract

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

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

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

bin/cake i18n extract --plugin <Plugin>

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

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

しばしば、アプリケーションの1つ以上のディレクトリーから文字列の抽出が必要なこともあるでしょう。 例えば、もし、あなたのアプリケーションの 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