re-organize lang/keymap/font settings

merge-requests/260/head
Bernhard Landauer 7 years ago
parent 43c08b8225
commit 12205d10be

@ -34,7 +34,7 @@ fi
[[ $1 == "-d" ]] && declare -i debug=1
id_system
select_language
set_language
mk_connection
check_requirements
greeting

@ -206,80 +206,21 @@ check_for_error() {
fi
}
# Add locale on-the-fly and sets source translation file for installer
select_language() {
fl="1" # terminus-font variation supporting most languages, to be processed in set_keymap()
if [[ ! $(grep lang /var/log/m-a.ini 2>/dev/null) ]]; then
DIALOG " Select Language " --default-item '3' --menu "\n " 0 0 11 \
"1" $"Danish|(da_DK)" \
"2" $"Dutch|(nl_NL)" \
"3" $"English|(en_**)" \
"4" $"French|(fr_FR)" \
"5" $"German|(de_DE)" \
"6" $"Hungarian|(hu_HU)" \
"7" $"Italian|(it_IT)" \
"8" $"Portuguese|(pt_PT)" \
"9" $"Portuguese [Brasil]|(pt_BR)" \
"10" $"Russian|(ru_RU)" \
"11" $"Spanish|(es_ES)" 2>${ANSWER}
case $(cat ${ANSWER}) in
"1") source $DATADIR/translations/danish.trans
CURR_LOCALE="da_DK.UTF-8"
KEYMAP="dk"
;;
"2") source $DATADIR/translations/dutch.trans
CURR_LOCALE="nl_NL.UTF-8"
KEYMAP="nl"
;;
"3") source $DATADIR/translations/english.trans
CURR_LOCALE="en_US.UTF-8"
KEYMAP="us"
;;
"4") source $DATADIR/translations/french.trans
CURR_LOCALE="fr_FR.UTF-8"
KEYMAP="fr"
;;
"5") source $DATADIR/translations/german.trans
CURR_LOCALE="de_DE.UTF-8"
KEYMAP="de"
;;
"6") source $DATADIR/translations/hungarian.trans
CURR_LOCALE="hu_HU.UTF-8"
KEYMAP="hu"
fl="2"
;;
"7") source $DATADIR/translations/italian.trans
CURR_LOCALE="it_IT.UTF-8"
KEYMAP="it"
;;
"8") source $DATADIR/translations/portuguese.trans
CURR_LOCALE="pt_PT.UTF-8"
KEYMAP="pt-latin1"
;;
"9") source $DATADIR/translations/portuguese_brasil.trans
CURR_LOCALE="pt_BR.UTF-8"
KEYMAP="pt-latin1"
;;
"10") source $DATADIR/translations/russian.trans
CURR_LOCALE="ru_RU.UTF-8"
KEYMAP="ru"
fl="u"
;;
"11") source $DATADIR/translations/spanish.trans
CURR_LOCALE="es_ES.UTF-8"
KEYMAP="es"
;;
*) clear && exit 0
;;
esac
set_language() {
if [[ ! $(grep font /var/log/m-a.ini 2>/dev/null) ]]; then
select_language
else
CURR_LOCALE="$(grep lang /var/log/m-a.ini | cut -d' ' -f3)"
fi
KEYMAP="$(grep keymap /var/log/m-a.ini | cut -d' ' -f3)"
FONT="$(grep font /var/log/m-a.ini | cut -d' ' -f3)"
TRANS="$(grep translation /var/log/m-a.ini | cut -d' ' -f3)"
import $DATADIR/translations/$TRANS.trans
[[ $(grep keymap /var/log/m-a.ini 2>/dev/null) ]] && KEYMAP="$(grep keymap /var/log/m-a.ini | cut -d' ' -f3)" || set_keymap
# does user want to change the old settings?
DIALOG " $_SelLang " --yesno "\nLanguage: [ ${TRANS} ]\n Keymap: [ ${KEYMAP} ].\n\n${_Change}?\n " 0 0 && select_language
fi
# Generate the chosen locale and set the language
# Generate locale and set language
DIALOG " $_Config " --infobox "\n$_ApplySet\n " 0 0
sed -i "s/#${CURR_LOCALE}/${CURR_LOCALE}/" /etc/locale.gen
locale-gen >/dev/null 2>$ERR
@ -287,21 +228,94 @@ select_language() {
check_for_error "set LANG=${CURR_LOCALE}" $?
ini system.lang "$CURR_LOCALE"
}
# virtual console keymap and font
set_keymap() {
DIALOG " $_VCKeymapTitle " --yesno "\n$_DefKeymap [ ${KEYMAP} ].\n${_Change}?\n " 0 0 && select_keymap
loadkeys $KEYMAP 2>$ERR
check_for_error "loadkeys $KEYMAP" "$?"
ini linux.keymap "$KEYMAP"
# set keymap for openrc too
echo "keymap=\"$KEYMAP\"" > /tmp/keymap
biggest_resolution=$(head -n 1 /sys/class/drm/card*/*/modes | awk -F'[^0-9]*' '{print $1}' | awk 'BEGIN{a= 0}{if ($1>a) a=$1 fi} END{print a}')
setfont $FONT 2>$ERR
check_for_error "set font $FONT" $?
ini system.font "$FONT"
# Choose terminus font size depending on resolution
# store settings for re-use in target install ## to be accomplished via ini in the future
echo -e "KEYMAP=${KEYMAP}\nFONT=${FONT}" > /tmp/vconsole.conf
echo -e "consolefont=\"${FONT}\"" > /tmp/consolefont
echo -e "keymap=\"$KEYMAP\"" > /tmp/keymap
}
# set locale, keymap and font and source translation file for installer
select_language() {
fl="1" # terminus-font variation supporting most languages, to be processed in set_keymap()
DIALOG " Select Language " --default-item '3' --menu "\n " 0 0 11 \
"1" $"Danish|(da_DK)" \
"2" $"Dutch|(nl_NL)" \
"3" $"English|(en_**)" \
"4" $"French|(fr_FR)" \
"5" $"German|(de_DE)" \
"6" $"Hungarian|(hu_HU)" \
"7" $"Italian|(it_IT)" \
"8" $"Portuguese|(pt_PT)" \
"9" $"Portuguese [Brasil]|(pt_BR)" \
"10" $"Russian|(ru_RU)" \
"11" $"Spanish|(es_ES)" 2>${ANSWER}
case $(cat ${ANSWER}) in
"1") TRANS="danish"
CURR_LOCALE="da_DK.UTF-8"
KEYMAP="dk"
;;
"2") TRANS="dutch"
CURR_LOCALE="nl_NL.UTF-8"
KEYMAP="nl"
;;
"3") TRANS="english"
CURR_LOCALE="en_US.UTF-8"
KEYMAP="us"
;;
"4") TRANS="french"
CURR_LOCALE="fr_FR.UTF-8"
KEYMAP="fr"
;;
"5") TRANS="german"
CURR_LOCALE="de_DE.UTF-8"
KEYMAP="de"
;;
"6") TRANS="hungarian"
CURR_LOCALE="hu_HU.UTF-8"
KEYMAP="hu"
fl="2"
;;
"7") TRANS="italian"
CURR_LOCALE="it_IT.UTF-8"
KEYMAP="it"
;;
"8") TRANS="portuguese"
CURR_LOCALE="pt_PT.UTF-8"
KEYMAP="pt-latin1"
;;
"9") TRANS="portuguese_brasil"
CURR_LOCALE="pt_BR.UTF-8"
KEYMAP="pt-latin1"
;;
"10") TRANS="russian"
CURR_LOCALE="ru_RU.UTF-8"
KEYMAP="ru"
fl="u"
;;
"11") TRANS="spanish"
CURR_LOCALE="es_ES.UTF-8"
KEYMAP="es"
;;
*) clear && exit 0
;;
esac
# source translation file
import $DATADIR/translations/$TRANS.trans
ini translation "$TRANS"
# adjust terminus font size depending on resolution
biggest_resolution=$(head -n 1 /sys/class/drm/card*/*/modes | awk -F'[^0-9]*' '{print $1}' | awk 'BEGIN{a= 0}{if ($1>a) a=$1 fi} END{print a}')
if [[ $biggest_resolution -gt 1920 ]]; then
fs="24"
elif [[ $biggest_resolution -eq 1920 ]]; then
@ -312,12 +326,9 @@ set_keymap() {
FONT="ter-${fl}${fs}n"
ini linux.font "$FONT"
echo -e "KEYMAP=${KEYMAP}\nFONT=${FONT}" > /tmp/vconsole.conf
echo -e "consolefont=\"${FONT}\"" > /tmp/consolefont
setfont $FONT 2>$ERR
check_for_error "set font $FONT" $?
ini system.font "$FONT"
# does user want to change the default keymap?
DIALOG " $_VCKeymapTitle " --yesno "\n$_DefKeymap [ ${KEYMAP} ].\n\n${_Change}?\n " 0 0 && select_keymap
}
select_keymap() {

Loading…
Cancel
Save