[SCM] debian-live branch, master, updated. debian/1.136.3-1-20-gf36f7bb

Chris Lamb chris at chris-lamb.co.uk
Fri Aug 8 19:05:02 UTC 2008


The following commit has been merged in the master branch:
commit b9eebdd64d31e967c74150c034269dc1bb682c0e
Author: Chris Lamb <chris at chris-lamb.co.uk>
Date:   Fri Aug 8 19:48:46 2008 +0100

    Rework locale handling
    
     * Support all codepages, not just UTF-8 ones.
    
     * Although UTF-8 variants are still preferred, specifying an invalid
       codepage as an extension to a known language will not necessarily result
       in en_US.UTF-8 being chosen - it will try and use an alternate.
    
     * Fixes an issue whereby an unknown locale would end up as a blank
       "language" in /etc/kde3/kdm/kdmrc instead of en_US.
    
     * General tidying of the code.
    
    Signed-off-by: Chris Lamb <chris at chris-lamb.co.uk>

diff --git a/scripts/live-bottom/14locales b/scripts/live-bottom/14locales
index b7ea704..aa75369 100755
--- a/scripts/live-bottom/14locales
+++ b/scripts/live-bottom/14locales
@@ -75,34 +75,44 @@ 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
+	printf '%s %s\n' "${LANG}" "${codepage}" > /root/etc/locale.gen
 	chroot /root /usr/sbin/locale-gen
 fi
 

-- 
debian-live



More information about the debian-live-changes mailing list