環境
macOS Big Sur Ver11.2.1
Rails6.0.0
Ruby2.6.5
目的
Railsで開発中のアプリケーションの標準言語を日本語に変更すること。
これにより、エラーメッセージが日本語表示されること。
※今回のアプリではdeviseを導入しているので、deviseによるデフォルトのメッセージも日本語化します!
手順
①アプリケーション自体の言語設定を日本語にする
以下の一文を追加
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
# アプリケーションの日本語対応用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アプリケーションの日本語化の手順でした。