为多种语言创建数组

时间:2016-11-11 22:05:49

标签: ruby-on-rails arrays select multilingual

我正在寻找一种简单的方法来创建具有多种语言的选择。目前,我使用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文件,这也会很棒。

1 个答案:

答案 0 :(得分:1)

一种解决方案是将翻译保留在数据库中,您可以搜索有多种可用的宝石,如语言选择

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

en.yml

   $journal = Journal::where('journalslug','=',$journalslug)->first();

查看:

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

如果您翻译非叶键,Rails i18n会为您提供哈希值,例如“my_options”。您需要反转,因为options_for_select期望值前面的文本,而翻译哈希是另一种方式。

你可以探索更多关于它的信息,有很多方法可以做到这一点,其中一个是简单的方法。