Проблему решил: Дело было в методе, который я использовал на стороне front end form.
Брал из примера следующее:
<li>
<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select style="border:1px dotted black" name="language">
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}>
{{ language.name_local }} ({{ language.code }})
</option>
{% endfor %}
</select>
<input class="btn-primary" type="submit" value="{% trans 'Change' %}" />
</form>
</li>
Пока не скажу почему - но работало некорректно и приравнивало два немецких, написал следующую кастомную:
<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}"
{% ifequal lang.0 request.LANGUAGE_CODE %}
selected="yes"
{% endifequal %}
>{{ lang.1 }}
</option>
{% endfor %}
</select>
<input type="submit" value="{% trans 'Change' %}"/>
</form>
Второй вариант работает как швейцарские часики.
Буду признателен, если кто-нибудь объснит как работает первая форма из документации django.