Forum: Rails I18n How do I internationalize/localize my rails plugin?

Ef75ffd5cef200d26702d07a10d528e8?d=identicon&s=25 Paul Schreiber (Guest)
on 2010-11-23 00:24
(Received via mailing list)
I wrote a validates_word_count plugin. I would like to store the error
messages in a YAML file so they can be easily translated.

Full source:
  https://github.com/paulschreiber/validates_word_count/

My plugin's file layout looks like this:
validates_word_count/
  init.rb
  lib/
    validates_word_count.rb
    locale/
      en.yml

My YAML file looks like this:
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)

However, if I call
I18n.translate('validates_word_count.errors.messages.too_few_words'),
I get this error:
  translation missing: en, validates_word_count, errors, messages,
too_few_words

How can I set up my plugin / locale so I18n.translate() works?



Paul
42ec9fd08c179b547dcb60d977e29941?d=identicon&s=25 Iain Hecker (Guest)
on 2010-11-27 13:28
(Received via mailing list)
Hi Paul,

You have to add the file to the I18n load path. If you have a Railtie
file, that would be the place to add it. By heart, it should be
something like:

class Railtie < ::Rails::Railtie
  ActiveSupport.before_configuration do |config|
    config.i18n.load_path += "your file"
  end
end

For Rails 2, I don't know. Probably just call I18n somewhere. As an
example: devise has a generator that copies a locale file to the
config/locale directory of the app.

Hope this helps,
iain
This topic is locked and can not be replied to.