使用Ruby和git从.yml文件中提取新密钥

时间:2016-04-22 07:29:58

标签: ruby-on-rails ruby git

我有一个包含I18n翻译键的.yml文件的Rails项目。我想创建一个rake任务(或类似的),它提取添加键的路径(git识别为添加的行)。将结果写入终端或文件无关紧要。

示例.yml文件:

en:
  index: # <-- new key
    greeting: "Hello world!" # <-- new key
  show:
    title: "Old text"
    body: "This is a text" # <-- new key

rake任务的输出/结果示例:

en.index.greeting
en.show.body

这有可能吗?谢谢!

1 个答案:

答案 0 :(得分:1)

是的,你可以。此功能将打印所有I18n键

def print_translations(prefix, x)
  if x.is_a? Hash
    prefix += "." if prefix.present?
    x.each do |key, value|
      print_translations(prefix + key.to_s, value)
    end
  else
    puts prefix
  end
end

I18n.translate(:foo)
translations_hash = I18n.backend.send :translations
print_translations "", translations_hash