Added language chooser display option.

pull/69/head
Fabio Caccamo 2019-09-04 11:24:02 +02:00
parent 56cdbe5d2f
commit 1baebf9d62
13 changed files with 195 additions and 119 deletions

View File

@ -31,6 +31,7 @@ class ThemeAdmin(admin.ModelAdmin):
'classes': ('wide', ), 'classes': ('wide', ),
'fields': ( 'fields': (
'language_chooser_active', 'language_chooser_active',
'language_chooser_display',
) )
}), }),
(_('Logo'), { (_('Logo'), {

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django-admin-interface\n" "Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-03 16:43+0000\n" "POT-Creation-Date: 2019-09-04 09:18+0000\n"
"PO-Revision-Date: 2018-12-30 19:13-0500\n" "PO-Revision-Date: 2018-12-30 19:13-0500\n"
"Last-Translator: Martin Vuelta <martin.vuelta@softbutterfly.io>\n" "Last-Translator: Martin Vuelta <martin.vuelta@softbutterfly.io>\n"
"Language-Team: Spanish <dev@softbutterfly.io>\n" "Language-Team: Spanish <dev@softbutterfly.io>\n"
@ -27,47 +27,47 @@ msgstr "Ambiente"
msgid "Language chooser" msgid "Language chooser"
msgstr "" msgstr ""
#: admin_interface/admin.py:36 #: admin_interface/admin.py:37
msgid "Logo" msgid "Logo"
msgstr "Logo" msgstr "Logo"
#: admin_interface/admin.py:44 #: admin_interface/admin.py:45
msgid "Favicon" msgid "Favicon"
msgstr "Favicon" msgstr "Favicon"
#: admin_interface/admin.py:48 #: admin_interface/admin.py:49
msgid "Title" msgid "Title"
msgstr "Título" msgstr "Título"
#: admin_interface/admin.py:56 #: admin_interface/admin.py:57
msgid "Header" msgid "Header"
msgstr "Encabezado" msgstr "Encabezado"
#: admin_interface/admin.py:65 #: admin_interface/admin.py:66
msgid "Breadcrumbs / Module headers" msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Encabezados de módulos" msgstr "Breadcrumbs / Encabezados de módulos"
#: admin_interface/admin.py:75 #: admin_interface/admin.py:76
msgid "Generic Links" msgid "Generic Links"
msgstr "Enlaces genéricos" msgstr "Enlaces genéricos"
#: admin_interface/admin.py:82 #: admin_interface/admin.py:83
msgid "Save Buttons" msgid "Save Buttons"
msgstr "Botones de guardar" msgstr "Botones de guardar"
#: admin_interface/admin.py:90 #: admin_interface/admin.py:91
msgid "Delete Buttons" msgid "Delete Buttons"
msgstr "Botones de borrar" msgstr "Botones de borrar"
#: admin_interface/admin.py:98 #: admin_interface/admin.py:99
msgid "Related Modal" msgid "Related Modal"
msgstr "Modal para objetos relacionados" msgstr "Modal para objetos relacionados"
#: admin_interface/admin.py:108 #: admin_interface/admin.py:109
msgid "List Filter" msgid "List Filter"
msgstr "Lista de filtros" msgstr "Lista de filtros"
#: admin_interface/admin.py:112 #: admin_interface/admin.py:113
msgid "Recent Actions" msgid "Recent Actions"
msgstr "Acciones recientes" msgstr "Acciones recientes"
@ -76,11 +76,12 @@ msgid "Admin Interface"
msgstr "Interfaz de administración" msgstr "Interfaz de administración"
#: admin_interface/models.py:72 admin_interface/models.py:116 #: admin_interface/models.py:72 admin_interface/models.py:116
#: admin_interface/models.py:135
msgid "name" msgid "name"
msgstr "Nombre" msgstr "Nombre"
#: admin_interface/models.py:75 admin_interface/models.py:132 #: admin_interface/models.py:75 admin_interface/models.py:132
#: admin_interface/models.py:244 #: admin_interface/models.py:253
msgid "active" msgid "active"
msgstr "Activo" msgstr "Activo"
@ -102,7 +103,7 @@ msgid "color"
msgstr "color de logo" msgstr "color de logo"
#: admin_interface/models.py:90 admin_interface/models.py:105 #: admin_interface/models.py:90 admin_interface/models.py:105
#: admin_interface/models.py:280 #: admin_interface/models.py:289
msgid "visible" msgid "visible"
msgstr "Visible" msgstr "Visible"
@ -136,53 +137,61 @@ msgstr ""
msgid "visible in favicon (marker)" msgid "visible in favicon (marker)"
msgstr "" msgstr ""
#: admin_interface/models.py:139 admin_interface/models.py:164 #: admin_interface/models.py:134
#: admin_interface/models.py:205 admin_interface/models.py:224 msgid "code"
#: admin_interface/models.py:250 msgstr ""
#: admin_interface/models.py:141
msgid "display"
msgstr ""
#: admin_interface/models.py:148 admin_interface/models.py:173
#: admin_interface/models.py:214 admin_interface/models.py:233
#: admin_interface/models.py:259
msgid "background color" msgid "background color"
msgstr "color de fondo" msgstr "color de fondo"
#: admin_interface/models.py:145 admin_interface/models.py:170 #: admin_interface/models.py:154 admin_interface/models.py:179
#: admin_interface/models.py:217 admin_interface/models.py:236 #: admin_interface/models.py:226 admin_interface/models.py:245
#: admin_interface/models.py:240 #: admin_interface/models.py:249
msgid "text color" msgid "text color"
msgstr "color de texto" msgstr "color de texto"
#: admin_interface/models.py:151 admin_interface/models.py:176 #: admin_interface/models.py:160 admin_interface/models.py:185
#: admin_interface/models.py:192 #: admin_interface/models.py:201
msgid "link color" msgid "link color"
msgstr "color de enlace" msgstr "color de enlace"
#: admin_interface/models.py:157 admin_interface/models.py:182 #: admin_interface/models.py:166 admin_interface/models.py:191
#: admin_interface/models.py:198 #: admin_interface/models.py:207
msgid "link hover color" msgid "link hover color"
msgstr "color de enlace (hover)" msgstr "color de enlace (hover)"
#: admin_interface/models.py:185 admin_interface/models.py:270 #: admin_interface/models.py:194 admin_interface/models.py:279
msgid "rounded corners" msgid "rounded corners"
msgstr "esquinas redondas" msgstr "esquinas redondas"
#: admin_interface/models.py:211 admin_interface/models.py:230 #: admin_interface/models.py:220 admin_interface/models.py:239
msgid "background hover color" msgid "background hover color"
msgstr "color de fondo (hover)" msgstr "color de fondo (hover)"
#: admin_interface/models.py:267 #: admin_interface/models.py:276
msgid "background opacity" msgid "background opacity"
msgstr "opacidad de fondo" msgstr "opacidad de fondo"
#: admin_interface/models.py:273 #: admin_interface/models.py:282
msgid "close button visible" msgid "close button visible"
msgstr "" msgstr ""
#: admin_interface/models.py:277 #: admin_interface/models.py:286
msgid "use dropdown" msgid "use dropdown"
msgstr "Usar lista desplegable" msgstr "Usar lista desplegable"
#: admin_interface/models.py:289 #: admin_interface/models.py:298
msgid "Theme" msgid "Theme"
msgstr "Tema" msgstr "Tema"
#: admin_interface/models.py:290 #: admin_interface/models.py:299
msgid "Themes" msgid "Themes"
msgstr "Temas" msgstr "Temas"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-03 16:43+0000\n" "POT-Creation-Date: 2019-09-04 09:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,47 +26,47 @@ msgstr "Environnment"
msgid "Language chooser" msgid "Language chooser"
msgstr "" msgstr ""
#: admin_interface/admin.py:36 #: admin_interface/admin.py:37
msgid "Logo" msgid "Logo"
msgstr "Logo" msgstr "Logo"
#: admin_interface/admin.py:44 #: admin_interface/admin.py:45
msgid "Favicon" msgid "Favicon"
msgstr "Favicon" msgstr "Favicon"
#: admin_interface/admin.py:48 #: admin_interface/admin.py:49
msgid "Title" msgid "Title"
msgstr "Titre" msgstr "Titre"
#: admin_interface/admin.py:56 #: admin_interface/admin.py:57
msgid "Header" msgid "Header"
msgstr "Bannière" msgstr "Bannière"
#: admin_interface/admin.py:65 #: admin_interface/admin.py:66
msgid "Breadcrumbs / Module headers" msgid "Breadcrumbs / Module headers"
msgstr "Fil d'ariane / en-têtes de module" msgstr "Fil d'ariane / en-têtes de module"
#: admin_interface/admin.py:75 #: admin_interface/admin.py:76
msgid "Generic Links" msgid "Generic Links"
msgstr "Liens génériques" msgstr "Liens génériques"
#: admin_interface/admin.py:82 #: admin_interface/admin.py:83
msgid "Save Buttons" msgid "Save Buttons"
msgstr "Boutons sauvegarder" msgstr "Boutons sauvegarder"
#: admin_interface/admin.py:90 #: admin_interface/admin.py:91
msgid "Delete Buttons" msgid "Delete Buttons"
msgstr "Boutons supprimer" msgstr "Boutons supprimer"
#: admin_interface/admin.py:98 #: admin_interface/admin.py:99
msgid "Related Modal" msgid "Related Modal"
msgstr "Modale pour objet reliés" msgstr "Modale pour objet reliés"
#: admin_interface/admin.py:108 #: admin_interface/admin.py:109
msgid "List Filter" msgid "List Filter"
msgstr "Filtre de liste" msgstr "Filtre de liste"
#: admin_interface/admin.py:112 #: admin_interface/admin.py:113
msgid "Recent Actions" msgid "Recent Actions"
msgstr "Actions récentes" msgstr "Actions récentes"
@ -75,11 +75,12 @@ msgid "Admin Interface"
msgstr "Interface Admin" msgstr "Interface Admin"
#: admin_interface/models.py:72 admin_interface/models.py:116 #: admin_interface/models.py:72 admin_interface/models.py:116
#: admin_interface/models.py:135
msgid "name" msgid "name"
msgstr "nom" msgstr "nom"
#: admin_interface/models.py:75 admin_interface/models.py:132 #: admin_interface/models.py:75 admin_interface/models.py:132
#: admin_interface/models.py:244 #: admin_interface/models.py:253
msgid "active" msgid "active"
msgstr "actif" msgstr "actif"
@ -99,7 +100,7 @@ msgid "color"
msgstr "couleur" msgstr "couleur"
#: admin_interface/models.py:90 admin_interface/models.py:105 #: admin_interface/models.py:90 admin_interface/models.py:105
#: admin_interface/models.py:280 #: admin_interface/models.py:289
msgid "visible" msgid "visible"
msgstr "visible" msgstr "visible"
@ -135,53 +136,61 @@ msgstr "visible dans len-tête (marqueur et nom)"
msgid "visible in favicon (marker)" msgid "visible in favicon (marker)"
msgstr "visible dans la favicon (marqueur)" msgstr "visible dans la favicon (marqueur)"
#: admin_interface/models.py:139 admin_interface/models.py:164 #: admin_interface/models.py:134
#: admin_interface/models.py:205 admin_interface/models.py:224 msgid "code"
#: admin_interface/models.py:250 msgstr ""
#: admin_interface/models.py:141
msgid "display"
msgstr ""
#: admin_interface/models.py:148 admin_interface/models.py:173
#: admin_interface/models.py:214 admin_interface/models.py:233
#: admin_interface/models.py:259
msgid "background color" msgid "background color"
msgstr "couleur d'arrière-plan" msgstr "couleur d'arrière-plan"
#: admin_interface/models.py:145 admin_interface/models.py:170 #: admin_interface/models.py:154 admin_interface/models.py:179
#: admin_interface/models.py:217 admin_interface/models.py:236 #: admin_interface/models.py:226 admin_interface/models.py:245
#: admin_interface/models.py:240 #: admin_interface/models.py:249
msgid "text color" msgid "text color"
msgstr "couleur du texte" msgstr "couleur du texte"
#: admin_interface/models.py:151 admin_interface/models.py:176 #: admin_interface/models.py:160 admin_interface/models.py:185
#: admin_interface/models.py:192 #: admin_interface/models.py:201
msgid "link color" msgid "link color"
msgstr "couleur de lien" msgstr "couleur de lien"
#: admin_interface/models.py:157 admin_interface/models.py:182 #: admin_interface/models.py:166 admin_interface/models.py:191
#: admin_interface/models.py:198 #: admin_interface/models.py:207
msgid "link hover color" msgid "link hover color"
msgstr "couleur de lien au survol" msgstr "couleur de lien au survol"
#: admin_interface/models.py:185 admin_interface/models.py:270 #: admin_interface/models.py:194 admin_interface/models.py:279
msgid "rounded corners" msgid "rounded corners"
msgstr "coins arrondis" msgstr "coins arrondis"
#: admin_interface/models.py:211 admin_interface/models.py:230 #: admin_interface/models.py:220 admin_interface/models.py:239
msgid "background hover color" msgid "background hover color"
msgstr "couleur de fond au survol" msgstr "couleur de fond au survol"
#: admin_interface/models.py:267 #: admin_interface/models.py:276
msgid "background opacity" msgid "background opacity"
msgstr "opacité de l'arrière-plan" msgstr "opacité de l'arrière-plan"
#: admin_interface/models.py:273 #: admin_interface/models.py:282
msgid "close button visible" msgid "close button visible"
msgstr "bouton fermer visible" msgstr "bouton fermer visible"
#: admin_interface/models.py:277 #: admin_interface/models.py:286
msgid "use dropdown" msgid "use dropdown"
msgstr "utiliser un menu déroulant" msgstr "utiliser un menu déroulant"
#: admin_interface/models.py:289 #: admin_interface/models.py:298
msgid "Theme" msgid "Theme"
msgstr "Thème" msgstr "Thème"
#: admin_interface/models.py:290 #: admin_interface/models.py:299
msgid "Themes" msgid "Themes"
msgstr "Thèmes" msgstr "Thèmes"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django-admin-interface\n" "Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-03 16:43+0000\n" "POT-Creation-Date: 2019-09-04 09:19+0000\n"
"PO-Revision-Date: 2018-12-30 19:13-0500\n" "PO-Revision-Date: 2018-12-30 19:13-0500\n"
"Last-Translator: Fabio Caccamo <fabio.caccamo@gmail.com>\n" "Last-Translator: Fabio Caccamo <fabio.caccamo@gmail.com>\n"
"Language-Team: Italian <LL@li.org>\n" "Language-Team: Italian <LL@li.org>\n"
@ -27,47 +27,47 @@ msgstr "Ambiente"
msgid "Language chooser" msgid "Language chooser"
msgstr "Selettore di lingua" msgstr "Selettore di lingua"
#: admin_interface/admin.py:36 #: admin_interface/admin.py:37
msgid "Logo" msgid "Logo"
msgstr "Logo" msgstr "Logo"
#: admin_interface/admin.py:44 #: admin_interface/admin.py:45
msgid "Favicon" msgid "Favicon"
msgstr "Favicon" msgstr "Favicon"
#: admin_interface/admin.py:48 #: admin_interface/admin.py:49
msgid "Title" msgid "Title"
msgstr "Titolo" msgstr "Titolo"
#: admin_interface/admin.py:56 #: admin_interface/admin.py:57
msgid "Header" msgid "Header"
msgstr "Header" msgstr "Header"
#: admin_interface/admin.py:65 #: admin_interface/admin.py:66
msgid "Breadcrumbs / Module headers" msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Header dei moduli" msgstr "Breadcrumbs / Header dei moduli"
#: admin_interface/admin.py:75 #: admin_interface/admin.py:76
msgid "Generic Links" msgid "Generic Links"
msgstr "Link generici" msgstr "Link generici"
#: admin_interface/admin.py:82 #: admin_interface/admin.py:83
msgid "Save Buttons" msgid "Save Buttons"
msgstr "Pulsanti per salvare" msgstr "Pulsanti per salvare"
#: admin_interface/admin.py:90 #: admin_interface/admin.py:91
msgid "Delete Buttons" msgid "Delete Buttons"
msgstr "Pulsanti per eliminare" msgstr "Pulsanti per eliminare"
#: admin_interface/admin.py:98 #: admin_interface/admin.py:99
msgid "Related Modal" msgid "Related Modal"
msgstr "Modale per gli oggetti correlati" msgstr "Modale per gli oggetti correlati"
#: admin_interface/admin.py:108 #: admin_interface/admin.py:109
msgid "List Filter" msgid "List Filter"
msgstr "Filtro listato" msgstr "Filtro listato"
#: admin_interface/admin.py:112 #: admin_interface/admin.py:113
msgid "Recent Actions" msgid "Recent Actions"
msgstr "Azioni recenti" msgstr "Azioni recenti"
@ -76,11 +76,12 @@ msgid "Admin Interface"
msgstr "Interfaccia di amministrazione" msgstr "Interfaccia di amministrazione"
#: admin_interface/models.py:72 admin_interface/models.py:116 #: admin_interface/models.py:72 admin_interface/models.py:116
#: admin_interface/models.py:135
msgid "name" msgid "name"
msgstr "nome" msgstr "nome"
#: admin_interface/models.py:75 admin_interface/models.py:132 #: admin_interface/models.py:75 admin_interface/models.py:132
#: admin_interface/models.py:244 #: admin_interface/models.py:253
msgid "active" msgid "active"
msgstr "attivo" msgstr "attivo"
@ -100,7 +101,7 @@ msgid "color"
msgstr "colore" msgstr "colore"
#: admin_interface/models.py:90 admin_interface/models.py:105 #: admin_interface/models.py:90 admin_interface/models.py:105
#: admin_interface/models.py:280 #: admin_interface/models.py:289
msgid "visible" msgid "visible"
msgstr "visibile" msgstr "visibile"
@ -136,53 +137,61 @@ msgstr "visibile nell'header (marker e nome)"
msgid "visible in favicon (marker)" msgid "visible in favicon (marker)"
msgstr "visibile nella favicon (marker)" msgstr "visibile nella favicon (marker)"
#: admin_interface/models.py:139 admin_interface/models.py:164 #: admin_interface/models.py:134
#: admin_interface/models.py:205 admin_interface/models.py:224 msgid "code"
#: admin_interface/models.py:250 msgstr "codice"
#: admin_interface/models.py:141
msgid "display"
msgstr "visualizzazione"
#: admin_interface/models.py:148 admin_interface/models.py:173
#: admin_interface/models.py:214 admin_interface/models.py:233
#: admin_interface/models.py:259
msgid "background color" msgid "background color"
msgstr "colore di sfondo" msgstr "colore di sfondo"
#: admin_interface/models.py:145 admin_interface/models.py:170 #: admin_interface/models.py:154 admin_interface/models.py:179
#: admin_interface/models.py:217 admin_interface/models.py:236 #: admin_interface/models.py:226 admin_interface/models.py:245
#: admin_interface/models.py:240 #: admin_interface/models.py:249
msgid "text color" msgid "text color"
msgstr "colore del testo" msgstr "colore del testo"
#: admin_interface/models.py:151 admin_interface/models.py:176 #: admin_interface/models.py:160 admin_interface/models.py:185
#: admin_interface/models.py:192 #: admin_interface/models.py:201
msgid "link color" msgid "link color"
msgstr "colore dei link" msgstr "colore dei link"
#: admin_interface/models.py:157 admin_interface/models.py:182 #: admin_interface/models.py:166 admin_interface/models.py:191
#: admin_interface/models.py:198 #: admin_interface/models.py:207
msgid "link hover color" msgid "link hover color"
msgstr "colore dei link in hover" msgstr "colore dei link in hover"
#: admin_interface/models.py:185 admin_interface/models.py:270 #: admin_interface/models.py:194 admin_interface/models.py:279
msgid "rounded corners" msgid "rounded corners"
msgstr "bordi arrotondati" msgstr "bordi arrotondati"
#: admin_interface/models.py:211 admin_interface/models.py:230 #: admin_interface/models.py:220 admin_interface/models.py:239
msgid "background hover color" msgid "background hover color"
msgstr "colore di sfondo in hover" msgstr "colore di sfondo in hover"
#: admin_interface/models.py:267 #: admin_interface/models.py:276
msgid "background opacity" msgid "background opacity"
msgstr "opacità dello sfondo" msgstr "opacità dello sfondo"
#: admin_interface/models.py:273 #: admin_interface/models.py:282
msgid "close button visible" msgid "close button visible"
msgstr "pulsante chiudi visibile" msgstr "pulsante chiudi visibile"
#: admin_interface/models.py:277 #: admin_interface/models.py:286
msgid "use dropdown" msgid "use dropdown"
msgstr "usa dropdown" msgstr "usa dropdown"
#: admin_interface/models.py:289 #: admin_interface/models.py:298
msgid "Theme" msgid "Theme"
msgstr "Tema" msgstr "Tema"
#: admin_interface/models.py:290 #: admin_interface/models.py:299
msgid "Themes" msgid "Themes"
msgstr "Temi" msgstr "Temi"

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('admin_interface', '0015_add_language_chooser_active'),
]
operations = [
migrations.AddField(
model_name='theme',
name='language_chooser_display',
field=models.CharField(choices=[('code', 'code'), ('name', 'name')], default='code', max_length=10, verbose_name='display'),
),
]

View File

@ -130,6 +130,15 @@ class Theme(models.Model):
language_chooser_active = models.BooleanField( language_chooser_active = models.BooleanField(
default=True, default=True,
verbose_name=_('active')) verbose_name=_('active'))
language_chooser_display_choices = (
('code', _('code'), ),
('name', _('name'), ),
)
language_chooser_display = models.CharField(
max_length=10,
choices=language_chooser_display_choices,
default='code',
verbose_name=_('display'))
css_header_background_color = ColorField( css_header_background_color = ColorField(
blank=True, blank=True,

View File

@ -64,6 +64,9 @@ https://github.com/fabiocaccamo/django-admin-interface
{% block welcome-msg %} {% block welcome-msg %}
{% get_admin_interface_theme as theme %} {% get_admin_interface_theme as theme %}
{% if theme.language_chooser_active %}{% get_admin_interface_language_chooser %}{% endif %} {% if theme.language_chooser_active %}
{% get_admin_interface_languages as languages %}
{% include "admin_interface/language_chooser.html" %}
{% endif %}
{% if theme.env_visible_in_header %}<span class="environment-label {{ theme.env_name }}"></span> - {% endif %}{{ block.super }}<br> {% if theme.env_visible_in_header %}<span class="environment-label {{ theme.env_name }}"></span> - {% endif %}{{ block.super }}<br>
{% endblock %} {% endblock %}

View File

@ -1,5 +1,6 @@
{% load admin_interface_tags %} {% load admin_interface_tags %}
{% if languages %}
<div class="language-chooser"> <div class="language-chooser">
{% for language in languages %} {% 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-hidden-form" id="language-chooser-hidden-form-{{ language.code }}" action="{{ language.activation_url }}" method="POST">
@ -11,8 +12,9 @@
{% csrf_token %} {% csrf_token %}
<select name="language" onchange="document.getElementById(String('language-chooser-hidden-form-' + this.value)).submit();"> <select name="language" onchange="document.getElementById(String('language-chooser-hidden-form-' + this.value)).submit();">
{% for language in languages %} {% for language in languages %}
<option value="{{ language.code }}" {% if language.active %}selected{% endif %}>{{ language.code|upper }}</option> <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>
{% endfor %} {% endfor %}
</select> </select>
</form> </form>
</div> </div>
{% endif %}

View File

@ -4,9 +4,9 @@ import django
from django import template, VERSION from django import template, VERSION
from django.conf import settings from django.conf import settings
if django.VERSION < (1, 10): if django.VERSION < (1, 10):
from django.core.urlresolvers import reverse from django.core.urlresolvers import NoReverseMatch, reverse
else: else:
from django.urls import reverse from django.urls import NoReverseMatch, reverse
from django.utils import translation from django.utils import translation
from admin_interface.cache import get_cached_active_theme, set_cached_active_theme from admin_interface.cache import get_cached_active_theme, set_cached_active_theme
@ -24,33 +24,47 @@ else:
simple_tag = register.simple_tag simple_tag = register.simple_tag
@register.inclusion_tag('admin_interface/language_chooser.html', takes_context=True) @simple_tag(takes_context=True)
def get_admin_interface_language_chooser(context): def get_admin_interface_languages(context):
langs_data = [] if not settings.USE_I18N:
if settings.USE_I18N and len(settings.LANGUAGES) > 1: # i18n disabled
request = context.get('request') return None
if len(settings.LANGUAGES) < 2:
# less than 2 languages
return None
try:
set_language_url = reverse('set_language')
except NoReverseMatch:
# ImproperlyConfigured - must include i18n urls:
# urlpatterns += [url(r'^i18n/', include('django.conf.urls.i18n')),]
return None
request = context.get('request', None)
if not request:
return None
full_path = request.get_full_path() full_path = request.get_full_path()
admin_nolang_url = re.sub(r'^\/([\w]{2})([\-\_]{1}[\w]{2})?\/', '/', full_path)
if admin_nolang_url == full_path:
# ImproperlyConfigured - must include admin urls using i18n_patterns:
# from django.conf.urls.i18n import i18n_patterns
# urlpatterns += i18n_patterns(url(r'^admin/', admin.site.urls))
return None
langs_data = []
default_lang_code = settings.LANGUAGE_CODE default_lang_code = settings.LANGUAGE_CODE
current_lang_code = translation.get_language() or default_lang_code current_lang_code = translation.get_language() or default_lang_code
for language in settings.LANGUAGES: for language in settings.LANGUAGES:
lang_code = language[0].lower() lang_code = language[0].lower()
lang_name = language[1].title() lang_name = language[1].title()
with translation.override(lang_code):
lang_data = { lang_data = {
'code': lang_code, 'code': lang_code,
'name': lang_name, 'name': lang_name,
'default': bool(lang_code == default_lang_code), 'default': bool(lang_code == default_lang_code),
'active': bool(lang_code == current_lang_code), 'active': bool(lang_code == current_lang_code),
'activation_url': '{}?next=/{}{}'.format(
set_language_url, lang_code, admin_nolang_url)
} }
with translation.override(lang_code):
lang_set_url = '{}?language={}'.format(
reverse('set_language'), lang_code)
lang_next_url = re.sub(
r'^\/[\w\-\_]+', '/{}'.format(lang_code), full_path)
lang_activation_url = '{}&next={}'.format(
lang_set_url, lang_next_url)
lang_data['activation_url'] = lang_activation_url
langs_data.append(lang_data) langs_data.append(lang_data)
return { 'languages':langs_data } return langs_data
@simple_tag(takes_context=True) @simple_tag(takes_context=True)

View File

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
__version__ = '0.11.0' __version__ = '0.11.1'