用英文对应用程序进行编码后,我更新了语言文件(pt-BR.yml),'config / application.rb'(将默认值设置为pt-BR),以及'inflections.rb'的顺序以我的本地语言提供错误消息。
然而,Rails现在找不到我的模型,因为它的逻辑不再用英语复数。
有没有办法阻止Rails在模型和控制器中使用本地默认语言? 或者是否有更好的编码实践? 感谢。
答案 0 :(得分:0)
您可以配置inflections.rb而不是转换默认的lang。你可以这样做:
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
代码来自https://davidcel.is/posts/edge-rails-a-multilingual-inflector/
看起来他的宝石也支持pt-BR https://github.com/davidcelis/inflections。我没有亲自尝试过,但看起来很清醒。