Added language chooser.

pull/69/head 0.11.0
Fabio Caccamo 2019-09-03 18:46:31 +02:00
parent 59ab83538f
commit 06de101ded
14 changed files with 253 additions and 136 deletions

View File

@ -27,6 +27,12 @@ class ThemeAdmin(admin.ModelAdmin):
'env_visible_in_favicon',
)
}),
(_('Language chooser'), {
'classes': ('wide', ),
'fields': (
'language_chooser_active',
)
}),
(_('Logo'), {
'classes': ('wide', ),
'fields': (

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-03-20 16:12+0000\n"
"POT-Creation-Date: 2019-09-03 16:43+0000\n"
"PO-Revision-Date: 2018-12-30 19:13-0500\n"
"Last-Translator: Martin Vuelta <martin.vuelta@softbutterfly.io>\n"
"Language-Team: Spanish <dev@softbutterfly.io>\n"
@ -19,51 +19,55 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin_interface/admin.py:19
#: admin_interface/admin.py:21
msgid "Environment"
msgstr "Ambiente"
#: admin_interface/admin.py:28
#: admin_interface/admin.py:30
msgid "Language chooser"
msgstr ""
#: admin_interface/admin.py:36
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py:36
#: admin_interface/admin.py:44
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py:40
#: admin_interface/admin.py:48
msgid "Title"
msgstr "Título"
#: admin_interface/admin.py:48
#: admin_interface/admin.py:56
msgid "Header"
msgstr "Encabezado"
#: admin_interface/admin.py:57
#: admin_interface/admin.py:65
msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Encabezados de módulos"
#: admin_interface/admin.py:67
#: admin_interface/admin.py:75
msgid "Generic Links"
msgstr "Enlaces genéricos"
#: admin_interface/admin.py:74
#: admin_interface/admin.py:82
msgid "Save Buttons"
msgstr "Botones de guardar"
#: admin_interface/admin.py:82
#: admin_interface/admin.py:90
msgid "Delete Buttons"
msgstr "Botones de borrar"
#: admin_interface/admin.py:90
#: admin_interface/admin.py:98
msgid "Related Modal"
msgstr "Modal para objetos relacionados"
#: admin_interface/admin.py:99
#: admin_interface/admin.py:108
msgid "List Filter"
msgstr "Lista de filtros"
#: admin_interface/admin.py:103
#: admin_interface/admin.py:112
msgid "Recent Actions"
msgstr "Acciones recientes"
@ -71,113 +75,114 @@ msgstr "Acciones recientes"
msgid "Admin Interface"
msgstr "Interfaz de administración"
#: admin_interface/models.py:56 admin_interface/models.py:100
#: admin_interface/models.py:72 admin_interface/models.py:116
msgid "name"
msgstr "Nombre"
#: admin_interface/models.py:59 admin_interface/models.py:224
#: admin_interface/models.py:75 admin_interface/models.py:132
#: admin_interface/models.py:244
msgid "active"
msgstr "Activo"
#: admin_interface/models.py:63
#: admin_interface/models.py:79
#: admin_interface/templates/admin/base_site.html:6
#: admin_interface/templates/admin/base_site.html:60
msgid "Django administration"
msgstr "Administración de Django"
#: admin_interface/models.py:65
#: admin_interface/models.py:81
msgid "title"
msgstr "Título"
#: admin_interface/models.py:71 admin_interface/models.py:86
#: admin_interface/models.py:106
#: admin_interface/models.py:87 admin_interface/models.py:102
#: admin_interface/models.py:122
#, fuzzy
#| msgid "logo color"
msgid "color"
msgstr "color de logo"
#: admin_interface/models.py:74 admin_interface/models.py:89
#: admin_interface/models.py:260
#: admin_interface/models.py:90 admin_interface/models.py:105
#: admin_interface/models.py:280
msgid "visible"
msgstr "Visible"
#: admin_interface/models.py:79
#: admin_interface/models.py:95
msgid "Leave blank to use the default Django logo"
msgstr "Dejar en blanco para usaer el logo por defecto de Django"
#: admin_interface/models.py:80
#: admin_interface/models.py:96
msgid "logo"
msgstr "logo"
#: admin_interface/models.py:94
#: admin_interface/models.py:110
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "Formatos ico, png o gif. Tamaños de 16x16 o 32x32 pixeles"
#: admin_interface/models.py:95
#: admin_interface/models.py:111
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py:104
#: admin_interface/models.py:120
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
#: admin_interface/models.py:109
#: admin_interface/models.py:125
msgid "visible in header (marker and name)"
msgstr ""
#: admin_interface/models.py:112
#: admin_interface/models.py:128
msgid "visible in favicon (marker)"
msgstr ""
#: admin_interface/models.py:119 admin_interface/models.py:144
#: admin_interface/models.py:185 admin_interface/models.py:204
#: admin_interface/models.py:230
#: admin_interface/models.py:139 admin_interface/models.py:164
#: admin_interface/models.py:205 admin_interface/models.py:224
#: admin_interface/models.py:250
msgid "background color"
msgstr "color de fondo"
#: admin_interface/models.py:125 admin_interface/models.py:150
#: admin_interface/models.py:197 admin_interface/models.py:216
#: admin_interface/models.py:220
#: admin_interface/models.py:145 admin_interface/models.py:170
#: admin_interface/models.py:217 admin_interface/models.py:236
#: admin_interface/models.py:240
msgid "text color"
msgstr "color de texto"
#: admin_interface/models.py:131 admin_interface/models.py:156
#: admin_interface/models.py:172
#: admin_interface/models.py:151 admin_interface/models.py:176
#: admin_interface/models.py:192
msgid "link color"
msgstr "color de enlace"
#: admin_interface/models.py:137 admin_interface/models.py:162
#: admin_interface/models.py:178
#: admin_interface/models.py:157 admin_interface/models.py:182
#: admin_interface/models.py:198
msgid "link hover color"
msgstr "color de enlace (hover)"
#: admin_interface/models.py:165 admin_interface/models.py:250
#: admin_interface/models.py:185 admin_interface/models.py:270
msgid "rounded corners"
msgstr "esquinas redondas"
#: admin_interface/models.py:191 admin_interface/models.py:210
#: admin_interface/models.py:211 admin_interface/models.py:230
msgid "background hover color"
msgstr "color de fondo (hover)"
#: admin_interface/models.py:247
#: admin_interface/models.py:267
msgid "background opacity"
msgstr "opacidad de fondo"
#: admin_interface/models.py:253
#: admin_interface/models.py:273
msgid "close button visible"
msgstr ""
#: admin_interface/models.py:257
#: admin_interface/models.py:277
msgid "use dropdown"
msgstr "Usar lista desplegable"
#: admin_interface/models.py:269
#: admin_interface/models.py:289
msgid "Theme"
msgstr "Tema"
#: admin_interface/models.py:270
#: admin_interface/models.py:290
msgid "Themes"
msgstr "Temas"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-03-20 14:12-0400\n"
"POT-Creation-Date: 2019-09-03 16:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,51 +18,55 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: admin_interface/admin.py:19
#: admin_interface/admin.py:21
msgid "Environment"
msgstr "Environnment"
#: admin_interface/admin.py:28
#: admin_interface/admin.py:30
msgid "Language chooser"
msgstr ""
#: admin_interface/admin.py:36
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py:36
#: admin_interface/admin.py:44
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py:40
#: admin_interface/admin.py:48
msgid "Title"
msgstr "Titre"
#: admin_interface/admin.py:48
#: admin_interface/admin.py:56
msgid "Header"
msgstr "Bannière"
#: admin_interface/admin.py:57
#: admin_interface/admin.py:65
msgid "Breadcrumbs / Module headers"
msgstr "Fil d'ariane / en-têtes de module"
#: admin_interface/admin.py:67
#: admin_interface/admin.py:75
msgid "Generic Links"
msgstr "Liens génériques"
#: admin_interface/admin.py:74
#: admin_interface/admin.py:82
msgid "Save Buttons"
msgstr "Boutons sauvegarder"
#: admin_interface/admin.py:82
#: admin_interface/admin.py:90
msgid "Delete Buttons"
msgstr "Boutons supprimer"
#: admin_interface/admin.py:90
#: admin_interface/admin.py:98
msgid "Related Modal"
msgstr "Modale pour objet reliés"
#: admin_interface/admin.py:100
#: admin_interface/admin.py:108
msgid "List Filter"
msgstr "Filtre de liste"
#: admin_interface/admin.py:104
#: admin_interface/admin.py:112
msgid "Recent Actions"
msgstr "Actions récentes"
@ -70,51 +74,52 @@ msgstr "Actions récentes"
msgid "Admin Interface"
msgstr "Interface Admin"
#: admin_interface/models.py:56 admin_interface/models.py:100
#: admin_interface/models.py:72 admin_interface/models.py:116
msgid "name"
msgstr "nom"
#: admin_interface/models.py:59 admin_interface/models.py:224
#: admin_interface/models.py:75 admin_interface/models.py:132
#: admin_interface/models.py:244
msgid "active"
msgstr "actif"
#: admin_interface/models.py:63
#: admin_interface/models.py:79
#: admin_interface/templates/admin/base_site.html:6
#: admin_interface/templates/admin/base_site.html:60
msgid "Django administration"
msgstr "Administration Django"
#: admin_interface/models.py:65
#: admin_interface/models.py:81
msgid "title"
msgstr "titre"
#: admin_interface/models.py:71 admin_interface/models.py:86
#: admin_interface/models.py:106
#: admin_interface/models.py:87 admin_interface/models.py:102
#: admin_interface/models.py:122
msgid "color"
msgstr "couleur"
#: admin_interface/models.py:74 admin_interface/models.py:89
#: admin_interface/models.py:260
#: admin_interface/models.py:90 admin_interface/models.py:105
#: admin_interface/models.py:280
msgid "visible"
msgstr "visible"
#: admin_interface/models.py:79
#: admin_interface/models.py:95
msgid "Leave blank to use the default Django logo"
msgstr "Laisser vide pour utiliser le logo Django par défaut"
#: admin_interface/models.py:80
#: admin_interface/models.py:96
msgid "logo"
msgstr "logo"
#: admin_interface/models.py:94
#: admin_interface/models.py:110
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(.ico|.png|.gif - 16x16|32x32 px)"
#: admin_interface/models.py:95
#: admin_interface/models.py:111
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py:104
#: admin_interface/models.py:120
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
@ -122,61 +127,61 @@ msgstr ""
"(rouge: #E74C3C, orange: #E67E22, jaune: #F1C40F, vert: #2ECC71, bleu: "
"#3498DB)"
#: admin_interface/models.py:109
#: admin_interface/models.py:125
msgid "visible in header (marker and name)"
msgstr "visible dans len-tête (marqueur et nom)"
#: admin_interface/models.py:112
#: admin_interface/models.py:128
msgid "visible in favicon (marker)"
msgstr "visible dans la favicon (marqueur)"
#: admin_interface/models.py:119 admin_interface/models.py:144
#: admin_interface/models.py:185 admin_interface/models.py:204
#: admin_interface/models.py:230
#: admin_interface/models.py:139 admin_interface/models.py:164
#: admin_interface/models.py:205 admin_interface/models.py:224
#: admin_interface/models.py:250
msgid "background color"
msgstr "couleur d'arrière-plan"
#: admin_interface/models.py:125 admin_interface/models.py:150
#: admin_interface/models.py:197 admin_interface/models.py:216
#: admin_interface/models.py:220
#: admin_interface/models.py:145 admin_interface/models.py:170
#: admin_interface/models.py:217 admin_interface/models.py:236
#: admin_interface/models.py:240
msgid "text color"
msgstr "couleur du texte"
#: admin_interface/models.py:131 admin_interface/models.py:156
#: admin_interface/models.py:172
#: admin_interface/models.py:151 admin_interface/models.py:176
#: admin_interface/models.py:192
msgid "link color"
msgstr "couleur de lien"
#: admin_interface/models.py:137 admin_interface/models.py:162
#: admin_interface/models.py:178
#: admin_interface/models.py:157 admin_interface/models.py:182
#: admin_interface/models.py:198
msgid "link hover color"
msgstr "couleur de lien au survol"
#: admin_interface/models.py:165 admin_interface/models.py:250
#: admin_interface/models.py:185 admin_interface/models.py:270
msgid "rounded corners"
msgstr "coins arrondis"
#: admin_interface/models.py:191 admin_interface/models.py:210
#: admin_interface/models.py:211 admin_interface/models.py:230
msgid "background hover color"
msgstr "couleur de fond au survol"
#: admin_interface/models.py:247
#: admin_interface/models.py:267
msgid "background opacity"
msgstr "opacité de l'arrière-plan"
#: admin_interface/models.py:253
#: admin_interface/models.py:273
msgid "close button visible"
msgstr "bouton fermer visible"
#: admin_interface/models.py:257
#: admin_interface/models.py:277
msgid "use dropdown"
msgstr "utiliser un menu déroulant"
#: admin_interface/models.py:269
#: admin_interface/models.py:289
msgid "Theme"
msgstr "Thème"
#: admin_interface/models.py:270
#: admin_interface/models.py:290
msgid "Themes"
msgstr "Thèmes"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-03-20 16:12+0000\n"
"POT-Creation-Date: 2019-09-03 16:43+0000\n"
"PO-Revision-Date: 2018-12-30 19:13-0500\n"
"Last-Translator: Fabio Caccamo <fabio.caccamo@gmail.com>\n"
"Language-Team: Italian <LL@li.org>\n"
@ -19,51 +19,55 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin_interface/admin.py:19
#: admin_interface/admin.py:21
msgid "Environment"
msgstr "Ambiente"
#: admin_interface/admin.py:28
#: admin_interface/admin.py:30
msgid "Language chooser"
msgstr "Selettore di lingua"
#: admin_interface/admin.py:36
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py:36
#: admin_interface/admin.py:44
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py:40
#: admin_interface/admin.py:48
msgid "Title"
msgstr "Titolo"
#: admin_interface/admin.py:48
#: admin_interface/admin.py:56
msgid "Header"
msgstr "Header"
#: admin_interface/admin.py:57
#: admin_interface/admin.py:65
msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Header dei moduli"
#: admin_interface/admin.py:67
#: admin_interface/admin.py:75
msgid "Generic Links"
msgstr "Link generici"
#: admin_interface/admin.py:74
#: admin_interface/admin.py:82
msgid "Save Buttons"
msgstr "Pulsanti per salvare"
#: admin_interface/admin.py:82
#: admin_interface/admin.py:90
msgid "Delete Buttons"
msgstr "Pulsanti per eliminare"
#: admin_interface/admin.py:90
#: admin_interface/admin.py:98
msgid "Related Modal"
msgstr "Modale per gli oggetti correlati"
#: admin_interface/admin.py:99
#: admin_interface/admin.py:108
msgid "List Filter"
msgstr "Filtro listato"
#: admin_interface/admin.py:103
#: admin_interface/admin.py:112
msgid "Recent Actions"
msgstr "Azioni recenti"
@ -71,51 +75,52 @@ msgstr "Azioni recenti"
msgid "Admin Interface"
msgstr "Interfaccia di amministrazione"
#: admin_interface/models.py:56 admin_interface/models.py:100
#: admin_interface/models.py:72 admin_interface/models.py:116
msgid "name"
msgstr "nome"
#: admin_interface/models.py:59 admin_interface/models.py:224
#: admin_interface/models.py:75 admin_interface/models.py:132
#: admin_interface/models.py:244
msgid "active"
msgstr "attivo"
#: admin_interface/models.py:63
#: admin_interface/models.py:79
#: admin_interface/templates/admin/base_site.html:6
#: admin_interface/templates/admin/base_site.html:60
msgid "Django administration"
msgstr "Amministrazione di Django"
#: admin_interface/models.py:65
#: admin_interface/models.py:81
msgid "title"
msgstr "titolo"
#: admin_interface/models.py:71 admin_interface/models.py:86
#: admin_interface/models.py:106
#: admin_interface/models.py:87 admin_interface/models.py:102
#: admin_interface/models.py:122
msgid "color"
msgstr "colore"
#: admin_interface/models.py:74 admin_interface/models.py:89
#: admin_interface/models.py:260
#: admin_interface/models.py:90 admin_interface/models.py:105
#: admin_interface/models.py:280
msgid "visible"
msgstr "visibile"
#: admin_interface/models.py:79
#: admin_interface/models.py:95
msgid "Leave blank to use the default Django logo"
msgstr "Lasciare vuoto per usare il logo Django di default"
#: admin_interface/models.py:80
#: admin_interface/models.py:96
msgid "logo"
msgstr "logo"
#: admin_interface/models.py:94
#: admin_interface/models.py:110
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(formato ico, png o gif - dimensioni 16x16 o 32x32 px)"
#: admin_interface/models.py:95
#: admin_interface/models.py:111
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py:104
#: admin_interface/models.py:120
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
@ -123,61 +128,61 @@ msgstr ""
"(rosso: #E74C3C, arancione: #E67E22, giallo: #F1C40F, verde: #2ECC71, blu: "
"#3498DB)"
#: admin_interface/models.py:109
#: admin_interface/models.py:125
msgid "visible in header (marker and name)"
msgstr "visibile nell'header (marker e nome)"
#: admin_interface/models.py:112
#: admin_interface/models.py:128
msgid "visible in favicon (marker)"
msgstr "visibile nella favicon (marker)"
#: admin_interface/models.py:119 admin_interface/models.py:144
#: admin_interface/models.py:185 admin_interface/models.py:204
#: admin_interface/models.py:230
#: admin_interface/models.py:139 admin_interface/models.py:164
#: admin_interface/models.py:205 admin_interface/models.py:224
#: admin_interface/models.py:250
msgid "background color"
msgstr "colore di sfondo"
#: admin_interface/models.py:125 admin_interface/models.py:150
#: admin_interface/models.py:197 admin_interface/models.py:216
#: admin_interface/models.py:220
#: admin_interface/models.py:145 admin_interface/models.py:170
#: admin_interface/models.py:217 admin_interface/models.py:236
#: admin_interface/models.py:240
msgid "text color"
msgstr "colore del testo"
#: admin_interface/models.py:131 admin_interface/models.py:156
#: admin_interface/models.py:172
#: admin_interface/models.py:151 admin_interface/models.py:176
#: admin_interface/models.py:192
msgid "link color"
msgstr "colore dei link"
#: admin_interface/models.py:137 admin_interface/models.py:162
#: admin_interface/models.py:178
#: admin_interface/models.py:157 admin_interface/models.py:182
#: admin_interface/models.py:198
msgid "link hover color"
msgstr "colore dei link in hover"
#: admin_interface/models.py:165 admin_interface/models.py:250
#: admin_interface/models.py:185 admin_interface/models.py:270
msgid "rounded corners"
msgstr "bordi arrotondati"
#: admin_interface/models.py:191 admin_interface/models.py:210
#: admin_interface/models.py:211 admin_interface/models.py:230
msgid "background hover color"
msgstr "colore di sfondo in hover"
#: admin_interface/models.py:247
#: admin_interface/models.py:267
msgid "background opacity"
msgstr "opacità dello sfondo"
#: admin_interface/models.py:253
#: admin_interface/models.py:273
msgid "close button visible"
msgstr "pulsante chiudi visibile"
#: admin_interface/models.py:257
#: admin_interface/models.py:277
msgid "use dropdown"
msgstr "usa dropdown"
#: admin_interface/models.py:269
#: admin_interface/models.py:289
msgid "Theme"
msgstr "Tema"
#: admin_interface/models.py:270
#: admin_interface/models.py:290
msgid "Themes"
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', '0014_name_unique'),
]
operations = [
migrations.AddField(
model_name='theme',
name='language_chooser_active',
field=models.BooleanField(default=True, verbose_name='active'),
),
]

View File

@ -127,6 +127,10 @@ class Theme(models.Model):
default=True,
verbose_name=_('visible in favicon (marker)'))
language_chooser_active = models.BooleanField(
default=True,
verbose_name=_('active'))
css_header_background_color = ColorField(
blank=True,
default='#0C4B33',

View File

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

View File

@ -23,6 +23,20 @@
content: "{{ theme.env_name }}";
}
.admin-interface .language-chooser {
display: inline-block;
float: right;
margin-left: 20px;
}
.admin-interface .language-chooser-hidden-form {
display: none;
}
.admin-interface .language-chooser-select-form {
display: inline-block;
}
.admin-interface #branding h1 {
color: {{ theme.title_color }};
}

View File

@ -0,0 +1,18 @@
{% load admin_interface_tags %}
<div class="language-chooser">
{% for language in languages %}
<form class="language-chooser-hidden-form" id="language-chooser-hidden-form-{{ language.code }}" action="{{ language.activation_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 %}>{{ language.code|upper }}</option>
{% endfor %}
</select>
</form>
</div>

View File

@ -1,11 +1,21 @@
# -*- coding: utf-8 -*-
import django
from django import template, VERSION
from django.conf import settings
if django.VERSION < (1, 10):
from django.core.urlresolvers import reverse
else:
from django.urls import reverse
from django.utils import translation
from admin_interface.cache import get_cached_active_theme, set_cached_active_theme
from admin_interface.models import Theme
from admin_interface.version import __version__
import re
register = template.Library()
if VERSION < (1, 9):
@ -14,6 +24,35 @@ else:
simple_tag = register.simple_tag
@register.inclusion_tag('admin_interface/language_chooser.html', takes_context=True)
def get_admin_interface_language_chooser(context):
langs_data = []
if settings.USE_I18N and len(settings.LANGUAGES) > 1:
request = context.get('request')
full_path = request.get_full_path()
default_lang_code = settings.LANGUAGE_CODE
current_lang_code = translation.get_language() or default_lang_code
for language in settings.LANGUAGES:
lang_code = language[0].lower()
lang_name = language[1].title()
lang_data = {
'code': lang_code,
'name': lang_name,
'default': bool(lang_code == default_lang_code),
'active': bool(lang_code == current_lang_code),
}
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)
return { 'languages':langs_data }
@simple_tag(takes_context=True)
def get_admin_interface_theme(context):
theme = get_cached_active_theme()

View File

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