live-langset-data/getcountrydata.rb

63 lines
2.1 KiB
Ruby
Raw Normal View History

# encoding: utf-8
module Yast
class GetcountrydataClient < Client
def main
Yast.import "Language"
Yast.import "Keyboard"
Yast.import "Console"
Yast.import "OSRelease"
langs = Language.GetLanguagesMap(true)
consolefonts = SCR.Read(path(".target.yast2"), "consolefonts_#{OSRelease.id}.ycp")
consolefonts ||= SCR.Read(path(".target.yast2"), "consolefonts.ycp")
timezonemap = Language.GetLang2TimezoneMap(true)
dir = ENV["OUTPUTDIR"]
raise "OUTPUTDIR is not set" unless dir
Builtins.foreach(langs) do |lang, ll|
suffix = ll[2] || ""
fqlanguage = lang + suffix
kbd = Keyboard.GetKeyboardForLanguage(lang, "us")
# does not really set keyboard, only fills some data
Keyboard.SetKeyboard(kbd)
# set language for encoding
WFM.SetLanguage(fqlanguage)
yast_kbd = "#{kbd},#{Keyboard.kb_model}"
consolefont = consolefonts[fqlanguage] || consolefonts[lang]
if consolefont.nil? && lang.size > 2
consolefont = consolefonts[lang[0,2]]
end
consolefont ||= []
font = consolefont[0] || ""
unicodeMap = consolefont[1] || ""
screenMap = consolefont[2] || ""
magic = consolefont[3] || ""
timezone = timezonemap[lang] || ""
contents =
"RC_LANG='#{fqlanguage}'\n" +
"CONSOLE_FONT='#{font}'\n" +
"CONSOLE_SCREENMAP='#{screenMap}'\n" +
"CONSOLE_UNICODEMAP='#{unicodeMap}'\n" +
"CONSOLE_MAGIC='#{magic}'\n" +
"KEYTABLE='#{Keyboard.keymap}'\n" +
"YAST_KEYBOARD='#{yast_kbd}'\n" +
"TIMEZONE='#{timezone}'\n" +
"CONSOLE_ENCODING='#{WFM.GetEncoding}'"
contents << "\nRC_LC_MESSAGES='zh_TW.UTF-8'" if lang == "zh_HK"
x11data = Keyboard.GetX11KeyData(Keyboard.keymap)
Builtins.foreach(x11data) do |key, val|
contents << "\n#{key}='#{val}'"
end
contents << "\n"
SCR.Write(path(".target.string"), dir + "/" + fqlanguage, contents)
end
end
end
end
Yast::GetcountrydataClient.new.main