多言語対応とは?
└rails内で様々な言語に対応できる機能のこと=railsに標準装備
└railsでは初期段階で先に多言語機能を導入する必要がある。
多言語対応の導入の流れ:
①config/application.rb内に下記のコマンドを入力する
config/application.rb
①config.i18n.available_locales = %i[ja en]
②config.i18n.default_locale = :ja
③config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
②Gemfileに翻訳ファイルが詰め込まれたi18n-railsをインストールする:
# Gemfile
gem 'rails-i18n'
③config/locales配下に2つのファイルを作成する:
config/locales/views/ja.yml とconfig/locales/activerecord/ja.ymlを作成する
④ja.ymlの基本的な使い方:
ja:
activerecord:
models:
user: 'ユーザー'
attributes:
user:
email: 'メールアドレス'
password: 'パスワード'
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[ビューファイル内]
<%= t('activerecord.models.user') %>
⏩”ユーザー”と表示される
<%= t('activerecord.attributes.user.email') %>
⏩”メールアドレス”と表示される
※<h>~</h>タグの場合は<h><%= ~~~~~%></h>で中に入れてあげる!!
上の例に倣うとこのように書くことになるでしょう。
<%= form_with model: @user, local: true do |f| %>
<%= f.label :email, t('activerecord.attributes.user.email') %>
<%= f.email_field :email' %>
しかしform_withは優秀なのでmodel: @userという記述から「これはユーザーに関するフォームである」と認識してくれます。なのでこんな風に書くこともできます。
<%= form_with model: @user, local: true do |f| %>
<%= f.label :email %>
<%= f.email_field :email %>