2016-08-02 14 views
0

用英文編寫應用程序後,我更新了語言文件(pt-BR.yml),'config/application.rb'(將默認設置爲pt-BR)和'inflections.rb'以我的本地語言顯示錯誤消息。如何防止i18n在Rails中複製模型?

但是,Rails現在找不到我的模型,因爲它的邏輯不再用英語複數化。

有沒有辦法阻止Rails在模型和控制器中使用本地默認語言? 還是有更好的編碼習慣嗎? 謝謝。

回答

0

您可以配置您的inflections.rb而不是轉換默認語言。你能做到這一點,像這樣:從https://davidcel.is/posts/edge-rails-a-multilingual-inflector/

採取

ActiveSupport::Inflector.inflections(:es) do |inflect| 


inflect.plural(/$/, 's') 
    inflect.plural(/([^aeéiou])$/i, '\1es') 
    inflect.plural(/([aeiou]s)$/i, '\1') 
    inflect.plural(/z$/i, 'ces') 
    inflect.plural(/á([sn])$/i, 'a\1es') 
    inflect.plural(/é([sn])$/i, 'e\1es') 
    inflect.plural(/í([sn])$/i, 'i\1es') 
    inflect.plural(/ó([sn])$/i, 'o\1es') 
    inflect.plural(/ú([sn])$/i, 'u\1es') 

    inflect.singular(/s$/, '') 
    inflect.singular(/es$/, '') 

    inflect.irregular('el', 'los') 
end 

代碼看起來他的寶石還支持PT-BR https://github.com/davidcelis/inflections。我沒有親自嘗試過,但看起來很健康。

+0

非常感謝!雖然我仍然不知道如何選擇模型語言,但它幫助我使用多種語言進行變形。 –