用于表单标签的Rails i18n和yml结构

rha*_*dih 25 yaml ruby-on-rails internationalization

根据ActionView文档.引用:

除非翻译是在当前的I18n区域发现​​标签的文本将默认属性名称(通过views.labels.<MODELNAME>.<属性>)或明确指定它.

我有一个"用户"模型和一个注册表单.以下是相关部分的片段:

<% form_for(@user) do |f| %>
    ...
    <p>
    <%= f.label :username %>
    <%= f.text_field :username, :class => 'full_width' %>
    </p>
    ...
<% end %>
Run Code Online (Sandbox Code Playgroud)

点隐藏不重要的代码.

据我了解的文件,如果我在现场提供文件的翻译,在这种情况下:DK,我dk.yml看起来像这样:

dk:
    views:
        labels:
            user:
                username:
                    "blahblah"
Run Code Online (Sandbox Code Playgroud)

Rails应该翻译标签文本并插入"blahblah"而不是"Username".

这没有发生,所以我一定错过了什么.任何帮助赞赏.

Vol*_*ldy 43

在Rails 3.1中有点改变.

<% form_for @post do |f| %>
  <%= f.label :title %>
  <%= f.text_field :title %>
  <%= f.submit %>
<% end %>

en:
  helpers:
    label:
      post:
        title: 'Customized title'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你.是否有发布说明或我可以查看的内容以了解有关此格式的更多信息? (3认同)
  • 如果`helpers:`路径不可用,i18n将回退到`activerecord:`路径.使用优秀的i18n-debug gem时非常清楚. (3认同)

rha*_*dih 30

我想我在这里找到了另一个解决方案

我的应用程序是版本2.3.5.我现在将其更改为2.3.8,<%= f.label :username %>现在使用以下翻译:

dk:
  activerecord:
    attributes:
      user:
        username:
Run Code Online (Sandbox Code Playgroud)

我在这张票中找到了提示:

https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n