Invalid signature

ここは俺の日記帳

CakePHP: po ファイル更新の自動化

CakePHP v2.4.6

新しい文章が追加された時、一から書き直しなのか。 気になって調べてみた。
すると、po ファイルの更新に関する情報を見つけた。
http://blog.zista.jp/docs/id/0000000117
なんか微妙にマージが上手いくいっていないように見えたが、i18n コマンドの
対話部分だけでも自動化できるのは大きいと思い、そこだけ抜き出してみた。
そして記事中では引数の -paths なんかはマイナス記号が
足りないのが原因で効いていなかったので修正。

少し足りない

コマンド実行時の対話に対応する引数をすべて設定し、実行してみると、
手動で作った時と比べると少し抽出されていない文があった。
なぜなのか。

公式のドキュメントを見るとそれらしいのを見つけた。
以下の引数をつけるとバリデーションのエラーメッセージも
抽出対象になるとのこと。


    --validation-domain validation_errors
  

試してみたけど効果なし。

 validationDomain がモデルに付加されていると無視される。

との記述から validationDomain を調べた。

バリデーションエラーメッセージを翻訳する場合は、各モデルで
$validationDomainにドメイン名を定義します。ドメイン名とは、
moファイル名のこと。$validate内のメッセージの設定箇所
('message' => 'メッセージ')は変更の必要はありません。
http://kwski.net/cakephp-2-x/1104/

この記事のサンプルコード
public $validationDomain = 'default';
を試したところ、見事バリデーションのエラーメッセージも出力され、
手動で抽出した potファイルと同じ結果になった。

--validation-domain が効かなかったことと、
手動での抽出時、それらしい問いかけがなかったのに
バリデーション関連メッセージが出力されたことが納得いかない。