Changes

From SME Server
Jump to navigationJump to search
2,812 bytes added ,  08:16, 28 June 2013
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==
137

edits

Navigation menu