lib/tasks/faalis_tasks.rake in faalis-2.0.0.rc3 vs lib/tasks/faalis_tasks.rake in faalis-2.0.0.rc4

- old
+ new

@@ -1,36 +1,73 @@ \ No newline at end of file +namespace :faalis do + namespace :i18n do + desc 'Add all the missing keys to the locale files' + task :collect do + def merge_recursively(a, b) + puts "Rec: ", a, b + return b if a.is_a?(String) + a.merge(b) {|key, a_item, b_item| merge_recursively(a_item, b_item) } + end + + Dir["#{Rails.root}/tmp/i18n/*"].each do |locale_file| + locale = locale_file.split('/')[-1] + if File.exist? "#{Rails.root}/config/locales/#{locale}.yml" + raw_data = File.read("#{Rails.root}/config/locales/#{locale}.yml") + locale_data = YAML.load(raw_data) + else + locale_data = {} + end + + Dir["#{Rails.root}/tmp/i18n/#{locale}/*"].each do |key_file| + key = key_file.split('/')[-1] + puts "Key", key + + title = key.split('.')[-1].titleize + array = ::I18n.normalize_keys(locale, key, nil) + tmp = array.reverse.inject(title) do |a, n| + { n.to_s => a } + end + + locale_data = merge_recursively(locale_data, tmp) + end + + puts YAML.dump(locale_data)[4..-1] + end + end + end +end