Active_Formの日本語化

前日作成したプロジェクトAppli004ではエラーメッセージなどが日本語化されていません。
ここではActive_Formを使用したときの日本語化にトライしましょう。
現在の状態は次の通りです。
    

1.i18nによる生成

コマンド プロンプト

D:\Rails_Project\Appli004>ruby script/generate i18n ja
debug updating environment.rb ...
debug fetching ja.yml from rails-i18n repository...
exists config/locales
update config/environment.rb
create config/locales/ja.yml
debug 0 models found.
debug 0 translation keys found in views.
info No translation keys found. Skipped generating translation_ja.yml file.


ここではモデルが0件のためtranslation_ja.ymlが生成されません。
実行してみましょう。
    


2.translation_ja.ymlの作成
まず「triangle」をモデルとして定義します。

/config/locales/translation_ja.yml

ja:
activerecord:
models:
triangle: "入力項目"


実行してみましょう。
    

3.モデルの修正

/app/models/triangle.rb

require 'active_form'

class Triangle < ActiveForm
attr_accessor :a, :b, :c
validates_presence_of :a, :b, :c
validates_numericality_of :a, :b, :c

#バリデーションエラーメッセージ内のプロパティ名を日本語にマッピングします。
class << self
HUMANIZED_ATTRIBUTE_KEY_NAMES = {
"a" => "辺a",
"b" => "辺b",
"c" => "辺c"
}

def human_attribute_name(attribute_key_name)
HUMANIZED_ATTRIBUTE_KEY_NAMES[attribute_key_name] || super
end
end
end



実行してみましょう。