How do I internationalize/localize my rails plugin?

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

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