ホーム DoRuby Ruby On Rails 国際標準化機能 I18n その1

Ruby On Rails 国際標準化機能 I18n その1

この記事はアピリッツの技術ブログ「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があるからです。
その内容は、はっきり言ってそっちを先に教えろよって感じかもしれませんが、
今回のは、勉強がてら見てもらえると嬉しいです。
もちろん次回のも見てほしいですけどね。

んでわぁまた。

記事を共有
モバイルバージョンを終了