Module: I18nData::FileDataProvider

Extended by:
FileDataProvider
Included in:
FileDataProvider
Defined in:
lib/i18n_data/file_data_provider.rb

Constant Summary collapse

DATA_SEPARATOR =
";;"

Instance Method Summary collapse

Instance Method Details

#codes(type, language_code) ⇒ Object



6
7
8
9
10
11
# File 'lib/i18n_data/file_data_provider.rb', line 6

def codes(type, language_code)
  unless data = read_from_file(cache_file_for(type, language_code))
    raise NoTranslationAvailable, "#{type}-#{language_code}"
  end
  data
end

#write_cache(provider) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/i18n_data/file_data_provider.rb', line 13

def write_cache(provider)
  languages = provider.codes(:languages, 'EN').keys + ['zh_CN', 'zh_TW', 'zh_HK','bn_IN','pt_BR']
  unless progress_bar = build_progress_bar(languages.count)
    $stderr.puts 'i18n_data: Updating file cache, will take about 8 minutes...'
  end

  languages.map do |language_code|
    [:languages, :countries].each do |type|
      begin
        data = provider.send(:codes, type, language_code)
        write_to_file(data, cache_file_for(type, language_code))
      rescue NoTranslationAvailable
        $stderr.puts "No translation available for #{type} #{language_code}" if $DEBUG
      rescue AccessDenied
        $stderr.puts "Access denied for #{type} #{language_code}"
      end
    end
    progress_bar.increment if progress_bar
  end
end