翻译Rails中控制器ACTION_NAME 4
问题描述:
我想翻译我的应用程序的意见,因为我使用部分呈现为这样每个视图标题:翻译Rails中控制器ACTION_NAME 4
<%=t "#{controller.controller_name.capitalize} #{controller.action_name}" %>
...我得到stucked上翻译他们。如何在自定义翻译文件中翻译controller.action_name
?
我试图访问这样的动作名称:
parkings:
index: "Parkings index"
new: "New %{model}"
和许多不同的它的变体,但是每一个失败。你可以帮帮我吗?
这是我的控制器的一个片段:
def new
@parking = Parking.new
end
def create
@parking = Parking.new(parking_params)
if @parking.save
redirect_to @parking, notice: t(:parking_created)
else
render action: 'new'
end
end
感谢。
答
你应该在你的区域设置文件中的翻译。下划线或连字符添加到单独的词语的关键
如:
# config/locales/en.yml
en:
parkings_index: Parkings index
parkings_new: Parkings new page
视图文件
<%=t "#{controller_name}_#{action_name}" %>
答
首先,当你说#{controller.controller_name}
这意味着你有一个名为controller
的对象可以从你的视图访问,这是不正确的。即使您设法访问控制器及其操作名称,我认为这不值得花费精力和时间。
相反,你能以某种方式构建你的翻译文件是这样的:
views:
model_name (parkings): "Parkings"
action_1_name (index): "Parkings Index"
action_2_name (new): "New Parking"
...
,并在视图说(例如)<%= link_to (t "views.model_name.action_name"), :action %>
谢谢! :)我已经标记了这个答案是正确的,现在我只需要添加翻译到我的地区,但它终于为我工作。 – ZuzannaSt 2014-11-25 12:21:39