slitaz-tools annotate tinyutils/tazlocale @ rev 752
tazkeymap: list all keymaps, use libtaz.sh and improvments
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Apr 30 14:04:35 2012 +0200 (2012-04-30) |
parents | efed9a606ecc |
children | 494b03aad433 |
rev | line source |
---|---|
pankso@5 | 1 #!/bin/sh |
pankso@5 | 2 # |
pankso@5 | 3 # Tazlocale: SliTaz GNU/Linux locale setting using dialog boxes. |
pankso@752 | 4 # Configuration file is: /etc/locale.conf |
pankso@5 | 5 # |
pankso@749 | 6 # Copyright (C) 2008-2012 SliTaz GNU/Linux - BSD License |
pankso@5 | 7 # |
pankso@749 | 8 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@749 | 9 # |
pankso@749 | 10 . /lib/libtaz.sh |
pankso@749 | 11 check_root |
pankso@5 | 12 |
pankso@622 | 13 # Internationalization |
pankso@622 | 14 . /usr/bin/gettext.sh |
pankso@622 | 15 TEXTDOMAIN='slitaz-tools' |
pankso@622 | 16 export TEXTDOMAIN |
pankso@622 | 17 |
paul@725 | 18 # Create symlink to translated files provided by SliTaz language pack, |
pankso@338 | 19 # doc and config files. |
pankso@338 | 20 link_language_files() |
pankso@338 | 21 { |
pankso@338 | 22 . /etc/locale.conf |
pankso@338 | 23 LANGUAGE=${LANG%_*} |
pankso@752 | 24 [ "$LANG" = "POSIX" ] && LANGUAGE="en" |
pankso@338 | 25 # Openbox menu in /usr/share/doc/slitaz |
pankso@338 | 26 if [ -f /etc/xdg/openbox/menu.$LANGUAGE.xml ]; then |
pankso@338 | 27 cd /etc/xdg/openbox && rm -f menu.xml |
pankso@338 | 28 ln -s menu.$LANGUAGE.xml menu.xml |
pankso@338 | 29 fi |
pankso@338 | 30 # Documentation in /usr/share/doc/slitaz |
pankso@338 | 31 if [ -f /usr/share/doc/slitaz/index.$LANGUAGE.html ]; then |
pankso@338 | 32 cd /usr/share/doc/slitaz && rm -f index.html |
pankso@338 | 33 ln -s index.$LANGUAGE.html index.html |
pankso@338 | 34 fi |
pankso@338 | 35 # SliTaz Software Manuals |
pankso@622 | 36 for soft in tazpkg tazlito tazusb tazwok tazweb tazpanel |
pankso@338 | 37 do |
pankso@338 | 38 if [ -f /usr/share/doc/$soft/$soft.$LANGUAGE.html ]; then |
pankso@338 | 39 cd /usr/share/doc/$soft && rm -f $soft.html |
pankso@338 | 40 ln -s $soft.$LANGUAGE.html $soft.html |
pankso@338 | 41 fi |
pankso@338 | 42 done |
al@716 | 43 # SliTaz TazWeb "My Web Home" |
al@716 | 44 if [ -f /usr/share/tazweb/home.$LANGUAGE.html ]; then |
al@716 | 45 cd /usr/share/tazweb && rm -f home.html |
al@716 | 46 ln -s home.$LANGUAGE.html home.html |
al@716 | 47 fi |
al@728 | 48 # SliTaz WebHome |
al@728 | 49 if [ -f /usr/share/webhome/index.$LANGUAGE.html ]; then |
al@728 | 50 cd /usr/share/webhome && rm -f index.html |
al@728 | 51 ln -s index.$LANGUAGE.html index.html |
al@728 | 52 fi |
pankso@622 | 53 # SliTaz Tools Manuals |
pankso@749 | 54 for soft in tazinst |
pankso@622 | 55 do |
pankso@749 | 56 if [ -f /usr/share/doc/slitaz/$soft.$LANGUAGE.html ]; then |
pankso@749 | 57 cd /usr/share/doc/slitaz && rm -f $soft.html |
pankso@622 | 58 ln -s $soft.$LANGUAGE.html $soft.html |
pankso@622 | 59 fi |
pankso@622 | 60 done |
pankso@338 | 61 } |
pankso@338 | 62 |
pankso@170 | 63 # Locale name displayed. |
pankso@170 | 64 get_locale_name() |
pankso@170 | 65 { |
pankso@749 | 66 for i in $(ls -1 /usr/share/i18n/locales | grep ^[a-z][a-z]_[A-Z][A-Z]) |
pankso@170 | 67 do |
pankso@568 | 68 #desc=$(grep ^title /usr/share/i18n/locales/$i | cut -d '"' -f 2) |
pankso@426 | 69 echo "$i Locale" |
pankso@170 | 70 done |
pankso@170 | 71 } |
pankso@170 | 72 |
pankso@426 | 73 # We have no locale files in /usr/lib/locale by default. Run localedef in |
pankso@426 | 74 # background to have a faster boot. |
pankso@426 | 75 gen_utf8_locale() |
pankso@426 | 76 { |
pankso@426 | 77 localedef -i $locale -c -f UTF-8 /usr/lib/locale/$locale & |
pankso@426 | 78 } |
pankso@426 | 79 |
pankso@749 | 80 # Config /etc/locale.conf |
pankso@749 | 81 system_config() { |
pankso@751 | 82 export LC_ALL=$locale |
pankso@752 | 83 gettext "Setting system locale to:"; echo -n " $locale" |
pankso@749 | 84 echo "LANG=$locale" > /etc/locale.conf |
pankso@749 | 85 echo "LC_ALL=$locale" >> /etc/locale.conf |
pankso@751 | 86 # Resource libtaz.sh to get status message in the correct locale. |
pankso@751 | 87 . /lib/libtaz.sh && status |
pankso@749 | 88 gen_utf8_locale |
pankso@749 | 89 link_language_files |
pankso@749 | 90 } |
pankso@749 | 91 |
pankso@5 | 92 # Dialog menu. |
pankso@338 | 93 dialog_menu() |
pankso@338 | 94 { |
pankso@338 | 95 exec 3>&1 |
pankso@749 | 96 locale=$($DIALOG --clear \ |
pankso@623 | 97 --title " $(gettext "SliTaz language configuration") " \ |
pankso@338 | 98 --menu "" 15 70 5 \ |
pankso@170 | 99 "en" "English" \ |
pankso@170 | 100 $(get_locale_name) \ |
pankso@749 | 101 2>&1 1>&3) |
pankso@338 | 102 retval=$? |
pankso@338 | 103 exec 3>&- |
pankso@338 | 104 case $retval in |
pankso@622 | 105 0) continue ;; |
pankso@622 | 106 1|255) exit 0 ;; |
pankso@338 | 107 esac |
al@728 | 108 |
pankso@752 | 109 # Default: POSIX = English |
pankso@426 | 110 [ "$locale" = "en" ] && locale="en_US" |
pankso@338 | 111 [ -s /etc/locale.conf ] && RECONFIG="yes" |
al@728 | 112 |
pankso@338 | 113 # If it's a reconfiguration give an info message. |
pankso@338 | 114 if [ -n "$RECONFIG" ]; then |
pankso@751 | 115 export LC_ALL=$locale |
pankso@622 | 116 msg=$(gettext "\ |
pankso@622 | 117 Please logout of your current session and login again to use new locale.") |
pankso@751 | 118 $DIALOG --clear --title " Information " --msgbox "$msg" 16 70 |
pankso@338 | 119 fi |
pankso@749 | 120 system_config |
pankso@338 | 121 } |
pankso@5 | 122 |
pankso@338 | 123 case "$1" in |
pankso@338 | 124 list) |
pankso@749 | 125 for i in $(ls -1 /usr/share/i18n/locales | grep ^[a-z][a-z]_[A-Z][A-Z]) |
pankso@749 | 126 do |
pankso@749 | 127 desc=$(grep ^title /usr/share/i18n/locales/$i | cut -d '"' -f 2) |
pankso@749 | 128 echo "$i $desc" |
pankso@749 | 129 done ;; |
pankso@749 | 130 "") |
pankso@749 | 131 # No args: display Ncurses dialog. |
pankso@749 | 132 : ${DIALOG=dialog} |
pankso@749 | 133 dialog_menu ;; |
pankso@749 | 134 *) |
pankso@749 | 135 # Usage: tazlocale LANG_COUNTRY |
pankso@749 | 136 locale=$1 |
pankso@749 | 137 system_config |
pankso@568 | 138 gen_utf8_locale |
pankso@568 | 139 link_language_files ;; |
pankso@5 | 140 esac |
pankso@5 | 141 |
pankso@5 | 142 exit 0 |