annotate lib/tasks/.svn/text-base/locales.rake.svn-base @ 36:de76cd3e8c8e cc-branches

* Probably abortive experiments in extracting the branch from Hg
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Wed, 20 Oct 2010 10:07:29 +0100
parents 513646585e45
children 94944d00e43c
rev   line source
Chris@0 1 namespace :locales do
Chris@0 2 desc 'Updates language files based on en.yml content (only works for new top level keys).'
Chris@0 3 task :update do
Chris@0 4 dir = ENV['DIR'] || './config/locales'
Chris@0 5
Chris@0 6 en_strings = YAML.load(File.read(File.join(dir,'en.yml')))['en']
Chris@0 7
Chris@0 8 files = Dir.glob(File.join(dir,'*.{yaml,yml}'))
Chris@0 9 files.each do |file|
Chris@0 10 puts "Updating file #{file}"
Chris@0 11 file_strings = YAML.load(File.read(file))
Chris@0 12 file_strings = file_strings[file_strings.keys.first]
Chris@0 13
Chris@0 14 missing_keys = en_strings.keys - file_strings.keys
Chris@0 15 next if missing_keys.empty?
Chris@0 16
Chris@0 17 puts "==> Missing #{missing_keys.size} keys (#{missing_keys.join(', ')})"
Chris@0 18 lang = File.open(file, 'a')
Chris@0 19
Chris@0 20 missing_keys.each do |key|
Chris@0 21 {key => en_strings[key]}.to_yaml.each_line do |line|
Chris@0 22 next if line =~ /^---/ || line.empty?
Chris@0 23 puts " #{line}"
Chris@0 24 lang << " #{line}"
Chris@0 25 end
Chris@0 26 end
Chris@0 27
Chris@0 28 lang.close
Chris@0 29 end
Chris@0 30 end
Chris@0 31 end