Class: DInstaller::Language

Inherits:
Object
  • Object
show all
Defined in:
lib/dinstaller/language.rb

Overview

Backend for handling language settings

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ Language

Returns a new instance of Language.



35
36
37
38
# File 'lib/dinstaller/language.rb', line 35

def initialize(logger)
  @logger = logger
  @languages = []
end

Instance Attribute Details

#languagesHash<Array<String,Array<String>>> (readonly)

Returns Known languages, where the key is the language code and value is an array containing the translated name, the english name, etc.

Returns:

  • (Hash<Array<String,Array<String>>>)

    Known languages, where the key is the language code and value is an array containing the translated name, the english name, etc.



33
34
35
# File 'lib/dinstaller/language.rb', line 33

def languages
  @languages
end

Instance Method Details

#finishObject

Writes the language settings



47
48
49
# File 'lib/dinstaller/language.rb', line 47

def finish
  Yast::Language.Save
end

#languageString

Returns the selected language

Returns:

  • (String)

    Language code



65
66
67
# File 'lib/dinstaller/language.rb', line 65

def language
  Yast::Language.language
end

#language=(name) ⇒ Object

Sets the language

Parameters:

  • name (String)

    Language code

Raises:

  • Errors::InvalidValue



55
56
57
58
59
60
# File 'lib/dinstaller/language.rb', line 55

def language=(name)
  raise Errors::InvalidValue unless languages.include?(name)

  Yast::Language.Set(name)
  Yast::Language.languages = Yast::Language.RemoveSuffix(name)
end

#probeObject

Probes the available system languages



41
42
43
44
# File 'lib/dinstaller/language.rb', line 41

def probe
  logger.info "Probing languages"
  @languages = Yast::Language.GetLanguagesMap(true)
end