这是我whole source code的极简主义Devise + OmniAuth应用程序。
如您所见,日语devise.ja.yml位于config/locales
。
问题:当我使用lang = ja访问该网站时,某些字符串不是日语而是英语:
“サインアップ”显示正确,但“密码确认”等仍为英文。实际上,我在整个项目和我的整个.rvm目录中搜集:没有文件包含“密码确认”!那令人费解。
这些字符串来自哪里?他们怎么没有在devise.ja.yml?是OmniAuth吗?
答案 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"