我想大概是因为在application.rb中,config.i18n.default_locale默认接受的值是Symbol, 而当我们用zh-CN的时候,不得不用双引号括起来,
但是实际Rails读取的时候,可能直接使用 :zh-CN这样的标志,所以会出现以下错误提示
ActionView::Template::Error (:zh is not a valid locale):
所以我们把涉及的所有文件都可以修改为zh_CN则可以在使用gem时避免很多这种错误。
比如我这个错误是由于devise引起的,所以我做了以下修改:
首先在application.rb中,将
config.i18n.default_locale = :"zh-CN" 修改为 config.i18n.default_locale = :zh_CN
然后重命名locale下面的zh-CN.yml到zh_CN.yml, devise.zh-CN.yml到devise.zh_CN.yml
最后,别忘了将zh_CN.yml 和devise.zh_CN.yml文件中的zh-CN替换为zh_CN
重启服务器!
使用Heroku,需要将locale设置为zh_CN,而不是zh-CN,布布扣,bubuko.com
时间: 2024-12-28 02:07:22