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