File getcountrydata.ycp of Package kiwi-config-openSUSE
{
import "Language";
import "Keyboard";
import "Console";
map<string, list> langs = Language::GetLanguagesMap (true);
map consolefonts = (map)SCR::Read (.target.yast2, "consolefonts.ycp");
string dir = "/tmp/locale-settings/";
foreach (string lang, list ll, langs, {
string suffix = ll[2]:"";
string fqlanguage = lang + suffix;
string kbd = Keyboard::GetKeyboardForLanguage (lang, "us");
// does not really set keyboard, only fills some data
Keyboard::SetKeyboard (kbd);
string yast_kbd = kbd + "," + Keyboard::kb_model;
list consolefont=consolefonts[fqlanguage]:consolefonts[lang]:[];
string font = consolefont[0]:"";
string unicodeMap = consolefont[1]:"";
string screenMap = consolefont[2]:"";
string magic = consolefont[3]:"";
string contents = sformat ("RC_LANG: %1
CONSOLE_FONT: %2
CONSOLE_SCREENMAP: %3
CONSOLE_UNICODEMAP: %4
CONSOLE_MAGIC: %5
KEYTABLE: %6
YAST_KEYBOARD: %7
COMPOSETABLE: %8",
fqlanguage, font, unicodeMap, screenMap, magic,
Keyboard::keymap, yast_kbd, Keyboard::compose_table);
if (lang == "zh_HK")
contents = contents + "\nRC_LC_MESSAGES: zh_TW.UTF-8";
map x11data = Keyboard::GetX11KeyData (Keyboard::keymap);
foreach (string key, string val, (map<string,string>) x11data, {
contents = sformat ("%1\n%2: %3", contents, key, val);
});
SCR::Write (.target.string, dir + fqlanguage, contents);
});
}