#!/usr/bin/env ruby require 'rubygems' require 'ermahgerd' require 'yaml' require 'awesome_print' def deep_derp(h) Marshal.load(Marshal.dump(h)) end def interperlert(str, ar = []) return [''] if str.to_s.size == 0 i = str.partition(/%{.+?}/).reject { |c| c.empty? } if i.size == 1 return ar + i else n = i.pop return interperlert(n, ar + i) end end def gersbermps(str) interperlert(str).map {|w| w =~ /%{.+?}/ ? w : Ermahgerd.translate(w) }.join('') end def trernslert(y, kerpie: false) if y.has_key? 'en' if kerpie { 'en' => y['en'], 'er' => trernslert(deep_derp(y['en'])) } else { 'er' => trernslert(deep_derp(y['en'])) } end else y.each_pair do |k, v| if v.is_a?(Hash) y[k] = trernslert(v) elsif v.is_a?(Array) y[k] = v else y[k] = gersbermps(v) end end end end # TODO: Merks it erser n der prergremer # find . -name "en.yml" | while read i; do echo $i `dirname $i`/er.yml; ./ermahgerd.rb < $i > `dirname $i`/er.yml; done # Nerp kerpie # find . -name "*.yml" | while read i; do ./ermahgerd.rb < $i > $i.new && mv -v $i.new $i; done yerml = YAML.load(STDIN) trernslerted = trernslert(yerml, kerpie: true) STDOUT.write(trernslerted.to_yaml(line_width: -1))