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