rails - 如何翻译表单格式中 ruby 代码中的内容?

rails - how to translate what is within a ruby code in a form format?

我有一个 ruby 代码。

<%= f.label "Email *" %>

我想将英文单词 "Email" 翻译成日文单词,因为我目前正在使我的英文网站国际化。

我尝试了以下方法。

<%= f.label "<%= t(:email) %> *" %>

然而,它没有用。我该怎么办?

您不应在另一个 <% %> 中使用 <% %>。这样写:

<%= f.label "#{t(:email)} *" %>

<% 标签已经切换到 ruby,其中 = 也将呈现代码的结果。为了获得翻译,您可能需要使用 <%= f.label t("email") %> 并在翻译文件中使用电子邮件。

由于您需要在表单内进行翻译,如果它绑定到模型,您也可以按照 translate your models section inside the guides 中的描述翻译您的模型。然后 <%= f.label :email %> 将开箱即用。

有几种标记必填字段的方法,您可以简单地做 <%= f.label "#{t("email")} *" %> 或通过 css 设置必填字段的样式,例如:

# app/view/.../....rb
<%= f.label :email, class: 'required' %>

# app/assets/stylesheets/.../....css
label.required:after {
    content: " *";
}