/django-translation-manager

Primary LanguagePythonMozilla Public License 2.0MPL-2.0

README

Travis Code Health PYPI Read the docs

Install package

  • use pip to get the package

    pip install django-translation-manager
    
  • add 'translation_manager' to settings.py: INSTALLED_APPS

  • add variables from Translation Manager's defaults.py to your settings.py

  • add post_save signal to restart webserver:

    from translation_manager.signals import post_save as translation_post_save
    
    translation_post_save.connect(restart_server, sender=None)
    

Supported versions of django

We support all django versions greater or equal 2.0.2.

Using with django-rq

We support asynchronous translation processing by django-rq.

Set translation processing method in settings.py

TRANSLATIONS_PROCESSING_METHOD = 'async_django_rq'

Inslall django-rq

pip install django_rq

Install django-redis-cache

pip install django-redis-cache

We tested it with django-rq 2.1.0 and django-redis-cache 2.1.0

For configuration django_rq see https://github.com/ui/django-rq

Using with Angularjs

We support translation for Angularjs client-site app via REST api

Enable api communication in settings

TRANSLATIONS_ENABLE_API_COMMUNICATION = True

Enable searching for translation strings in Angularjs source codes

TRANSLATIONS_ENABLE_API_ANGULAR_JS = True

Set path to Anguraljs source code files.

The important thing is that it must be in the same file system.

Configuration example:

TRANSLATIONS_API_CLIENT_APP_SRC_PATH = '/var/srv/front/src'

Add regex for matching translation strings in client app src files:

TRANSLATIONS_API_TRANSLATION_STRINGS_REGEX = r''

Inslall django REST framewrok

pip install djangorestframework

Add translation manager urls in your url patterns

from translation_manager import urls as translation_urls

urlpatterns.append(url(r'^translations/', include(translation_urls)))

We tested it with django-rest-framework 3.4.6

SyncDB

use syncdb

./manage.py syncdb

or migrate:

./manage.py migrate

Load strings from po files

via python shell

./manage.py shell

from translation_manager.manager import Manager

m = Manager()
m.load_data_from_po()

Add link to translation admin

this is optional in case you need it

{% url admin:translation_manager_translationentry_changelist %}

Known bugs

If you are using different base site you have to register admin to your site.

License note

Django Translation Manager is available under Mozilla Public License 2.0

http://choosealicense.com/licenses/mpl-2.0/

Donate

Thank you!

We really appreciate every donation that helps us take Django Translation Manager to the next level.