目的
Railsの作成済みアプリを日本語化する。
また、導入したdevise
も同様に日本語化する。
開発環境
macOS: Big Sur
Rubyバージョン: 2.6.5
Railsバージョン: 6.0.0
前提
- アプリが作成されている。
-
devise
が導入されている。
【Rails】ユーザー管理機能(devise)の導入 - アプリ名は
test-app
とする。
手順
application.rbの設定
以下のように必要な記述を追記していきます。
config/application.rb
#省略
module TestApp
class Application < Rails::Application
config.load_defaults 6.0
config.time_zone = 'Tokyo'
config.active_record.default_timezone = :local
config.i18n.default_locale = :ja
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
#省略
end
end
デフォルトの設定だとconfig/localesに存在する.ymlファイル
しか読み込みませんが、
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
という記述により、
下記のようにconfig/locales以下のすべてのディレクトリに入ってる.yml
を読み込むようになります。
ディレクトリ例
config
└── locales
├── 00_model.ja.yml
└── 01_views
└── users
└── ja.yml
以上でapplication.rb
の設定は完了しました!
Gemのインストール
続いてGemのインストールです!
Gemfileに必要なGemを追記します。
Gemfile
# 省略
gem 'rails-i18n', '~> 6.0'
gem 'devise-i18n'
gem 'devise-i18n-views'
ターミナル
% bundle install
ターミナル
% rails s
これで必要なGemがインストールできました!
devise.ja.ymlの編集
最後にdeviseの日本語化です。
devise.ja.yml
を作成し、下記のように記述します!
devise.ja.yml
ja:
activerecord:
errors:
models:
user:
attributes:
email:
taken: "は既に使用されています。"
blank: "が入力されていません。"
too_short: "は%{count}文字以上に設定して下さい。"
too_long: "は%{count}文字以下に設定して下さい。"
invalid: "は有効でありません。"
password:
taken: "は既に使用されています。"
blank: "が入力されていません。"
too_short: "は%{count}文字以上に設定して下さい。"
too_long: "は%{count}文字以下に設定して下さい。"
invalid: "は有効でありません。"
confirmation: "が内容と合っていません。"
name:
blank: "が入力されていません。"
attributes:
user:
current_password: "現在のパスワード"
name: "名前"
nickname: "ニックネーム"
email: "メールアドレス"
password: "パスワード"
password_confirmation: "もう一度パスワードを入力してください"
remember_me: "次回から自動的にログイン"
models:
user: "ユーザー"
devise:
confirmations:
new:
resend_confirmation_instructions: "アカウント確認メール再送"
mailer:
confirmation_instructions:
action: "アカウント確認"
greeting: "ようこそ、%{recipient}さん!"
instruction: "次のリンクでメールアドレスの確認が完了します:"
reset_password_instructions:
action: "パスワード変更"
greeting: "こんにちは、%{recipient}さん!"
instruction: "誰かがパスワードの再設定を希望しました。次のリンクでパスワードの再設定が出来ます。"
instruction_2: "あなたが希望したのではないのなら、このメールは無視してください。"
instruction_3: "上のリンクにアクセスして新しいパスワードを設定するまで、パスワードは変更されません。"
unlock_instructions:
action: "アカウントのロック解除"
greeting: "こんにちは、%{recipient}さん!"
instruction: "アカウントのロックを解除するには下のリンクをクリックしてください。"
message: "ログイン失敗が繰り返されたため、アカウントはロックされています。"
passwords:
edit:
change_my_password: "パスワードを変更する"
change_your_password: "パスワードを変更"
confirm_new_password: "確認用新しいパスワード"
new_password: "新しいパスワード"
new:
forgot_your_password: "パスワードを忘れましたか?"
send_me_reset_password_instructions: "パスワードの再設定方法を送信する"
registrations:
edit:
are_you_sure: "本当に良いですか?"
cancel_my_account: "アカウント削除"
currently_waiting_confirmation_for_email: "%{email} の確認待ち"
leave_blank_if_you_don_t_want_to_change_it: "空欄のままなら変更しません"
title: "%{resource}編集"
unhappy: "気に入りません"
update: "更新"
we_need_your_current_password_to_confirm_your_changes: "変更を反映するには現在のパスワードを入力してください"
new:
sign_up: "アカウント登録"
sessions:
new:
sign_in: "ログイン"
shared:
links:
back: "戻る"
didn_t_receive_confirmation_instructions: "アカウント確認のメールを受け取っていませんか?"
didn_t_receive_unlock_instructions: "アカウントの凍結解除方法のメールを受け取っていませんか?"
forgot_your_password: "パスワードを忘れましたか?"
sign_in: "ログイン"
sign_in_with_provider: "%{provider}でログイン"
sign_up: "アカウント登録"
unlocks:
new:
resend_unlock_instructions: "アカウントの凍結解除方法を再送する"
これで、日本語になったと思います!
最後に
以上で日本語化の実装はできました。
足りない機能は各自編集をお願いします。
では。