From 06de101dede1c3fe9374920e2f829d050500b60d Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Tue, 3 Sep 2019 18:46:31 +0200 Subject: [PATCH] Added language chooser. --- admin_interface/admin.py | 6 ++ .../locale/es/LC_MESSAGES/django.mo | Bin 2289 -> 2289 bytes .../locale/es/LC_MESSAGES/django.po | 95 +++++++++--------- .../locale/fr/LC_MESSAGES/django.mo | Bin 2647 -> 2688 bytes .../locale/fr/LC_MESSAGES/django.po | 95 +++++++++--------- .../locale/it/LC_MESSAGES/django.mo | Bin 2710 -> 2787 bytes .../locale/it/LC_MESSAGES/django.po | 95 +++++++++--------- .../0015_add_language_chooser_active.py | 20 ++++ admin_interface/models.py | 4 + .../templates/admin/base_site.html | 1 + .../admin_interface/css/admin-interface.css | 14 +++ .../admin_interface/language_chooser.html | 18 ++++ .../templatetags/admin_interface_tags.py | 39 +++++++ admin_interface/version.py | 2 +- 14 files changed, 253 insertions(+), 136 deletions(-) create mode 100644 admin_interface/migrations/0015_add_language_chooser_active.py create mode 100644 admin_interface/templates/admin_interface/language_chooser.html diff --git a/admin_interface/admin.py b/admin_interface/admin.py index ac31021..f6f21f8 100644 --- a/admin_interface/admin.py +++ b/admin_interface/admin.py @@ -27,6 +27,12 @@ class ThemeAdmin(admin.ModelAdmin): 'env_visible_in_favicon', ) }), + (_('Language chooser'), { + 'classes': ('wide', ), + 'fields': ( + 'language_chooser_active', + ) + }), (_('Logo'), { 'classes': ('wide', ), 'fields': ( diff --git a/admin_interface/locale/es/LC_MESSAGES/django.mo b/admin_interface/locale/es/LC_MESSAGES/django.mo index adae0c504c64342d0feef6beeb196040a3782564..16add5040e20b65eec7c3d9ebafc712f4d1723a0 100644 GIT binary patch delta 23 ecmew;_)&0!J1du^u7R\n" "Language-Team: Spanish \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" diff --git a/admin_interface/locale/fr/LC_MESSAGES/django.mo b/admin_interface/locale/fr/LC_MESSAGES/django.mo index 01909d660f948b98ed541a2989439ad57a898f88..945249d1c745b1ba36df3b9ae82c5d6320e60c85 100644 GIT binary patch delta 376 zcmXZYJxfAS9LMp$X+DIS&k;hXpb&cD-qgsu7}Q*gLy(JvgANKJt?CbgX>`ywe3>H0*nIKf+-;URuw4&8o{ zC>Ah@7Z}7FWQ*Km3?DFnk66VqYR(IKaE-_K=9kef@Y9+2#W)L5PJ1zr8eBqZl!~K` zM~p8~gYGbm1JuH%sORR6&!`2gQ1`#07V;jbb1ObRmaB(G>of3yEW|ed&YHZ*tRogrd2acdO2gA+m&+Bq%CXS6VD&FBPjC# delta 337 zcmXZYyAAtKXb6GvA!dICD*J`i9dqL_U6ztcWy&A_eSW2ZtEL6BhA?34CJ)W2Q(1OGrzq zn8Z3-*v1-mQFCVK!zJc%Ws36)Jh+Vurr3C50AHxVUecIR!mbI-QRh&DDrjR1b+7^I zy^-q#b$}`A`334AJF7uBi#?4f9x;w*)CcdV!4K3x3H^V<#4=@hJNK-;+d;tgeF3`9 B9>@Ry diff --git a/admin_interface/locale/fr/LC_MESSAGES/django.po b/admin_interface/locale/fr/LC_MESSAGES/django.po index ff3ff2a..621d34f 100644 --- a/admin_interface/locale/fr/LC_MESSAGES/django.po +++ b/admin_interface/locale/fr/LC_MESSAGES/django.po @@ -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 \n" "Language-Team: LANGUAGE \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 l’en-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" diff --git a/admin_interface/locale/it/LC_MESSAGES/django.mo b/admin_interface/locale/it/LC_MESSAGES/django.mo index 186e21bb3f12511427d0da7460a23e16f8e91d76..fe9c514e78f8c688d7ddddb01008b74eb97783d9 100644 GIT binary patch delta 994 zcmYk*Jx^0n7{KvUTCh|=1uDLv7Qq)VCRPl-kmxsnp)ST~0<7 zS}_sAIKFM6Bc3Ni$l?nez!jXt&$tT*QqAY`*v0h(I{pUk#0A`eRqVtiY{MGv=5|=- zWP}^<&<8e=BmAUeK-fYj{)w3) zSm6DkD;>gNoW>)#hz@*(`*9UH!Uml$_=Z-Zfv)@y_TV<2#g6u7#jcTN4x*Jhh5kN{&VM!b8k*3} z4E1;7d)#n>MYNQUk;Q}>T9KDHglkA8qp(6$I7-AZ?h%u7LC$3ypt)%c=RHPqU%Sux zXzsr#Ov3QHos7i`%iV^*TT=DsJv|enx-qKSj X&6g^b@`F;YIG3BB^MU$WdNc74P}@|p delta 930 zcmXxjyK59t6oB!w$!6DG*GHlo<0ElmOtK0Avzipzh}D9Hh=df02ns$5g8?n9rV$rw zQ3&|P#t0%Ts9o?c&_*qUZNy3tv{Dew_ie_@oco)Zy>sWDb7#L)?^e@xU;a+eYQ!#L zJ{K{C_qyn4SGpsrxQN5p#1r@oH{oyexl%r2BaWftr*J(U$0E++20ViWyo~!J(zwcr z10NzsJg3`?FVP9#q7S~u3bwHazo8TT$gY27*MHIHdl=M@{n&>SxD}5gN6gR_d4J4t zQs%}v^uYyWjz}|apqbu6$1Nd8Jf(9%%V>tLaVM_e2!6&U)%=Gpq{*OZe1NC$0}k>2 z*tafXH#X3L7jZkL$Pr6)zTgR3iDfkNH(19Nv{FCOh385Uy;wl+4`71hXaySRxYL+= za+VV(ypXwoR^l4Ekele9KEeTfg^quRF6<*(p?3EBcXZw&<(W$JGU zk8p#GWXgAnAF<$P5l!t zeEA;2{Tn3437gs4wh+U_kQcNXVMWY-8)4&*&{?#ZSq+=p<;QJOCQ4yql!)Zm^<=bm k{?hHo-G5py@?Uf1gA?@w$>j9m$$IO4VXmuHDSgVV0$-6vp#T5? diff --git a/admin_interface/locale/it/LC_MESSAGES/django.po b/admin_interface/locale/it/LC_MESSAGES/django.po index 3832275..31ff5f8 100644 --- a/admin_interface/locale/it/LC_MESSAGES/django.po +++ b/admin_interface/locale/it/LC_MESSAGES/django.po @@ -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 \n" "Language-Team: Italian \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" diff --git a/admin_interface/migrations/0015_add_language_chooser_active.py b/admin_interface/migrations/0015_add_language_chooser_active.py new file mode 100644 index 0000000..fba1e04 --- /dev/null +++ b/admin_interface/migrations/0015_add_language_chooser_active.py @@ -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'), + ), + ] diff --git a/admin_interface/models.py b/admin_interface/models.py index 521d539..137b615 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -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', diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index dd66a73..9f7b76b 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -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 %} - {% endif %}{{ block.super }}
{% endblock %} diff --git a/admin_interface/templates/admin_interface/css/admin-interface.css b/admin_interface/templates/admin_interface/css/admin-interface.css index 21849ac..ee14d7c 100644 --- a/admin_interface/templates/admin_interface/css/admin-interface.css +++ b/admin_interface/templates/admin_interface/css/admin-interface.css @@ -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 }}; } diff --git a/admin_interface/templates/admin_interface/language_chooser.html b/admin_interface/templates/admin_interface/language_chooser.html new file mode 100644 index 0000000..6cc4354 --- /dev/null +++ b/admin_interface/templates/admin_interface/language_chooser.html @@ -0,0 +1,18 @@ +{% load admin_interface_tags %} + +
+ {% for language in languages %} +
+ {% csrf_token %} + +
+ {% endfor %} +
+ {% csrf_token %} + +
+
\ No newline at end of file diff --git a/admin_interface/templatetags/admin_interface_tags.py b/admin_interface/templatetags/admin_interface_tags.py index 409b580..4073f10 100644 --- a/admin_interface/templatetags/admin_interface_tags.py +++ b/admin_interface/templatetags/admin_interface_tags.py @@ -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() diff --git a/admin_interface/version.py b/admin_interface/version.py index a9dcc73..4cad2e2 100644 --- a/admin_interface/version.py +++ b/admin_interface/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -__version__ = '0.10.5' +__version__ = '0.11.0'