2016-11-11 4 views
0

Je cherche un moyen facile de créer un select avec plusieurs langues. Actuellement, j'ai utilisé un HELPER pour stocker un tableau avec mes options SELECT.Créer des tableaux pour plusieurs langues

Aide

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

Voir

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

S'il y a un moyen d'utiliser le fichier en quelque sorte LOCALE ce serait trop étonnant.

Répondre

1

Une solution serait de garder les traductions dans la base de données, vous pouvez rechercher il y a plusieurs gemmes disponibles comme langue select

Si vous voulez tirer les options de votre traduction fichiers YML, je suggère options_for_select. Dans l'ensemble quelque chose comme:

en.yml

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

Vue:

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

Rails i18n vous donne un hachage si vous traduisez une clé non-feuille, comme "my_options". Vous avez besoin de l'invert parce que options_for_select attend le texte avant la valeur, et un hachage de traduction est l'inverse.

Vous pouvez explorer plus à ce sujet il y a plusieurs façons de le faire celui-ci est l'un d'entre eux et de manière simple.