CakePHP(1.2)でのエラーメッセージを日本語化する
CakePHPでお問い合わせフォームを作ってみたりします。CakePHPでは、ValidateをModelに書きます。Validateのルールを、Model側に書くのですが、そのときに一緒にmessageを設定できます。これを、エラーなどがあったときに表示をして、エラーの内容を伝える事が出来ます。
Modelのmessageに日本語を書けば、日本語でエラーが返ってきます。Modelが一つで済みそうなお問い合わせフォームなどは、運用時にも大きな問題にならないと思います。ただ、いくつものModelの存在や、複数人での作業時においてのメッセージの共通化、国際化...などなどModelにそのままmessageを書いていていいのか?と思う時があります。
Model
- app_model.php
- invalidate()をオーバーライド
- __()で元から置き換えちゃいます
<?php function invalidate($field, $value = true) { return parent::invalidate($field, __($value, true)); } ?>
Controller
- app_contrller.php
- 言語設定をします。ここでは日本語を
<?php class AppController extends Controller { function beforeFilter(){ Configure::write('Config.language', 'ja'); } } ?>
.poファイル
- 国際化ファイル
- app/locale/jpn/LC_MESSAGES/default.po
- UTF-8で、改行はLFで、値はダブルクォーテーションで
- 制約が結構厳しい...
- msgidは、Modelに書いたmessageと同じにします
- msgtrが出力されます
msgid "notEmpty message" msgstr "入力されていません" msgid "email message" msgstr "正しくありません"
マニュアル
参考
- 作者: 安藤祐介,岸田健一郎,新原雅司
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2009/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 125回
- この商品を含むブログ (20件) を見る