我写了validates_word_count plugin。我想将错误消息存储在YAML文件中,以便轻松翻译。
我的插件的文件布局如下所示:
validates_word_count/
init.rb
lib/
validates_word_count.rb
locale/
en.yml
我的YAML文件如下所示:
en:
validates_word_count:
errors:
messages:
too_few_words: "has too few words (minimum is %d words)"
too_many_words: "has too many words (maximum is %d words)"
但是,如果我拨打I18n.translate('validates_word_count.errors.messages.too_few_words')
,我会收到此错误:
translation missing: en, validates_word_count, errors, messages, too_few_words
如何设置我的插件/语言环境,以便I18n.translate()有效?
答案 0 :(得分:3)
答案分为两部分。
1。使用标准目录布局:
validates_word_count/
init.rb
lib/
validates_word_count.rb
config/
locales/
en.yml
2。在init.rb中,添加以下行:
Dir[File.join("#{File.dirname(__FILE__)}/config/locales/*.yml")].each do |locale|
I18n.load_path.unshift(locale)
end