Как добавить часть адреса перед кодом языка для django admin translate i18n?
Доброго времени суток.
Как вставить часть url перед кодом языка для django i18n_patterns?
Пример: Путь к моему проекту выглядит так: http://domain.site/sub/admin/
При изменении языка на проекте происходит редирект на http://domain.site/`en`/sub/admin/, но мне нужно чтобы адрес был таким http://domain.site/sub/`en`/admin/.
Не понимаю на самом деле даже в какую сторону копать, понимаю что нужно рыть в сторону i18n_patterns и где то там должен быть ( наверное ) параметр , который мне нужен.
Уже много инфы перерыл, но ответа на конкретную проблему не нашел.
Заранее спасибо!
urls.py code:
urlpatterns = i18n_patterns (
...
path ('admin /', admin.site.urls),
...
prefix_default_language = False,
)
settings.py code:
LANGUAGES = [
('en', _ ('English')),
('ru', _ ('Russian')),
]
i18n_switcher.py:
from django import template
from django.template.defaultfilters import stringfilter
from django.conf import settings
register = template.Library()
def switch_lang_code(path, language):
lang_codes = [c for (c, name) in settings.LANGUAGES]
if path == '':
raise Exception('URL path for language switch is empty')
elif path[0] != '/':
raise Exception('URL path for language switch does not start with "/"')
elif language not in lang_codes:
raise Exception('%s is not a supported language code' % language)
parts = path.split('/')
if parts[1] in lang_codes:
parts[1] = language
else:
parts[0] = "/" + language
return '/'.join(parts)
@register.filter
def switch_i18n(request, language):
"""takes in a request object and gets the path from it"""
return switch_lang_code(request.get_full_path(), language)
html link for change language
<a href="{{ request|switch_i18n:'en' }}">
<img class="i18n_flag" src="{% static 'images/lang-en.svg' %}"/>
</a> /
<a href="{{ request|switch_i18n:'ru' }}">
<img class="i18n_flag" src="{% static 'images/lang-ru.svg' %}"/>
</a> /