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

Posted by 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
Posted by 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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.