首页 > 代码库 > 使用Heroku,需要将locale设置为zh_CN,而不是zh-CN

使用Heroku,需要将locale设置为zh_CN,而不是zh-CN

使用Heroku,需要将locale设置为zh_CN,而不是zh-CN

我想大概是因为在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



重启服务器!