# example usage:
#
# {% if request.LANGUAGE_CODE == 'de' %}
# English
# {% else %}
# Deutsch
# {% endif %}
#
@register.simple_tag(takes_context=True)
def switch_language(context, requested_language=None, *args, **kwargs):
"""
Get current page's url in requested language
Usage: {% switch_language 'en' %}
"""
request = context['request']
if request.resolver_match:
# handle wagtail pages
if request.resolver_match.url_name == 'wagtail_serve':
with translation.override(requested_language):
current_page = context.get('page')
url = current_page.relative_url(request.site)
# handle django views
else:
url_parts = resolve(request.path)
with translation.override(requested_language):
url = reverse(url_parts.view_name, kwargs=url_parts.kwargs)
return force_text(url)
return ''