/Joshua-web

this package serve as API and UI for Joshua Arabic to English translation service that are build from Joshua Machine Translation ToolKit. for more detail, see http://joshua-decoder.org/ this application assume you have your Joshua service installed and you could call Joshua scripts to complete the translation. change Joshua/setting.py JOSHUA_SCRIPT_EXECUTABLE and JOSHUA_SCRIPT_FILENAME to reflect your Joshua server setup see conf/translate_input.sh for sample script that take stdin and netcat to Joshua server following are python dependences that are required to be installed. assuming python 2.7+ is installed. #use pip to install needed component curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python get-pip.py pip install django==1.8 pip install markdown defusedxml pip install lxml pip install dateutil pip install pyyaml pip install django-tastypie Depends on version of tastypie you have install, you might also need to copy files in patch folder to $Python/dist-packages/tastype folder: To support UTF8 encoding of result data from API for json format, modify utils/mime.py to comment out if format in ('application/json', 'text/javascript'): return format or simply copy patch/tastpie/utils/mime.py to $Python/dist-packages/tastype/utils folder. copy patch/tastpie/resources.py to $Python/dist-packages/tastype/utils if see run time error on resources.py. (tastypie>0.12.1 should have fix the issue). to start Django server, enter: copy Joshua folder to the server where Joshua script is avaialble. cd Joshua python manage.py runserver 0.0.0.0:80 API is available at http://localhost:80/api/translation/?format=json&orig_text=" " , it also support format=xml http://localhost:80 will return a user interface to enter text in the text area. to start up django server automatically in centos, install supervisord in centos and put conf/supervisord/django_cms.conf to the include folder. see https://rayed.com/wordpress/?p=1496 for detail of how to install and setup supervisor. for more production configuration, you might want to deploying Django with Apache and mod_wsgi install mod_wsgi to your Apache server, append your Apache server’s httpd.conf file with conf/apache/httpd.conf file. this assume, you are copying Joshua-web folder to /var/www/ folder. tested configuration in ubuntu: apt-get install libapache2-mod-wsgi nano /etc/apache2/sites-enabled/000-default and add following lines just below <VirtualHost *:80> WSGIDaemonProcess Joshua-web WSGIProcessGroup Joshua-web WSGIScriptAlias / /var/www/Joshua-web/conf/apache/django.wsgi Alias /static /var/www/Joshua-web/static Alias /media /var/www/Joshua-web/static/ service apache2 restart

Primary LanguagePython

This package serves as API and UI for a Joshua-decoder based Arabic to English translation service. Joshua-decoder is a Machine Translation ToolKit, for more details, see http://joshua-decoder.org/

This application assumes you have the Joshua-decoder service installed and that you can call Joshua scripts.

Setup

Change Joshua/setting.py JOSHUA_SCRIPT_EXECUTABLE and JOSHUA_SCRIPT_FILENAME to reflect your Joshua-decoder server setup. See conf/translate_input.sh for sample scripts that read from stdin and netcat to Joshua-decoder server

The following python dependences are required. This was developed and tested with python 2.7+

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip install django==1.8
pip install markdown defusedxml
pip install lxml
pip install dateutil
pip install pyyaml
pip install django-tastypie

Depending on the version of tastypie you have installed, you might also need to copy files in the patch folder to the $Python/dist-packages/tastype folder:

To support UTF8 encoding of result data from API for json format, modify 
utils/mime.py to comment out 
if format in ('application/json', 'text/javascript'):
	    return format
or simply copy patch/tastpie/utils/mime.py to $Python/dist-packages/tastype/utils folder.

copy patch/tastpie/resources.py to $Python/dist-packages/tastype/utils if see run time error on resources.py.
(tastypie>0.12.1 should have fix the issue).

Running

To start the Django server: copy Joshua folder to the server where Joshua script is avaialble. cd Joshua python manage.py runserver 0.0.0.0:80

The API will then be available at: http://localhost:80/api/translation/?format=json&orig_text=" " , it also support format=xml http://localhost:80 will return a user interface to enter text in the text area.

To start up django server automatically in centos, install supervisord in centos and put conf/supervisord/django_cms.conf to the include folder. see https://rayed.com/wordpress/?p=1496 for detail of how to install and setup supervisor.

For a production configuration, you might want to deploying Django with Apache and mod_wsgi:

install mod_wsgi to your Apache server, append your Apache server’s httpd.conf file with conf/apache/httpd.conf file. this assume, you are copying Joshua-web folder to /var/www/ folder.

tested configuration in ubuntu: apt-get install libapache2-mod-wsgi nano /etc/apache2/sites-enabled/000-default

 and add  following lines just below <VirtualHost *:80>

	WSGIDaemonProcess Joshua-web 		
	WSGIProcessGroup Joshua-web
	WSGIScriptAlias / /var/www/Joshua-web/conf/apache/django.wsgi
	Alias /static /var/www/Joshua-web/static
	Alias /media   /var/www/Joshua-web/static/
	


	service apache2 restart