Mercurial > hg > soundsoftware-site
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 |