Changes

From SME Server
Jump to navigationJump to search
3,073 bytes added ,  22:09, 19 June 2014
Created page with "==Convert to UTF8== 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..."
==Convert to UTF8==

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 ~
wget http://smeserver.pialasse.com/fichiers/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

Navigation menu