Edit file File name : update-langlist Content :#!/bin/sh -pe # # update-langlist maintains the LANGUAGE priority list. It does so in # a simplified manner, unlike the UI in language-selector-gnome for # setting the user language which provides full control. first_language=$1 homedir=$2 renewed_langlist= [ -n "$first_language" -a -n "$homedir" ] || exit 1 get_old_langlist() { if [ -r "$homedir/.pam_environment" ]; then while read line; do if [ "$( echo "${line%=*}" | sed -r 's/\s+DEFAULT$//' )" = 'LANGUAGE' ]; then old_langlist=${line#*=} break fi done < $homedir/.pam_environment fi } old_langlist= english=true if [ ${first_language%%[_@]*} != 'en' ]; then get_old_langlist english=false fi if [ -n "$old_langlist" ] && ! $english; then if expr $old_langlist : ".*:$first_language:" > /dev/null ; then renewed_langlist=$( echo $old_langlist | sed -r "s/(.+:)($first_language:)/\2\1/" ) elif [ ${old_langlist%%:*} = $first_language ]; then # no change renewed_langlist=$old_langlist else renewed_langlist=$first_language:$old_langlist fi else # build fresh list with 'en' as the last element # no other languages needed if English was selected renewed_langlist=$first_language [ $first_language != 'en' ] && renewed_langlist=$renewed_langlist:en fi echo $renewed_langlist Save