214 lines
5.6 KiB
Python
Executable File
214 lines
5.6 KiB
Python
Executable File
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# taken from our isolinux gfxboot configuration
|
|
# gfxboot-theme-sabayon.git/langnames.inc
|
|
langs = [
|
|
[ "am", "am_ET", "Amharic" ],
|
|
[ "ar", "ar_EG", "Arabic" ],
|
|
[ "ast", "ast_ES", "Asturianu" ],
|
|
[ "be", "be_BY", "Беларуская" ],
|
|
[ "bg", "bg_BG", "Български" ],
|
|
[ "bn", "bn_BD", "Bengali" ],
|
|
[ "bs", "bs_BA", "Bosanski" ],
|
|
[ "ca", "ca_ES", "Català" ],
|
|
[ "cs", "cs_CZ", "Čeština" ],
|
|
[ "cy", "cy_GB", "Cymraeg" ],
|
|
[ "da", "da_DK", "Dansk" ],
|
|
[ "de", "de_DE", "Deutsch" ],
|
|
[ "dz", "dz_BT", "Dzongkha" ],
|
|
[ "el", "el_GR", "Ελληνικά" ],
|
|
[ "en", "en_US", "English" ],
|
|
[ "eo", "eo", "Esperanto" ],
|
|
[ "es", "es_ES", "Español" ],
|
|
[ "et", "et_EE", "Eesti" ],
|
|
[ "eu", "eu_ES", "Euskara" ],
|
|
[ "fi", "fi_FI", "Suomi" ],
|
|
[ "fr", "fr_FR", "Français" ],
|
|
[ "ga", "ga_IE", "Gaeilge" ],
|
|
[ "gl", "gl_ES", "Galego" ],
|
|
[ "gu", "gu_IN", "Gujarati" ],
|
|
[ "he", "he_IL", "תירבע" ],
|
|
[ "hi", "hi_IN", "Hindi" ],
|
|
[ "hr", "hr_HR", "Hrvatski" ],
|
|
[ "hu", "hu_HU", "Magyar" ],
|
|
[ "id", "id_ID", "Bahasa Indonesia" ],
|
|
[ "it", "it_IT", "Italiano" ],
|
|
[ "ja", "ja_JP", "日本語" ],
|
|
[ "ka", "ka_GE", "ქართული" ],
|
|
[ "kk", "kk_KZ", "Қазақ" ],
|
|
[ "km", "km_KH", "Khmer" ],
|
|
[ "ko", "ko_KR", "한국어" ],
|
|
[ "ku", "ku_TR", "Kurdî" ],
|
|
[ "lt", "lt_LT", "Lietuviškai" ],
|
|
[ "lv", "lv_LV", "Latviski" ],
|
|
[ "mk", "mk_MK", "Македонски" ],
|
|
[ "ml", "ml_IN", "Malayalam" ],
|
|
[ "mr", "mr_IN", "Marathi" ],
|
|
[ "ne", "ne_NP", "Nepali" ],
|
|
[ "nl", "nl_NL", "Nederlands" ],
|
|
[ "nb", "nb_NO", "Norsk bokmål" ],
|
|
[ "nn", "nn_NO", "Norsk nynorsk" ],
|
|
[ "pa", "pa_IN", "Punjabi (Gurmukhi)" ],
|
|
[ "pl", "pl_PL", "Polski" ],
|
|
[ "pt_BR", "pt_BR", "Português do Brasil" ],
|
|
[ "pt_PT", "pt_PT", "Português" ],
|
|
[ "ro", "ro_RO", "Română" ],
|
|
[ "ru", "ru_RU", "Русский" ],
|
|
[ "se", "se_NO", "Sámegillii" ],
|
|
[ "sk", "sk_SK", "Slovenčina" ],
|
|
[ "sl", "sl_SI", "Slovenščina" ],
|
|
[ "sq", "sq_AL", "Shqip" ],
|
|
[ "sr", "sr_RS", "Српски" ],
|
|
[ "sv", "sv_SE", "Svenska" ],
|
|
[ "ta", "ta_IN", "Tamil" ],
|
|
[ "th", "th_TH", "Thai" ],
|
|
[ "tl", "tl_PH", "Tagalog" ],
|
|
[ "tr", "tr_TR", "Türkçe" ],
|
|
[ "uk", "uk_UA", "Українська" ],
|
|
[ "vi", "vi_VN", "Tiếng Việt" ],
|
|
[ "wo", "wo_SN", "Wolof" ],
|
|
[ "zh_CN", "zh_CN", "中文(简体)" ],
|
|
[ "zh_TW", "zh_TW", "中文(繁體)" ],
|
|
]
|
|
|
|
keymaps = [
|
|
[ "af", "Afghanistan"],
|
|
[ "al", "Albania"],
|
|
[ "ad", "Andorra"],
|
|
[ "ara", "Arabic"],
|
|
[ "am", "Armenia"],
|
|
[ "es_ast", "Asturian"],
|
|
[ "az", "Azerbaijan"],
|
|
[ "bd", "Bangladesh"],
|
|
[ "by", "Belarus"],
|
|
[ "be", "Belgium"],
|
|
[ "bt", "Bhutan"],
|
|
[ "ba", "Bosnia"],
|
|
[ "br", "Brazil"],
|
|
[ "bg", "Bulgaria"],
|
|
[ "kh", "Cambodia"],
|
|
[ "ca", "Canada"],
|
|
[ "es_cat", "Catalan"],
|
|
[ "cn", "China"],
|
|
[ "cd", "Congo"],
|
|
[ "hr", "Croatia"],
|
|
[ "cz", "Czechia"],
|
|
[ "dk", "Denmark"],
|
|
[ "us_dvorak", "Dvorak"],
|
|
[ "epo", "Esperanto"],
|
|
[ "ee", "Estonia"],
|
|
[ "et", "Ethiopia"],
|
|
[ "fo", "Faroes"],
|
|
[ "fi", "Finland"],
|
|
[ "fr_oss", "France"],
|
|
[ "ge", "Georgia"],
|
|
[ "de", "Germany"],
|
|
[ "gh", "Ghana"],
|
|
[ "gr", "Greece"],
|
|
[ "gn", "Guinea"],
|
|
[ "in_guj", "Gujarati"],
|
|
[ "in_guru", "Gurmukhi"],
|
|
[ "hu", "Hungary"],
|
|
[ "is", "Iceland"],
|
|
[ "in", "India"],
|
|
[ "ir", "Iran"],
|
|
[ "iq", "Iraq"],
|
|
[ "ie", "Ireland"],
|
|
[ "il", "Israel"],
|
|
[ "it", "Italy"],
|
|
[ "jp", "Japan"],
|
|
[ "in_kan", "Kannada"],
|
|
[ "kz", "Kazakhstan"],
|
|
[ "kr", "Korea"],
|
|
[ "tr_ku", "Kurdish"],
|
|
[ "kg", "Kyrgyzstan"],
|
|
[ "la", "Laos"],
|
|
[ "latam", "Latin Amer."],
|
|
[ "lv", "Latvia"],
|
|
[ "lt", "Lithuania"],
|
|
[ "mk", "Macedonia"],
|
|
[ "in_mal", "Malayalam"],
|
|
[ "mv", "Maldives"],
|
|
[ "mt", "Malta"],
|
|
[ "mao", "Maori"],
|
|
[ "mn", "Mongolia"],
|
|
[ "me", "Montenegro"],
|
|
[ "ma", "Morocco"],
|
|
[ "mm", "Myanmar"],
|
|
[ "np", "Nepal"],
|
|
[ "nl", "Netherlands"],
|
|
[ "ng", "Nigeria"],
|
|
[ "no", "Norway"],
|
|
[ "pk", "Pakistan"],
|
|
[ "pl", "Poland"],
|
|
[ "pt", "Portugal"],
|
|
[ "ro", "Romania"],
|
|
[ "ru", "Russia"],
|
|
[ "fi_smi", "Saami (Fin.)"],
|
|
[ "no_smi", "Saami (Nor.)"],
|
|
[ "se_smi", "Saami (Swe.)"],
|
|
[ "sn", "Senegal"],
|
|
[ "rs", "Serbia"],
|
|
[ "sk", "Slovakia"],
|
|
[ "si", "Slovenia"],
|
|
[ "za", "South Africa"],
|
|
[ "es", "Spain"],
|
|
[ "lk", "Sri Lanka"],
|
|
[ "se", "Sweden"],
|
|
[ "ch_fr", "Swiss French"],
|
|
[ "ch", "Swiss German"],
|
|
[ "sy", "Syria"],
|
|
[ "tj", "Tajikistan"],
|
|
[ "in_tam", "Tamil"],
|
|
[ "in_tel", "Telugu"],
|
|
[ "th", "Thailand"],
|
|
[ "tr", "Turkey (Q)"],
|
|
[ "tr_f", "Turkey (F)"],
|
|
[ "tm", "Turkmenistan"],
|
|
[ "gb", "English UK"],
|
|
[ "us", "USA"],
|
|
[ "us_intl", "USA Intl."],
|
|
[ "ua", "Ukraine"],
|
|
[ "uz", "Uzbekistan"],
|
|
[ "vn", "Vietnam"],
|
|
]
|
|
|
|
print("""\
|
|
submenu "Language Selection" {
|
|
""")
|
|
|
|
for shortlang, lang, name in langs:
|
|
print("""\
|
|
menuentry "%(name)s" {
|
|
echo "Switching to: $chosen"
|
|
set lang=%(lang)s
|
|
set bootlang=%(lang)s
|
|
export bootlang
|
|
export lang
|
|
configfile /boot/grub/grub.cfg
|
|
}
|
|
""" % {'name': name, 'lang': lang,})
|
|
|
|
print("""\
|
|
}
|
|
""")
|
|
|
|
print("""\
|
|
submenu "Keyboard Selection" {
|
|
""")
|
|
|
|
for keymap, name in keymaps:
|
|
print("""\
|
|
menuentry "%(name)s" {
|
|
echo "Switching to: $chosen"
|
|
set bootkeymap=%(keymap)s
|
|
export bootkeymap
|
|
configfile /boot/grub/grub.cfg
|
|
}
|
|
""" % {'name': name, 'keymap': keymap,})
|
|
|
|
print("""\
|
|
}
|
|
""")
|