He intentado ordenar un archivo YAML de traducciones i18n con Ruby para poder administrar nuevas traducciones de una manera mejor y organizada, pero me he estado preguntando si hay algo para facilitar la tarea.¿Cómo puedo ordenar los archivos YAML?
Encontré una grabadora de archivos YAML para poder escribir un hash en un archivo, pero mi problema es ordenar el hash correctamente. Si obtuve hash h
, h.sort
devuelve una matriz y todavía no he encontrado una forma sencilla de hacerlo.
Tengo archivos YAML como este:
pt-br:
global:
misc:
total: "Total"
all: "Todos"
close: "Fechar"
cancel: "Cancelar"
crud:
access: "Acessar"
back: "Voltar"
edit: "Editar"
confirm: "Confirmar"
send: "Enviar"
...
(Los archivos son mucho más grande que esto)
pero quiero que los clasifique de esta manera:
pt-br:
global:
crud:
access: "Acessar"
back: "Voltar"
confirm: "Confirmar"
edit: "Editar"
send: "Enviar"
misc:
all: "Todos"
cancel: "Cancelar"
close: "Fechar"
total: "Total"
pensé que algún método recursivo simple podría ayudarme así:
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)
hay ningún plugin sublime para el mismo? –