Hi, here are 2 files to improve the locale situation. They are heavily based on Musikolo's work. The improvement over this is , that you can
1) use system-config-language ( from kde menu : System / Language ) 2) you can still use a custom boot lang setting to override the system setting Patch can be applied with : patch -Np1 -i /path/to/locale.diff lang.sh belongs into /etc/profile.d and needs to be chmod 755 Please test and give feedback. -- Tobias Gerschner Member of Board of Yoper Linux Ltd. NZ Knowing is not enough; we must apply. Willing is not enough; we must do.
lang.sh
Description: Bourne shell script
--- /R//etc/rc.d/init.d/functions 2006-11-23 23:23:23.000000000 +1300
+++ /etc/rc.d/init.d/functions 2007-06-06 20:25:48.000000000 +1200
@@ -21,10 +21,6 @@
[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`"
-if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then
- . /etc/profile.d/lang.sh
-fi
-
# Read in our configuration
if [ -z "${BOOTUP:-}" ]; then
if [ -f /etc/sysconfig/init ]; then
--- /R//etc/rc.d/init.d/localization 2007-05-15 02:18:05.000000000 +1200
+++ /etc/rc.d/init.d/localization 2007-06-06 08:36:39.000000000 +1200
@@ -1,15 +1,42 @@
-# This file is called upon request, directly running has no effect
-
-### localization
+#!/bin/sh -x
+# WARNING: This file is called upon request, directly running has no effect
# Allow language specification via commandline. The default language
# will be overridden via "lang=de" boot commandline
-LANGUAGE="$(getbootparam lang 2>/dev/null)"
-[ -n "$LANGUAGE" ] || LANGUAGE="de"
+## . /etc/rc.d/init.d/functions
+## LANGUAGE="$(getbootparam lang 2>/dev/null)"
+
+# same for strings
+stringinstring(){
+ case "$2" in *$1*) return 0;; esac
+ return 1
+}
+
+# Reread boot command line; echo last parameter's argument or return false.
+getbootparam(){
+ stringinstring " $1=" "$CMDLINE" || return 1
+ result="${CMDLINE##*$1=}"
+ result="${result%%[ ]*}"
+ echo "$result"
+ return 0
+}
+
+LANG=$(getbootparam lang 2>/dev/null)
+
+if [ -z "$LANG" ] ; then
+
+if [ -f /etc/sysconfig/i18n ]; then
+ source /etc/sysconfig/i18n
+else
+ LANG="us"
+fi
+
+fi
+
# The default language/keyboard to use. This CANNOT be autoprobed.
# Most of these variables will be used to generate the KDE defaults
# and will be inserted into /etc/sysconfig/* below.
-case "$LANGUAGE" in
+case "$LANG" in
de)
# German version
COUNTRY="de"
@@ -20,7 +47,20 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="us,fr"
- TZ="Europe/Berlin"
+ [ -z "$TZ" ] && TZ="Europe/Berlin"
+ ;;
+
+ de_*)
+ # German version
+ COUNTRY="de"
+ LANG="$LANG"
+ KEYTABLE="de-latin1-nodeadkeys"
+ XKEYBOARD="de"
+ KDEKEYBOARD="de"
+ CHARSET="iso8859-15"
+ # Additional KDE Keyboards
+ KDEKEYBOARDS="us,fr"
+ [ -z "$TZ" ] && TZ="Europe/Berlin"
;;
de-utf8)
# German version UTF-8
@@ -33,7 +73,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,fr"
- TZ="Europe/Berlin"
+ [ -z "$TZ" ] && TZ="Europe/Berlin"
;;
au)
# Australian version
@@ -46,7 +86,7 @@
CHARSET="iso8859-1"
# Additional KDE Keyboards
KDEKEYBOARDS="us,fr"
- TZ="Australia/Sydney"
+ [ -z "$TZ" ] && TZ="Australia/Sydney"
;;
au-utf8)
# Australian version
@@ -59,7 +99,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,fr"
- TZ="Australia/Sydney"
+ [ -z "$TZ" ] && TZ="Australia/Sydney"
;;
be)
# Belgian version
@@ -72,7 +112,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Brussels"
+ [ -z "$TZ" ] && TZ="Europe/Brussels"
;;
be-utf8)
# Belgian version
@@ -85,7 +125,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Brussels"
+ [ -z "$TZ" ] && TZ="Europe/Brussels"
;;
bg)
# Bulgarian version
@@ -98,7 +138,7 @@
CHARSET="microsoft-cp1251"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Sofia"
+ [ -z "$TZ" ] && TZ="Europe/Sofia"
;;
bg-utf8)
# Bulgarian version
@@ -111,7 +151,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Sofia"
+ [ -z "$TZ" ] && TZ="Europe/Sofia"
;;
br)
# Brazilian Version
@@ -124,7 +164,7 @@
CHARSET="iso8859-1"
# Additional KDE Keyboards
KDEKEYBOARDS="us,br"
- TZ="America/Sao_Paulo"
+ [ -z "$TZ" ] && TZ="America/Sao_Paulo"
;;
br-utf8)
# Brazilian Version
@@ -137,7 +177,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,br"
- TZ="America/Sao_Paulo"
+ [ -z "$TZ" ] && TZ="America/Sao_Paulo"
;;
ch)
# Swiss version (basically de with some modifications)
@@ -150,7 +190,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Zurich"
+ [ -z "$TZ" ] && TZ="Europe/Zurich"
;;
ch-utf8)
# Swiss version (basically de with some modifications)
@@ -163,7 +203,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Zurich"
+ [ -z "$TZ" ] && TZ="Europe/Zurich"
;;
cn)
# Simplified Chinese version
@@ -176,7 +216,7 @@
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
XMODIFIERS="@im=Chinput"
- TZ="Asia/Shanghai"
+ [ -z "$TZ" ] && TZ="Asia/Shanghai"
;;
cn-utf8)
# Simplified Chinese version
@@ -189,7 +229,7 @@
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
XMODIFIERS="@im=Chinput"
- TZ="Asia/Shanghai"
+ [ -z "$TZ" ] && TZ="Asia/Shanghai"
;;
cs|cz)
# Czech version
@@ -202,7 +242,7 @@
CHARSET="iso8859-2"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Prague"
+ [ -z "$TZ" ] && TZ="Europe/Prague"
CONSOLEFONT="iso02g"
;;
cs-utf8|cz-utf8)
@@ -216,7 +256,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Prague"
+ [ -z "$TZ" ] && TZ="Europe/Prague"
CONSOLEFONT="iso02g"
;;
dk|da)
@@ -232,7 +272,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="dk,de,us,fr"
- TZ="Europe/Copenhagen"
+ [ -z "$TZ" ] && TZ="Europe/Copenhagen"
;;
dk-utf8|da-utf8)
# Dansk version
@@ -247,7 +287,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="dk,de,us,fr"
- TZ="Europe/Copenhagen"
+ [ -z "$TZ" ] && TZ="Europe/Copenhagen"
;;
el)
# Greek version
@@ -264,7 +304,7 @@
SYSFONTACM="iso07"
# Additional KDE Keyboards
KDEKEYBOARDS="el"
- TZ="Europe/Athens"
+ [ -z "$TZ" ] && TZ="Europe/Athens"
;;
el-utf8)
# Greek version
@@ -281,32 +321,34 @@
SYSFONTACM="iso07"
# Additional KDE Keyboards
KDEKEYBOARDS="el"
- TZ="Europe/Athens"
+ [ -z "$TZ" ] && TZ="Europe/Athens"
;;
es)
# Spanish version
COUNTRY="es"
LANG="[EMAIL PROTECTED]"
+ [EMAIL PROTECTED]
KEYTABLE="es"
XKEYBOARD="es"
KDEKEYBOARD="es"
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Madrid"
+ [ -z "$TZ" ] && TZ="Europe/Madrid"
;;
es-utf8)
# Spanish version
LANGUAGE="es_ES:es"
COUNTRY="es"
LANG="es_ES.UTF-8"
+ [EMAIL PROTECTED]
KEYTABLE="es"
XKEYBOARD="es"
KDEKEYBOARD="es"
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Madrid"
+ [ -z "$TZ" ] && TZ="Europe/Madrid"
CONSOLEFONT="lat10-16"
;;
fi)
@@ -319,7 +361,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="us"
- TZ="Europe/Helsinki"
+ [ -z "$TZ" ] && TZ="Europe/Helsinki"
;;
fi-utf8)
# Finnish version, though we may not have the kde-i18n files
@@ -332,7 +374,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us"
- TZ="Europe/Helsinki"
+ [ -z "$TZ" ] && TZ="Europe/Helsinki"
;;
fr)
# French version
@@ -344,7 +386,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us"
- TZ="Europe/Paris"
+ [ -z "$TZ" ] && TZ="Europe/Paris"
;;
fr-utf8)
# French version
@@ -357,7 +399,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us"
- TZ="Europe/Paris"
+ [ -z "$TZ" ] && TZ="Europe/Paris"
;;
he|il)
# Hebrew version
@@ -370,7 +412,7 @@
CHARSET="iso8859-8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,fr,de"
- TZ="Asia/Jerusalem"
+ [ -z "$TZ" ] && TZ="Asia/Jerusalem"
;;
he-utf8|il-utf8)
# Hebrew version
@@ -383,7 +425,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,fr,de"
- TZ="Asia/Jerusalem"
+ [ -z "$TZ" ] && TZ="Asia/Jerusalem"
;;
ie)
# Irish (English) version
@@ -395,7 +437,7 @@
CHARSET="iso8859-15"
#Additional KDE Keyboards
KDEKEYBOARDS="gb,us,de,es,fr,it"
- TZ="Europe/Dublin"
+ [ -z "$TZ" ] && TZ="Europe/Dublin"
;;
ie-utf8)
# Irish (English) version
@@ -408,7 +450,7 @@
CHARSET="utf8"
#Additional KDE Keyboards
KDEKEYBOARDS="gb,us,de,es,fr,it"
- TZ="Europe/Dublin"
+ [ -z "$TZ" ] && TZ="Europe/Dublin"
;;
it)
# Italian version
@@ -420,7 +462,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="fr,us,de"
- TZ="Europe/Rome"
+ [ -z "$TZ" ] && TZ="Europe/Rome"
;;
it-utf8)
# Italian version
@@ -433,7 +475,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="fr,us,de"
- TZ="Europe/Rome"
+ [ -z "$TZ" ] && TZ="Europe/Rome"
;;
ja)
# (limited) Japanese version
@@ -446,7 +488,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="fr,us,de"
- TZ="Asia/Tokyo"
+ [ -z "$TZ" ] && TZ="Asia/Tokyo"
;;
ja-utf8)
# (limited) Japanese version
@@ -460,7 +502,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="fr,us,de"
- TZ="Asia/Tokyo"
+ [ -z "$TZ" ] && TZ="Asia/Tokyo"
;;
nl)
# Dutch version
@@ -472,7 +514,7 @@
CHARSET="iso8859-15"
# Additional KDE Keyboards
KDEKEYBOARDS="nl,de,fr"
- TZ="Europe/Amsterdam"
+ [ -z "$TZ" ] && TZ="Europe/Amsterdam"
;;
nl-utf8)
# Dutch version
@@ -485,7 +527,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="nl,de,fr"
- TZ="Europe/Amsterdam"
+ [ -z "$TZ" ] && TZ="Europe/Amsterdam"
;;
pl)
# Polish version
@@ -497,7 +539,7 @@
CHARSET="iso8859-2"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Warsaw"
+ [ -z "$TZ" ] && TZ="Europe/Warsaw"
CONSOLEFONT="iso02g"
;;
pl-utf8)
@@ -511,7 +553,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Warsaw"
+ [ -z "$TZ" ] && TZ="Europe/Warsaw"
CONSOLEFONT="iso02g"
;;
pt)
@@ -524,7 +566,7 @@
CHARSET="iso8859-1"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Lisbon"
+ [ -z "$TZ" ] && TZ="Europe/Lisbon"
CONSOLEFONT="lat10-16"
;;
pt-utf8)
@@ -538,7 +580,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Lisbon"
+ [ -z "$TZ" ] && TZ="Europe/Lisbon"
CONSOLEFONT="lat10-16"
;;
ru)
@@ -552,7 +594,7 @@
CONSOLEFONT="Cyr_a8x16"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Moscow"
+ [ -z "$TZ" ] && TZ="Europe/Moscow"
;;
ru-utf8)
# Russian version
@@ -566,7 +608,7 @@
CONSOLEFONT="Cyr_a8x16"
# Additional KDE Keyboards
KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Moscow"
+ [ -z "$TZ" ] && TZ="Europe/Moscow"
;;
sk)
# Slovak version (guessed)
@@ -578,7 +620,7 @@
CHARSET="iso8859-2"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de"
- TZ="Europe/Bratislava"
+ [ -z "$TZ" ] && TZ="Europe/Bratislava"
CONSOLEFONT="iso02g"
;;
sk-utf8)
@@ -592,7 +634,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de"
- TZ="Europe/Bratislava"
+ [ -z "$TZ" ] && TZ="Europe/Bratislava"
CONSOLEFONT="iso02g"
;;
sl)
@@ -606,7 +648,7 @@
CHARSET="iso8859-2"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de"
- TZ="Europe/Ljubljana"
+ [ -z "$TZ" ] && TZ="Europe/Ljubljana"
CONSOLEFONT="iso02g"
;;
sl-utf8)
@@ -620,7 +662,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de"
- TZ="Europe/Ljubljana"
+ [ -z "$TZ" ] && TZ="Europe/Ljubljana"
CONSOLEFONT="iso02g"
;;
tr)
@@ -633,7 +675,7 @@
CHARSET="iso8859-9"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Istanbul"
+ [ -z "$TZ" ] && TZ="Europe/Istanbul"
;;
tr-utf8)
# Turkish version (guessed)
@@ -646,7 +688,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Istanbul"
+ [ -z "$TZ" ] && TZ="Europe/Istanbul"
;;
tw)
# Traditional Chinese version (thanks to Chung-Yen Chang)
@@ -661,7 +703,7 @@
# Additional KDE Keyboards
KDEKEYBOARDS="us"
XMODIFIERS="@im=xcin"
- TZ="Asia/Taipei"
+ [ -z "$TZ" ] && TZ="Asia/Taipei"
;;
tw-utf8)
# Traditional Chinese version (thanks to Chung-Yen Chang)
@@ -676,7 +718,7 @@
# Additional KDE Keyboards
KDEKEYBOARDS="us"
XMODIFIERS="@im=xcin"
- TZ="Asia/Taipei"
+ [ -z "$TZ" ] && TZ="Asia/Taipei"
;;
uk)
# British version
@@ -689,7 +731,7 @@
CHARSET="iso8859-1"
# Additional KDE Keyboards
KDEKEYBOARDS="us"
- TZ="Europe/London"
+ [ -z "$TZ" ] && TZ="Europe/London"
;;
uk-utf8)
# British version UTF-8
@@ -702,7 +744,7 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="us"
- TZ="Europe/London"
+ [ -z "$TZ" ] && TZ="Europe/London"
;;
us-utf8)
# American version UTF-8
@@ -715,9 +757,9 @@
CHARSET="utf8"
# Additional KDE Keyboards
KDEKEYBOARDS="de,fr"
- TZ="America/New_York"
+ [ -z "$TZ" ] && TZ="America/New_York"
;;
- *)
+ us)
# American version
LANGUAGE="us"
COUNTRY="us"
@@ -728,58 +770,13 @@
CHARSET="iso8859-1"
# Additional KDE Keyboards
KDEKEYBOARDS="de,fr"
- TZ="America/New_York"
+ [ -z "$TZ" ] && TZ="America/New_York"
;;
esac
-# Export it now, so error messages get translated, too
-export LANG COUNTRY CHARSET
+## # Export it now, so error messages get translated, too
+## export LANG COUNTRY CHARSET
-# Allow keyboard override by boot commandline
-KKEYBOARD="$(getbootparam keyboard 2>/dev/null)"
-[ -n "$KKEYBOARD" ] && KEYTABLE="$KKEYBOARD"
-KXKEYBOARD="$(getbootparam xkeyboard 2>/dev/null)"
-if [ -n "$KXKEYBOARD" ]; then
- XKEYBOARD="$KXKEYBOARD"
- KDEKEYBOARD="$KXKEYBOARD"
-elif [ -n "$KKEYBOARD" ]; then
- XKEYBOARD="$KKEYBOARD"
- KDEKEYBOARD="$KKEYBOARD"
-fi
-
-# override dpi setting
-CUSTOM_DPI="$(getbootparam dpi 2>/dev/null)"
-
-if [ -f /.firstboot ] ; then
+export LANG LANGUAGE COUNTRY CHARSET KEYTABLE TZ
-# Write KNOPPIX config files for other scripts to parse
-# Standard variables/files
-echo "LANG=\"$LANG\"" > /etc/sysconfig/i18n
-echo "COUNTRY=\"$COUNTRY\"" >> /etc/sysconfig/i18n
-echo "LANGUAGE=\"$LANGUAGE\"" >> /etc/sysconfig/i18n
-echo "CHARSET=\"$CHARSET\"" >> /etc/sysconfig/i18n
-echo "XMODIFIERS=\"$XMODIFIERS\"" >> /etc/sysconfig/i18n
-
-# Default Keyboard layout for console and X
-echo "KEYTABLE=\"$KEYTABLE\"" > /etc/sysconfig/keyboard
-echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/keyboard
-echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/keyboard
-echo "KDEKEYBOARDS=\"$KDEKEYBOARDS\"" >> /etc/sysconfig/keyboard
-
-# Desired desktop
-echo "DESKTOP=\"$DESKTOP\"" > /etc/sysconfig/desktop
-
-# Write all, including non-standard variables, to /etc/sysconfig/knoppix
-echo "LANG=\"$LANG\"" > /etc/sysconfig/knoppix
-echo "COUNTRY=\"$COUNTRY\"" >> /etc/sysconfig/knoppix
-echo "LANGUAGE=\"$LANGUAGE\"" >> /etc/sysconfig/knoppix
-echo "CHARSET=\"$CHARSET\"" >> /etc/sysconfig/knoppix
-echo "KEYTABLE=\"$KEYTABLE\"" >> /etc/sysconfig/knoppix
-echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/knoppix
-echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/knoppix
-echo "KDEKEYBOARDS=\"$KDEKEYBOARDS\"" >> /etc/sysconfig/knoppix
-echo "DESKTOP=\"$DESKTOP\"" >> /etc/sysconfig/knoppix
-echo "TZ=\"$TZ\"" >> /etc/sysconfig/knoppix
-
-fi
--- /R//etc/rc.d/rc.sysinit 2007-05-15 02:18:05.000000000 +1200
+++ /etc/rc.d/rc.sysinit 2007-06-06 08:32:46.000000000 +1200
@@ -221,7 +221,8 @@
# Load the language settings: read the 'lang' boot param
-action $"Loading language settings " . /etc/init.d/localization
+unset LANG
+action $"Loading language settings... " /etc/init.d/localization
if [ -x /bin/loadkeys ]; then
KEYTABLE=
_______________________________________________ yoper-dev mailing list [email protected] http://lists.frank-hosting.de/cgi-bin/mailman/listinfo/yoper-dev
