我有一个模型,它使用相同的表单来创建和更新控制器操作。 没什么特别的。我有提交按钮根据使用en.yml
的操作更改其文本en:
helpers:
submit:
location:
create: "Add to map"
update: "Save changes"
如何根据相应的操作更改此表单上的文本正文?
例如,如果是创建,
<h1>Create new location</h1>
如果更新
<h1>Update location</h1>
答案 0 :(得分:1)
您只需将文本添加到en.yml文件中即可:
en:
create_new_location: 'Create new location'
update_location: 'Update location'
然后在视图中使用以下内容(创建/更新)
<h1><%= I18n.t(params[:action] == 'create' ? 'create_new_location' : 'update_location') %></h1>
或者,如果你使用new / edit:
<h1><%= I18n.t(params[:action] == 'new' ? 'create_new_location' : 'update_location') %></h1>
您还可以根据操作进行翻译,并将其嵌入翻译文本中,方法如下:
I18n.t "location.action.#{params[:action]}"
我建议不要这样做,因为要告诉你实际翻译的是哪个文字更难。