Как я могу интернационализировать / локализовать свой плагин rails? - PullRequest
3 голосов
/ 19 ноября 2010

Я написал validates_word_count плагин . Я хотел бы сохранить сообщения об ошибках в файле 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 Ответ

3 голосов
/ 02 декабря 2010

Ответ состоит из двух частей.
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
...