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

Nic*_*oul 9 internationalization devise omniauth ruby-on-rails-3

这是我的极简主义Devise + OmniAuth应用程序的完整源代码.

如你所见,日语devise.ja.ymlconfig/locales.

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

设计i18n密码确认

"サインアップ"显示正确,但"密码确认"等仍然是英文.实际上,我grep了我的整个项目和我的整个.rvm目录:没有文件包含"密码确认"!那令人费解.

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

use*_*594 14

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

你可能想去参观

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

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

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

config.i18n.default_locale = :ja
Run Code Online (Sandbox Code Playgroud)

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

activerecord:
    attributes:
        user:
            email: "Email address in Japanese"
            password: "Password in Japanese"
            password_confirmation: "Password confirmation in Japanese"
Run Code Online (Sandbox Code Playgroud)