STUDY MEMO

学習のメモ書き

<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 %>      

参考:
Rails 国際化 (i18n) API - Railsガイド