この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
ども、4日目のrickです。
今回は、Rails2.2以降から標準装備されている国際標準化機能(単語を置き換える機能とでもいうのかな?)について説明します。
なんでその1なのかは、最後を読んでみてね。
ちなみにi18nというのはinternationalizationの頭と後ろのiとn、文字数が18文字というところから来てるらしい。
環境
rails2.2以上
設定
config/environment.rb
# 最下行に追加
I18n.default_locale = “ja”
日本語以外もあるかもなので取った値によってみるページを替える
# app/controllers/application.rb
before_filter :set_locale
def set_locale
I18n.locale = params[:locale]
end
日本語用のページ作成
$cp config/locales/en.yml config/locaes/ja.yml
言葉入力
ja:
genre: ジャンル
models:
book_mark: Booker
attributes:
book_mark:
url: URL
link_name: Booker名
※空白や段落に気をつける
View画面
<%= I18n.t :genre %>
これでジャンルが表示される。
Error文
#config/locales/ja.yml
ja:
site_title: サイトタイトル
activerecord:
errors:
template:
header: “{{model}}でエラーが発生しました。”
body: 以下のエラー内容を確認してください。
messages:
blank: が空白です。
models:
entry: エントリー
attributes:
entry:
title: タイトル
body: 本文
こんな感じにするとデフォルトのエラー表示の英語のところも日本語になる。
以上が、I18nの説明です。
さてなぜその1なのか?という答えは、もちろん次回その2があるからです。
その内容は、はっきり言ってそっちを先に教えろよって感じかもしれませんが、
今回のは、勉強がてら見てもらえると嬉しいです。
もちろん次回のも見てほしいですけどね。
んでわぁまた。