Rails3:设计国际化不会本地化“密码确认”和其他

时间:2011-06-23 08:32:26

标签: ruby-on-rails-3 internationalization devise omniauth

这是我whole source code的极简主义Devise + OmniAuth应用程序。

如您所见,日语devise.ja.yml位于config/locales

问题:当我使用lang = ja访问该网站时,某些字符串不是日语而是英语:

devise i18n password confirmation

“サインアップ”显示正确,但“密码确认”等仍为英文。实际上,我在整个项目和我的整个.rvm目录中搜集:没有文件包含“密码确认”!那令人费解。

这些字符串来自哪里?他们怎么没有在devise.ja.yml?是OmniAuth吗?

1 个答案:

答案 0 :(得分:14)

实际上,它们来自您的默认语言yml文件。设计语言环境文件只包含警报消息和一些通知的语言环境。它们不为表单属性提供属性转换。

您可能想访问

https://github.com/svenfuchs/rails-i18n/tree/f8606e62def45279f3498549f97699049135bd11/rails/locale

并下载适当的(在您的情况下为日语)语言文件并将其放在./config/locales/文件夹

然后在rails应用程序配置文件(./config/application.rb)中更改语言环境设置以使用日语语言环境文件。

config.i18n.default_locale = :ja

更改设置后,如果您希望任何属性具有日文名称,请添加如下所示的规则。

activerecord:
    attributes:
        user:
            email: "Email address in Japanese"
            password: "Password in Japanese"
            password_confirmation: "Password confirmation in Japanese"