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

问题描述:

对你有什么好处?Before_validation:set_locale vs I18n.t(text:...,locale:)

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

我担心DRY,但也表现。

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

  1. 在控制器的before_action设置区域(参照http://guides.rubyonrails.org/i18n.html)。
  2. 使用I18n.t()以根据所述当前区域翻译文本。

您应该将您的语言环境保存在会话中,并在您的应用程序启动时将其设置为默认。我建议你阅读这篇文章:best practices