У меня есть метод перевода, который берет строку и возвращает другую на основе пользователя. Он возвращает строку для всех моих кнопок и ссылок, но продолжает возвращать тег span, когда я пытаюсь использовать его с заполнителями. Я также использую Twitter Bootstrap, не уверен, что это важно.
Метод перевода:
def translator(english)
# takes string and searches Translation.all for a match unless user.english
unless current_user.english
spanish = Translation.where(english: english)
end
return spanish.present? ? spanish.last.spanish : english
end
Моя панель поиска с заполнителем:
<%= form_tag search_path, :method => "get" do %>
<div class="input-group">
<%= text_field_tag :query, params[:query],
placeholder: translate("Search"), class: "form-control" %>
<span class="input-group-btn">
<button class="btn btn-default" type="submit">
<i class="glyphicon glyphicon-search"></i>
</button>
</span>
</div><!-- /input-group -->
<% end %>
Создается тег. Это говорит, что перевод отсутствует, даже когда я знаю, что там матч. Из источника просмотра:
placeholder="<span class="translation_missing" title="translation missing: en.Search">Search</span>"
Вы определили метод, называемый translator
но вы вызываете метод, называемый translate
: вы вызываете рельс, переводящий хелпер вместо того, который вы определили.
translate
в представлении вызовет методtranslator
в помощнике?