2011年10月19日水曜日

バリデーションによる入力規制02 ローカライズ(日本語化

なんとか日本語化に成功。今回は調査から動作確認まで3hの工数を消費。
何が難しいといえば、railsのバージョンによって推奨される方法が異なる事で、どの情報をもってローカライズすればよいのか非常に迷った事、必要とする情報だけをフィルタリング出来なかった事が反映。あれもこれも、では駄目。

今回調査したrailsのローカライズの推移は
1.エラーを扱うクラスをオーバーライドしたり、ActiveHeartでゴリゴリ書く「力技」
2.ruby-gettextを使う。
3.i18nを使う。

私が一番最初に「これはいける」と思ったのは1.のゴリゴリ型。最初はいいと思ったが、工数がかかって仕方がない。また日本語が、各modelに散ってしまうのもメンテナンス性が悪い。

結果、2はやらず、3のi18nに到達。参考にした資料は
http://www.st.rim.or.jp/~sakisan/rails3_ja.html(Rails3 エラーメッセージ日本語化のメモ)
上記リンク先にも書いてあるとおり。ステップは以下の通り

イ.ja.ymlをネット上からダウンロードし、config/localesに配置

ロ.config/locales/ja.yml に以下の行を追加(サンプルは私の環境に最適化。
activerecord:

 attributes:
   muser:#エンティティ名
    USER_ID: "ユーザID"#カラム名
    DISP_NAME: "表示名"#カラム名
helpers:
 label:
  muser:
   USER_ID: "ユーザID"
   DISP_NAME: "表示名"#カラム名

ハ.config/application.rbのどこかに以下を追記
config.i18n.default_locale = :ja

二.webサーバ再起動
これで終了。簡単。但し、i18nを最初から使うという結論に最初から辿りつけていればの話。でも目標が達成できてよかった。

0 件のコメント:

コメントを投稿