. /scripts/live-functions
-log_begin_msg "Setting up locales..."
+log_begin_msg "Setting up locales"
# live-initramfs script
then
# use rootfs configured locale
locale=$(grep -s 'LANG=' ${grep_file} | sed s/'LANG='// | tr -d '"' )
-else
- grep_file=/root/etc/default/locale
fi
if [ -n "${LOCALE}" ]
locale="${locale}_${uploc}.UTF-8"
fi
- LANG=$(grep "^${locale}" /root/usr/share/i18n/SUPPORTED | grep UTF-8 | sed -e 's, .*,,' -e q)
+ LANG=
+ language="$(echo ${locale} | cut -d. -f1)"
+ eval $(awk '/^'"${locale}"'/ { print "LANG=" $1 " codepage=" $2; exit; }' /root/usr/share/i18n/SUPPORTED)
+
+ if [ -z "${LANG}" ]
+ then
+ # Try and fallback to another codepage for this language.
+ eval $(awk '/^'"${language}"'/ { print "LANG=" $1 " codepage=" $2; exit; }' /root/usr/share/i18n/SUPPORTED)
+
+ if [ -n "${LANG}" ]
+ then
+ log_warning_msg "Choosing locale '${LANG}' as '${locale}' is unsupported."
+ fi
+ fi
if [ -z "${LANG}" ]
then
- log_warning_message "Locale ${locale} is unsupported."
- locale="en_US.UTF-8"
- LANG="${locale}"
+ log_warning_msg "Locale '${locale}' is unsupported."
+ codepage="UTF-8"
+ language="en_US"
+ locale="${language}.${codepage}"
+ LANG="${language}.${codepage}"
+ fi
+
+ if [ -d /root/etc/default/kdm.d/ ]
+ then
+ printf 'LANGUAGE=%s\n' "${LANG}" >> /root/etc/default/kdm.d/live-autologin
+ elif [ -f /root/etc/kde3/kdm/kdmrc ]
+ then
+ sed -i -r -e "s/#Language=.*/Language=${language}/" \
+ /root/etc/kde3/kdm/kdmrc
fi
really_export LANG
- printf 'LANG=%s\n' "${LANG}" > "${grep_file}"
- printf '%s UTF-8\n' "${LANG}" > /root/etc/locale.gen
+ printf 'LANG="%s"\n' "${LANG}" >> /root/etc/default/locale
+ printf 'LANG="%s"\n' "${LANG}" >> /root/etc/environment
+ printf '%s %s\n' "${LANG}" "${codepage}" > /root/etc/locale.gen
chroot /root /usr/sbin/locale-gen
fi