随机加载错误的 I18n 语言环境

问题描述 投票:0回答:2

有时会加载英语配置,而不是预期的日语配置,该配置实际上不存在,并且未在任何地方设置为 default_locale 或后备配置。

问题是它偶尔/随机发生,以前不可能复制,但今天它开始经常发生。也就是说,只要停留在同一页面上并按 F5,平均就会出现大约 50/50% 的 EN/JAP 语言环境(没有模式,只是随机的)。
问题是该网站根本没有实现 ENG 语言环境,因此当它尝试加载 ENG 语言环境时,它会失败并出现一个可以理解的错误:

ERROR -- : .... translation missing: en.some_translation...

这是唯一发生的错误。

但它甚至不应该尝试加载 ENG 语言环境。
语言环境已在 application.rb 中牢固设置:

config.i18n.default_locale = :ja
config.i18n.locale = :ja

Production.rb 不应覆盖此设置,因为它仅包含:

config.i18n.fallbacks = false

这只发生在生产中。
“god restart app_name”修复了一段时间,但似乎随着时间的推移它出现得更多,但我不能肯定地说。
如果我将 default_locale 设置为:

,则 ENG 语言环境中发生的错误似乎是相同的
config.i18n.default_locale = :en

但是我已经在我的应用程序代码中查找了“default_locale”,但找不到任何更改它的代码。一些宝石可能是罪魁祸首吗?

Rails 版本:4.2.7.1
国际化版本:0.7.0

非常感谢此时的任何提示。

ruby-on-rails ruby ruby-on-rails-4 internationalization rails-i18n
2个回答
0
投票

我已经弄清楚了

:en
语言环境加载的原因。

config.i18n.fallbacks
实际上后来在代码中设置为
true
。 并且由于
config.i18n.available_locales
未在 application.rb 中明确设置,因此
I18n
gem 中包含
:en
语言环境,并且当在
:ja
config.i18n.locale
中设置的
config.i18n.default_locale
语言环境失败时加载(出于未知原因),它试图回退到导致问题的
:en
语言环境。

不幸的是,仍然不知道为什么

:js
语言环境无法加载,但我想这完全是另一个问题。

感谢您的提示!


0
投票

我也遇到了同样的问题。 我已经解决了这个问题,并发现我在除 applicaton_controller 之外的另一个控制器上也将“set_scale”函数设置为 before_action 是一个错误。

© www.soinside.com 2019 - 2024. All rights reserved.