Django i18n url lets you manage your multilingual url using Django. You can change the language and stay on the same page.
Install django-i18nurl:
pip install django-i18nurl
Add it to your INSTALLED_APPS settings:
INSTALLED_APPS = (
'...',
'i18nurl',
)
Use it in Python code:
from i18nurl import reverse_i18n
url_de = reverse_i18n('app:home', 'de')
Use it as a templatetag:
{% load i18nurl %}
{% i18nurl 'app:home' 'de' %}
Get the current page in other languages:
{% load i18nurl %}
{% current_i18nurl 'de' %}
Note: to use current_i18nurl template tag you will need the request context processors:
TEMPLATE_CONTEXT_PROCESSORS = (
"...",
"django.core.context_processors.request",
"...",
)