<Ruby on Rails> i18nでの日本語化
ja.ymlファイルを作成
config/locales/activerecord/ja.ymlを作成
ja: activerecord: attributes: user: last_name: 姓 first_name: 名 email: メールアドレス password: パスワード password_confirmation: パスワード確認
ログイン画面、新規登録画面に設定
form_withではmodelと関連付けしていないので、
activerecordで設定しているmodelのカラム名を参照するときは
明示的に関連付けする必要がある。
モデル名.human_attribute_name(ja.ymlで設定したキー)を使用する。
# user_sessions/new.html.erb・・・ログイン画面 <%= form_with url: login_path, local: true do |f| %> <%= f.label :email, User.human_attribute_name(:email) %> <%= f.email_field :email, class: 'form-control' %> <%= f.label :password, User.human_attribute_name(:password) %> <%= f.password_field :password, class: 'form-control' %><br/> <%= f.submit "ログイン", class: "btn btn-primary" %> <% end %>
新規登録画面はmodelに登録するため、modelと関連付けられる。
そのため、form_withでmodel: モデルのインスタンス(例:User.new)
を設定。
# users/new.html.erb・・・新規登録画面 <%= form_with model: @user, local: true do |form| %> <%= form.label :first_name %> <%= form.text_field :first_name, class: "form-control" %> <%= form.label :last_name %> <%= form.text_field :last_name, class: "form-control" %> <%= form.label :email %> <%= form.text_field :email, class: "form-control" %> <%= form.label :password %> <%= form.password_field :password, class: "form-control" %> <%= form.label :password_confirmation %> <%= form.password_field :password_confirmation, class: "form-control" %> <%= form.submit "登録" ,class: "btn btn-primary" %> <% end %>