Rails 7 使用下划线语言环境时无法找到本地化模板 (lang_region)

Rails 7 unable to find localized template when using underscore locale (lang_region)

我们正在尝试将 Rails 6.1.4 应用程序更新到新发布的 Rails 7.0.0 版本。在遵循一些指南并调整我们的基本配置后,该应用程序运行正常。

我们使用由 I18n gem 插入的本地化字符串的视图工作得很好。

但是当我们尝试访问我们的本地化模板时,那些在其路径中具有区域设置变体的模板,如 employees.pt_BR.html.erb,我们不断得到:

Marketing::LandingsController#employees is missing a template for request formats: text/html

这在 Rails 6.1.4 中没有发生,我们怀疑这是因为我们的语言环境使用了非常规的命名方式。根据 Rails 文档,我们使用 language_REGION(例如 pt_BR)而不是破折号和常规格式,即 language-REGION(例如 pt-BR)。

在我们的 application.rb 中我们有:

config.i18n.available_locales = %i[
      es_AR
      es_MX
      es_UY
      es_CL
      es_PE
      es_PY
      es_EC
      es_VE
      es_CO
      es_BO
      pt_BR
      en
      pt
      es
    ]
config.i18n.default_locale = :es_AR

如果我们将语言环境配置更改为常规命名格式,本地化模板就可以正常工作。

是否已弃用带有下划线的渲染本地化模板,或者这是 Rails 7.0.1 中的错误?

PS:Rails 回购 (https://github.com/rails/rails/issues/44154) 中存在未解决的 GH 问题。

这是一个错误,已通过我们创建的 PR 修复。进一步讨论:github.com/rails/rails/pull/44174

使用 github 存储库中的 Rails 7 应该可以解决这个问题