有时会加载英语配置,而不是预期的日语配置,该配置实际上不存在,并且未在任何地方设置为 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 设置为:
config.i18n.default_locale = :en
但是我已经在我的应用程序代码中查找了“default_locale”,但找不到任何更改它的代码。一些宝石可能是罪魁祸首吗?
Rails 版本:4.2.7.1
国际化版本:0.7.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
语言环境无法加载,但我想这完全是另一个问题。
感谢您的提示!
我也遇到了同样的问题。 我已经解决了这个问题,并发现我在除 applicaton_controller 之外的另一个控制器上也将“set_scale”函数设置为 before_action 是一个错误。