= Pootle =
[[TOC]]
[http://pootle.translatehouse.org Pootle] is used to allow translators to collaborate on both doing the initial translation & refining it once 'completed'.
== Installation ==
http://docs.translatehouse.org/projects/pootle/en/stable-2.5.0/server/installation.html
Assuming a base Debian stable (6.x):
{{{
apt-get install -y bzip2 less unzip
apt-get install -y libapache2-mod-wsgi
apt-get install -y mysql-server python-mysqldb phpmyadmin mytop
apt-get install -y python-setuptools
apt-get install -y iso-codes
apt-get install -y gcc python-dev
wget http://downloads.sourceforge.net/project/translate/python-Levenshtein/0.10.1/python-Levenshtein-0.10.1.tar.bz2
tar jxvf python-Levenshtein-0.10.1.tar.bz2
cd python-Levenshtein-0.10.1
python setup.py install
cd ..
wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz
tar zxvf python-memcached-1.51.tar.gz
cd python-memcached-1.51
python setup.py install
cd ..
wget http://downloads.sourceforge.net/project/translate/Translate%20Toolkit/1.10.0/translate-toolkit-1.10.0.tar.bz2
tar jxvf translate-toolkit-1.10.0.tar.bz2
cd translate-toolkit-1.10.0
python setup.py install
cd ..
wget --no-check-certificate -O Django-1.4.5.tar.gz https://www.djangoproject.com/download/1.4.5/tarball/
tar zxvf Django-1.4.5.tar.gz
cd Django-1.4.5
python setup.py install
cd ..
# @ToDo: https://lucene.apache.org/pylucene/
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz
tar zxvf pip-1.3.1.tar.gz
cd pip-1.3.1
python setup.py install
cd ..
apt-get install -y libxslt1-dev
pip install virtualenv
#virtualenv /var/www/pootle/env/
#source /var/www/pootle/env/bin/activate
pip install pootle
# Reduce MacClients
sed -i 's|150|20|' /etc/apache2/apache2.conf
adduser --system --disabled-password pootle
addgroup pootle
cd /var/www
ln -s /usr/local/lib/python2.6/dist-packages/pootle
chgrp pootle /var/www/pootle/po
cat << EOF > "/etc/apache2/sites-available/pootle"
WSGIScriptAlias /pootle /var/www/pootle/wsgi.py
WSGIDaemonProcess pootle processes=2 threads=3 stack-size=1048576 maximum-requests=5000 inactivity-timeout=900 display-name=%{GROUP}
WSGIProcessGroup pootle
Alias /pootle/assets /var/www/pootle/assets
Order deny,allow
Allow from all
Alias /pootle/export /var/www/pootle/po
Order deny,allow
Allow from all
EOF
a2ensite pootle
/etc/init.d/apache2 restart
}}}
http://docs.translatehouse.org/projects/pootle/en/stable-2.5.0/server/web.html#apache-with-mod-wsgi
== Usage ==
See UserGuidelines/Localisation#A.UsingPootle
== Maintenance ==
When adding languages, use this resource to configure them properly:
* http://translate.sourceforge.net/wiki/l10n/pluralforms
The script that Fran used to use to update files between Bzr & Pootle is:
* [http://eden.sahanafoundation.org/attachment/wiki/UserGuidelines/Localisation/translate.cmd translate.cmd]
If the script fails, check for the presence of a ` in a T("") - this causes the languages.py to reset the languages/* to default &/or stop web2py2po from working!
== !ToDo ==
* Link to the s3translate module within Sahana
* Unfortunately it doesn't seem that we can easily automate the upload back to Pootle:
* http://www.mail-archive.com/translate-pootle@lists.sourceforge.net/msg01187.html