我正在尝试将用于描述我的用户模型的“登录”属性的字符串覆盖为“用户名”。我认为这是在vendor/rails/activerecord/lib/active_record/locale/en.yml
中设定的。我已经尝试在我的config/locales/en.yml
文件中更改它,并且在任何情况下它都不起作用(我在每次更改后重新启动服务器)。
在这两种情况下都是这样做的:
en:
...
activerecord:
attributes:
user:
login: User Name
当我测试它时,例如f.label:在我的新用户表单中登录,它出现为“登录”而不是“用户名”。我是否因为这些东西是如何运作的一些根本错误而工作,或者它真的不起作用?无论哪种方式,任何人都可以告诉我如何解决它?谢谢,最大
答案 0 :(得分:2)
如果你们中的任何一个遇到麻烦,翻译都没有加载,我调试如下:
首先,我使用https://stackoverflow.com/a/10211540/474597中的脚本来设置日志记录。 然后当我运行服务器并渲染页面时,我可以在该日志中看到用于获取翻译的密钥。然后我可以检查我使用的密钥是否正确。
一个缺陷是,第一把钥匙不一定是他们将使用的钥匙。我见过加载正确密钥的情况,然后查找另一个没有翻译的密钥,从而产生英文翻译。我不得不将翻译放在这两个键中。
例如:我的Foo has_many Bar,Bar has_many Duu,Duu有一个价格列。 为了翻译该价格列,我必须有以下工作:
activerecord:
attributes:
'foo/bar/duu':
price: "price"
即使日志有这个:
:duu
:"activerecord.attributes.duu.text"
:"activerecord.errors.models.duu.attributes.text.blank"
:"activerecord.errors.models.duu.blank"
:"activerecord.errors.messages.blank"
:"errors.attributes.text.blank"
:"errors.messages.blank"
:"activerecord.attributes.foo/bars/duus.text"
答案 1 :(得分:2)
我在这里应某人的要求回答这个问题...我确实解决了这个问题并且没有更新我的问题,抱歉。在我的问题中我是在正确的行,但没有正确的“路径”到键:显示的字段的名称,被称为“标签”,他们有自己的部分:activerecord yaml树的一部分。
正确的方法是
en:
user:
labels:
login: "User Name"
email: "Email Address"
其中“user”是小写的型号名称,登录名和电子邮件是字段。
答案 2 :(得分:1)
答案 3 :(得分:0)
您可以在en.yml文件中以任何名称存储“用户名”字符串:
en:
user:
user_name: User Name
并在您的视图中
<%= f.label :login, t('user.user_name') %>