2010-11-19 10 views
3

私は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()が機能するようにプラグイン/ロケールを設定するにはどうすればよいですか?

答えて

3

答えには2つの部分があります。
1.標準的なディレクトリレイアウト:init.rbで

validates_word_count/ 
init.rb 
    lib/ 
    validates_word_count.rb 
    config/ 
    locales/ 
     en.yml 


2.次の行を追加します

Dir[File.join("#{File.dirname(__FILE__)}/config/locales/*.yml")].each do |locale| 
I18n.load_path.unshift(locale) 
end 
+0

をあなたがRailsの4でこれを行う方法を知っていますか? init.rbはもはや使用されていないようです。 – nullnullnull

+2

Railsプラグインはサポートされなくなりました。あなたは宝石を作る必要があります。 –

+0

お役立ち情報ありがとう! – nullnullnull

関連する問題