# 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 ''