Rails 2.3.5 で i18n を使ってメッセージを日本語化する
2010年02月26日
Rails Internationalization (I18n) API の i18n を gem でインストールする。
$ sudo gem install i18n
i18n を初期化してロケールを読み込むファイルを作成する。
$ vi config/initializers/init_i18n.rb # 以下のように記述する I18n.default_locale = 'ja-JP' LOCALES_DIRECTORY = "#{RAILS_ROOT}/config/locales/" LOCALES_AVAILABLE = Dir["#{LOCALES_DIRECTORY}/*.{rb,yml}"].collect do |locale_file| File.basename(File.basename(locale_file, ".rb"), ".yml") end.uniq.sort
メッセージ等のリソースファイルを作成する。
$ vi config/locales/ja-JP.rb
リソースファイルの内容はこちらのサイト『Rails2.2の新機能i18nを使ってみる – func09』の翻訳メッセージを参考にした。
こんな感じで、日本語化できた。
さらに、メッセージだけでなくモデル・その他の日本語化をするには、config/locales/ja-JP.yml ファイルを作成して以下のように記述する。
ja-JP: activerecord: models: client_workout: ワークアウト attributes: client_workout: client_name: 名前 trainer: トレーナー duration_mins: 指導時間 date_of_workout: 年月日 paid_amount: 支払い label: client_workout: new_client_workout: ワークアウト新規作成 edit_client_workout: ワークアウト編集 listing_client_workout: ワークアウト一覧 show: 表示 edit: 編集 destroy: 削除 new: 新規作成 back: 戻る create: 作成 search: 検索 update: 更新
テンプレートファイル内で以下の例のように各ラベルを指定する。
<h1><%= t 'label.client_workout.edit_client_workout' %></h1> <% form_for(@client_workout) do |f| %> <%= f.error_messages %> <p> <%= f.label :client_name, t('activerecord.attributes.client_workout.client_name') %><br /> <%= f.text_field :client_name %> </p> <p> <%= f.label :trainer, t('activerecord.attributes.client_workout.trainer') %><br /> <%= f.text_field :trainer %> </p> <p> <%= f.label :duration_mins, t('activerecord.attributes.client_workout.duration_mins') %><br /> <%= f.text_field :duration_mins %> </p> <p> <%= f.label :date_of_workout, t('activerecord.attributes.client_workout.date_of_workout') %><br /> <%= f.date_select :date_of_workout %> </p> <p> <%= f.label :paid_amount, t('activerecord.attributes.client_workout.paid_amount') %><br /> <%= f.text_field :paid_amount %> </p> <p> <%= f.submit t('label.client_workout.update') %> </p> <% end %> <%= link_to t('label.client_workout.show'), @client_workout %> | <%= link_to t('label.client_workout.back'), client_workouts_path %>
Rails アジャイル本 第13章 タスクI:国際化(ロケールの追加)
Rails I18n generators でロケールファイルを生成する
Head First Rails ―頭とからだで覚えるRailsの基本
posted with amazlet at 10.02.25
David Griffiths
オライリージャパン
売り上げランキング: 45786
オライリージャパン
売り上げランキング: 45786