Railsの日本語化

## バージョン
Ruby：3.1.4p223
Rails ：7.0.8.1

<br>

## 手順
1. 複数言語に対応させるため"rails-i18n"というGemを導入
2. "ja.yml"ファイルを作成
3.  application.rb内に設定を記述

<br>
<br>


### 1.複数言語に対応させるため"rails-i18n"というGemを導入
rails-i18n は、Railsアプリケーションで国際化（i18n）をサポートするためのGemで。
国際化とは、アプリケーションのテキストやメッセージを複数の言語に対応させるためのプロセスのことで、このGemを使うことで、Railsアプリケーションで多言語サポートを実装するための便利な機能が提供されます。

```ruby
gem 'rails-i18n'
```
<br>

### 2. "ja.yml"ファイルを作成
**config➡locals➡配下に"ja.yml"を作成**

".yml"はYAML（YAML Ain't Markup Language）形式のファイル拡張子。

"ja.yml"ファイルは、Railsアプリケーションで日本語のテキストやメッセージを管理するためのファイルで、アプリケーションの日本語化が容易になり、ユーザーにとってより使いやすいものになります。
```yml

ja:
  date:
    abbr_day_names:
    - 日
    - 月
    - 火
    - 水
    - 木
    - 金
    - 土
    abbr_month_names:
    -
    - 1月
    - 2月
    - 3月
    - 4月
    - 5月
    - 6月
    - 7月
    - 8月
    - 9月
    - 10月
    - 11月
    - 12月
    day_names:
    - 日曜日
    - 月曜日
    - 火曜日
    - 水曜日
    - 木曜日
    - 金曜日
    - 土曜日
    formats:
      default: ! '%Y/%m/%d'
      long: ! '%Y年%m月%d日(%a)'
      short: ! '%m/%d'
    month_names:
    -
    - 1月
    - 2月
    - 3月
    - 4月
    - 5月
    - 6月
    - 7月
    - 8月
    - 9月
    - 10月
    - 11月
    - 12月
    order:
    - :year
    - :month
    - :day
  datetime:
    distance_in_words:
      about_x_hours:
        one: 約1時間
        other: 約%{count}時間
      about_x_months:
        one: 約1ヶ月
        other: 約%{count}ヶ月
      about_x_years:
        one: 約1年
        other: 約%{count}年
      almost_x_years:
        one: 1年弱
        other: ! '%{count}年弱'
      half_a_minute: 30秒前後
      less_than_x_minutes:
        one: 1分以内
        other: ! '%{count}分未満'
      less_than_x_seconds:
        one: 1秒以内
        other: ! '%{count}秒未満'
      over_x_years:
        one: 1年以上
        other: ! '%{count}年以上'
      x_days:
        one: 1日
        other: ! '%{count}日'
      x_minutes:
        one: 1分
        other: ! '%{count}分'
      x_months:
        one: 1ヶ月
        other: ! '%{count}ヶ月'
      x_seconds:
        one: 1秒
        other: ! '%{count}秒'
    prompts:
      day: 日
      hour: 時
      minute: 分
      month: 月
      second: 秒
      year: 年
  errors:
    format: ! '%{attribute}%{message}'
    messages:
      accepted: を受諾してください。
      blank: を入力してください
      present: は入力しないでください。
      confirmation: と%{attribute}の入力が一致しません。
      empty: を入力してください。
      equal_to: は%{count}にしてください。
      even: は偶数にしてください。
      exclusion: は予約されています。
      greater_than: は%{count}より大きい値にしてください。
      greater_than_or_equal_to: は%{count}以上の値にしてください。
      inclusion: は選択肢にありません
      invalid: は不正な値です
      less_than: は%{count}より小さい値にしてください。
      less_than_or_equal_to: は%{count}以下の値にしてください。
      not_a_number: は数値で入力してください。
      not_an_integer: は整数で入力してください。
      odd: は奇数にしてください。
      record_invalid: バリデーションに失敗しました。 %{errors}
      restrict_dependent_destroy: ! '%{record}が存在しているので削除できません。'
      taken: はすでに存在します。
      too_long: は%{count}文字以内で入力してください。
      too_short: は%{count}文字以上で入力してください。
      wrong_length: は%{count}文字で入力してください。
      other_than: "は%{count}以外の値にしてください。"
    template:
      body: 次の項目を確認してください。
      header:
        one: ! '%{model}にエラーが発生しました。'
        other: ! '%{model}に%{count}個のエラーが発生しました。'
  helpers:
    select:
      prompt: 選択してください。
    submit:
      create: 登録する
      submit: 保存する
      update: 更新する
  number:
    currency:
      format:
        delimiter: ! ','
        format: ! '%n%u'
        precision: 0
        separator: .
        significant: false
        strip_insignificant_zeros: false
        unit: 円
    format:
      delimiter: ! ','
      precision: 3
      separator: .
      significant: false
      strip_insignificant_zeros: false
    human:
      decimal_units:
        format: ! '%n %u'
        units:
          billion: 十億
          million: 百万
          quadrillion: 千兆
          thousand: 千
          trillion: 兆
          unit: ''
      format:
        delimiter: ''
        precision: 3
        significant: true
        strip_insignificant_zeros: true
      storage_units:
        format: ! '%n%u'
        units:
          byte: バイト
          gb: ギガバイト
          kb: キロバイト
          mb: メガバイト
          tb: テラバイト
    percentage:
      format:
        delimiter: ''
        format: "%n%"
    precision:
      format:
        delimiter: ''
  support:
    array:
      last_word_connector: と
      two_words_connector: と
      words_connector: と
  time:
    am: 午前
    formats:
      default: ! '%Y/%m/%d %H:%M:%S'
      long: ! '%Y年%m月%d日(%a) %H時%M分%S秒 %z'
      short: ! '%y/%m/%d %H:%M'
    pm: 午後


```

<br>
<br>

### 3.  application.rb内に設定を記述
クラスを拡張するモジュール内に記述する
```ruby
    # アプリケーション内の日付と時刻は東京のローカル時間に基づいて処理
    config.time_zone = 'Tokyo'

    # Railsアプリケーションでのデフォルトのロケール（言語設定）を日本語（":ja"）に設定
    config.i18n.default_locale = :ja

    # I18nライブラリに訳文の探索場所を指示する
    config.i18n.load_path += Dir[Rails.root.join('config/locales/**/*.yml').to_s]
```