如何国际化/本地化我的rails插件?

时间:2010-11-19 04:58:41

标签: ruby-on-rails internationalization yaml

我写了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()有效?

1 个答案:

答案 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