Ruby on Rails 3.2.2 と Paperclip プラグインを使用しています。Paperclip のエラー メッセージを翻訳したいので、次のコードを使用します。
class Article < ActiveRecord::Base
validates_attachment_size :picture,
:less_than => 4.megabytes,
:message => I18n.t('trl_too_big_file_size', :scope => 'activerecord.errors.messages')
end
私の.yml
ファイルは次のとおりです。
# <APP_PATH>/config/locales/en.yml (english language)
activerecord:
errors:
messages:
trl_too_big_file_size: is too big
# <APP_PATH>/config/locales/it.yml (italian language)
activerecord:
errors:
messages:
trl_too_big_file_size: è troppo grande
私ApplicationController
は:
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
# I am using code from http://guides.rubyonrails.org/i18n.html#setting-and-passing-the-locale.
I18n.locale = request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first
end
# BTW: My `I18n.default_locale` is `:en` (english).
end
ただし、Paperclip 添付ファイルに関連するフォームを送信すると、アプリケーションは翻訳されていないテキストを生成します。つまり、正しく翻訳されていない文字列を生成 (および出力) します。いくつかの調査を行いました (たとえば、1、2 ) が、モデル ファイル内の Paperclip gem に関連するエラー メッセージを適切に変換する方法がまだわかりません (上記のコードを参照)。Parperclip gem のバグのようです (また、この問題を抱えているのは私だけではないようです)...en.activerecord.errors.messages.trl_too_big_file_size
I18n.locale
:it
どうすれば問題を解決できますか?
PS: この問題は、ApplicationController-Paperclip gem の「ファイル読み込み順序プロセス」に関連していると思いますが、問題の解決方法がわかりません。