Mercurial > hg > soundsoftware-site
diff lib/tasks/.svn/text-base/locales.rake.svn-base @ 0:513646585e45
* Import Redmine trunk SVN rev 3859
author | Chris Cannam |
---|---|
date | Fri, 23 Jul 2010 15:52:44 +0100 |
parents | |
children | 94944d00e43c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/tasks/.svn/text-base/locales.rake.svn-base Fri Jul 23 15:52:44 2010 +0100 @@ -0,0 +1,31 @@ +namespace :locales do + desc 'Updates language files based on en.yml content (only works for new top level keys).' + task :update do + dir = ENV['DIR'] || './config/locales' + + en_strings = YAML.load(File.read(File.join(dir,'en.yml')))['en'] + + files = Dir.glob(File.join(dir,'*.{yaml,yml}')) + files.each do |file| + puts "Updating file #{file}" + file_strings = YAML.load(File.read(file)) + file_strings = file_strings[file_strings.keys.first] + + missing_keys = en_strings.keys - file_strings.keys + next if missing_keys.empty? + + puts "==> Missing #{missing_keys.size} keys (#{missing_keys.join(', ')})" + lang = File.open(file, 'a') + + missing_keys.each do |key| + {key => en_strings[key]}.to_yaml.each_line do |line| + next if line =~ /^---/ || line.empty? + puts " #{line}" + lang << " #{line}" + end + end + + lang.close + end + end +end