Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Divers / Installer l'outil de traduction en ligne Pootle sur Debian

Installer l'outil de traduction en ligne Pootle sur Debian

Par Pierre-Yves Landuré Dernière modification 02/11/2012 17:40

Pootle est une application Web de traduction collaborative. Elle permet l'édition des fichiers po par une ou plusieurs personnes.

Ce guide est testé sur:

  • Debian 6.0 Squeeze

Pré-requis

Ce guide nécessite un serveur MySQL disposant du script mysql-tools disponible dans le guide Installer et configurer MySQL sur Debian.

Ce guide nécessite un serveur HTTP disposant du script suivant:

Paramètres

Renseignez le nom de domaine ou sera disponible l'application:

DOMAIN="traductions.domaine-exemple.fr"

Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur):

MYSQL_HOST="localhost"

Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.

Renseignez l'adresse mél de contact par les utilisateurs du site:

CONTACT_EMAIL="contact@domaine-exemple.fr"

Installation

Installez les logiciels nécessaires:

command apt-get install bzip2 python-django python-mysqldb \
libapache2-mod-python zip unzip python gettext \
python-lxml python-enchant python-simplejson \
python-utidylib python-vobject python-levenshtein \
python-aeidon python-iniparse iso-codes aspell-fr \
python-memcache memcached

Installation du Translate Toolkit package

Récupérez le numéro de la dernière version de la bibliothèque:

VERSION=$(command wget 'http://sourceforge.net/projects/translate/files/Translate%20Toolkit/' \
--quiet --output-document=- \
| command egrep --max-count=1 'files/Translate%20Toolkit' \
| command sed -e 's|.*/\([^/]*\)/".*|\1|')

Téléchargez les sources:

command wget "http://sourceforge.net/projects/translate/files/Translate%20Toolkit/${VERSION}/translate-toolkit-${VERSION}.tar.bz2/download" \
    --output-document="/tmp/translate-toolkit-${VERSION}.tar.bz2"

Décompressez l'archive:

command tar --directory='/tmp/' -xjf "/tmp/translate-toolkit-${VERSION}.tar.bz2"

Installez la bibliothèque:

command pushd "/tmp/translate-toolkit-${VERSION}"
command python setup.py install
command popd

Effacez le fichier téléchargé:

command rm "/tmp/translate-toolkit-${VERSION}.tar.bz2"
command rm -r "/tmp/translate-toolkit-${VERSION}"

Installation de Pootle

Récupérez le numéro de la dernière version de l'outil:

VERSION=$(command wget 'http://sourceforge.net/projects/translate/files/Pootle/' \
--quiet --output-document=- \
| command egrep --max-count=1 'files/Pootle' \
| command sed -e 's|.*/\([^/]*\)/".*|\1|')

Téléchargez les sources:

command wget "http://sourceforge.net/projects/translate/files/Pootle/${VERSION}/Pootle-${VERSION}.tar.bz2/download" \
    --output-document="/tmp/Pootle-${VERSION}.tar.bz2"

Décompressez l'archive:

command tar --directory='/tmp' -xjf "/tmp/Pootle-${VERSION}.tar.bz2"

Déplacez le nouveau dossier vers son emplacement final:

command mv "/tmp/Pootle-${VERSION}" "/opt/${DOMAIN}"

Effacez le fichier téléchargé:

command rm "/tmp/Pootle-${VERSION}.tar.bz2"

Adaptez l'application aux recommandations de la LSB:

command mkdir --parent "/var/lib/pootle/${DOMAIN}/"
command mv "/opt/${DOMAIN}/"{dbs,po} "/var/lib/pootle/${DOMAIN}/"
command ln -s "/var/lib/pootle/${DOMAIN}/"{dbs,po} "/opt/${DOMAIN}/"
command chown -R www-data:www-data "/var/lib/pootle/${DOMAIN}/"{dbs,po}

Mettez en place l'adresse de contact:

command sed -i \
-e "s/^#DEFAULT_FROM_EMAIL.*/DEFAULT_FROM_EMAIL = '${CONTACT_EMAIL}'/" \
-e "s/^#CONTACT_EMAIL.*/CONTACT_EMAIL = '${CONTACT_EMAIL}'/" \
"/opt/${DOMAIN}/localsettings.py"

Activez la traduction automatique par Google:

command sed -i \
-e "s/^#\(.*('GOOGLE_TRANSLATE\)/\1/" \
"/opt/${DOMAIN}/localsettings.py"

Fermez l'inscription des nouveaux utilisateurs:

command sed -i \
-e "s/^\(CAN_REGISTER =\).*$/\1 False/" \
"/opt/${DOMAIN}/localsettings.py"

Activez le cache de donnée MemCache:

command sed -i \
-e 's/^CACHE_BACKEND =/\#&/' \
-e 's|#\(.*memcached://\)|\1|' \
-e 's|#\(SESSION_ENGINE.*cached_db\)|\1|' \
"/opt/${DOMAIN}/localsettings.py"

Création de la base de données

Créez la base de données:

if [ "${MYSQL_HOST}" = "localhost" ]; then
  MYSQL_PARAMS=$(command mysql-tools create-domain-db "${DOMAIN}")
else
  command echo "Saisissez le mot de passe de l'utilisateur root MySQL :"
  command read PASSWORD
  MYSQL_PARAMS=$(command ssh "root@${MYSQL_HOST}" "command mysql-tools create-domain-db '${DOMAIN}' '$(command cat /etc/mailname)' '${PASSWORD}'")
fi

Récupérez les paramètres de la nouvelle base de données:

MYSQL_DB="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_DB" \
    | cut --delimiter="=" --fields="2-")"
MYSQL_USER="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_USER" \
    | cut --delimiter="=" --fields="2-")"
MYSQL_PASSWORD="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_PASSWORD" \
    | cut --delimiter="=" --fields="2-")"
echo "${MYSQL_PARAMS}"

Mettez à jour le fichier de configuration de l'application:

command sed -i \
-e "s/\(DATABASE_ENGINE = '\)[^']*\('.*\)$/\1mysql\2/" \
-e "s/\(DATABASE_USER = '\)[^']*\('.*\)$/\1${MYSQL_USER}\2/" \
-e "s/\(DATABASE_PASSWORD = '\)[^']*\('.*\)$/\1${MYSQL_PASSWORD}\2/" \
-e "s/\(DATABASE_HOST = '\)[^']*\('.*\)$/\1${MYSQL_HOST}\2/" \
-e "s/\(DATABASE_NAME = \)working_path([^)]*)\(.*\)$/\1'${MYSQL_DB}'\2/" \
"/opt/${DOMAIN}/localsettings.py"

Initialisez la base de données et créez un super utilisateur (n'utilisez pas l'identifiant 'admin'):

command python "/opt/${DOMAIN}/manage.py" syncdb

Ajoutez les données nécessaires à la base:

command python "/opt/${DOMAIN}/manage.py" initdb

Initialisez les statistiques:

command python "/opt/${DOMAIN}/manage.py" refresh_stats

Mise en place de l'hôte virtuel

Créez la configuration du serveur HTTP pour votre domaine:

if [ -x "/usr/bin/a2tools" ]; then
command a2enmod python
command a2tools add-custom "${DOMAIN}" "
DocumentRoot /opt/${DOMAIN}
<Directory \"/opt/${DOMAIN}\">
<IfModule mod_python.c>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE pootle.settings
#PythonOption django.root /
PythonPath \"['/opt/${DOMAIN}', '/opt/${DOMAIN}/local_apps', '/opt/${DOMAIN}/external_apps'] + sys.path\"
PythonInterpreter pootle
PythonDebug On

Order deny,allow
Allow from all
</IfModule>

<IfModule "\!"mod_python.c>
Order deny,allow
Deny from all
</IfModule>
</Directory>

<Directory \"/opt/${DOMAIN}/html\">
SetHandler None
</Directory>
" fi

L'application devrait maintenant être disponible sur le nom de domaine spécifié.

Sauvegardes

Pour sauvegarder votre installation, je vous propose d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre mon guide:

Installer et configurer Backup Manager sur Debian

Une fois Backup Manager installé, configurez la sauvegarde des fichiers de l'application:

command backup-manager-tools add "/opt/${DOMAIN}"
command backup-manager-tools add "/var/lib/pootle"

Important: Sauvegarder les fichiers ne suffit pas ! Il faut aussi sauvegarder la base de données. La procédure pour ce faire est disponible dans l'article MySQL sur Debian.

Remerciements

  • Merci aux développeurs de Pootle.