LoginSignup
0
1

More than 3 years have passed since last update.

Railsアプリの標準言語を日本語に設定する

Last updated at Posted at 2021-02-26

環境

macOS Big Sur Ver11.2.1
Rails6.0.0
Ruby2.6.5

目的

Railsで開発中のアプリケーションの標準言語を日本語に変更すること。
これにより、エラーメッセージが日本語表示されること。
※今回のアプリではdeviseを導入しているので、deviseによるデフォルトのメッセージも日本語化します!

手順

①アプリケーション自体の言語設定を日本語にする

以下の一文を追加

config/application.rb
require_relative 'boot'

require 'rails/all'

Bundler.require(*Rails.groups)

module アプリ名
  class Application < Rails::Application

    config.load_defaults 6.0

    # 日本語の言語設定を追記する
    config.i18n.default_locale = :ja

  end
end

②必要なGemのインストール

Gemfileに以下のgemを追記して、ターミナルでbundle installする。
すべての環境に適用されるよう、最下部とかに記述する。
参考:rails-i18n

Gemfile
# アプリケーションの日本語対応用gem
gem 'rails-i18n'

ここまででアプリの設定は完了!

③deviseの言語設定

上記までの作業である程度の日本語化は完了しますが、deviseを導入してユーザー管理機能を構築しているので、deviseに関係するエラーメッセージはまだ英語表記のはず。
そこで、config/locales内にdevise.ja.ymlファイルを作成する。
ファイルの中身は、コピペでOK!
devise-i18n
これでdeviseに関連する部分はすべて日本語化されます。

④独自に追加したカラムなどの日本語化

deviseを導入していてもusersテーブルに独自にカラムを追加している場合は、これまでの作業を実施しても独自カラムの表記は英語のままです。
おそらくほとんどの場合は上記までの作業では不十分なはず。
ここからは、自分で設定用ファイルを作って、設定も自分で記述していく必要がある。

ということで、config/localesに、「ja.yml」というファイルを作成し、その中に自分で設定を記述していく!
例えばこんな感じ。

ja:
  activerecord:
    attributes:
      user:
        nickname: ニックネーム
        birthday: 生年月日
      item:
        name: 商品名
        explain: 商品の説明

  # フォームオブジェクトを用いている場合
  activemodel:
    attributes:
      order_shipping:
        postal_code: 郵便番号
        prefecture_id: 都道府県
        token: カード情報   

attributesは属性、userはモデルのファイル名(フォームオブジェクトならクラスのファイル名)、nicknameはモデルやクラスで定義している属性名といった感じでしょうか。
モデルやクラスの継承先に気をつけて記述をしてください!
記述したらサーバーを再起動して、エラーメッセージが全て日本語化できているか確認してください。

以上、Railsアプリケーションの日本語化の手順でした。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1