Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 表单标签的Rails i18n和yml结构_Ruby On Rails_Internationalization_Yaml - Fatal编程技术网

Ruby on rails 表单标签的Rails i18n和yml结构

Ruby on rails 表单标签的Rails i18n和yml结构,ruby-on-rails,internationalization,yaml,Ruby On Rails,Internationalization,Yaml,据报道。引述: 标签的文本将默认为属性名,除非在当前I18n语言环境(通过views.labels..)中找到翻译或您明确指定它 我有一个“用户”模型和一份登记表。以下是相关部分的一个片段: <% form_for(@user) do |f| %> ... <p> <%= f.label :username %> <%= f.text_field :username, :class => 'full_width' %

据报道。引述:

标签的文本将默认为属性名,除非在当前I18n语言环境(通过views.labels..)中找到翻译或您明确指定它

我有一个“用户”模型和一份登记表。以下是相关部分的一个片段:

<% form_for(@user) do |f| %>
    ...
    <p>
    <%= f.label :username %>
    <%= f.text_field :username, :class => 'full_width' %>
    </p>
    ...
<% end %>
Rails应该翻译标签文本并插入“blahblah”而不是“Username”


这没有发生,所以我一定错过了什么。感谢您的帮助。

这是因为您调用的
label
方法不是来自
ActionView::Helpers::FormHelper
的方法,而是来自
ActionView::Helpers::FormTagHelper
label\u标记
方法。
form\u for
方法通过向使用的表单帮助程序添加
\u标记来重写给定块中的代码。因此,您没有在文档中寻找正确的方法


我还没有使用这种方法,因为有时候一个字段的标签可能不同于使用相同模型的多个表单,所以我编写了自己的帮助程序。

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

我的应用程序是2.3.5版。我现在已将其更改为2.3.8,并且
现在使用以下翻译:

dk:
  activerecord:
    attributes:
      user:
        username:
我在这张票上找到了提示:


在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'

嗯:
助手:
标签:
职位:
标题:“自定义标题”

谢谢,我不知道。form_for和label方法都在
ActionView::Helpers::FormHelper
doc页面上,所以我假设它们是这样一起工作的。我已使用相同的yml文件将代码更改为:
,但仍然无法获得翻译。
标签
调用是否在
表单_for
块中有关系?老实说,我从来没有使用过该功能。出于好奇,我刚刚查看了Rails代码,我认为这是一个老特性,文档尚未修复:
content=(text.blank??nil:text.to_)| |方法_名称。在表单_helper.rbi第473行人性化
。在这种情况下,您应该使用
t
方法指定
范围
出现在
.yml
翻译文件中<代码>
。谢谢您的帮助。是否有发行说明或我可以查看的内容来了解此格式的更多信息?文档中提供了此格式的说明。如果
帮助程序:
路径不可用,i18n将退回到
activerecord:
路径。使用优秀的i18n调试gem时非常清晰。@PieterJongsma,感谢您的宝贵建议。非常有用。如果你想有一个像“输入你的名字”这样的标签怎么办?我不认为将属性设置为这样一个短语是干净的,在某些特定情况下可能会导致一些问题。有关自定义表单标签的正确方法,请参见Voldy的答案。您甚至可以同时使用这两种方法,但Voldy的aproach将在表单上覆盖这一方法,并且它应该
<% form_for @post do |f| %>
  <%= f.label :title %>
  <%= f.text_field :title %>
  <%= f.submit %>
<% end %>

en:
  helpers:
    label:
      post:
        title: 'Customized title'