Próbowałem posortować plik YAML tłumaczący i18n z Ruby, dzięki czemu mogę zarządzać nowymi tłumaczeniami w lepszy i zorganizowany sposób, ale zastanawiałem się, czy jest coś, co ułatwi zadanie.Jak sortować pliki YAML?
Znalazłem pisarz pliku YAML, więc mogę napisać hasz do pliku, ale moim problemem jest prawidłowe sortowanie hasza. Jeśli mam hash h
, h.sort
zwraca tablicę i nadal nie wymyśliłem prosty sposób to zrobić.
mam pliki YAML tak:
pt-br:
global:
misc:
total: "Total"
all: "Todos"
close: "Fechar"
cancel: "Cancelar"
crud:
access: "Acessar"
back: "Voltar"
edit: "Editar"
confirm: "Confirmar"
send: "Enviar"
...
(Pliki są zdecydowanie większe niż to)
Ale chcę sortować je w ten sposób:
pt-br:
global:
crud:
access: "Acessar"
back: "Voltar"
confirm: "Confirmar"
edit: "Editar"
send: "Enviar"
misc:
all: "Todos"
cancel: "Cancelar"
close: "Fechar"
total: "Total"
myślałem, że niektóre proste metody rekurencyjne mogą mi pomóc:
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)
jest jakiś wzniosły plugin do tego samego? –