翻译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}" %> 
+0

谢谢! :)我已经标记了这个答案是正确的,现在我只需要添加翻译到我的地区,但它终于为我工作。 – ZuzannaSt 2014-11-25 12:21:39

首先,当你说#{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 %>