Skip to content

COEXCZ/django-translation-manager

Repository files navigation

README

Travis Code Health PYPI Read the docs

Django app for managing translations from admin.

Using this django app you can easily manage and publish translations from django admin without editing .po files manually.

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_publish signal to restart webserver:
from translation_manager.signals import post_publish as translation_post_publish

translation_post_publish.connect(restart_server, sender=None)

Supported versions of django

We support all django versions greater or equal 2.2.20.

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.