Version 15 (modified by Fran Boon, 11 years ago) ( diff )



Pootle is used to allow translators to collaborate on both doing the initial translation & refining it once 'completed'.


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
tar jxvf python-Levenshtein-0.10.1.tar.bz2
cd python-Levenshtein-0.10.1
python install
cd ..

apt-get install -y memcached
tar zxvf python-memcached-1.51.tar.gz
cd python-memcached-1.51
python install
cd ..

tar jxvf translate-toolkit-1.10.0.tar.bz2
cd translate-toolkit-1.10.0
python install
cd ..

wget --no-check-certificate -O Django-1.4.5.tar.gz
tar zxvf Django-1.4.5.tar.gz
cd Django-1.4.5
python install
cd ..

# @ToDo:

wget --no-check-certificate
tar zxvf pip-1.3.1.tar.gz
cd pip-1.3.1
python 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 MaxClients
sed -i 's|150|20|' /etc/apache2/apache2.conf

cd /var/www
ln -s /usr/local/lib/python2.6/dist-packages/pootle

adduser --system --disabled-password --home /var/www/pootle pootle
addgroup pootle

chgrp pootle /var/www/pootle/po

mysqladmin create pootle -p

#sed -i "s|'localhost'|''|" /var/www/pootle/settings/90-local.conf.sample
sed -i 's|django.db.backends.sqlite3|django.db.backends.mysql|' /var/www/pootle/settings/20-backends.conf
sed -i "s|working_path('dbs/pootle.db')|'pootle'|" /var/www/pootle/settings/20-backends.conf
sed -i "s|'USER': ''|'USER': 'root'|" /var/www/pootle/settings/20-backends.conf
sed -i "s|'PASSWORD': ''|'PASSWORD': 'mysqlrootpw'|" /var/www/pootle/settings/20-backends.conf
sed -i "s|'BACKEND': 'django.core.cache.backends.db.DatabaseCache'|'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache'|" /var/www/pootle/settings/20-backends.conf
sed -i "s|'LOCATION': 'pootlecache'|'LOCATION': ''|" /var/www/pootle/settings/20-backends.conf
sed -i "s|# ('Your Name', '')|  ('Fran Boon', '')|" /var/www/pootle/settings/30-site.conf
sed -i "s|||" /var/www/pootle/settings/30-site.conf

pootle --config=/var/www/pootle/settings/20-backends.conf syncdb --noinput
pootle --config=/var/www/pootle/settings/20-backends.conf initdb

cat << EOF > "/var/www/pootle/"
import os, site
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pootle.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

cat << EOF > "/etc/apache2/sites-available/pootle"
WSGIScriptAlias /pootle /var/www/pootle/
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
<Directory /var/www/pootle/assets>
Order deny,allow
Allow from all
Alias /pootle/export /var/www/pootle/po
<Directory /var/www/pootle/po>
Order deny,allow
Allow from all

a2ensite pootle
/etc/init.d/apache2 restart


See UserGuidelines/Localisation#A.UsingPootle


When adding languages, use this resource to configure them properly:

The script that Fran used to use to update files between Bzr & Pootle is:

If the script fails, check for the presence of a ` in a T("") - this causes the to reset the languages/* to default &/or stop web2py2po from working!


Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.