3

我们正在尝试将 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(eg ) 代替破折号和常规格式,即(eg )。pt_BRlanguage-REGIONpt-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 回购中有一个开放的 GH 问题(https://github.com/rails/rails/issues/44154)。

4

1 回答 1

0

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

使用来自 github repo 的 Rails 7 应该可以解决这个问题

于 2022-02-18T17:22:34.787 回答