Gem 关于 Devise 的国际化的问题~~~

qqerqqer · 2012年04月26日 · 最后由 modacker 回复于 2014年02月06日 · 7832 次阅读

Devise 版本 1.4.9

我想把所有的提示信息都换成简体中文的,按照文档在 config/application.rb 中配置了 config.i18n.default_locale = :zh-CN,然后下载 devise.zh-CN.yml 保存到 config/locales 文件夹中,可是提示文字依旧是 E 文。求原因~~~

更改 config 文件是要重启服务器的~

重启过了,没有效果。是不是我的配置有问题,遗漏了什么? #1 楼 @tassandar

config.i18n.default_locale = :zh-CN, 重启服务器, 然后 rails 就会到 locales 文件夹下面去找 “zh-CN”: 开头的 yml 文件。找不到会在 显示的地方提示错误的。

现在它是不报任何错误,所以法找原因。不知道有没有人用 devise 做 I18n 成功的~~~ 说说你们是怎么做的吧~~~ #3 楼 @tassandar

@qqerqqer 我用了没什么问题啊 发张载图看下

我感觉没有那么简单。看了 devise views 源码。源码中没有 i18n 的实现,没有使用 t 函数。应该是需要我们自己去改 views 吧?

#6 楼 @allenlsy 对,作者认为使用者最后总是会去写自己的 view 所以决定不做 i18n,而是推荐大家能使用 https://github.com/mcasimir/devise-i18n-views 来作 i18n。要记得这个 gem 要在 Gemfile 中摆在 devise 后面才有用处。

@qqerqqer 请问提示文字是指哪个文字呢?

file path: config/application.rb

config.i18n.default_locale = :"zh-CN"

同时在 file path: config/locales 导入zh-CN.yml

重启 server,大功告成!

另外再加上一个可以利用文件夹的方式来管理本地语言包的配置方式:

file path: config/application.rb

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', 
        '*.{rb,yml}').to_s]
config.i18n.default_locale = :"zh-CN"

按照 rails 风格,config/locales 就是放置语言包的地方,不建议更改。然后我们就可以利用

+locales--
 |+zh-CN
  |default.yml
  |devise.yml
  |..
 |+en
  |default.yml
  |devise.yml
  |..

这样的风格来管理语言包了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号