Before_validation:set_locale vs I18n.t(text:…,locale :)

对你有什么好处?

  • 精确到页面的所有I18n.t(….)消息中的区域设置,或
  • 在before_validation逻辑中的set_locale?

我关注DRY而且还有表现。

您应该在会话中保存您的语言环境,并在应用程序启动时默认设置它。

我建议你阅读这篇文章: 最佳实践

您应该使用这两种方法在Rails应用程序中实现i18n。

  1. 在控制器的before_action中设置语言环境。(参考: http ://guides.rubyonrails.org/i18n.html)
  2. 使用I18n.t()根据当前语言环境翻译文本。