新手问题 I18N 怎么使用?

mingfei · 2013年12月11日 · 最后由 mingfei 回复于 2014年01月21日 · 3660 次阅读

新人接触 rails,想仿照着做一个博客, 在作注册页面时 希望验证的错误提示信息通过 =user.errors.full_messages.first 来显示 但是,rails 中的默认语言是 English 的,现在想把它改成默认为汉语

现在我在 application.rb 中加入了

config.i18n.default_locale = :'zh_CN'

但是验证时的提示信息为:

Name translation missing: zh_CN.activerecord.errors.models.user.attributes.name.too_short

我的理解是 我没有在 zh_CN 文件中写 user 的翻译文件,所以找不到

但是我尝试着写了几次 都没有成功

请问大家,我现在该怎么修改?

PS:修改验证的 message 我会使用,在这里也是想锻炼一下使用 i18n 的能力

#1 楼 @small_fish__ 谢谢,博客我看完了,我觉得我是对应第一种解决办法,但是博客上没有 yml 文件的写法,而我现在头疼的就是这个,自己摸索着写,一直写不出来...

#2 楼 @mingfei 给你来一段 devise 的 https://github.com/plataformatec/devise/blob/master/config/locales/en.yml ,yml 文件而已,注意不要用 tab 键

在最顶部加#encoding:utf-8

#4 楼 @wangping 不是这个问题 ,不过 3Q~

#3 楼 @small_fish__ 仿照着写,还是原来的问题,我把要翻译的 model 写在了 activerecord 里了..这样对么?

activerecord:
  models:
    user:
      attributes:
        name: '用户名'

可以啊。。。。最好是它提示缺少什么就加什么赛。。 所以针对你上面的 zh_CN.activerecord.errors.models.user.attributes.name.too_short 就是

zh-CN:
  activerecord:
    errors:
      models:
         user:
            attributes:
              name:
                too_short:  "这个太短了,哈哈"

#6 楼 @mingfei

#7 楼 @small_fish__ 依然显示之前的错误,不过谢谢你..

@mingfei ,碰到同样的问题,后面你是怎么解决的?求助,谢谢!

#9 楼 @leslin123 最后发现 是因为 一个是 zh-CN 一个是 zh_CN... - -犯了这样的错误....

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