Rails 多言語化対応 Model編

2023/09/14に公開

はじめに

今後のサービス化していくシステムは多言語化対応が必須となってきます。
なので、多言語化の方針と記述方法を簡単にまとめたので目を通してください。
View編を先に一読ください↓
Rails 多言語化対応 View編

参考サイト

以下のサイトを参考にしました。
記事を読む前に一読お願いします。
モデル名やモデルの属性名の多言語化

実装

dictionary

1つのファイルに全文言をかくと意味不明状態になるので、
参考サイトに倣って然るべき場所に然るべきファイルを作成し文言を記述していきます。
今回はbrandのvalidationで使いたかったので

  • config/locales/models/brands/ja.yml
  • config/locales/models/brands/en.yml

を作成しています。

config/locales/models/brands/ja.yml
ja:
  activerecord:
    models:
      brand: ブランド
    attributes:
      brand:
        id: ブランドID
        name: ブランド名
        name_en: ブランド名(英語)
        sellable_jp: Sellable JP
        sellable_us: Sellable US
        brand_category_id: ブランドカテゴリー
config/locales/models/brands/en.yml
en:
  activerecord:
    models:
      brand: Brand
    attributes:
      brand:
        id: Brand ID
        name: Brand Name
        name_en: Brand Name(English)
        sellable_jp: Sellable JP
        sellable_us: Sellable US
        brand_category_id: Brand Category

これ以外にも階層を持った書き方もできたりします。
詳しくは調べてください。

結果

locale = :jaの場合

locale = :enの場合

補足

「を入力してください」の部分はvalidatesを使えば自動で変換されます。

Discussion