Ruby on rails 3 Rails3:设计国际化不本地化;密码确认“;及其他
这里是我的一个极简设计+OmniAuth应用程序 如您所见,日语在Ruby on rails 3 Rails3:设计国际化不本地化;密码确认“;及其他,ruby-on-rails-3,internationalization,devise,omniauth,Ruby On Rails 3,Internationalization,Devise,Omniauth,这里是我的一个极简设计+OmniAuth应用程序 如您所见,日语在config/locales中 问题:当我使用lang=ja访问站点时,有些字符串不是日语而是英语: "サインアップ" 显示正确,但“密码确认”和其他文件仍然是英文的。事实上,我对整个项目和整个.rvm目录进行了grep:没有包含“密码确认”的文件!这太令人费解了 这些字符串从何而来?它们怎么不在designe.ja.yml中?它是OmniAuth吗?实际上,它们来自您的默认语言yml文件。designe locale文件只有用
config/locales
中
问题:当我使用lang=ja访问站点时,有些字符串不是日语而是英语:
"サインアップ" 显示正确,但“密码确认”和其他文件仍然是英文的。事实上,我对整个项目和整个.rvm目录进行了grep:没有包含“密码确认”的文件!这太令人费解了
这些字符串从何而来?它们怎么不在designe.ja.yml中?它是OmniAuth吗?实际上,它们来自您的默认语言yml文件。designe locale文件只有用于警报消息和一些通知的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"
添加这个activerecord段落确实允许我重写这些字符串。但是我真的需要自己查找并翻译所有这些字符串吗?如果它们是activerecord项目的一部分,那么这些字符串还没有翻译成日语吗?我想你已经意识到了这一点,但只是想让其他读者明白:那些字符串(例如密码确认)不包含在svenfuchs/rails-i18n本地化文件中。您永远不知道人们将要使用的属性名称,因此本地化yml文件不能包含所有可能的翻译。一些用户可能使用
密码
,或密码确认
或电话
或出生日期
或随机密码对我来说,我确信在本地化文件中添加一行翻译将影响我的视图页面中的所有属性…我仍然不明白Rails如何知道“密码确认”翻译成英文的“密码确认”…没有文件包含字符串“密码确认”“@NicolasRaoul只是密码确认。