i18nの導入
i18nを使って日本語に対応します
デフォルト言語を日本語に設定
module RunteqNormal class Application < Rails::Application config.i18n.default_locale = :ja #デフォルトのlocaleを日本語にする config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s] #複数のロケールファイルを読み込むためにpathを設定 end
Gem 'i18n-rails'をインストール
gem 'i18n-rails'
でbundle install
config/locales下にymlファイルを作成
今回はviewを扱うview/ja.yml、modelを扱うactiverecord/ja.ymlを作成
ja.ymlに日本語を設定
#インデントで階層を変える ja: users: new: title: ユーザー登録 #viewファイルで<%= t '.title' %>とすることで「ユーザー登録」を取り出せる user_sessions: new: title: ログイン helpers: submit: create: 登録
ja: activerecord: models: user: ユーザー attributes: user: name: 名前 #viewファイルで<%= t('activerecord.attributes.user.name') %>とすることで「名前」を取り出せる email: メールアドレス password: パスワード password_confirmation: パスワード確認
form_with内の記述
form_withでmodelを指定しているときはrailsが「これはユーザー登録に関するフォームだな」と認識してくれる
<%= form_with model: @user, local: true do |f| %> <%= f.label :email %> #「メールアドレス」を取り出す <%= f.text_field :email, class: 'form-control' %> #「登録」を取り出す <%= f.submit class: 'btn btn-primary' %> <% end %>
modelの指定がない場合は
<%= form_with url: login_path, local: true do |f| %> <%= f.label :email, User.human_attribute_name(:email) %> <%= f.text_field :email, class: 'form-control' %> <%= f.submit class: 'btn btn-primary' %> <% end %>
のように書く必要がある