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

のように書く必要がある