slitaz-forge rev 268

pkgs: try an other way to get language
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 13 00:59:55 2012 +0200 (2012-04-13)
parents 23e29516f2f5
children 1eebd96882d2
files pkgs/search.sh
line diff
     1.1 --- a/pkgs/search.sh	Fri Apr 13 00:47:27 2012 +0200
     1.2 +++ b/pkgs/search.sh	Fri Apr 13 00:59:55 2012 +0200
     1.3 @@ -20,6 +20,9 @@
     1.4  VERSION=cooking
     1.5  SCRIPT_NAME="search.sh"
     1.6  
     1.7 +# Internal variables
     1.8 +po="de fr pt ru zh"
     1.9 +
    1.10  # Internationalization
    1.11  . /usr/bin/gettext.sh
    1.12  TEXTDOMAIN='tazpkg-web'
    1.13 @@ -80,28 +83,27 @@
    1.14  	[ "$SEARCH" == "." ] && SEARCH=
    1.15  fi
    1.16  
    1.17 -# preferred language
    1.18 -if [ -z "$LANG" ]; then
    1.19 -	for i in $(echo $HTTP_ACCEPT_LANGUAGE | sed 's/[,;-_]/ /g'); do
    1.20 -		case "$i" in
    1.21 -		de*|fr*|pt*|ru*)
    1.22 -			LANG=${i}
    1.23 -			break;;
    1.24 -		esac
    1.25 -	done
    1.26 -fi
    1.27 -
    1.28 -# lang substitution
    1.29 -case "$LANG" in
    1.30 -de*)	LANG="de_DE";;
    1.31 -es*)	LANG="es_ES";;
    1.32 -fr*)	LANG="fr_FR";;
    1.33 -it*)	LANG="it_IT";;
    1.34 -pt*)	LANG="pt_BR";;
    1.35 -ru*)	LANG="ru_RU";;
    1.36 -esac
    1.37 -
    1.38 -export LANG
    1.39 +# Content negotiation for Gettext
    1.40 +IFS=","
    1.41 +for lang in $HTTP_ACCEPT_LANGUAGE
    1.42 +do
    1.43 +	lang=${lang%;*} lang=${lang# } lang=${lang%-*}
    1.44 +	if echo "$po" | fgrep -q "$lang"; then
    1.45 +		break
    1.46 +	fi
    1.47 +	case "$lang" in
    1.48 +		en) lang="C" ;;
    1.49 +		de) lang="de_DE";;
    1.50 +		es) lang="es_ES";;
    1.51 +		fr) lang="fr_FR" ;;
    1.52 +		it) lang="it_IT";;
    1.53 +		pt) lang="pt_BR" ;;
    1.54 +		ru) lang="ru_RU" ;;
    1.55 +		zh) lang="zh_TW" ;;
    1.56 +	esac
    1.57 +done
    1.58 +unset IFS
    1.59 +export LANG=$lang LC_ALL=$lang
    1.60  
    1.61  case "$OBJECT" in
    1.62  	File)	 	selected_file="selected";;