【问题标题】:i18n.locale is an array now?i18n.locale 现在是一个数组吗?
【发布时间】:2013-09-09 11:13:22
【问题描述】:

我一直通过在语言环境上调用 to_s 将语言环境转换为字符串。例如 I18n.locale.to_s 将返回 sede

但现在我注意到 I18n.locale.to_s 返回 ["se"]["de"]。它们变成数组了吗?它看起来有点像一个数组的符号。很奇怪,因为我在 :[:se] 上遇到语法错误。

这发生在我将 Debian 升级到 7 时,将 ruby​​ 升级到 1.9。我的 Rails 版本是 3.2。

有没有办法从语言环境中获取字符串"se" 或类似的?当然,无需进行手动删除第一个和最后两个字符的明显和丑陋的黑客攻击。

【问题讨论】:

  • 不,他们没有返回数组,这可能是您的应用程序出现问题irb(main):001:0> I18n.locale.to_s => "en"
  • 我刚刚在 Ubuntu 13.04 中使用 Ruby 1.9.2 进行了测试,但无法复制。 .class 返回什么?

标签: ruby-on-rails ruby arrays internationalization


【解决方案1】:

这很容易测试。

$ rails c
Loading development environment (Rails 4.0.0)
2.0.0p247 :001 > I18n.locale.class
 => Symbol

【讨论】:

  • 谢谢。这帮助我意识到问题实际上不是 I18n,而是 String.scan
猜你喜欢
  • 2011-08-15
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多