cakePHPでvalidationのエラーメッセージを国際化
ちょっくら仕事で必要だったもので調べてみた。 通常、validationのエラーメッセージは、↓みたいな感じでModelの$validateというメンバ変数に設定を書く。
1 | class User extends AppModel { |
これだと、バリデーションのエラーメッセージがModelに埋め込まれるので、(*ノωノ) イヤン っていうか、これは設計ミスなんじゃね?っていう気もするが・・・。 単純にgetText形式にしても上手くいかない。 【駄目な例】
1 | class User extends AppModel { |
これを回避する方法は、色々と見つかったけど、一番のお勧めは今のところconstructorで宣言する方法。 【出来たコード例】
1 | class User extends AppModel { |
この方法なら、あとでもっと良い方法が見つかった時でも後戻りも楽そう。 単純に考えると、constructor実行時にはgetText関数が参照出来て、validationErrorのメッセージ表示時には参照出来ないということかな。 cake歴浅いので、もう少し理解したら、さらに良い方法を探してみます。