Adding upstream version 1.157.1.
[live-boot-grml.git] / scripts / live-bottom / 14locales
index 94e3cf2..6348338 100755 (executable)
@@ -27,7 +27,10 @@ fi
 
 . /scripts/live-functions
 
-log_begin_msg "Setting up locales..."
+log_begin_msg "Setting up locales"
+
+# Cosmetic line wrapping for output of local-gen
+echo
 
 # live-initramfs script
 
@@ -75,35 +78,51 @@ then
                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)
 
-       language="${LANG%%.UTF-8*}"
-       if [ -d /root/etc/default/kdm.d/ ]
+       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)
 
-cat > /root/etc/default/kdm.d/live-autologin << EOF
-LANGUAGE=${language}
-EOF
+               if [ -n "${LANG}" ]
+               then
+                       log_warning_msg "Choosing locale '${LANG}' as '${locale}' is unsupported."
+               fi
+       fi
 
-       elif [ -f /root/etc/kde3/kdm/kdmrc ]
+       if [ -z "${LANG}" ]
        then
-               sed -i -r -e "s/#Language=.*/Language=${language}/" \
-                       /root/etc/kde3/kdm/kdmrc
+               log_warning_msg "Locale '${locale}' is unsupported."
+               codepage="UTF-8"
+               language="en_US"
+               locale="${language}.${codepage}"
+               LANG="${language}.${codepage}"
        fi
 
-       if [ -z "${LANG}" ]
+       if [ -d /root/etc/default/kdm.d/ ]
        then
-               log_warning_msg "Locale ${locale} is unsupported."
-               locale="en_US.UTF-8"
-               LANG="${locale}"
+               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}" >> /root/etc/default/locale
        printf 'LANG="%s"\n' "${LANG}" >> /root/etc/environment
-       printf '%s UTF-8\n' "${LANG}" > /root/etc/locale.gen
-       chroot /root /usr/sbin/locale-gen
+       printf '%s %s\n' "${LANG}" "${codepage}" > /root/etc/locale.gen
+
+       if [ -z "${SILENT}" ]
+       then
+               chroot /root /usr/sbin/locale-gen
+       else
+               chroot /root /usr/sbin/locale-gen > /dev/null 2>&1
+       fi
 fi
 
 log_end_msg