我们正在尝试将 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_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 回购中有一个开放的 GH 问题(https://github.com/rails/rails/issues/44154)。