0
用英文編寫應用程序後,我更新了語言文件(pt-BR.yml),'config/application.rb'(將默認設置爲pt-BR)和'inflections.rb'以我的本地語言顯示錯誤消息。如何防止i18n在Rails中複製模型?
但是,Rails現在找不到我的模型,因爲它的邏輯不再用英語複數化。
有沒有辦法阻止Rails在模型和控制器中使用本地默認語言? 還是有更好的編碼習慣嗎? 謝謝。
用英文編寫應用程序後,我更新了語言文件(pt-BR.yml),'config/application.rb'(將默認設置爲pt-BR)和'inflections.rb'以我的本地語言顯示錯誤消息。如何防止i18n在Rails中複製模型?
但是,Rails現在找不到我的模型,因爲它的邏輯不再用英語複數化。
有沒有辦法阻止Rails在模型和控制器中使用本地默認語言? 還是有更好的編碼習慣嗎? 謝謝。
您可以配置您的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。我沒有親自嘗試過,但看起來很健康。
非常感謝!雖然我仍然不知道如何選擇模型語言,但它幫助我使用多種語言進行變形。 –