Mercurial > hg > soundsoftware-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:513646585e45 |
---|---|
1 namespace :locales do | |
2 desc 'Updates language files based on en.yml content (only works for new top level keys).' | |
3 task :update do | |
4 dir = ENV['DIR'] || './config/locales' | |
5 | |
6 en_strings = YAML.load(File.read(File.join(dir,'en.yml')))['en'] | |
7 | |
8 files = Dir.glob(File.join(dir,'*.{yaml,yml}')) | |
9 files.each do |file| | |
10 puts "Updating file #{file}" | |
11 file_strings = YAML.load(File.read(file)) | |
12 file_strings = file_strings[file_strings.keys.first] | |
13 | |
14 missing_keys = en_strings.keys - file_strings.keys | |
15 next if missing_keys.empty? | |
16 | |
17 puts "==> Missing #{missing_keys.size} keys (#{missing_keys.join(', ')})" | |
18 lang = File.open(file, 'a') | |
19 | |
20 missing_keys.each do |key| | |
21 {key => en_strings[key]}.to_yaml.each_line do |line| | |
22 next if line =~ /^---/ || line.empty? | |
23 puts " #{line}" | |
24 lang << " #{line}" | |
25 end | |
26 end | |
27 | |
28 lang.close | |
29 end | |
30 end | |
31 end |