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 |