Rails区域设置命名空间的大小写

时间:2012-10-01 16:49:24

标签: ruby-on-rails-3 rails-i18n

我使用Rails I18n功能。我的语言环境是名称空间,例如:en-ZA。

当我运行我的模型规范时,它会选择activerecord区域设置。当我运行我的控制器规格时,它会选择我的activerecord区域设置。当我运行我的接受(完整堆栈)测试时 - 它也会在activerecord语言环境中获取 - 除了一次测试。

当我立刻运行整个套件时 - 所有通过测试的人现在都失败了,因为它无法找到我的activerecord区域设置 - 它所抱怨的命名空间虽然都是小写的。

当我将语言环境yml文件中的命名空间更改为en-za时 - 测试通过 - 但其他人正在失败,现在正在寻找en-ZA语言环境(注意大写位)。

当我运行整个套件时,它是如何改变它是否正在寻找小写或适当的套接字命名空间?

另外 - 当我只运行验收测试时 - 只有一个失败的测试,它尝试使用错误的外壳访问activerecord语言环境...

这很奇怪 - 我不知道在哪里改变它或者设置它应该总是使用en-ZA(而不是en-za)。

我的默认语言环境设置为en-ZA。

2 个答案:

答案 0 :(得分:0)

尝试查看您的config/initializers/i18n.rb - 可能有些available_locales在那里是大写的吗?

答案 1 :(得分:0)

我无法找出错误的来源 - 但找到了一个简单的解决方案:

我的所有语言区域只使用小写字母。