#!/bin/bash # # zhcon-config.sh # # This is a very simple script that checks for current locale and # modify zhcon config files. # ################################################################ if [ ! -d /etc/zhcon ]; then echo "/etc/zhcon directory does not exist!" >&2 exit 1 fi cd /etc/zhcon # check screen resolution resolution=`/bin/fbresolution 2>/dev/null` if [ $? -eq 0 ]; then x=`echo $resolution | cut -dx -f1` y=`echo $resolution | cut -dx -f2` for i in zhcon.conf.*; do rm -f $i.bak cp -f $i $i.bak sed -e "s/^x_resolution.*/x_resolution = $x/" \ -e "s/^y_resolution.*/y_resolution = $y/" < $i.bak > $i rm -f $i.bak done fi mv -f zhcon.conf zhcon.conf.backup # create symlink to correct config file based on locale env for locale in $LC_ALL $LC_CTYPE $LANG; do case "`echo $locale | cut -c1-2`" in "ko") ln -s zhcon.conf.ko zhcon.conf ;; "ja") ln -s zhcon.conf.ja zhcon.conf ;; "zh") case "`echo $locale | cut -c1-5`" in "zh_TW"|"zh_HK") ln -s zhcon.conf.zh_TW zhcon.conf ;; "zh_CN"|"zh_SG") if [ "`echo $locale | sed 's/.*\.//' | tr a-z A-Z`" == "GB2312" ]; then ln -s zhcon.conf.zh_CN.GB2312 zhcon.conf elif [ "`echo $locale | sed 's/.*\.//' | tr a-z A-Z`" == "GBK" ]; then ln -s zhcon.conf.zh_CN.GBK zhcon.conf fi ;; esac esac done [ -L "zhcon.conf" ] || \ ln -s zhcon.conf.zh_CN.GB2312 zhcon.conf