使用I18n覆盖模型属性名称 - 无法使其正常工作

Max*_*ams 6 ruby-on-rails internationalization

我试图将用于描述我的用户模型的"登录"属性的字符串覆盖为"用户名".我认为这是设置的vendor/rails/activerecord/lib/active_record/locale/en.yml.我尝试在这里和我的config/locales/en.yml文件中更改它,并且在任何情况下它都不起作用(我在每次更改后重新启动服务器).

在这两种情况下都是这样做的:

en:
...
  activerecord:
    attributes:
         user:
           login: User Name
Run Code Online (Sandbox Code Playgroud)

当我测试它时,例如f.label:在我的新用户表单中登录,它出现为"登录"而不是"用户名".我是否因为这些东西是如何运作的一些根本错误而努力,或者它真的不起作用?无论哪种方式,任何人都可以告诉我如何解决它?谢谢,最大

Yan*_*nis 0

您可以将“用户名”字符串存储在 en.yml 文件中的任何名称下:

en:
 user:
   user_name: User Name
Run Code Online (Sandbox Code Playgroud)

在你看来

<%= f.label :login, t('user.user_name') %> 
Run Code Online (Sandbox Code Playgroud)

  • 嗨,雅尼斯。我知道我可以制作自己的自定义翻译,但我的理解是我可以覆盖 Rails 生成的翻译,这样我就不必引用任何自定义翻译:它们会自动使用。我可能是错的。 (2认同)