Version 0.1.4 0.1.4
authorThierry Florac <thierry.florac@onf.fr>
Wed, 12 Jul 2017 14:21:04 +0200
changeset 43 1d180eb3d4d5
parent 42 efb5e2a4255c
child 44 755ac7322c86
Version 0.1.4
.installed.cfg
buildout.cfg
docs/HISTORY.txt
setup.py
src/pyams_portal.egg-info/PKG-INFO
src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.mo
src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po
src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~
src/pyams_portal/locales/pyams_portal.pot
--- a/.installed.cfg	Wed Jul 12 12:25:00 2017 +0200
+++ b/.installed.cfg	Wed Jul 12 14:21:04 2017 +0200
@@ -16,15 +16,15 @@
 parts = package i18n pyflakes test
 
 [package]
-__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/prequest
+__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pdistreport
+	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/ptweens
+	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pshell
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pviews
+	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pserve
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/proutes
-	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/ptweens
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pcreate
-	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pshell
-	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pserve
-	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pdistreport
-__buildout_signature__ = zc.recipe.egg-2.0.3-py3.5.egg setuptools-33e816861da58aa9029eaa6913d33ccd zc.buildout-2.9.3-py3.5.egg
+	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/prequest
+__buildout_signature__ = zc.recipe.egg-2.0.3-py3.5.egg setuptools-e7e58fc36ac96295dcff9979007c0533 zc.buildout-2.9.3-py3.5.egg
 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin
 _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs
 _e = /var/local/env/pyams/eggs
@@ -42,7 +42,7 @@
 __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pybabel
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pot-create
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/polint
-__buildout_signature__ = zc.recipe.egg-2.0.3-py3.5.egg setuptools-33e816861da58aa9029eaa6913d33ccd zc.buildout-2.9.3-py3.5.egg
+__buildout_signature__ = zc.recipe.egg-2.0.3-py3.5.egg setuptools-e7e58fc36ac96295dcff9979007c0533 zc.buildout-2.9.3-py3.5.egg
 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin
 _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs
 _e = /var/local/env/pyams/eggs
@@ -57,7 +57,7 @@
 [pyflakes]
 __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pyflakes
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pyflakes
-__buildout_signature__ = zc.recipe.egg-2.0.3-py3.5.egg setuptools-33e816861da58aa9029eaa6913d33ccd zc.buildout-2.9.3-py3.5.egg
+__buildout_signature__ = zc.recipe.egg-2.0.3-py3.5.egg setuptools-e7e58fc36ac96295dcff9979007c0533 zc.buildout-2.9.3-py3.5.egg
 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin
 _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs
 _e = /var/local/env/pyams/eggs
@@ -74,7 +74,7 @@
 [test]
 __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/parts/test
 	/home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/test
-__buildout_signature__ = zc.recipe.testrunner-2.0.0-py3.5.egg zc.recipe.egg-2.0.3-py3.5.egg setuptools-33e816861da58aa9029eaa6913d33ccd zope.testrunner-4.7.0-py3.5.egg zc.buildout-2.9.3-py3.5.egg zope.interface-4.4.1-py3.5-linux-x86_64.egg zope.exceptions-4.1.0-py3.5.egg six-33e816861da58aa9029eaa6913d33ccd
+__buildout_signature__ = zc.recipe.testrunner-2.0.0-py3.5.egg zc.recipe.egg-2.0.3-py3.5.egg setuptools-e7e58fc36ac96295dcff9979007c0533 zope.testrunner-4.7.0-py3.5.egg zc.buildout-2.9.3-py3.5.egg zope.interface-4.4.1-py3.5-linux-x86_64.egg zope.exceptions-4.1.0-py3.5.egg six-cda86838cf68ee677b66d4f7c5d5ea83
 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin
 _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs
 _e = /var/local/env/pyams/eggs
--- a/buildout.cfg	Wed Jul 12 12:25:00 2017 +0200
+++ b/buildout.cfg	Wed Jul 12 14:21:04 2017 +0200
@@ -71,4 +71,4 @@
 eggs = pyams_portal [test]
 
 [versions]
-pyams_portal = 0.1.3
+pyams_portal = 0.1.4
--- a/docs/HISTORY.txt	Wed Jul 12 12:25:00 2017 +0200
+++ b/docs/HISTORY.txt	Wed Jul 12 14:21:04 2017 +0200
@@ -1,6 +1,15 @@
 History
 =======
 
+0.1.4
+-----
+ - updated portlet settings and renderer interfaces
+ - add selected renderer to portlet settings to allow selection between several renderers for a given portlet
+ - add support for a "target marker interface" when a given renderer is selected
+ - added "chain" marker to portlets which don't override configuration from parent or template
+ - changed templates manager role registration
+ - changed ZMI permissions
+
 0.1.3
 -----
  - use object_data(view) TALES extension instead of "view_data" in templates
--- a/setup.py	Wed Jul 12 12:25:00 2017 +0200
+++ b/setup.py	Wed Jul 12 14:21:04 2017 +0200
@@ -22,7 +22,7 @@
 README = os.path.join(DOCS, 'README.txt')
 HISTORY = os.path.join(DOCS, 'HISTORY.txt')
 
-version = '0.1.3'
+version = '0.1.4'
 long_description = open(README).read() + '\n\n' + open(HISTORY).read()
 
 tests_require = []
--- a/src/pyams_portal.egg-info/PKG-INFO	Wed Jul 12 12:25:00 2017 +0200
+++ b/src/pyams_portal.egg-info/PKG-INFO	Wed Jul 12 14:21:04 2017 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pyams-portal
-Version: 0.1.3
+Version: 0.1.4
 Summary: PyAMS portal and portlets interfaces and classes
 Home-page: http://hg.ztfy.org/pyams/pyams_portal
 Author: Thierry Florac
@@ -98,6 +98,15 @@
         History
         =======
         
+        0.1.4
+        -----
+         - updated portlet settings and renderer interfaces
+         - add selected renderer to portlet settings to allow selection between several renderers for a given portlet
+         - add support for a "target marker interface" when a given renderer is selected
+         - added "chain" marker to portlets which don't override configuration from parent or template
+         - changed templates manager role registration
+         - changed ZMI permissions
+        
         0.1.3
         -----
          - use object_data(view) TALES extension instead of "view_data" in templates
Binary file src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.mo has changed
--- a/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po	Wed Jul 12 12:25:00 2017 +0200
+++ b/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po	Wed Jul 12 14:21:04 2017 +0200
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2016-01-06 11:55+0100\n"
+"POT-Creation-Date: 2017-06-28 16:44+0200\n"
 "PO-Revision-Date: 2015-05-12 12:10+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -16,73 +16,109 @@
 "Generated-By: Lingua 3.10.dev0\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: src/pyams_portal/__init__.py:34
+#: src/pyams_portal/__init__.py:43
 msgid "Manage portal templates"
 msgstr "Gérer les modèles de présentation"
 
-#: src/pyams_portal/__init__.py:38
+#: src/pyams_portal/__init__.py:47
 msgid "Portal templates manager"
 msgstr "Gestionnaire des modèles"
 
-#: src/pyams_portal/zmi/portlet.py:49
-msgid "Edit portlet settings"
-msgstr "Propriétés du composant"
-
-#: src/pyams_portal/zmi/portlet.py:85
-msgid "Main properties"
-msgstr "Propriétés"
-
-#: src/pyams_portal/zmi/portlet.py:64
-msgid "Override parent settings"
-msgstr "Remplacer le paramétrage du parent"
-
-#: src/pyams_portal/zmi/portlet.py:66
-msgid "Override template settings"
-msgstr "Remplacer le paramétrage du modèle"
-
-#: src/pyams_portal/zmi/portlet.py:46
+#: src/pyams_portal/zmi/portlet.py:45
 #, python-format
 msgid "« {0} »  portal template - {1}"
 msgstr "Modèle de présentation « {0} »  - {1}"
 
-#: src/pyams_portal/zmi/page.py:60
+#: src/pyams_portal/zmi/portlet.py:48
+msgid "Edit portlet settings"
+msgstr "Propriétés du composant"
+
+#: src/pyams_portal/zmi/portlet.py:63
+msgid "Override parent settings"
+msgstr "Remplacer le paramétrage du parent"
+
+#: src/pyams_portal/zmi/portlet.py:65
+msgid "Override template settings"
+msgstr "Remplacer le paramétrage du modèle"
+
+#: src/pyams_portal/zmi/portlet.py:84
+msgid "Main properties"
+msgstr "Propriétés"
+
+#: src/pyams_portal/zmi/page.py:63
 msgid "Presentation"
 msgstr "Présentation"
 
-#: src/pyams_portal/zmi/page.py:75
+#: src/pyams_portal/zmi/page.py:78
 msgid "Edit template configuration"
 msgstr "Choix du modèle de présentation"
 
-#: src/pyams_portal/zmi/page.py:119
+#: src/pyams_portal/zmi/page.py:98
+msgid "Use shared template"
+msgstr "Utiliser un modèle de présentation partagé"
+
+#: src/pyams_portal/zmi/page.py:128
+msgid ""
+"If you choose a shared template, you can only adjust settings of each "
+"portlet individually but can't change portlets list or page configuration.\n"
+"If you use a local template, you can define a whole custom configuration but "
+"the template definition can't be reused anywhere..."
+msgstr ""
+"Si vous choisissez d'utiliser un modèle de présentation partagé, vous pourrez ajuster les "
+"paramètres de chaque composant mais ne pourrez pas modifier la liste des composants ou leur "
+"position et la configuration de la page.\n"
+"Si vous choisissez d'utiliser un modèle de présentation local, vous pourrez définir l'ensemble de "
+"la configuration mais le modèle de présentation ne pourra pas être réutilisé en dehors des sous-niveaux "
+"qui pourront en hériter...\n"
+"ATTENTION : si vous choisissez d'hériter du modèle du parent, les autres paramètres modifiés ici seront sans effet !!!"
+
+#: src/pyams_portal/zmi/page.py:144
 msgid "Template properties"
 msgstr "Configuration du modèle"
 
-#: src/pyams_portal/zmi/template.py:83
-msgid "Add template"
-msgstr "Ajouter un modèle"
-
-#: src/pyams_portal/zmi/template.py:93 src/pyams_portal/zmi/container.py:78
-msgid "Portal templates"
-msgstr "Modèles de présentation"
-
-#: src/pyams_portal/zmi/template.py:94
-msgid "Add shared template"
-msgstr "Ajout d'un modèle de présentation"
-
-#: src/pyams_portal/zmi/template.py:118 src/pyams_portal/zmi/layout.py:246
-msgid "Specified name is already used!"
-msgstr "Le nom indiqué est déjà utilisé !"
-
-#: src/pyams_portal/zmi/template.py:62 src/pyams_portal/zmi/layout.py:220
+#: src/pyams_portal/zmi/template.py:63 src/pyams_portal/zmi/layout.py:220
 #: src/pyams_portal/zmi/layout.py:382
 #, python-format
 msgid "« {0} »  portal template"
 msgstr "Modèle de présentation « {0} »"
 
+#: src/pyams_portal/zmi/template.py:84
+msgid "Add template"
+msgstr "Ajouter un modèle"
+
+#: src/pyams_portal/zmi/template.py:94 src/pyams_portal/zmi/container.py:78
+msgid "Portal templates"
+msgstr "Modèles de présentation"
+
+#: src/pyams_portal/zmi/template.py:95
+msgid "Add shared template"
+msgstr "Ajout d'un modèle de présentation"
+
+#: src/pyams_portal/zmi/template.py:119 src/pyams_portal/zmi/layout.py:246
+msgid "Specified name is already used!"
+msgstr "Le nom indiqué est déjà utilisé !"
+
+#: src/pyams_portal/zmi/layout.py:68
+msgid "Template management"
+msgstr "Ce modèle"
+
 #: src/pyams_portal/zmi/layout.py:78
 msgid "Properties"
 msgstr "Propriétés"
 
+#: src/pyams_portal/zmi/layout.py:96
+msgid "Local template configuration"
+msgstr "Configuration d'un modèle local"
+
+#: src/pyams_portal/zmi/layout.py:99
+#, python-format
+msgid "Shared template configuration ({0})"
+msgstr "Configuration d'un modèle partagé ({0})"
+
+#: src/pyams_portal/zmi/layout.py:101
+msgid "Template configuration"
+msgstr "Configuration d'un modèle"
+
 #: src/pyams_portal/zmi/layout.py:164
 msgid "Add row..."
 msgstr "Ajouter une ligne..."
@@ -96,6 +132,11 @@
 msgid "Add slot"
 msgstr "Ajout d'un panneau"
 
+#: src/pyams_portal/zmi/layout.py:300
+#, python-format
+msgid "« {0} »  portal template - {1} slot"
+msgstr "Modèle de présentation « {0} » - Panneau {1}"
+
 #: src/pyams_portal/zmi/layout.py:303
 msgid "Edit slot properties"
 msgstr "Propriétés d'un panneau"
@@ -108,28 +149,6 @@
 msgid "Add portlet"
 msgstr "Ajouter un composant"
 
-#: src/pyams_portal/zmi/layout.py:68
-msgid "Template management"
-msgstr "Ce modèle"
-
-#: src/pyams_portal/zmi/layout.py:101
-msgid "Template configuration"
-msgstr "Configuration d'un modèle"
-
-#: src/pyams_portal/zmi/layout.py:96
-msgid "Local template configuration"
-msgstr "Configuration d'un modèle local"
-
-#: src/pyams_portal/zmi/layout.py:300
-#, python-format
-msgid "« {0} »  portal template - {1} slot"
-msgstr "Modèle de présentation « {0} » - Panneau {1}"
-
-#: src/pyams_portal/zmi/layout.py:99
-#, python-format
-msgid "Shared template configuration ({0})"
-msgstr "Configuration d'un modèle partagé ({0})"
-
 #: src/pyams_portal/zmi/container.py:87
 msgid "Shared portal templates"
 msgstr "Modèles de présentation partagés"
@@ -211,10 +230,14 @@
 msgid "Delete portlet..."
 msgstr "Supprimer le composant..."
 
-#: src/pyams_portal/portlets/image/__init__.py:49
+#: src/pyams_portal/portlets/image/__init__.py:60
 msgid "Image"
 msgstr "Image"
 
+#: src/pyams_portal/portlets/image/__init__.py:73
+msgid "Responsive image renderer"
+msgstr "Image responsive (par défaut)"
+
 #: src/pyams_portal/portlets/image/interfaces.py:30
 msgid "Selected image"
 msgstr "Image sélectionnée"
@@ -223,12 +246,16 @@
 msgid "Context content"
 msgstr "Contenu du contexte"
 
+#: src/pyams_portal/portlets/content/__init__.py:56
+msgid "Default content renderer"
+msgstr "Rendu de contenu (par défaut)"
+
 #: src/pyams_portal/interfaces/__init__.py:65
 msgid "Portlet"
 msgstr "Composant"
 
 #: src/pyams_portal/interfaces/__init__.py:68
-#: src/pyams_portal/interfaces/__init__.py:171
+#: src/pyams_portal/interfaces/__init__.py:181
 msgid "Slot name"
 msgstr "Nom du panneau"
 
@@ -244,11 +271,19 @@
 msgid "Select 'no' to hide this portlet..."
 msgstr "Sélectionnez 'non' pour masquer ce composant..."
 
-#: src/pyams_portal/interfaces/__init__.py:109
+#: src/pyams_portal/interfaces/__init__.py:87
+msgid "Portlet renderer"
+msgstr "Mode de rendu"
+
+#: src/pyams_portal/interfaces/__init__.py:88
+msgid "Name of renderer used to render this portlet"
+msgstr "Mode de rendu utilisé pour restituer ce composant"
+
+#: src/pyams_portal/interfaces/__init__.py:115
 msgid "Inherit parent configuration?"
 msgstr "Hériter de la configuration du parent ?"
 
-#: src/pyams_portal/interfaces/__init__.py:110
+#: src/pyams_portal/interfaces/__init__.py:116
 msgid ""
 "This option is only available if context's parent is using the same "
 "template..."
@@ -256,27 +291,27 @@
 "Cette option n'est disponible que si le parent utilise le même modèle de "
 "présentation..."
 
-#: src/pyams_portal/interfaces/__init__.py:172
+#: src/pyams_portal/interfaces/__init__.py:182
 msgid "This name must be unique in a given template"
 msgstr "Ce nom doit être unique au sein d'un modèle de présentation"
 
-#: src/pyams_portal/interfaces/__init__.py:175
+#: src/pyams_portal/interfaces/__init__.py:185
 msgid "Row ID"
 msgstr "ID de la ligne"
 
-#: src/pyams_portal/interfaces/__init__.py:189
+#: src/pyams_portal/interfaces/__init__.py:199
 msgid "Visible slot?"
 msgstr "Panneau visible ?"
 
-#: src/pyams_portal/interfaces/__init__.py:190
+#: src/pyams_portal/interfaces/__init__.py:200
 msgid "Select 'no' to hide this slot..."
 msgstr "Choisir 'non' pour masquer ce panneau..."
 
-#: src/pyams_portal/interfaces/__init__.py:194
+#: src/pyams_portal/interfaces/__init__.py:204
 msgid "Extra small device width"
 msgstr "Largeur sur très petits périphériques"
 
-#: src/pyams_portal/interfaces/__init__.py:195
+#: src/pyams_portal/interfaces/__init__.py:205
 msgid ""
 "Slot width, in columns count, on extra small devices (phones...); set to 0 "
 "to hide the portlet"
@@ -284,11 +319,11 @@
 "Largeur du panneau, en nombre de colonnes, sur les très petits périphériques "
 "(téléphones...) ; indiquez une valeur de 0 pour masquer ce composant"
 
-#: src/pyams_portal/interfaces/__init__.py:201
+#: src/pyams_portal/interfaces/__init__.py:211
 msgid "Small device width"
 msgstr "Largeur sur petits périphériques"
 
-#: src/pyams_portal/interfaces/__init__.py:202
+#: src/pyams_portal/interfaces/__init__.py:212
 msgid ""
 "Slot width, in columns count, on small devices (tablets...); set to 0 to "
 "hide the portlet"
@@ -296,11 +331,11 @@
 "Largeur du panneau, en nombre de colonnes, sur les petits périphériques "
 "(tablettes...) ; indiquez une valeur de 0 pour masquer ce composant"
 
-#: src/pyams_portal/interfaces/__init__.py:208
+#: src/pyams_portal/interfaces/__init__.py:218
 msgid "Medium devices width"
 msgstr "Largeur sur périphériques moyens"
 
-#: src/pyams_portal/interfaces/__init__.py:209
+#: src/pyams_portal/interfaces/__init__.py:219
 msgid ""
 "Slot width, in columns count, on medium desktop devices (>= 992 pixels); set "
 "to 0 to hide the portlet"
@@ -308,11 +343,11 @@
 "Largeur du panneau, en nombre de colonnes, sur les périphériques moyens (>= "
 "992 pixels) ; indiquez une valeur de 0 pour masquer ce composant"
 
-#: src/pyams_portal/interfaces/__init__.py:215
+#: src/pyams_portal/interfaces/__init__.py:225
 msgid "Large devices width"
 msgstr "Largeur sur grands périphériques"
 
-#: src/pyams_portal/interfaces/__init__.py:216
+#: src/pyams_portal/interfaces/__init__.py:226
 msgid ""
 "Slot width, in columns count, on large desktop devices (>= 1200 pixels); set "
 "to 0 to hide the portlet"
@@ -320,27 +355,27 @@
 "Largeur du panneau, en nombre de colonnes, sur les grands périphériques (>= "
 "1200 pixels) ; indiquez une valeur de 0 pour masquer ce composant"
 
-#: src/pyams_portal/interfaces/__init__.py:222
+#: src/pyams_portal/interfaces/__init__.py:232
 msgid "CSS class"
 msgstr "Class CSS"
 
-#: src/pyams_portal/interfaces/__init__.py:223
+#: src/pyams_portal/interfaces/__init__.py:233
 msgid "CSS class applied to this slot"
 msgstr "Classe CSS spécifique appliquée à ce panneau"
 
-#: src/pyams_portal/interfaces/__init__.py:334
+#: src/pyams_portal/interfaces/__init__.py:344
 msgid "Template name"
 msgstr "Nom du modèle"
 
-#: src/pyams_portal/interfaces/__init__.py:335
+#: src/pyams_portal/interfaces/__init__.py:345
 msgid "Two registered templates can't share the same name..."
 msgstr "Deux modèles partagés ne peuvent pas utiliser le même nom..."
 
-#: src/pyams_portal/interfaces/__init__.py:356
+#: src/pyams_portal/interfaces/__init__.py:366
 msgid "Toolbar portlets"
 msgstr "Composants de la barre d'outils"
 
-#: src/pyams_portal/interfaces/__init__.py:357
+#: src/pyams_portal/interfaces/__init__.py:367
 msgid ""
 "These portlets will be directly available in templates configuration page "
 "toolbar"
@@ -348,39 +383,48 @@
 "Ces composants seront directement accessibles dans la page de configuration "
 "des modèles de présentation sous la forme d'une barre d'icônes"
 
-#: src/pyams_portal/interfaces/__init__.py:383
+#: src/pyams_portal/interfaces/__init__.py:393
 msgid "Inherit parent template?"
 msgstr "Hériter du modèle du parent ?"
 
-#: src/pyams_portal/interfaces/__init__.py:384
+#: src/pyams_portal/interfaces/__init__.py:394
 msgid "Should we reuse parent template?"
 msgstr "Doit-on ré-utiliser le modèle du parent ?"
 
-#: src/pyams_portal/interfaces/__init__.py:388
+#: src/pyams_portal/interfaces/__init__.py:398
 msgid "Use local template?"
 msgstr "Utiliser un modèle local ?"
 
-#: src/pyams_portal/interfaces/__init__.py:389
+#: src/pyams_portal/interfaces/__init__.py:399
 msgid ""
 "If 'yes', you can define a custom local template instead of a shared template"
 msgstr ""
 "Si 'oui', vous pouvez définir un modèle de présentation local au lieu d'un "
 "modèle partagé"
 
-#: src/pyams_portal/interfaces/__init__.py:394
+#: src/pyams_portal/interfaces/__init__.py:404
+msgid "Use shared template?"
+msgstr "Utiliser un modèle partagé"
+
+#: src/pyams_portal/interfaces/__init__.py:405
+msgid "If 'yes', you can select a shared template"
+msgstr ""
+"Si 'oui', vous pouvez sélectionner un modèle de présentation partagé au lieu d'un modèle local"
+
+#: src/pyams_portal/interfaces/__init__.py:409
 msgid "Page template"
 msgstr "Modèle de page"
 
-#: src/pyams_portal/interfaces/__init__.py:395
+#: src/pyams_portal/interfaces/__init__.py:410
 msgid "Template used for this page"
 msgstr "Modèle de présentation utilisé pour cette page"
 
-#: src/pyams_portal/interfaces/__init__.py:404
-msgid "Local template"
-msgstr "Modèle local"
-
-#: src/pyams_portal/interfaces/__init__.py:402
+#: src/pyams_portal/interfaces/__init__.py:417
 msgid "You must choose to use a local template or select a shared one!"
 msgstr ""
 "Vous devez choisir un modèle de présentation partagé lorsque vous "
 "n'appliquez pas de modèle local !"
+
+#: src/pyams_portal/interfaces/__init__.py:419
+msgid "Local template"
+msgstr "Modèle local"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~	Wed Jul 12 14:21:04 2017 +0200
@@ -0,0 +1,386 @@
+#
+# French translations for PACKAGE package
+# This file is distributed under the same license as the PACKAGE package.
+# Thierry Florac <tflorac@ulthar.net>, 2015.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE 1.0\n"
+"POT-Creation-Date: 2016-01-06 11:55+0100\n"
+"PO-Revision-Date: 2015-05-12 12:10+0200\n"
+"Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Lingua 3.10.dev0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: src/pyams_portal/__init__.py:34
+msgid "Manage portal templates"
+msgstr "Gérer les modèles de présentation"
+
+#: src/pyams_portal/__init__.py:38
+msgid "Portal templates manager"
+msgstr "Gestionnaire des modèles"
+
+#: src/pyams_portal/zmi/portlet.py:49
+msgid "Edit portlet settings"
+msgstr "Propriétés du composant"
+
+#: src/pyams_portal/zmi/portlet.py:85
+msgid "Main properties"
+msgstr "Propriétés"
+
+#: src/pyams_portal/zmi/portlet.py:64
+msgid "Override parent settings"
+msgstr "Remplacer le paramétrage du parent"
+
+#: src/pyams_portal/zmi/portlet.py:66
+msgid "Override template settings"
+msgstr "Remplacer le paramétrage du modèle"
+
+#: src/pyams_portal/zmi/portlet.py:46
+#, python-format
+msgid "« {0} »  portal template - {1}"
+msgstr "Modèle de présentation « {0} »  - {1}"
+
+#: src/pyams_portal/zmi/page.py:60
+msgid "Presentation"
+msgstr "Présentation"
+
+#: src/pyams_portal/zmi/page.py:75
+msgid "Edit template configuration"
+msgstr "Choix du modèle de présentation"
+
+#: src/pyams_portal/zmi/page.py:119
+msgid "Template properties"
+msgstr "Configuration du modèle"
+
+#: src/pyams_portal/zmi/template.py:83
+msgid "Add template"
+msgstr "Ajouter un modèle"
+
+#: src/pyams_portal/zmi/template.py:93 src/pyams_portal/zmi/container.py:78
+msgid "Portal templates"
+msgstr "Modèles de présentation"
+
+#: src/pyams_portal/zmi/template.py:94
+msgid "Add shared template"
+msgstr "Ajout d'un modèle de présentation"
+
+#: src/pyams_portal/zmi/template.py:118 src/pyams_portal/zmi/layout.py:246
+msgid "Specified name is already used!"
+msgstr "Le nom indiqué est déjà utilisé !"
+
+#: src/pyams_portal/zmi/template.py:62 src/pyams_portal/zmi/layout.py:220
+#: src/pyams_portal/zmi/layout.py:382
+#, python-format
+msgid "« {0} »  portal template"
+msgstr "Modèle de présentation « {0} »"
+
+#: src/pyams_portal/zmi/layout.py:78
+msgid "Properties"
+msgstr "Propriétés"
+
+#: src/pyams_portal/zmi/layout.py:164
+msgid "Add row..."
+msgstr "Ajouter une ligne..."
+
+#: src/pyams_portal/zmi/layout.py:206
+msgid "Add slot..."
+msgstr "Ajouter un panneau..."
+
+#: src/pyams_portal/zmi/layout.py:222
+#: src/pyams_portal/zmi/templates/layout.pt:27
+msgid "Add slot"
+msgstr "Ajout d'un panneau"
+
+#: src/pyams_portal/zmi/layout.py:303
+msgid "Edit slot properties"
+msgstr "Propriétés d'un panneau"
+
+#: src/pyams_portal/zmi/layout.py:368
+msgid "Add portlet..."
+msgstr "Ajouter un composant..."
+
+#: src/pyams_portal/zmi/layout.py:384
+msgid "Add portlet"
+msgstr "Ajouter un composant"
+
+#: src/pyams_portal/zmi/layout.py:68
+msgid "Template management"
+msgstr "Ce modèle"
+
+#: src/pyams_portal/zmi/layout.py:101
+msgid "Template configuration"
+msgstr "Configuration d'un modèle"
+
+#: src/pyams_portal/zmi/layout.py:96
+msgid "Local template configuration"
+msgstr "Configuration d'un modèle local"
+
+#: src/pyams_portal/zmi/layout.py:300
+#, python-format
+msgid "« {0} »  portal template - {1} slot"
+msgstr "Modèle de présentation « {0} » - Panneau {1}"
+
+#: src/pyams_portal/zmi/layout.py:99
+#, python-format
+msgid "Shared template configuration ({0})"
+msgstr "Configuration d'un modèle partagé ({0})"
+
+#: src/pyams_portal/zmi/container.py:87
+msgid "Shared portal templates"
+msgstr "Modèles de présentation partagés"
+
+#: src/pyams_portal/zmi/container.py:127
+msgid "Delete template"
+msgstr "Supprimer le modèle"
+
+#: src/pyams_portal/zmi/container.py:170
+msgid "Selected portlets..."
+msgstr "Composants sélectionnés..."
+
+#: src/pyams_portal/zmi/container.py:186
+msgid "Portal templates container"
+msgstr "Gestionnaire des modèles"
+
+#: src/pyams_portal/zmi/container.py:187
+msgid "Edit selected portlets"
+msgstr "Sélection des composants"
+
+#: src/pyams_portal/zmi/templates/portlet.pt:129
+#: src/pyams_portal/zmi/templates/portlet.pt:144
+msgid "Title"
+msgstr "Titre"
+
+#: src/pyams_portal/zmi/templates/portlet.pt:159
+msgid "Tab label"
+msgstr "Libellé de l'onglet"
+
+#: src/pyams_portal/zmi/templates/layout.pt:23
+msgid "Add row"
+msgstr "Ajouter une ligne..."
+
+#: src/pyams_portal/zmi/templates/layout.pt:47
+msgid "Add another portlet..."
+msgstr "Ajouter un composant..."
+
+#: src/pyams_portal/zmi/templates/layout.pt:54
+msgid "Selected display:"
+msgstr "Type de périphérique sélectionné :"
+
+#: src/pyams_portal/zmi/templates/layout.pt:59
+msgid "Current device"
+msgstr "Périphérique actuel"
+
+#: src/pyams_portal/zmi/templates/layout.pt:60
+msgid "Extra small device (phone)"
+msgstr "Très petits périphériques (téléphone)"
+
+#: src/pyams_portal/zmi/templates/layout.pt:61
+msgid "Small device (tablet)"
+msgstr "Petits périphériques (tablette)"
+
+#: src/pyams_portal/zmi/templates/layout.pt:62
+msgid "Medium desktop device (> 970px)"
+msgstr "Écrans de taille moyenne (> 970 px)"
+
+#: src/pyams_portal/zmi/templates/layout.pt:63
+msgid "Large desktop device (> 1170px)"
+msgstr "Écrans de grande taille (> 1170 px)"
+
+#: src/pyams_portal/zmi/templates/layout.pt:123
+msgid "Delete row..."
+msgstr "Supprimer la ligne..."
+
+#: src/pyams_portal/zmi/templates/layout.pt:132
+msgid "Edit slot properties..."
+msgstr "Propriétés..."
+
+#: src/pyams_portal/zmi/templates/layout.pt:139
+msgid "Delete slot..."
+msgstr "Supprimer le panneau..."
+
+#: src/pyams_portal/zmi/templates/layout.pt:147
+msgid "Edit portlet properties..."
+msgstr "Propriétés..."
+
+#: src/pyams_portal/zmi/templates/layout.pt:155
+msgid "Delete portlet..."
+msgstr "Supprimer le composant..."
+
+#: src/pyams_portal/portlets/image/__init__.py:49
+msgid "Image"
+msgstr "Image"
+
+#: src/pyams_portal/portlets/image/interfaces.py:30
+msgid "Selected image"
+msgstr "Image sélectionnée"
+
+#: src/pyams_portal/portlets/content/__init__.py:46
+msgid "Context content"
+msgstr "Contenu du contexte"
+
+#: src/pyams_portal/interfaces/__init__.py:65
+msgid "Portlet"
+msgstr "Composant"
+
+#: src/pyams_portal/interfaces/__init__.py:68
+#: src/pyams_portal/interfaces/__init__.py:171
+msgid "Slot name"
+msgstr "Nom du panneau"
+
+#: src/pyams_portal/interfaces/__init__.py:69
+msgid "Slot name to which this configuration applies"
+msgstr "Nom du panneau correspondant à la configuration"
+
+#: src/pyams_portal/interfaces/__init__.py:82
+msgid "Visible portlet?"
+msgstr "Composant visible ?"
+
+#: src/pyams_portal/interfaces/__init__.py:83
+msgid "Select 'no' to hide this portlet..."
+msgstr "Sélectionnez 'non' pour masquer ce composant..."
+
+#: src/pyams_portal/interfaces/__init__.py:109
+msgid "Inherit parent configuration?"
+msgstr "Hériter de la configuration du parent ?"
+
+#: src/pyams_portal/interfaces/__init__.py:110
+msgid ""
+"This option is only available if context's parent is using the same "
+"template..."
+msgstr ""
+"Cette option n'est disponible que si le parent utilise le même modèle de "
+"présentation..."
+
+#: src/pyams_portal/interfaces/__init__.py:172
+msgid "This name must be unique in a given template"
+msgstr "Ce nom doit être unique au sein d'un modèle de présentation"
+
+#: src/pyams_portal/interfaces/__init__.py:175
+msgid "Row ID"
+msgstr "ID de la ligne"
+
+#: src/pyams_portal/interfaces/__init__.py:189
+msgid "Visible slot?"
+msgstr "Panneau visible ?"
+
+#: src/pyams_portal/interfaces/__init__.py:190
+msgid "Select 'no' to hide this slot..."
+msgstr "Choisir 'non' pour masquer ce panneau..."
+
+#: src/pyams_portal/interfaces/__init__.py:194
+msgid "Extra small device width"
+msgstr "Largeur sur très petits périphériques"
+
+#: src/pyams_portal/interfaces/__init__.py:195
+msgid ""
+"Slot width, in columns count, on extra small devices (phones...); set to 0 "
+"to hide the portlet"
+msgstr ""
+"Largeur du panneau, en nombre de colonnes, sur les très petits périphériques "
+"(téléphones...) ; indiquez une valeur de 0 pour masquer ce composant"
+
+#: src/pyams_portal/interfaces/__init__.py:201
+msgid "Small device width"
+msgstr "Largeur sur petits périphériques"
+
+#: src/pyams_portal/interfaces/__init__.py:202
+msgid ""
+"Slot width, in columns count, on small devices (tablets...); set to 0 to "
+"hide the portlet"
+msgstr ""
+"Largeur du panneau, en nombre de colonnes, sur les petits périphériques "
+"(tablettes...) ; indiquez une valeur de 0 pour masquer ce composant"
+
+#: src/pyams_portal/interfaces/__init__.py:208
+msgid "Medium devices width"
+msgstr "Largeur sur périphériques moyens"
+
+#: src/pyams_portal/interfaces/__init__.py:209
+msgid ""
+"Slot width, in columns count, on medium desktop devices (>= 992 pixels); set "
+"to 0 to hide the portlet"
+msgstr ""
+"Largeur du panneau, en nombre de colonnes, sur les périphériques moyens (>= "
+"992 pixels) ; indiquez une valeur de 0 pour masquer ce composant"
+
+#: src/pyams_portal/interfaces/__init__.py:215
+msgid "Large devices width"
+msgstr "Largeur sur grands périphériques"
+
+#: src/pyams_portal/interfaces/__init__.py:216
+msgid ""
+"Slot width, in columns count, on large desktop devices (>= 1200 pixels); set "
+"to 0 to hide the portlet"
+msgstr ""
+"Largeur du panneau, en nombre de colonnes, sur les grands périphériques (>= "
+"1200 pixels) ; indiquez une valeur de 0 pour masquer ce composant"
+
+#: src/pyams_portal/interfaces/__init__.py:222
+msgid "CSS class"
+msgstr "Class CSS"
+
+#: src/pyams_portal/interfaces/__init__.py:223
+msgid "CSS class applied to this slot"
+msgstr "Classe CSS spécifique appliquée à ce panneau"
+
+#: src/pyams_portal/interfaces/__init__.py:334
+msgid "Template name"
+msgstr "Nom du modèle"
+
+#: src/pyams_portal/interfaces/__init__.py:335
+msgid "Two registered templates can't share the same name..."
+msgstr "Deux modèles partagés ne peuvent pas utiliser le même nom..."
+
+#: src/pyams_portal/interfaces/__init__.py:356
+msgid "Toolbar portlets"
+msgstr "Composants de la barre d'outils"
+
+#: src/pyams_portal/interfaces/__init__.py:357
+msgid ""
+"These portlets will be directly available in templates configuration page "
+"toolbar"
+msgstr ""
+"Ces composants seront directement accessibles dans la page de configuration "
+"des modèles de présentation sous la forme d'une barre d'icônes"
+
+#: src/pyams_portal/interfaces/__init__.py:383
+msgid "Inherit parent template?"
+msgstr "Hériter du modèle du parent ?"
+
+#: src/pyams_portal/interfaces/__init__.py:384
+msgid "Should we reuse parent template?"
+msgstr "Doit-on ré-utiliser le modèle du parent ?"
+
+#: src/pyams_portal/interfaces/__init__.py:388
+msgid "Use local template?"
+msgstr "Utiliser un modèle local ?"
+
+#: src/pyams_portal/interfaces/__init__.py:389
+msgid ""
+"If 'yes', you can define a custom local template instead of a shared template"
+msgstr ""
+"Si 'oui', vous pouvez définir un modèle de présentation local au lieu d'un "
+"modèle partagé"
+
+#: src/pyams_portal/interfaces/__init__.py:394
+msgid "Page template"
+msgstr "Modèle de page"
+
+#: src/pyams_portal/interfaces/__init__.py:395
+msgid "Template used for this page"
+msgstr "Modèle de présentation utilisé pour cette page"
+
+#: src/pyams_portal/interfaces/__init__.py:404
+msgid "Local template"
+msgstr "Modèle local"
+
+#: src/pyams_portal/interfaces/__init__.py:402
+msgid "You must choose to use a local template or select a shared one!"
+msgstr ""
+"Vous devez choisir un modèle de présentation partagé lorsque vous "
+"n'appliquez pas de modèle local !"
--- a/src/pyams_portal/locales/pyams_portal.pot	Wed Jul 12 12:25:00 2017 +0200
+++ b/src/pyams_portal/locales/pyams_portal.pot	Wed Jul 12 14:21:04 2017 +0200
@@ -1,12 +1,12 @@
-# 
+#
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2017.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2016-01-06 11:55+0100\n"
+"POT-Creation-Date: 2017-06-28 16:44+0200\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"
@@ -14,75 +14,102 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Lingua 3.10.dev0\n"
+"Generated-By: Lingua 4.13\n"
 
-#: ./src/pyams_portal/__init__.py:34
+#: ./src/pyams_portal/__init__.py:43
 msgid "Manage portal templates"
 msgstr ""
 
-#: ./src/pyams_portal/__init__.py:38
+#: ./src/pyams_portal/__init__.py:47
 msgid "Portal templates manager"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:49
-msgid "Edit portlet settings"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/portlet.py:85
-msgid "Main properties"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/portlet.py:64
-msgid "Override parent settings"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/portlet.py:66
-msgid "Override template settings"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/portlet.py:46
+#: ./src/pyams_portal/zmi/portlet.py:45
 #, python-format
 msgid "« {0} »  portal template - {1}"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:60
+#: ./src/pyams_portal/zmi/portlet.py:48
+msgid "Edit portlet settings"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/portlet.py:63
+msgid "Override parent settings"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/portlet.py:65
+msgid "Override template settings"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/portlet.py:84
+msgid "Main properties"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/page.py:63
 msgid "Presentation"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:75
+#: ./src/pyams_portal/zmi/page.py:78
 msgid "Edit template configuration"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:119
+#: ./src/pyams_portal/zmi/page.py:98
+msgid "Use shared template"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/page.py:128
+msgid ""
+"If you choose a shared template, you can only adjust settings of each portlet individually but can't change portlets list or page configuration.\n"
+"If you use a local template, you can define a whole custom configuration but the template definition can't be reused anywhere..."
+msgstr ""
+
+#: ./src/pyams_portal/zmi/page.py:144
 msgid "Template properties"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:83
-msgid "Add template"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/template.py:93 ./src/pyams_portal/zmi/container.py:78
-msgid "Portal templates"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/template.py:94
-msgid "Add shared template"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/template.py:118 ./src/pyams_portal/zmi/layout.py:246
-msgid "Specified name is already used!"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/template.py:62 ./src/pyams_portal/zmi/layout.py:220
+#: ./src/pyams_portal/zmi/template.py:63 ./src/pyams_portal/zmi/layout.py:220
 #: ./src/pyams_portal/zmi/layout.py:382
 #, python-format
 msgid "« {0} »  portal template"
 msgstr ""
 
+#: ./src/pyams_portal/zmi/template.py:84
+msgid "Add template"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/template.py:94 ./src/pyams_portal/zmi/container.py:78
+msgid "Portal templates"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/template.py:95
+msgid "Add shared template"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/template.py:119 ./src/pyams_portal/zmi/layout.py:246
+msgid "Specified name is already used!"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/layout.py:68
+msgid "Template management"
+msgstr ""
+
 #: ./src/pyams_portal/zmi/layout.py:78
 msgid "Properties"
 msgstr ""
 
+#: ./src/pyams_portal/zmi/layout.py:96
+msgid "Local template configuration"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/layout.py:99
+#, python-format
+msgid "Shared template configuration ({0})"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/layout.py:101
+msgid "Template configuration"
+msgstr ""
+
 #: ./src/pyams_portal/zmi/layout.py:164
 msgid "Add row..."
 msgstr ""
@@ -96,6 +123,11 @@
 msgid "Add slot"
 msgstr ""
 
+#: ./src/pyams_portal/zmi/layout.py:300
+#, python-format
+msgid "« {0} »  portal template - {1} slot"
+msgstr ""
+
 #: ./src/pyams_portal/zmi/layout.py:303
 msgid "Edit slot properties"
 msgstr ""
@@ -108,28 +140,6 @@
 msgid "Add portlet"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:68
-msgid "Template management"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:101
-msgid "Template configuration"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:96
-msgid "Local template configuration"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:300
-#, python-format
-msgid "« {0} »  portal template - {1} slot"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:99
-#, python-format
-msgid "Shared template configuration ({0})"
-msgstr ""
-
 #: ./src/pyams_portal/zmi/container.py:87
 msgid "Shared portal templates"
 msgstr ""
@@ -211,10 +221,14 @@
 msgid "Delete portlet..."
 msgstr ""
 
-#: ./src/pyams_portal/portlets/image/__init__.py:49
+#: ./src/pyams_portal/portlets/image/__init__.py:60
 msgid "Image"
 msgstr ""
 
+#: ./src/pyams_portal/portlets/image/__init__.py:73
+msgid "Responsive image renderer"
+msgstr ""
+
 #: ./src/pyams_portal/portlets/image/interfaces.py:30
 msgid "Selected image"
 msgstr ""
@@ -223,12 +237,16 @@
 msgid "Context content"
 msgstr ""
 
+#: ./src/pyams_portal/portlets/content/__init__.py:56
+msgid "Default content renderer"
+msgstr ""
+
 #: ./src/pyams_portal/interfaces/__init__.py:65
 msgid "Portlet"
 msgstr ""
 
 #: ./src/pyams_portal/interfaces/__init__.py:68
-#: ./src/pyams_portal/interfaces/__init__.py:171
+#: ./src/pyams_portal/interfaces/__init__.py:181
 msgid "Slot name"
 msgstr ""
 
@@ -244,127 +262,143 @@
 msgid "Select 'no' to hide this portlet..."
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:109
+#: ./src/pyams_portal/interfaces/__init__.py:87
+msgid "Portlet renderer"
+msgstr ""
+
+#: ./src/pyams_portal/interfaces/__init__.py:88
+msgid "Name of renderer used to render this portlet"
+msgstr ""
+
+#: ./src/pyams_portal/interfaces/__init__.py:115
 msgid "Inherit parent configuration?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:110
+#: ./src/pyams_portal/interfaces/__init__.py:116
 msgid ""
 "This option is only available if context's parent is using the same "
 "template..."
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:172
+#: ./src/pyams_portal/interfaces/__init__.py:182
 msgid "This name must be unique in a given template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:175
+#: ./src/pyams_portal/interfaces/__init__.py:185
 msgid "Row ID"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:189
+#: ./src/pyams_portal/interfaces/__init__.py:199
 msgid "Visible slot?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:190
+#: ./src/pyams_portal/interfaces/__init__.py:200
 msgid "Select 'no' to hide this slot..."
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:194
+#: ./src/pyams_portal/interfaces/__init__.py:204
 msgid "Extra small device width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:195
+#: ./src/pyams_portal/interfaces/__init__.py:205
 msgid ""
 "Slot width, in columns count, on extra small devices (phones...); set to 0 to"
 " hide the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:201
+#: ./src/pyams_portal/interfaces/__init__.py:211
 msgid "Small device width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:202
+#: ./src/pyams_portal/interfaces/__init__.py:212
 msgid ""
 "Slot width, in columns count, on small devices (tablets...); set to 0 to hide"
 " the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:208
+#: ./src/pyams_portal/interfaces/__init__.py:218
 msgid "Medium devices width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:209
+#: ./src/pyams_portal/interfaces/__init__.py:219
 msgid ""
 "Slot width, in columns count, on medium desktop devices (>= 992 pixels); set "
 "to 0 to hide the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:215
+#: ./src/pyams_portal/interfaces/__init__.py:225
 msgid "Large devices width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:216
+#: ./src/pyams_portal/interfaces/__init__.py:226
 msgid ""
 "Slot width, in columns count, on large desktop devices (>= 1200 pixels); set "
 "to 0 to hide the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:222
+#: ./src/pyams_portal/interfaces/__init__.py:232
 msgid "CSS class"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:223
+#: ./src/pyams_portal/interfaces/__init__.py:233
 msgid "CSS class applied to this slot"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:334
+#: ./src/pyams_portal/interfaces/__init__.py:344
 msgid "Template name"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:335
+#: ./src/pyams_portal/interfaces/__init__.py:345
 msgid "Two registered templates can't share the same name..."
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:356
+#: ./src/pyams_portal/interfaces/__init__.py:366
 msgid "Toolbar portlets"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:357
+#: ./src/pyams_portal/interfaces/__init__.py:367
 msgid ""
 "These portlets will be directly available in templates configuration page "
 "toolbar"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:383
+#: ./src/pyams_portal/interfaces/__init__.py:393
 msgid "Inherit parent template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:384
+#: ./src/pyams_portal/interfaces/__init__.py:394
 msgid "Should we reuse parent template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:388
+#: ./src/pyams_portal/interfaces/__init__.py:398
 msgid "Use local template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:389
+#: ./src/pyams_portal/interfaces/__init__.py:399
 msgid ""
 "If 'yes', you can define a custom local template instead of a shared template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:394
+#: ./src/pyams_portal/interfaces/__init__.py:404
+msgid "Use shared template?"
+msgstr ""
+
+#: ./src/pyams_portal/interfaces/__init__.py:405
+msgid "If 'yes', you can select a shared template"
+msgstr ""
+
+#: ./src/pyams_portal/interfaces/__init__.py:409
 msgid "Page template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:395
+#: ./src/pyams_portal/interfaces/__init__.py:410
 msgid "Template used for this page"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:404
-msgid "Local template"
+#: ./src/pyams_portal/interfaces/__init__.py:417
+msgid "You must choose to use a local template or select a shared one!"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces/__init__.py:402
-msgid "You must choose to use a local template or select a shared one!"
+#: ./src/pyams_portal/interfaces/__init__.py:419
+msgid "Local template"
 msgstr ""