У меня возникли проблемы с использованием I18n.translate
для перевода массива.Rails: как i18n массив строк?
В частности, у меня есть этот массив,
module TaskEnums
OCTAVE_BANDS = [:hz63, :hz125, :hz250, :hz500, :hz1000, :hz2000, :hz4000, :hz8000, :hz16000]
end
и у меня есть следующий перевод в файле YAML.
en:
TaskEnums:
OCTAVE_BANDS:
hz63: "63 Hz"
hz125: "125 Hz"
hz250: "250 Hz"
hz500: "500 Hz"
hz1000: "1000 Hz"
hz2000: "2000 Hz"
hz4000: "4000 Hz"
hz8000: "8000 Hz"
hz16000: "16000 Hz"
На мой взгляд, я хотел бы отобразить выпадающее меню, которое позволяет пользователям выбирать частоту.
<%= form_for(@task) do |f| %>
<%= f.select :frequency, TaskEnums::OCTAVE_BANDS %>
<% end %>
Я знаю, что могу перевести отдельные символы с t :symbol
, но этот подход не похоже на работу с массивами (например t TaskEnums::OCTAVE_BANDS
не делать то, что мне нужно).
Кто-нибудь знает, как я могу перевести массив OCTAVE_BANDS
, чтобы переводы отображались в выпадающем меню? Кажется, что это должна быть общая проблема, поэтому я предполагаю (и надеюсь!), Что есть простое решение ... может ли кто-нибудь предложить, как это сделать?
Большое спасибо,
D. Опция
Отлично, спасибо! Для записи я обнаружил, что мне нужно включить круглые скобки, чтобы сделать эту работу в представлении, например. 't (TaskEnums :: OCTAVE_BANDS, scope: 'TaskEnums.OCTAVE_BANDS')', но я думаю, это очевидно для более опытных рубистов. Очень признателен. :) –