我一直在尝试对i18n进行排序来翻译Ruby的YAML文件,这样我就可以以更好和有组织的方式管理新的翻译,但我一直在想是否有什么可以缓解任务。如何分类YAML文件?
我发现一个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)
是否有任何崇高的插件为相同? –