Wie kann ich Sortieren YAML-Dateien?

Ich habe versucht zu Sortieren, eine i18n-übersetzungen YAML-Datei mit Ruby, so dass ich verwalten können, neue übersetzungen in eine bessere und organisierte Art und Weise, aber ich hab mich schon gewundert, wenn es etwas gibt, um die Aufgabe zu erleichtern.

Fand ich eine YAML-Datei Schriftsteller, so kann ich schreiben Sie einen hash in einer Datei, aber mein problem ist das Sortieren der hash richtig. Wenn ich hash h, h.sort gibt ein array zurück, und ich habe immer noch nicht kapiert das ein einfacher Weg, das zu tun.

Ich habe YAML-Dateien wie dieses:

pt-br:    
  global:
    misc:
      total: "Total"
      all: "Todos"
      close: "Fechar"
      cancel: "Cancelar"

    crud:
      access: "Acessar"
      back: "Voltar"
      edit: "Editar"
      confirm: "Confirmar"
      send: "Enviar"

...

(Die Dateien sind viel größer als diese)

Aber ich Sortieren möchten Ihnen auf diesem Weg:

pt-br:    
  global:
    crud:
      access: "Acessar"
      back: "Voltar"
      confirm: "Confirmar"
      edit: "Editar"
      send: "Enviar"

    misc:
      all: "Todos"
      cancel: "Cancelar"
      close: "Fechar"          
      total: "Total"

Dachte ich, dass die einige einfache rekursive Methode konnte mir wie folgt helfen:

def translation_sort(h)
  if h.class == Hash
    h = h.sort
    h.each{|item| translation_sort(item)}
  end
  h
end

require "yaml"
h=YAML.load_file(File.open("~/pt-br.sample.yml"))
translation_sort(h)
  • gibt es eine sublime plugin für das gleiche?
InformationsquelleAutor AndreDurao | 2011-09-01
Schreibe einen Kommentar