为多种语言创建数组

Create Arrays for multiple Languages

我正在寻找一种简单的方法来创建具有多种语言的 select。目前,我使用 HELPER 来存储带有 SELECT 选项的数组。

帮手

list = ["Book", "DVD", "Table", "Chair"]
CATEGORY = Hash[*list.collect { |v| [v, list.index(v)] }.flatten]

查看

<%= f.select :category, options_for_select(ApplicationHelper::CATEGORY, selected: 0), { :class => "selectpicker" } %>

如果有办法以某种方式使用 LOCALE 文件,那也太棒了。

一个解决方案是将翻译保留在数据库中,您可以搜索有多个可用的 gem,例如语言 select

如果您想从翻译的 YML 文件中提取选项,我建议 options_for_select。总而言之:

en.yml

 en:
   my_options:
     0: "Book"
     1: "DVD"
     2: "Table"
     3: "Chair"

查看:

  <%= f.select :category, options_for_select(t("my_options").invert, selected: 0), { :class => "selectpicker" } %>

Rails 如果你翻译一个非叶键,i18n 会给你一个散列,比如 "my_options"。您需要反转,因为 options_for_select 需要值之前的文本,而翻译哈希则相反。

您可以探索更多相关信息有很多方法可以做到这一点,这是其中一种简单的方法。