6

我想翻譯我的應用程序的意見,因爲我使用部分呈現爲這樣每個視圖標題:翻譯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 

感謝。

回答

2

你應該在你的區域設置文件中的翻譯。下劃線或連字符添加到單獨的詞語的關鍵

如:

# 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

1

首先,當你說#{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 %>