我在视图中使用标准的Rails表单:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :email_label %><br />
<%= f.email_field :email, :autofocus => true, :class => "form-control" %></div>
<div><%= f.label :password_label %><br />
<%= f.password_field :password, :class => "form-control" %></div>
<% if devise_mapping.rememberable? -%>
<div class="checkbox"><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<div>
<!--<%= f.submit :class => "btn btn-default" %>-->
<%= f.submit I18n.t("helpers.label.user.sign_in"), :class => "btn btn-default" %>
</div>
<% end %>
两个问题:1)http://guides.rubyonrails.org/i18n.html的API指南文档似乎已经过时了。本地化视图部分以:
开头Rails 2.3引入了另一种方便的本地化功能: 本地化视图(模板)。
所以我不确定相信它们有多少,而另外两个标准位置http://ruby-i18n.org/wiki和https://github.com/svenfuchs/rails-i18n并没有真正解决我的问题:
这有点复杂,因为我试图在Devise视图中这样做。这意味着form_for指的是用户模型,甚至认为控制器是Sessions控制器。所以如果我在这里使用样式,User.create将起作用: http://apidock.com/rails/ActionView/Helpers/FormBuilder/submit
fr:
helpers:
user:
submit:
create: "Inscription %{model}"
update: "Confirmer les modifications à %{model}"
不包括提交行中的任何文字
<%= f.submit %>
但这会影响到处创建用户,我只想用相同的登录来自定义新会话按钮。 请联系我们
所以我正在攻击它
fr-CA:
helpers:
select:
prompt: Veuillez sélectionner
submit:
create: Créer un %{model}
submit: Enregistrer ce %{model}
update: Modifier ce %{model}
sign_in: Se me connecter
sign_up: Inscription
label:
user:
email_label: Courriel
password_label: Mot de passe
remember_me: Mémoriser mes infos
submit: Se me connecter
sign_in: Se me connecter
sign_up: Inscription
并使用
<%= f.submit I18n.t("helpers.label.user.sign_in"), :class => "btn btn-default" %>
但这感觉不对,也不稳健,但它确实可以让Cucumber更容易测试。
这里有什么建议吗?任何人都可以评论Rails的I18n社区是否仍然活跃?或者人们使用不同的解决方案?我正在考虑尝试使用SimpleForm gem,它是I18n的功能。
答案 0 :(得分:0)
我知道问题已经过时了,但是按键的顺序在这里很重要:
fr:
helpers:
submit:
user:
create: "Inscription %{model}"
update: "Confirmer les modifications à %{model}"
请注意,submit
先行,然后,您应列出资源 - user
,post
,whatever
。
有关详细信息,请参阅related answer。