2016-09-23 1 views
1

Rails I18n est idéal pour les traductions, en tant que programmeur.Comment puis-je aplatir les rails? Fichiers i18n

Mais certains clients préfèrent avoir leur mot à dire dans les fichiers i18n que nous leur proposons, nous aimerions donc leur envoyer une version «aplatie» via Excel.

Par exemple, au lieu d'envoyer

en: 
    sessions: 
    new: 
     login: "Ingresa" 
     signup: "Regístrate" 

Nous aimerions l'avoir

en.sessions.new.login "Ingresa" 
en.sessions.new.signup "Regístrate" 

Quelle est la meilleure façon de le faire?

Répondre

0

Une version étendue peut être vérifié ici: https://repl.it/Dg4U/0

Lorsque vous demandez une I18n de traduction vous donne le contenu, ou une table de hachage.

Ainsi, votre Hash début peut être

I18n.t('.') # The root element 

Vous pouvez ensuite appliquer ce code

results = [] 

def squash(previous_key = '', h) 
    h.each do |key,value| 
    this_key = "#{previous_key}.#{key.to_s}" 
    if value.is_a? Hash 
     squash(this_key, value) 
    elsif value.is_a? Array 
     results << "#{this_key}: #{value.inspect}" 
    else 
     results << "#{this_key}: #{value}" 
    end 
    end 
end 

squash 'en', I18n.t('.') 

Là, vous pouvez l'utilisateur du tableau de résultats comme il vous plaira de l'utiliser. Je l'ai juste imprimé sur l'écran et je l'ai collé dans Excel.