Ruby on Rails 2.3 で I18N を使ってみた

バージョン2.2はスキップしてしまったので、正式なI18Nを使うのは バージョン2.3 が初めてです。

Rails2.2の新機能i18nを使ってみる - func09 が大変参考になりました。

ただし、この記事はバージョン2.2正式版の前を使ったものなので現在はもっと簡単です。


設定

% vi config/initializers/locale.rb
---- 内容は ---------------------
#
I18n.default_locale = "ja-JP"

バリデーションメッセージ、日時等のリソース

% vi config/locales/ja-JP.rb 

ファイルの内容は Rails2.2の新機能i18nを使ってみる - func09 をそのまま利用させて頂きました m(__)m

この設定だけで、バリデーションメッセージや日付のセレクトボックスは日本語化されます。

テーブル名、カラム名リソースの作成

アプリ毎のテーブル名、カラム名等に、日本語リソースを作成します。

% vi config/locales/ja-JP.yml
---- 内容は ---------------------
ja-JP:
  activerecord:
    models:
      todo: Todo
    attributes:
      todo:
        due: 期日
        task: タスク

この設定でバリデーションのエラーメッセージは完全に日本語化されます。Gettextに比べると自分でリソース名を記述しないと行けませんがシンプルな手順で日本語化できます。