flavors annotate xfce/rootfs/sbin/tazlocale @ rev 130

Rename: core-xfce --> xfce
author Christophe Lincoln <pankso@slitaz.org>
date Wed Feb 22 23:26:35 2012 +0100 (2012-02-22)
parents core-xfce/rootfs/sbin/tazlocale@d851f7b01f92
children
rev   line source
pascal@67 1 #!/bin/sh
pascal@67 2 #
pascal@67 3 # Tazlocale: SliTaz GNU/Linux locale setting using dialog boxes.
pascal@67 4 # Configuration file is : /etc/locale.conf
pascal@67 5 #
pascal@67 6 # 20100201 <pankso@slitaz.org> - GNU gpl.
pascal@67 7 #
pascal@67 8
pascal@67 9 # Check if user is root.
pascal@67 10 if test $(id -u) != 0; then
pascal@67 11 echo -e "\nYou must be root to run `basename $0`!"
pascal@67 12 echo -e "Type su and root password to become super-user.\n"
pascal@67 13 exit 1
pascal@67 14 fi
pascal@67 15
pascal@67 16 get_messages()
pascal@67 17 {
pascal@67 18 [ -f "/etc/locale.conf" ] && . /etc/locale.conf
pascal@67 19 LANGUAGE=${LANG%_*}
pascal@67 20 [ "$LANG" = "C" ] && LANGUAGE="en_US"
pascal@67 21 case $LANGUAGE in
pascal@67 22 fr*)
pascal@67 23 RECONFIG_MSG="
pascal@67 24 Veuilliez fermer votre session et vous reloguer pour utiliser SliTaz \
pascal@67 25 avec la locale : $LANG" ;;
pascal@67 26 *)
pascal@67 27 RECONFIG_MSG="
pascal@67 28 Please logout of your current session and login again to use SliTaz \
pascal@67 29 with $LANG locale." ;;
pascal@67 30 esac
pascal@67 31 }
pascal@67 32
pascal@67 33 # Create symlink to translated files provide by SliTaz language pack,
pascal@67 34 # doc and config files.
pascal@67 35 link_language_files()
pascal@67 36 {
pascal@67 37 . /etc/locale.conf
pascal@67 38 LANGUAGE=${LANG%_*}
pascal@67 39 [ "$LANG" = "C" ] && LANGUAGE="en"
pascal@67 40 # Openbox menu in /usr/share/doc/slitaz
pascal@67 41 if [ -f /etc/xdg/openbox/menu.$LANGUAGE.xml ]; then
pascal@67 42 cd /etc/xdg/openbox && rm -f menu.xml
pascal@67 43 ln -s menu.$LANGUAGE.xml menu.xml
pascal@67 44 fi
pascal@67 45 # Documentation in /usr/share/doc/slitaz
pascal@67 46 if [ -f /usr/share/doc/slitaz/index.$LANGUAGE.html ]; then
pascal@67 47 cd /usr/share/doc/slitaz && rm -f index.html
pascal@67 48 ln -s index.$LANGUAGE.html index.html
pascal@67 49 fi
pascal@67 50 # SliTaz Software Manuals
pascal@67 51 for soft in tazpkg tazlito tazusb tazwok
pascal@67 52 do
pascal@67 53 if [ -f /usr/share/doc/$soft/$soft.$LANGUAGE.html ]; then
pascal@67 54 cd /usr/share/doc/$soft && rm -f $soft.html
pascal@67 55 ln -s $soft.$LANGUAGE.html $soft.html
pascal@67 56 fi
pascal@67 57 done
pascal@67 58 }
pascal@67 59
pascal@67 60 # Locale name displayed.
pascal@67 61 get_locale_name()
pascal@67 62 {
pascal@67 63 for i in `ls -1 /usr/share/i18n/locales/ | grep ^[a-z][a-z]_[A-Z][A-Z]`
pascal@67 64 do
pascal@67 65 #name=`locale -a -v | grep -A 2 "locale: $i" | grep "title" | \
pascal@67 66 # cut -d " " -f 7`
pascal@67 67 echo "$i Locale"
pascal@67 68 done
pascal@67 69 }
pascal@67 70
pascal@67 71 # We have no locale files in /usr/lib/locale by default. Run localedef in
pascal@67 72 # background to have a faster boot.
pascal@67 73 gen_utf8_locale()
pascal@67 74 {
pascal@67 75 localedef -i $locale -c -f UTF-8 /usr/lib/locale/$locale &
pascal@67 76 }
pascal@67 77
pascal@67 78 # Dialog menu.
pascal@67 79 dialog_menu()
pascal@67 80 {
pascal@67 81 exec 3>&1
pascal@67 82 locale=`$DIALOG --clear \
pascal@67 83 --title " SliTaz language configuration " \
pascal@67 84 --menu "" 15 70 5 \
pascal@67 85 "en" "English" \
pascal@67 86 $(get_locale_name) \
pascal@67 87 2>&1 1>&3`
pascal@67 88 retval=$?
pascal@67 89 exec 3>&-
pascal@67 90 case $retval in
pascal@67 91 0)
pascal@67 92 continue ;;
pascal@67 93 1)
pascal@67 94 echo "Cancel pressed."
pascal@67 95 exit 0 ;;
pascal@67 96 255)
pascal@67 97 if test -n "$locale"; then
pascal@67 98 echo "$locale"
pascal@67 99 else
pascal@67 100 echo "ESC pressed."
pascal@67 101 exit 0
pascal@67 102 fi ;;
pascal@67 103 esac
pascal@67 104 # Default: C = English
pascal@67 105 [ "$locale" = "en" ] && locale="en_US"
pascal@67 106 [ -s /etc/locale.conf ] && RECONFIG="yes"
pascal@67 107 # System configuration
pascal@67 108 echo "LANG=$locale" > /etc/locale.conf
pascal@67 109 echo "LC_ALL=$locale" >> /etc/locale.conf
pascal@67 110 export LANG=$locale LC_ALL=$locale
pascal@67 111 gen_utf8_locale
pascal@67 112 get_messages
pascal@67 113 # If it's a reconfiguration give an info message.
pascal@67 114 if [ -n "$RECONFIG" ]; then
pascal@67 115 $DIALOG --clear \
pascal@67 116 --title " Information " \
pascal@67 117 --msgbox "$RECONFIG_MSG" 16 70
pascal@67 118 fi
pascal@67 119 }
pascal@67 120
pascal@67 121 case "$1" in
pascal@67 122 *_*)
pascal@67 123 # Execute functions (can be called from an other apps).
pascal@67 124 $1 ;;
pascal@67 125 link-files)
pascal@67 126 link_language_files ;;
pascal@67 127 list)
pascal@67 128 echo ""
pascal@67 129 locale -a
pascal@67 130 echo "" ;;
pascal@67 131 *)
pascal@67 132 : ${DIALOG=dialog}
pascal@67 133 dialog_menu
pascal@67 134 link_language_files ;;
pascal@67 135 esac
pascal@67 136
pascal@67 137 exit 0