Я пытался отсортировать файл yaml i18n yaml с ruby, чтобы я могу управлять новыми переводами в лучшем и организованным способом, но мне было интересно, если есть что-то, чтобы облегчить задачу.
Я нашел писатель YAML-файла, чтобы я мог написать хэш в файл, но моя проблема состоит в том, чтобы правильно отсортировать хеш. Если я получил хеш H
, h.sort
Возвращает массив, и я до сих пор не понял простой способ сделать это.
У меня есть такие файлы yaml, такие как это:
pt-br:
global:
misc:
total: "Total"
all: "Todos"
close: "Fechar"
cancel: "Cancelar"
crud:
access: "Acessar"
back: "Voltar"
edit: "Editar"
confirm: "Confirmar"
send: "Enviar"
...
(файлы находятся больше, чем это)
, но я хочу отсортировать их таким образом:
pt-br:
global:
crud:
access: "Acessar"
back: "Voltar"
confirm: "Confirmar"
edit: "Editar"
send: "Enviar"
misc:
all: "Todos"
cancel: "Cancelar"
close: "Fechar"
total: "Total"
Я думал, что какой-то простой рекурсивный метод может помочь мне так:
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)