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