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 应该可以解决这个问题
我们正在尝试将 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 应该可以解决这个问题