2017-09-15 09:39:27 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
lang=en_US
|
|
|
|
for o in $(cat /proc/cmdline); do
|
|
|
|
case $o in
|
|
|
|
lang=*)
|
|
|
|
eval $o
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# we need the _NOT so there is always a field 2
|
|
|
|
Country=$(echo "$lang"_NOT | cut -d_ -f2)
|
|
|
|
Language=$(echo "$lang" | cut -d_ -f1)
|
|
|
|
|
|
|
|
file="/usr/share/langset/$Language""_$Country"
|
|
|
|
if ! test -f "$file"; then
|
|
|
|
file="/usr/share/langset/$Language"
|
|
|
|
fi
|
|
|
|
|
2017-12-12 11:57:08 +00:00
|
|
|
# Read all values of the langset data files
|
|
|
|
. "$file"
|
|
|
|
|
|
|
|
# Apply all options
|
|
|
|
[ -n "$RC_LC_MESSAGES" ] || RC_LC_MESSAGES=$RC_LANG
|
|
|
|
[ -z "$RC_LANG" ] || localectl set-locale LANG=$RC_LANG LC_MESSAGES=$RC_LC_MESSAGES
|
|
|
|
|
|
|
|
[ -z "$CONSOLE_FONT" ] || echo "FONT=$CONSOLE_FONT" >> /etc/vconsole.conf
|
|
|
|
[ -z "$CONSOLE_SCREENMAP" ] || echo "FONT_MAP=$CONSOLE_SCREENMAP" >> /etc/vconsole.conf
|
|
|
|
[ -z "$CONSOLE_UNICODEMAP" ] || echo "FONT_UNIMAP=$CONSOLE_UNICODEMAP" >> /etc/vconsole.conf
|
|
|
|
|
|
|
|
[ -z "$KEYTABLE" ] || localectl set-keymap $KEYTABLE
|
|
|
|
|
2017-12-15 19:52:50 +00:00
|
|
|
[ -n "$TIMEZONE" ] && [ -f "/usr/share/zoneinfo/$TIMEZONE" ] && rm -f /etc/localtime && ln -s /usr/share/zoneinfo/$TIMEZONE /etc/localtime
|
2017-12-12 11:57:08 +00:00
|
|
|
|
|
|
|
if [ -n "$XkbLayout" ] && [ -n "$XkbModel" ] && [ -n "$XkbVariant" ] && [ -n "$XkbOptions" ]; then
|
|
|
|
localectl set-x11-keymap "$XkbLayout" "$XkbModel" "$XkbVariant" "$XkbOptions"
|
|
|
|
fi
|
2017-09-15 09:39:27 +00:00
|
|
|
|
|
|
|
echo "$Language""_$Country" > /var/lib/zypp/RequestedLocales
|
|
|
|
|
|
|
|
# Apply the settings
|
|
|
|
systemctl restart systemd-vconsole-setup
|