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

时间:2019-10-15 09:04:09

标签: ruby-on-rails ruby ruby-on-rails-4 internationalization rails-i18n

有时,正在加载英语配置,而不是预期的日语配置,而英语配置实际上并不存在,也没有在任何地方设置为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”添加了我的应用程序代码,找不到任何更改它的代码。某些宝石可能是罪魁祸首吗?

轨道版本:4.2.7.1
I18n vesrion:0.7.0

在这一点上将非常感谢任何提示。

1 个答案:

答案 0 :(得分:0)

我已经知道为什么加载var loginInfo = { login: "", password: "" }; const [tempLogin, addTempLogin] = React.useState(loginInfo); const [logged, setLogged] = React.useState(0); const newLogin = event => { loginInfo.login = event.target.value; addTempLogin(loginInfo); console.log(tempLogin.login); }; return .... <TextField placeholder="Wpisz swoją nazwę użytkownika" type="text" id="name" onChange={newLogin} /> ..... 语言环境的原因。

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

不幸的是,仍然不知道为什么无法加载:en语言环境,但是我想那完全是另一个问题。

谢谢你的提示!