Module: Cldr::Languages

Defined in:
lib/languages.rb,
lib/cldr/languages/version.rb

Constant Summary collapse

DEFAULT_LANGUAGE_CODE =
'en'
DEFAULT_SELF_LOCALIZATION_CODE =
'zxx'
VERSION =
'0.0.4'

Instance Method Summary collapse

Instance Method Details

#importObject



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

def import
  language_codes = language_codes(true)

  if !File.directory?('config')
    FileUtils.mkdir_p('config')
    FileUtils.mkdir_p('config/locales')
  elsif !File.directory?('config/locales')
    FileUtils.mkdir_p('config/locales')
  end

  language_codes.each do |languageCode|
    localized_languages = localized_languages(language: languageCode)
    localized_languages_content = Hash.new
    localized_languages_content[languageCode] = localized_languages
    yaml_content = localized_languages_content.to_yaml

    File.open("config/locales/languages.#{languageCode}.yml", 'w') do |f|
      f.write(yaml_content)
    end
  end
end

#language_codes(self_localization = false) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/languages.rb', line 34

def language_codes(self_localization = false)
  default_language = language(DEFAULT_LANGUAGE_CODE)
  default_language_object = CLDR::Object.new(locale: default_language)

  language_codes = default_language_object.core.languages.keys

  if self_localization
    language_codes
  else
    language_codes.reject! { |k| k == DEFAULT_SELF_LOCALIZATION_CODE }
  end
end

#localized_languages(opts = {}) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/languages.rb', line 47

def localized_languages(opts = {})
  localization_language = language(opts[:language])
  fallback_language = language(opts[:fallback])

  if opts[:language] && opts[:language].to_s == DEFAULT_SELF_LOCALIZATION_CODE
    all_language_codes = language_codes

    Hash[all_language_codes.map { |languageCode|
      language_from_code = Locale::Tag::Cldr.new(languageCode)
      localized_language_object = CLDR::Object.new(locale: language_from_code, fallback: fallback_language)

      [languageCode, localized_language_object.core.languages[languageCode]]
    }]
  else
    localization_language_object = CLDR::Object.new(locale: localization_language, fallback: fallback_language)
    localization_language_object.core.languages
  end
end