require "yaml"
require "optparse"
-LOCALE_DIR = File.dirname(__FILE__) + '/../../config/locales/'
-EN = YAML::load_file(LOCALE_DIR+'en.yml')
+LOCALE_DIR = File.dirname(__FILE__) + "/../../config/locales/"
+EN = YAML.load_file(LOCALE_DIR + "en.yml")
-def iterate(hash, fhash={}, path='', outfile=$stdout)
- postr = ''
- hash.each {|key, val|
- fhash[key] = {} unless fhash.has_key? key
+def iterate(hash, fhash = {}, path = "", outfile = $stdout)
+ hash.each do |key, val|
+ fhash[key] = {} unless fhash.key? key
if val.is_a? Hash
fhash[key] = {} unless fhash[key].is_a? Hash
- iterate(val, fhash[key], path+key+':', outfile)
+ iterate(val, fhash[key], path + key + ":", outfile)
else
outfile.puts "msgctxt \"#{path}#{key}\""
outfile.puts "msgid \"#{val}\""
outfile.puts "msgstr \"#{fhash[key]}\""
end
- }
+ end
end
-def lang2po(lang, outfile=$stdout)
+def lang2po(lang, outfile = $stdout)
puts lang
- oth = {}
- infile = LOCALE_DIR+lang+'.yml'
- if File.exists? infile
- oth = YAML::load_file(infile)
+ infile = LOCALE_DIR + lang + ".yml"
+ if File.exist? infile
+ oth = YAML.load_file(infile)
oth = oth[lang]
- iterate(EN['en'], oth, '', outfile)
+ iterate(EN["en"], oth, "", outfile)
else
- iterate(EN['en'], {}, '', outfile)
+ iterate(EN["en"], {}, "", outfile)
end
end
opt = ARGV[0]
-if opt == '--all'
+if opt == "--all"
# Produce .po files for all langs, and a .pot template
- PO_DIR = LOCALE_DIR+'po/'
+ PO_DIR = LOCALE_DIR + "po/"
Dir.mkdir(PO_DIR) unless File.directory?(PO_DIR)
- Dir.glob(LOCALE_DIR+"*.yml") {|filename|
- lang = File.basename(filename, '.yml')
- outfile = File.new(PO_DIR+"#{lang}.po", 'w')
- lang2po(lang, outfile)
- outfile.close
- }
- outfile = File.new(PO_DIR+"rails_port.pot", 'w')
- iterate(EN['en'], {}, '', outfile)
+ Dir.glob(LOCALE_DIR + "*.yml") do |filename|
+ lang = File.basename(filename, ".yml")
+ unless lang == "en"
+ outfile = File.new(PO_DIR + "#{lang}.po", "w")
+ lang2po(lang, outfile)
+ outfile.close
+ end
+ end
+ outfile = File.new(PO_DIR + "rails_port.pot", "w")
+ iterate(EN["en"], {}, "", outfile)
outfile.close
elsif opt
lang2po(opt)
else
- iterate(EN['en'])
+ iterate(EN["en"])
end