【Rails応用講座 11】オピニオンの仕上げ >
日本語化する

日本語化の設定

メッセージを分かりやすくするために、言語設定のGemであるi18nを使用して日本語化を行います。このGemは、今回の場合デフォルトでインストールされているのでインストール作業は必要ありません。さっそく使用してみましょう。

まず、アプリのデフォルト言語を設定します。config/initializersの中にi18n.rbを作成して、以下を追加して下さい。

# config/initializers/i18n.rb

Rails.application.config.i18n.default_locale = :ja

これでデフォルト言語が日本語になりましたが、これだけだとメッセージは英語のままです。メッセージの日本語化には、英語メッセージの翻訳が記載されたファイルを用意する必要があります。

ja.ymlファイルを作成

次に、ja.ymlというファイルを作成します。これはロケールファイルと呼ばれるもので、メッセージの翻訳などを書く為のファイルです。では、config/localesの中にja.ymlを作成して下さい。

次に、既存の英語メッセージの翻訳をja.ymlに追加します。以下サイトのファイルの中身をコピペで追加しましょう。

https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

「rails i18n ja」と検索するとこういったサイトを見つける事が出来ます。

ja.devise.ymlファイルを作成

Deviseのメッセージも日本語化していきましょう。config/localesの中にdevise.ja.ymlを作成して下さい。ファイルの中身は以下サイトからコピペで追加します。

https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml

「devise i18n ja」と検索するとこういったサイトを見つける事が出来ます。

もっと日本語化

ja.ymlの内容を見ると分かるかと思いますが、各モデルレコードの作成・変更・削除後のメッセージの翻訳がありません。ですので、これらのメッセージの翻訳を追加していきたいと思います。ja.ymlを開いて、以下のように追加して下さい。

# ja.yml

ja:
  opinion_thanks: "オピニオンありがとうございました。"

次にコントローラを、追加したメッセージを表示するよう変更します。notice:の次に作成したopinion_thanksを指定してください。以下のように記述します。

notice: t('opinion_thanks')

createアクションすべてのコードも載せておきます。

# opinions_controller.rb

def create
    @clip = Clip.find(params[:clip_id])
    @opinion_params = opinion_params.merge(clip: @clip)
    @opinion = current_user.opinions.build(@opinion_params)
    @opinion.clip = @clip
    respond_to do |format|
      if @opinion.save
              # 以下の部分を変更
        format.html { redirect_to @clip, notice: t('opinion_thanks') }
      else
        render 'clips/show' 
      end
    end  
  end  

課題

ja.ymlにメッセージを作成して、ユーザークリップやアーティクルのメッセージを日本語にしましょう。※反映させるにはサーバーの再起動が必要です。

無料ビデオ講座のお知らせ

Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。

無料講座一覧を見る