相关疑难解决方法(0)

如何排序YAML文件?

我一直在尝试用Ruby对i18n翻译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"

...
Run Code Online (Sandbox Code Playgroud)

(文件大于此)

但我想以这种方式对它们进行排序:

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

    misc:
      all: "Todos"
      cancel: "Cancelar"
      close: "Fechar"          
      total: "Total"
Run Code Online (Sandbox Code Playgroud)

我认为一些简单的递归方法可以帮助我这样:

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)
Run Code Online (Sandbox Code Playgroud)

ruby sorting yaml internationalization

18
推荐指数
5
解决办法
1万
查看次数

标签 统计

internationalization ×1

ruby ×1

sorting ×1

yaml ×1