5 # initramfs-tools header
21 # live-initramfs header
23 if [ -n "${NOLOCALES}" ]
28 . /scripts/live-functions
30 log_begin_msg "Setting up locales"
32 # Cosmetic line wrapping for output of local-gen
35 # live-initramfs script
37 if [ -e /root/etc/default/locale ]
39 grep_file=/root/etc/default/locale
40 elif [ -e /root/etc/environment ]
43 grep_file=/root/etc/environment
46 if [ -n "${grep_file}" ]
48 # use rootfs configured locale
49 locale=$(grep -s 'LANG=' ${grep_file} | sed s/'LANG='// | tr -d '"' )
65 if [ "${set_locale}" ]
67 if echo "${locale}" | grep -sqE '^[[:lower:]]{2}$'
69 # input is like "locale=it", so we will convert and setup also the keyboard if not already set
72 # FIXME: look if this keyb is supported
77 uploc=$(echo "${locale}" | tr '[a-z]' '[A-Z]')
78 locale="${locale}_${uploc}.UTF-8"
82 language="$(echo ${locale} | cut -d. -f1)"
83 eval $(awk '/^'"${locale}"'/ { print "LANG=" $1 " codepage=" $2; exit; }' /root/usr/share/i18n/SUPPORTED)
87 # Try and fallback to another codepage for this language.
88 eval $(awk '/^'"${language}"'/ { print "LANG=" $1 " codepage=" $2; exit; }' /root/usr/share/i18n/SUPPORTED)
92 log_warning_msg "Choosing locale '${LANG}' as '${locale}' is unsupported."
98 log_warning_msg "Locale '${locale}' is unsupported."
101 locale="${language}.${codepage}"
102 LANG="${language}.${codepage}"
105 if [ -d /root/etc/default/kdm.d/ ]
107 if ! grep -qs "^LANGUAGE" "${LANG}"
109 printf 'LANGUAGE=%s\n' "${LANG}" >> /root/etc/default/kdm.d/live-autologin
111 elif [ -f /root/etc/kde3/kdm/kdmrc ]
113 sed -i -r -e "s/#Language=.*/Language=${language}/" \
114 /root/etc/kde3/kdm/kdmrc
119 printf 'LANG="%s"\n' "${LANG}" > /root/etc/default/locale
120 printf 'LANG="%s"\n' "${LANG}" > /root/etc/environment
121 printf '%s %s\n' "${LANG}" "${codepage}" > /root/etc/locale.gen
123 if [ -z "${SILENT}" ]
125 chroot /root /usr/sbin/locale-gen
127 chroot /root /usr/sbin/locale-gen > /dev/null 2>&1