6

Я хочу, чтобы перевести взгляды моих приложений, и как я использую частичный, чтобы сделать заголовки для каждого вида, как это:Перевести контроллер action_name в Rails 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

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 %>

 Смежные вопросы

  • Нет связанных вопросов^_^