attachment_fuでエラーメッセージが日本語に変化されない
attachment_fuプラグインを使っていて、どうにもエラーメッセージが日本語化されない。
で、中身を調べてみたら、こういう記述を見つけた。
# validates the size and content_type attributes according to the current model's options def attachment_attributes_valid? [:size, :content_type].each do |attr_name| enum = attachment_options[attr_name] if Object.const_defined?(:I18n) # Rails >= 2.2 errors.add attr_name, I18n.translate("activerecord.errors.messages.inclusion", attr_name => enum) unless enum.nil? || enum.include?(send(attr_name)) else errors.add attr_name, ActiveRecord::Errors.default_error_messages[:inclusion] unless enum.nil? || enum.include?(send(attr_name)) end end end
ということで、思いっきりI18nと書いているw
rails2.2以降ではattachment_fuはI18nで国際化するようだ。
国際化をgettextでやってたから日本語化されなかったんだね。
gettextと二重管理するのも大変なので、結局Errorをrescueして自前でメッセージを用意するようにしちゃいました。