Categories: (translation, internationalization, i18n)
Works on Python 3.x and Python 2.6 or more.
Compatible with the default Django template, Jinja2 and Jingo
Administrate your translations directly from the admin. Import your translations string from po files. Compatible with Jingo
In a template:
{{ _("String to translate") }}
In a python file:
from transadmin.helpers import _
translated_text = _("String to translate")
You can directly create a string to translate from the admin. When it comes to generate many pages, you may prefer the automation script.
get to your admin (transadmin > Translation) and add:
- source: "String to translate"
- language: "fr"
- trans: "Chaine à traduire"
Django allows you to generate po files from templates, views and so on:
django-admin.py makemessages -l fr
Transadmin then allows you to import a po file into the database:
python manage.py transadmin_import my/fr/file.po -l fr
This command reads translations from my/file.po and import every string into the database for fr language.
Your untranslated strings are now ready to get translated from the admin!
Even though the
transadmin_import
command is safe and preserves your existing data. You are highly encouraged to make a backup before running such commands.
You can now view your website in French.
pip install django-transadmin
or the bleeding edge version
pip install -e git+https://github.com/vinyll/django-transadmin.git#egg=django-transadmin
In settings.py, add transadmin in your INSTALLED_APPS
INSTALLED_APPS = (
# …,
'transadmin',
)
Congratulations, you're all set!
A few settings are available:
TRANSADMIN_LANGUAGES
: a tuple of tuples for available languages for the admin. Reads the settings.LANGUAGES by default.TRANSADMIN_CONTEXTS
: a tuple of tuples for available context. Free text by default.TRANSADMIN_FALLBACK_LANGUAGE
: a string representing the code of the language to fallback to if a string is not translated into the current language. No fallback by default, displays the untranslated text.