【復習】Railsの多言語化に関する設定

Railsではさまざまな言語に対応するためにi18nというgemが元々導入されている。

・以下、英語化の対応方法

1.デフォルトの言語を英語にする & 日本語化するためのファイルのpathを通す

# config.application

config.i18n.default_locale = :en  # デフォルトの言語設定 
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*', '.{rb,yml}').to_s]  # pathを通す

2.翻訳するファイルにlazy lookup記法で翻訳名を記入する

en:
  activerecord:
    models:
      user: Customer
    attributes:
      user:
        login: Handle
  books:
    index:
      title: Título

3.lazy lookup記法でactiverecord:以下にmodel:attributes:がある場合、Model.model_name.humanメソッドとModel.human_attribute_name(attribute)メソッドを使用することで対応した訳文を返す。

User.human_attrubute_name(:login)  # Handleを返す

補足:form_with model: @userのように、form_withmodelオプションにUserモデルのインスタンスを渡すと、Railsが自動で翻訳してくれる。 modelオプションがない場合は3. に書いたように明示する必要がある。