スキップしてメイン コンテンツに移動

Rails 日本語化 / i18n

Rails4.0のWebを日本語化します。i18nというプラグインを使います。

i18n インストール

まずは、入っているか確認します。

$ gem list | grep i18n
i18n (0.6.9)

見つかればOKだそうです。大抵入ってるんですかね。入ってなかった場合の事をちょっと探してみましたが出てきませんでした・・。

デフォルトのロケールをjaに変更

.config/application.rbのデフォルトロケールを修正します。

config.i18n.default_locale = :ja

Githubから日本語の辞書ファイルを取得

svenfuchs/rails-i18nから日本語の辞書ファイルを.config/localesに取得します。

$ wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales/

これで、更新ボタンとか標準的なものは日本語化されるはずです。

日本語ラベルの作成

ラベルは、既存のラベルを参考に、こんな感じで作成します。

ja:
    test_category:
        test_value: 日本語

erbで呼び出す時は、

<%= t('test_category.test_value') %> で呼び出せます。

もっと、多階層化もできそうです。

自作クラスなどの日本語訳を記述

各クラスの日本語訳は、こんな漢字で書きます。

  activerecord:
    attributes:
      check:    # クラス名
        title: チェックタイトル # ラベル

これでガシガシ日本語化できます。

本当は多言語化(アドレスを見てどの国からアクセスされてるかをチェックして、localeを変更)までしたいですが、それはまた今度。。

追記

気がついたら、rails sでワーニングが出てました。

I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

将来、true がデフォルトになるというのなら、、という浅はかな考えで、.config/application.rbにて、I18n.enforce_available_locales = trueにしてみました。


参考

コメント

Amazon Affiliate