我使用Rails I18n功能。我的语言环境是名称空间,例如:en-ZA。
当我运行我的模型规范时,它会选择activerecord区域设置。当我运行我的控制器规格时,它会选择我的activerecord区域设置。当我运行我的接受(完整堆栈)测试时 - 它也会在activerecord语言环境中获取 - 除了一次测试。
当我立刻运行整个套件时 - 所有通过测试的人现在都失败了,因为它无法找到我的activerecord区域设置 - 它所抱怨的命名空间虽然都是小写的。
当我将语言环境yml文件中的命名空间更改为en-za时 - 测试通过 - 但其他人正在失败,现在正在寻找en-ZA语言环境(注意大写位)。
当我运行整个套件时,它是如何改变它是否正在寻找小写或适当的套接字命名空间?
另外 - 当我只运行验收测试时 - 只有一个失败的测试,它尝试使用错误的外壳访问activerecord语言环境...
这很奇怪 - 我不知道在哪里改变它或者设置它应该总是使用en-ZA(而不是en-za)。
我的默认语言环境设置为en-ZA。
答案 0 :(得分:0)
尝试查看您的config/initializers/i18n.rb
- 可能有些available_locales在那里是大写的吗?
答案 1 :(得分:0)
我无法找出错误的来源 - 但找到了一个简单的解决方案:
我的所有语言区域只使用小写字母。