Simplify language chooser (#328)
* Simplify language chooser - Allows usage of i18n_patterns with prefix_default_language=False - Change templatetag from simple tag to an inclusion tag - Reduces complexity by relying on Django's behavior in the set_language view: it will translate any url passed as 'next'. This behavior has been present since Django 1.9. - Remove individual forms for each language Fixes #327 Reference: https://github.com/django/django/commit/aa5ab114e34645823b219f9a866fd82fc26b427b * Add check to ensure LocaleMiddleware * Remove check in favor of silent warning * Fix template tag tests
This commit is contained in:
@@ -1,18 +1,15 @@
|
||||
{% load admin_interface_tags %}
|
||||
|
||||
{% if languages %}
|
||||
{% if set_language_url %}
|
||||
<div class="language-chooser {% if theme.language_chooser_control == 'minimal-select' %}minimal {% endif %}">
|
||||
{% for language in languages %}
|
||||
<form class="language-chooser-hidden-form" id="language-chooser-hidden-form-{{ language.code }}" action="{{ language.activation_url }}" method="POST">
|
||||
<form class="language-chooser-select-form" action="{{ set_language_url }}" method="POST">
|
||||
{% csrf_token %}
|
||||
<input name="language" type="hidden" value="{{ language.code }}">
|
||||
</form>
|
||||
{% endfor %}
|
||||
<form class="language-chooser-select-form">
|
||||
{% csrf_token %}
|
||||
<select name="language" onchange="document.getElementById(String('language-chooser-hidden-form-' + this.value)).submit();">
|
||||
{% for language in languages %}
|
||||
<option value="{{ language.code }}" {% if language.active %}selected{% endif %}>{% if theme.language_chooser_display == 'code' %}{{ language.code|upper }}{% elif theme.language_chooser_display == 'name' %}{{ language.name }}{% endif %}</option>
|
||||
<input type="hidden" name="next" value="{{ next }}">
|
||||
<select name="language" onchange="this.form.submit();">
|
||||
{% for code, language in LANGUAGES %}
|
||||
<option value="{{ code }}" {% if code == LANGUAGE_CODE %}selected{% endif %}>
|
||||
{% if theme.language_chooser_display == 'code' %}{{ code|upper }}{% elif theme.language_chooser_display == 'name' %}{{ language }}{% endif %}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user