我在使用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,範圍:'TaskEnums.OCTAVE_BANDS')',但我想這對更有經驗的Ruby專家來說是顯而易見的。非常感激。 :) –