その他
    ホーム 技術発信 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があるからです。
    その内容は、はっきり言ってそっちを先に教えろよって感じかもしれませんが、
    今回のは、勉強がてら見てもらえると嬉しいです。
    もちろん次回のも見てほしいですけどね。

    んでわぁまた。