Line 30: |
Line 30: |
| ==Convert to UTF8== | | ==Convert to UTF8== |
| | | |
− | This contrib was developped with a non utf8 format to convert it safely after installation if you are unable to access to the server-manager panel, as root: | + | This contrib was developed with a non utf8 format to convert it safely after installation if you are unable to access to the server-manager panel, as root: |
| | | |
| cd ~ | | cd ~ |
| wget http://smeserver.pialasse.com/fichiers/convert_utf-8.sh | | wget http://smeserver.pialasse.com/fichiers/convert_utf-8.sh |
| sh convert_utf-8.sh | | sh convert_utf-8.sh |
| + | |
| + | The convert_utf-8.sh file contents are as below: |
| + | <source lang="bash"> |
| + | #!/bin/bash |
| + | # Script to convert SME server panel to UTF-8 |
| + | # original author yythoss walter.thoss@swt-online.de |
| + | # last auhtor : Jean-Philippe Pialasse aka Unnilennium tests@pialasse.com |
| + | # licence GPL |
| + | # |
| + | #History |
| + | # 2008-06-07 |
| + | # - added check with iconv to allow to run script as often as you need |
| + | # - added incremental backup of the locals |
| + | |
| + | # charset UTF-8 |
| + | to=$(echo "UTF-8" | tr '[[:upper:]]' '[[:lower:]]') |
| + | |
| + | # function to convert |
| + | function code() { |
| + | count=0 |
| + | for f in ${files[*]}; do |
| + | count=$(( $count + 1)) |
| + | # check if the file is explicitly declared to be in utf8 |
| + | type="$(file "$f" | sed 's/^.*:\s\(UTF-8\|ASCII\)\s.*/\1/' | tr '[[:upper:]]' '[[:lower:]]')" |
| + | # check if the file is in utf8 => return an error if not in UTF8 |
| + | converted="$(iconv -f UTF-8 -t UTF-8 --output=/dev/null $f 2>&1 )" |
| + | # if the file is declared to be utf8 do nothing |
| + | if [ "$type" = "$to" ]; then |
| + | echo -n "$count: $f is already $to! => done." |
| + | echo |
| + | # if the file is already in utf8 do nothing |
| + | elif [ "$converted" = "" ] ; then |
| + | echo -n "$count: $f was already converted using this script $to! => nothing to do." |
| + | echo |
| + | # else you can do the job |
| + | else |
| + | case $type in |
| + | *iso-8859*) |
| + | echo -n "$count: Recode now $f to $to!" |
| + | echo |
| + | iconv -f "ISO-8859-1" -t "$to" "$f" > "${f}.${to}" |
| + | mv "${f}.${to}" "$f" |
| + | [[ $? = 0 ]] && echo -n " => done." || echo -n " => failed." |
| + | ;; |
| + | *ascii*) |
| + | echo -n "$count: Recode now $f to $to!" |
| + | echo |
| + | iconv -f "ascii" -t "$to" "$f" > "${f}.${to}" |
| + | mv "${f}.${to}" "$f" |
| + | [[ $? = 0 ]] && echo -n " => done." || echo -n " => failed." |
| + | ;; |
| + | *sgml*) |
| + | echo -n "$count: Recode now $f to $to!" |
| + | echo |
| + | iconv -t "$to" "$f" > "${f}.${to}" |
| + | mv "${f}.${to}" "$f" |
| + | [[ $? = 0 ]] && echo -n " => done." || echo -n " => failed." |
| + | ;; |
| + | *) |
| + | echo -n "Format $type not supported!" |
| + | ;; |
| + | esac && echo |
| + | fi |
| + | done |
| + | } |
| + | |
| + | #save before running |
| + | number=$(( $(ls -1 locale*.tgz | wc -l) + 1 )) |
| + | tar czf locale$number.tgz /etc/e-smith/locale/* |
| + | |
| + | # search for files ine mains languages (we skipped the link) |
| + | # why not using this instead : ls -l /etc/e-smith/locale | grep -v '\->'|awk '{print $9}'|grep -v ^$ |
| + | for lang in da de el en-us es fr hu id it nl pt_BR sl sv; do |
| + | files=$(find "/etc/e-smith/locale/$lang/etc/e-smith/web/functions/" -iname "*" -type f -print) |
| + | code |
| + | done |
| + | |
| + | echo -n "Create the new Server Manager Panel..." |
| + | /etc/e-smith/events/actions/navigation-conf |
| + | echo |
| + | |
| + | </source> |
| | | |
| ==Additional Info== | | ==Additional Info== |