我希望能够生成包含完整键的语言环境的所有I18n键和值的完整列表.换句话说,如果我有这些文件:
配置/语言环境/ en.yml
en: greeting: polite: "Good evening" informal: "What's up?"
配置/语言环境/ second.en.yml
en: farewell: polite: "Goodbye" informal: "Later"
我想要以下输出:
greeting.polite: "Good evening" greeting.informal: "What's up?" farewell.polite: "Goodbye" farewell.informal: "Later"
我该怎么做呢?
解决方法
尼克戈尔比科夫的答案是一个开始,但没有按照问题中的描述发出我想要的输出.我最终编写了自己的脚本get_translations来执行此操作,如下所示.
#!/usr/bin/env ruby require 'pp' require './config/environment.rb' def print_translations(prefix,x) if x.is_a? Hash if (not prefix.empty?) prefix += "." end x.each {|key,value| print_translations(prefix + key.to_s,value) } else print prefix + ": " PP.singleline_pp x puts "" end end I18n.translate(:foo) translations_hash = I18n.backend.send(:translations) print_translations("",translations_hash)