日々の反省

学んだことをつらつらと書いていきます。

Rails + deviseの日本語化


スポンサードリング

はじめに

Railsには I18nという国際化対応の機能が備わっています。便利です。

application.rbへ設定を追加

config/application.rbを以下のように変更して日本語をサポートするようにします。

config.i18n.default_locale = :ja

日本語用のYAMLを取得

下記リンク先のja.ymlをconfig/locales配下に保存します。 github.com

cloud9上であれば下記コマンドでどうぞ。

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

モデルの日本語化

たとえばUserモデルを日本語化する場合は以下のようにconfig/locales/ja.ymlに追記します。

    models:
      user: ユーザー
    attributes:
      user:
        id: ID
        created_at: 登録日時
        updated_at: 更新日時
        birthday: 生年月日
        email: メールアドレス
        salon_id: サロン
        password: パスワード

独自メッセージの多言語化

多言語化を視野に入れて開発する場合にはメッセージやラベル、ボタンなども多言語対応が必要です。 こちらもja.ymlに追記しておいて、t関数で表示させることができます。

  label:
    login_btn: ログインする

上記をerbファイルで表示するには以下のように記述します。

      <div class="form-group">
        <%= f.submit t("label.login_btn"), class:"form-control btn btn-primary" %>
      </div>

t関数にlabel.login_btnのようにyamlのパスを指定するとメッセージを取得します。これを例えばen.ymlに転記しておけば英語対応が可能です。

Deviseの日本語化

deviseを日本語化するには別途devise用の日本語ファイルが必要です。 下記リンク先に様々な言語用のyamlが紹介されています。

github.com

それでは日本語用のファイルを取得しましょう。cloud9なら以下でどうぞ。

wget -O config/locales/devise.ja.yml https://raw.githubusercontent.com/tigrish/devise-i18n/master/rails/locales/ja.yml

動作確認

サーバ起動中であれば再起動後に日本語化されていることを確認してください。

さいごに

今回は国際化対応についてでした。ロケールに応じた言語・通貨・日付の変換を自動的に行ってくれるのでぜひ活用して国際的なビジネスを行いましょう。まず英語学ばないと!

【書籍紹介】サンプルコードを動く状態にして読み進めると一通りRailsを使ってできることがわかります。自分は辞書的な使い方でわからないことがあったときにまず開いてみる一冊です。