Module: Localized::Convert

Defined in:
lib/localized/convert.rb

Class Method Summary collapse

Class Method Details

.load_cacheObject



17
18
19
# File 'lib/localized/convert.rb', line 17

def self.load_cache
  I18n.backend.send(:init_translations)
end

.locale_cacheObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/localized/convert.rb', line 26

def self.locale_cache
  @locale_cache = begin
    rows = {}
    columns = Hash[translations.keys.map{|l| [l, nil]}]
    translations.keys.each do |locale| # each locale
      translations[locale].each do |key, value| # each translation
        key_string, value_string = formalize_keys(key, value)
        rows[key_string] ||= columns
        rows[key_string] = rows[key_string].merge(locale => value_string)
      end
    end
    rows.reject { |k, r| r.values.compact.blank? }
  end
end

.to_csv(file) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/localized/convert.rb', line 4

def self.to_csv(file)
  CSV.open(file, "wb") do |csv|
    csv << ["Token", translations.keys.sort].flatten
    locale_cache.keys.sort.each do |token|
      row = [token]
      locale_cache[token].keys.sort.each do |locale|
        row << locale_cache[token][locale]
      end
      csv << row
    end
  end
end

.translationsObject



21
22
23
24
# File 'lib/localized/convert.rb', line 21

def self.translations
  load_cache
  @translations ||= I18n.backend.send(:translations)
end