Updated menus and forms labels and titles
authorThierry Florac <tflorac@ulthar.net>
Fri, 06 Aug 2021 09:59:34 +0200
changeset 290 3977d9c8618d
parent 289 fca4100c1733
child 291 ed157de312e6
Updated menus and forms labels and titles
src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.mo
src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po
src/pyams_portal/locales/pyams_portal.pot
src/pyams_portal/zmi/layout.py
src/pyams_portal/zmi/page.py
src/pyams_portal/zmi/template.py
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	Thu Aug 05 09:27:48 2021 +0200
+++ b/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po	Fri Aug 06 09:59:34 2021 +0200
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2020-11-24 09:57+0100\n"
+"POT-Creation-Date: 2021-08-06 09:45+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"
@@ -77,10 +77,18 @@
 msgstr "Choisir 'non' pour masquer ce panneau..."
 
 #: src/pyams_portal/interfaces.py:231
+msgid "Container CSS class"
+msgstr "Classe CSS du conteneur"
+
+#: src/pyams_portal/interfaces.py:232
+msgid "CSS class applied to this slot container"
+msgstr "Classe CSS spécifique optionnelle appliquée au conteneur de ce panneau"
+
+#: src/pyams_portal/interfaces.py:235
 msgid "Extra small device width"
 msgstr "Largeur sur très petits périphériques"
 
-#: src/pyams_portal/interfaces.py:232
+#: src/pyams_portal/interfaces.py:236
 msgid ""
 "Slot width, in columns count, on extra small devices (phones...); set to 0 "
 "to hide the portlet"
@@ -88,11 +96,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.py:238
+#: src/pyams_portal/interfaces.py:242
 msgid "Small device width"
 msgstr "Largeur sur petits périphériques"
 
-#: src/pyams_portal/interfaces.py:239
+#: src/pyams_portal/interfaces.py:243
 msgid ""
 "Slot width, in columns count, on small devices (tablets...); set to 0 to "
 "hide the portlet"
@@ -100,11 +108,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.py:245
+#: src/pyams_portal/interfaces.py:249
 msgid "Medium devices width"
 msgstr "Largeur sur périphériques moyens"
 
-#: src/pyams_portal/interfaces.py:246
+#: src/pyams_portal/interfaces.py:250
 msgid ""
 "Slot width, in columns count, on medium desktop devices (>= 992 pixels); set "
 "to 0 to hide the portlet"
@@ -112,11 +120,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.py:252
+#: src/pyams_portal/interfaces.py:256
 msgid "Large devices width"
 msgstr "Largeur sur grands périphériques"
 
-#: src/pyams_portal/interfaces.py:253
+#: src/pyams_portal/interfaces.py:257
 msgid ""
 "Slot width, in columns count, on large desktop devices (>= 1200 pixels); set "
 "to 0 to hide the portlet"
@@ -124,27 +132,33 @@
 "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.py:259
+#: src/pyams_portal/interfaces.py:263 src/pyams_portal/interfaces.py:381
 msgid "CSS class"
 msgstr "Classe CSS"
 
-#: src/pyams_portal/interfaces.py:260
+#: src/pyams_portal/interfaces.py:264
 msgid "CSS class applied to this slot"
 msgstr "Classe CSS spécifique appliquée à ce panneau"
 
-#: src/pyams_portal/interfaces.py:373
+#: src/pyams_portal/interfaces.py:377
 msgid "Template name"
 msgstr "Nom du modèle"
 
-#: src/pyams_portal/interfaces.py:374
+#: src/pyams_portal/interfaces.py:378
 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.py:395
+#: src/pyams_portal/interfaces.py:382
+msgid "This CSS class can be included into main presentation layout..."
+msgstr ""
+"Cette classe CSS peut être intégrée dans le modèle de présentation global de "
+"la page"
+
+#: src/pyams_portal/interfaces.py:404
 msgid "Toolbar portlets"
 msgstr "Composants de la barre d'outils"
 
-#: src/pyams_portal/interfaces.py:396
+#: src/pyams_portal/interfaces.py:405
 msgid ""
 "These portlets will be directly available in templates configuration page "
 "toolbar"
@@ -152,93 +166,93 @@
 "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.py:425
+#: src/pyams_portal/interfaces.py:434
 msgid "Inherit parent template?"
 msgstr "Hériter du modèle du parent ?"
 
-#: src/pyams_portal/interfaces.py:426
+#: src/pyams_portal/interfaces.py:435
 msgid "Should we reuse parent template?"
 msgstr "Doit-on ré-utiliser le modèle du parent ?"
 
-#: src/pyams_portal/interfaces.py:430
+#: src/pyams_portal/interfaces.py:439
 msgid "Override parent template?"
 msgstr "Ne pas hériter du modèle du parent ?"
 
-#: src/pyams_portal/interfaces.py:431
+#: src/pyams_portal/interfaces.py:440
 msgid "Should we override parent template?"
 msgstr "Doit-on remplacer le modèle de présentation du parent ?"
 
-#: src/pyams_portal/interfaces.py:435
+#: src/pyams_portal/interfaces.py:444
 msgid "Use local template?"
 msgstr "Utiliser un modèle local ?"
 
-#: src/pyams_portal/interfaces.py:436
+#: src/pyams_portal/interfaces.py:445
 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.py:441
+#: src/pyams_portal/interfaces.py:450
 msgid "Local template"
 msgstr "Modèle local"
 
-#: src/pyams_portal/interfaces.py:446
+#: src/pyams_portal/interfaces.py:455
 msgid "Use shared template?"
 msgstr "Utiliser un modèle partagé"
 
-#: src/pyams_portal/interfaces.py:447
+#: src/pyams_portal/interfaces.py:456
 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.py:451
+#: src/pyams_portal/interfaces.py:460
 msgid "Page template"
 msgstr "Modèle de page"
 
-#: src/pyams_portal/interfaces.py:452
+#: src/pyams_portal/interfaces.py:461
 msgid "Template used for this page"
 msgstr "Modèle de présentation utilisé pour cette page"
 
-#: src/pyams_portal/template.py:84
+#: src/pyams_portal/template.py:85
 msgid "Portal template"
 msgstr "Modèle de présentation"
 
-#: src/pyams_portal/zmi/widget.py:28 src/pyams_portal/zmi/portlet.py:176
+#: src/pyams_portal/zmi/widget.py:28 src/pyams_portal/zmi/portlet.py:179
 msgid "Edit renderer properties"
 msgstr "Propriétés de ce mode de rendu"
 
-#: src/pyams_portal/zmi/container.py:64 src/pyams_portal/zmi/container.py:93
-#: src/pyams_portal/zmi/template.py:143
+#: src/pyams_portal/zmi/container.py:64 src/pyams_portal/zmi/container.py:95
+#: src/pyams_portal/zmi/template.py:148
 msgid "Portal templates"
 msgstr "Modèles de présentation"
 
-#: src/pyams_portal/zmi/container.py:102
+#: src/pyams_portal/zmi/container.py:104
 msgid "Shared portal templates"
 msgstr "Modèles de présentation partagés"
 
-#: src/pyams_portal/zmi/container.py:139
+#: src/pyams_portal/zmi/container.py:145
 msgid "Delete template"
 msgstr "Supprimer le modèle"
 
-#: src/pyams_portal/zmi/container.py:189
+#: src/pyams_portal/zmi/container.py:201
 msgid "Selected portlets..."
 msgstr "Composants sélectionnés"
 
-#: src/pyams_portal/zmi/container.py:208
+#: src/pyams_portal/zmi/container.py:220
 msgid "Portal templates container"
 msgstr "Gestionnaire des modèles"
 
-#: src/pyams_portal/zmi/container.py:209
+#: src/pyams_portal/zmi/container.py:221
 msgid "Edit selected portlets"
 msgstr "Sélection des composants"
 
-#: src/pyams_portal/zmi/portlet.py:61
+#: src/pyams_portal/zmi/portlet.py:59
 msgid "Edit portlet settings"
 msgstr "Propriétés du composant"
 
-#: src/pyams_portal/zmi/portlet.py:107
+#: src/pyams_portal/zmi/portlet.py:105
 msgid ""
 "WARNING: Portlet properties are saved automatically when changing inherit "
 "mode!!"
@@ -247,29 +261,29 @@
 "modèle ou du parent en (dé)cochant la case ci-dessous, cette modification "
 "est enregistrée immédiatement sans attendre votre confirmation !!"
 
-#: src/pyams_portal/zmi/portlet.py:117
+#: src/pyams_portal/zmi/portlet.py:118
 msgid "Main properties"
 msgstr "Propriétés"
 
-#: src/pyams_portal/zmi/portlet.py:82 src/pyams_portal/zmi/portlet.py:88
+#: src/pyams_portal/zmi/portlet.py:80 src/pyams_portal/zmi/portlet.py:86
 msgid "Override template settings"
 msgstr "Remplacer le paramétrage du modèle sélectionné"
 
-#: src/pyams_portal/zmi/portlet.py:86
+#: src/pyams_portal/zmi/portlet.py:84
 msgid "Override parent settings"
 msgstr "Remplacer le paramétrage du modèle du parent"
 
-#: src/pyams_portal/zmi/portlet.py:56
+#: src/pyams_portal/zmi/portlet.py:53
 #, python-format
 msgid "Local portal template - {0}"
 msgstr "Modèle de présentation local  - {0}"
 
-#: src/pyams_portal/zmi/portlet.py:58
+#: src/pyams_portal/zmi/portlet.py:56
 #, python-format
 msgid "« {0} »  portal template - {1}"
 msgstr "Modèle de présentation « {0} »  - {1}"
 
-#: src/pyams_portal/zmi/portlet.py:155
+#: src/pyams_portal/zmi/portlet.py:158
 msgid ""
 "You changed renderer selection. Don't omit to update new renderer "
 "properties..."
@@ -277,27 +291,27 @@
 "Vous avez choisi un nouveau mode de rendu, pensez à vérifier son "
 "paramétrage !"
 
-#: src/pyams_portal/zmi/layout.py:75
-msgid "Properties"
-msgstr "Propriétés"
+#: src/pyams_portal/zmi/layout.py:79
+msgid "Layout"
+msgstr "Mise en page"
 
-#: src/pyams_portal/zmi/layout.py:168
+#: src/pyams_portal/zmi/layout.py:167
 msgid "Add row..."
 msgstr "Ajouter une ligne"
 
-#: src/pyams_portal/zmi/layout.py:210
+#: src/pyams_portal/zmi/layout.py:213
 msgid "Add slot..."
 msgstr "Ajouter un panneau"
 
-#: src/pyams_portal/zmi/layout.py:228
+#: src/pyams_portal/zmi/layout.py:233
 msgid "Add slot"
 msgstr "Ajouter un panneau"
 
-#: src/pyams_portal/zmi/layout.py:392
+#: src/pyams_portal/zmi/layout.py:405
 msgid "Add portlet..."
 msgstr "Ajouter un composant"
 
-#: src/pyams_portal/zmi/layout.py:410
+#: src/pyams_portal/zmi/layout.py:425
 msgid "Add portlet"
 msgstr "Ajouter un composant"
 
@@ -305,28 +319,28 @@
 msgid "Template management"
 msgstr "Ce modèle"
 
-#: src/pyams_portal/zmi/layout.py:102
-msgid "Template configuration"
-msgstr "Configuration d'un modèle"
-
-#: src/pyams_portal/zmi/layout.py:94
-msgid "Local template configuration"
-msgstr "Configuration d'un modèle local"
+#: src/pyams_portal/zmi/layout.py:103 src/pyams_portal/zmi/page.py:195
+msgid "Template layout"
+msgstr "Mise en page du modèle"
 
 #: src/pyams_portal/zmi/layout.py:145
 msgid "{{ missing portlet }}"
 msgstr "{{ composant indisponible }}"
 
-#: src/pyams_portal/zmi/layout.py:267 src/pyams_portal/zmi/template.py:167
-#: src/pyams_portal/zmi/template.py:316
+#: src/pyams_portal/zmi/layout.py:98
+msgid "Local template layout"
+msgstr "Mise en page d'un modèle local"
+
+#: src/pyams_portal/zmi/layout.py:100
+msgid "Inherited local template configuration"
+msgstr "Configuration d'un modèle local hérité"
+
+#: src/pyams_portal/zmi/layout.py:272 src/pyams_portal/zmi/template.py:172
+#: src/pyams_portal/zmi/template.py:314
 msgid "Specified name is already used!"
 msgstr "Le nom indiqué est déjà utilisé !"
 
-#: src/pyams_portal/zmi/layout.py:97
-msgid "Inherited local template configuration"
-msgstr "Configuration d'un modèle local hérité"
-
-#: src/pyams_portal/zmi/layout.py:136
+#: src/pyams_portal/zmi/layout.py:137
 #, python-format
 msgid ""
 "Add component: {0}<br />Drag and drop button to page template to position "
@@ -335,89 +349,89 @@
 "Ajouter un composant : <strong>{0}</strong><br />Faire un glisser/déposer du "
 "bouton dans le modèle de présentation pour positionner le nouveau composant."
 
-#: src/pyams_portal/zmi/layout.py:226 src/pyams_portal/zmi/layout.py:323
-#: src/pyams_portal/zmi/layout.py:408 src/pyams_portal/zmi/template.py:111
+#: src/pyams_portal/zmi/layout.py:231 src/pyams_portal/zmi/layout.py:333
+#: src/pyams_portal/zmi/layout.py:423 src/pyams_portal/zmi/template.py:115
 #, python-format
 msgid "« {0} »  portal template"
 msgstr "Modèle de présentation « {0} »"
 
-#: src/pyams_portal/zmi/layout.py:328
+#: src/pyams_portal/zmi/layout.py:338
 #, python-format
 msgid "Edit « {0} » slot properties"
 msgstr "Propriétés du panneau « {0} »"
 
-#: src/pyams_portal/zmi/layout.py:273
-msgid "Row ID must be an integer value!"
-msgstr "Le numéro de ligne doit être un nombre entier !"
-
-#: src/pyams_portal/zmi/layout.py:100
+#: src/pyams_portal/zmi/layout.py:102
 #, python-format
 msgid "Shared template configuration ({0})"
 msgstr "Configuration d'un modèle partagé ({0})"
 
-#: src/pyams_portal/zmi/layout.py:277
+#: src/pyams_portal/zmi/layout.py:278
+msgid "Row ID must be an integer value!"
+msgstr "Le numéro de ligne doit être un nombre entier !"
+
+#: src/pyams_portal/zmi/layout.py:283
 #, python-format
 msgid "Row ID must be between 1 and {0}!"
 msgstr "Le numéro de ligne doit être compris entre 1 et {0}"
 
-#: src/pyams_portal/zmi/template.py:132
+#: src/pyams_portal/zmi/template.py:137
 msgid "Add template"
 msgstr "Ajouter un modèle"
 
-#: src/pyams_portal/zmi/template.py:144
+#: src/pyams_portal/zmi/template.py:149
 msgid "Add shared template"
 msgstr "Ajout d'un modèle de présentation"
 
-#: src/pyams_portal/zmi/template.py:186
-msgid "Rename template..."
-msgstr "Renommer le modèle"
+#: src/pyams_portal/zmi/template.py:192
+msgid "Template properties..."
+msgstr "Propriétés du modèle"
 
-#: src/pyams_portal/zmi/template.py:206 src/pyams_portal/zmi/template.py:197
-msgid "Rename template"
-msgstr "Renommer le modèle"
+#: src/pyams_portal/zmi/template.py:206
+msgid "Template properties"
+msgstr "Configuration du modèle"
 
-#: src/pyams_portal/zmi/template.py:255
+#: src/pyams_portal/zmi/template.py:253
 msgid "Duplicate template..."
 msgstr "Dupliquer le modèle"
 
-#: src/pyams_portal/zmi/template.py:275
+#: src/pyams_portal/zmi/template.py:273
 msgid "Duplicate template"
 msgstr "Dupliquer le modèle"
 
-#: src/pyams_portal/zmi/template.py:60
+#: src/pyams_portal/zmi/template.py:62
 msgid "Presentation template"
 msgstr "Présentation"
 
-#: src/pyams_portal/zmi/template.py:196 src/pyams_portal/zmi/template.py:265
+#: src/pyams_portal/zmi/template.py:263
 msgid "Cancel"
 msgstr "Annuler"
 
-#: src/pyams_portal/zmi/template.py:266
+#: src/pyams_portal/zmi/template.py:264
 msgid "Duplicate this template"
 msgstr "Dupliquer ce modèle"
 
-#: src/pyams_portal/zmi/template.py:286
+#: src/pyams_portal/zmi/template.py:284
 msgid "New template name"
 msgstr "Nom du nouveau modèle"
 
-#: src/pyams_portal/zmi/template.py:87
+#: src/pyams_portal/zmi/template.py:90
 #, python-format
 msgid "{0} (local template)"
 msgstr "{0} (modèle local)"
 
-#: src/pyams_portal/zmi/page.py:65
+#: src/pyams_portal/zmi/page.py:62
 msgid "Presentation"
 msgstr "Présentation"
 
-#: src/pyams_portal/zmi/page.py:87
+#: src/pyams_portal/zmi/page.py:84
 msgid "Edit template configuration"
 msgstr "Choix du modèle de présentation"
 
-#: src/pyams_portal/zmi/page.py:88
+#: src/pyams_portal/zmi/page.py:85
 msgid "Inherit parent template"
 msgstr "Hériter du modèle de présentation du parent"
 
-#: src/pyams_portal/zmi/page.py:145
+#: src/pyams_portal/zmi/page.py:164
 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"
@@ -432,11 +446,11 @@
 "pourrez définir l'ensemble de la configuration, mais ce modèle ne pourra pas "
 "être réutilisé en dehors des sous-niveaux qui pourront en hériter..."
 
-#: src/pyams_portal/zmi/page.py:161
-msgid "Template properties"
+#: src/pyams_portal/zmi/page.py:196
+msgid "Template configuration"
 msgstr "Configuration du modèle"
 
-#: src/pyams_portal/zmi/page.py:131
+#: src/pyams_portal/zmi/page.py:148
 msgid "You must select which shared template to use!"
 msgstr "Vous devez sélectionner le modèle de présentation partagé à utiliser !"
 
@@ -524,18 +538,22 @@
 msgid "Delete portlet..."
 msgstr "Supprimer le composant"
 
-#: src/pyams_portal/zmi/templates/template-properties.pt:59
+#: src/pyams_portal/zmi/templates/template-properties.pt:62
 msgid "Use shared template"
 msgstr "Utiliser un modèle de présentation partagé"
 
-#: src/pyams_portal/zmi/templates/template-properties.pt:65
+#: src/pyams_portal/zmi/templates/template-properties.pt:68
 msgid "Selected template"
 msgstr "Modèle sélectionné"
 
-#: src/pyams_portal/zmi/templates/template-properties.pt:79
+#: src/pyams_portal/zmi/templates/template-properties.pt:82
 msgid "Use custom local template"
 msgstr "Utiliser un modèle de présentation spécifique (mode « local »)"
 
+#: src/pyams_portal/zmi/templates/template-properties.pt:88
+msgid "Custom CSS class"
+msgstr "Classe CSS"
+
 #: src/pyams_portal/skin/__init__.py:36
 msgid "Hidden portlet"
 msgstr "NON affiché"
@@ -632,6 +650,18 @@
 msgid "Responsive image renderer"
 msgstr "Image responsive (par défaut)"
 
+#~ msgid "Local template configuration"
+#~ msgstr "Configuration d'un modèle local"
+
+#~ msgid "Properties"
+#~ msgstr "Propriétés"
+
+#~ msgid "Rename template..."
+#~ msgstr "Renommer le modèle"
+
+#~ msgid "Rename template"
+#~ msgstr "Renommer le modèle"
+
 #~ msgid "Current device"
 #~ msgstr "Périphérique actuel"
 
--- a/src/pyams_portal/locales/pyams_portal.pot	Thu Aug 05 09:27:48 2021 +0200
+++ b/src/pyams_portal/locales/pyams_portal.pot	Fri Aug 06 09:59:34 2021 +0200
@@ -1,12 +1,12 @@
 #
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2020-11-24 09:57+0100\n"
+"POT-Creation-Date: 2021-08-06 09:45+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"
@@ -75,209 +75,221 @@
 msgstr ""
 
 #: ./src/pyams_portal/interfaces.py:231
+msgid "Container CSS class"
+msgstr ""
+
+#: ./src/pyams_portal/interfaces.py:232
+msgid "CSS class applied to this slot container"
+msgstr ""
+
+#: ./src/pyams_portal/interfaces.py:235
 msgid "Extra small device width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:232
+#: ./src/pyams_portal/interfaces.py:236
 msgid ""
 "Slot width, in columns count, on extra small devices (phones...); set to 0 to"
 " hide the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:238
+#: ./src/pyams_portal/interfaces.py:242
 msgid "Small device width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:239
+#: ./src/pyams_portal/interfaces.py:243
 msgid ""
 "Slot width, in columns count, on small devices (tablets...); set to 0 to hide"
 " the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:245
+#: ./src/pyams_portal/interfaces.py:249
 msgid "Medium devices width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:246
+#: ./src/pyams_portal/interfaces.py:250
 msgid ""
 "Slot width, in columns count, on medium desktop devices (>= 992 pixels); set "
 "to 0 to hide the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:252
+#: ./src/pyams_portal/interfaces.py:256
 msgid "Large devices width"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:253
+#: ./src/pyams_portal/interfaces.py:257
 msgid ""
 "Slot width, in columns count, on large desktop devices (>= 1200 pixels); set "
 "to 0 to hide the portlet"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:259
+#: ./src/pyams_portal/interfaces.py:263 ./src/pyams_portal/interfaces.py:381
 msgid "CSS class"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:260
+#: ./src/pyams_portal/interfaces.py:264
 msgid "CSS class applied to this slot"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:373
+#: ./src/pyams_portal/interfaces.py:377
 msgid "Template name"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:374
+#: ./src/pyams_portal/interfaces.py:378
 msgid "Two registered templates can't share the same name..."
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:395
+#: ./src/pyams_portal/interfaces.py:382
+msgid "This CSS class can be included into main presentation layout..."
+msgstr ""
+
+#: ./src/pyams_portal/interfaces.py:404
 msgid "Toolbar portlets"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:396
+#: ./src/pyams_portal/interfaces.py:405
 msgid ""
 "These portlets will be directly available in templates configuration page "
 "toolbar"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:425
+#: ./src/pyams_portal/interfaces.py:434
 msgid "Inherit parent template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:426
+#: ./src/pyams_portal/interfaces.py:435
 msgid "Should we reuse parent template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:430
+#: ./src/pyams_portal/interfaces.py:439
 msgid "Override parent template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:431
+#: ./src/pyams_portal/interfaces.py:440
 msgid "Should we override parent template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:435
+#: ./src/pyams_portal/interfaces.py:444
 msgid "Use local template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:436
+#: ./src/pyams_portal/interfaces.py:445
 msgid ""
 "If 'yes', you can define a custom local template instead of a shared template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:441
+#: ./src/pyams_portal/interfaces.py:450
 msgid "Local template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:446
+#: ./src/pyams_portal/interfaces.py:455
 msgid "Use shared template?"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:447
+#: ./src/pyams_portal/interfaces.py:456
 msgid "If 'yes', you can select a shared template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:451
+#: ./src/pyams_portal/interfaces.py:460
 msgid "Page template"
 msgstr ""
 
-#: ./src/pyams_portal/interfaces.py:452
+#: ./src/pyams_portal/interfaces.py:461
 msgid "Template used for this page"
 msgstr ""
 
-#: ./src/pyams_portal/template.py:84
+#: ./src/pyams_portal/template.py:85
 msgid "Portal template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/widget.py:28 ./src/pyams_portal/zmi/portlet.py:176
+#: ./src/pyams_portal/zmi/widget.py:28 ./src/pyams_portal/zmi/portlet.py:179
 msgid "Edit renderer properties"
 msgstr ""
 
 #: ./src/pyams_portal/zmi/container.py:64
-#: ./src/pyams_portal/zmi/container.py:93
-#: ./src/pyams_portal/zmi/template.py:143
+#: ./src/pyams_portal/zmi/container.py:95
+#: ./src/pyams_portal/zmi/template.py:148
 msgid "Portal templates"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/container.py:102
+#: ./src/pyams_portal/zmi/container.py:104
 msgid "Shared portal templates"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/container.py:139
+#: ./src/pyams_portal/zmi/container.py:145
 msgid "Delete template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/container.py:189
+#: ./src/pyams_portal/zmi/container.py:201
 msgid "Selected portlets..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/container.py:208
+#: ./src/pyams_portal/zmi/container.py:220
 msgid "Portal templates container"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/container.py:209
+#: ./src/pyams_portal/zmi/container.py:221
 msgid "Edit selected portlets"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:61
+#: ./src/pyams_portal/zmi/portlet.py:59
 msgid "Edit portlet settings"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:107
+#: ./src/pyams_portal/zmi/portlet.py:105
 msgid ""
 "WARNING: Portlet properties are saved automatically when changing inherit "
 "mode!!"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:117
+#: ./src/pyams_portal/zmi/portlet.py:118
 msgid "Main properties"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:82 ./src/pyams_portal/zmi/portlet.py:88
+#: ./src/pyams_portal/zmi/portlet.py:80 ./src/pyams_portal/zmi/portlet.py:86
 msgid "Override template settings"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:86
+#: ./src/pyams_portal/zmi/portlet.py:84
 msgid "Override parent settings"
 msgstr ""
 
+#: ./src/pyams_portal/zmi/portlet.py:53
+#, python-format
+msgid "Local portal template - {0}"
+msgstr ""
+
 #: ./src/pyams_portal/zmi/portlet.py:56
 #, python-format
-msgid "Local portal template - {0}"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/portlet.py:58
-#, python-format
 msgid "« {0} »  portal template - {1}"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/portlet.py:155
+#: ./src/pyams_portal/zmi/portlet.py:158
 msgid ""
 "You changed renderer selection. Don't omit to update new renderer "
 "properties..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:75
-msgid "Properties"
+#: ./src/pyams_portal/zmi/layout.py:79
+msgid "Layout"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:168
+#: ./src/pyams_portal/zmi/layout.py:167
 msgid "Add row..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:210
+#: ./src/pyams_portal/zmi/layout.py:213
 msgid "Add slot..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:228
+#: ./src/pyams_portal/zmi/layout.py:233
 msgid "Add slot"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:392
+#: ./src/pyams_portal/zmi/layout.py:405
 msgid "Add portlet..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:410
+#: ./src/pyams_portal/zmi/layout.py:425
 msgid "Add portlet"
 msgstr ""
 
@@ -285,129 +297,127 @@
 msgid "Template management"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:102
-msgid "Template configuration"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:94
-msgid "Local template configuration"
+#: ./src/pyams_portal/zmi/layout.py:103 ./src/pyams_portal/zmi/page.py:195
+msgid "Template layout"
 msgstr ""
 
 #: ./src/pyams_portal/zmi/layout.py:145
 msgid "{{ missing portlet }}"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:267 ./src/pyams_portal/zmi/template.py:167
-#: ./src/pyams_portal/zmi/template.py:316
+#: ./src/pyams_portal/zmi/layout.py:98
+msgid "Local template layout"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/layout.py:100
+msgid "Inherited local template configuration"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/layout.py:272 ./src/pyams_portal/zmi/template.py:172
+#: ./src/pyams_portal/zmi/template.py:314
 msgid "Specified name is already used!"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:97
-msgid "Inherited local template configuration"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:136
+#: ./src/pyams_portal/zmi/layout.py:137
 #, python-format
 msgid ""
 "Add component: {0}<br />Drag and drop button to page template to position new"
 " row"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:226 ./src/pyams_portal/zmi/layout.py:323
-#: ./src/pyams_portal/zmi/layout.py:408 ./src/pyams_portal/zmi/template.py:111
+#: ./src/pyams_portal/zmi/layout.py:231 ./src/pyams_portal/zmi/layout.py:333
+#: ./src/pyams_portal/zmi/layout.py:423 ./src/pyams_portal/zmi/template.py:115
 #, python-format
 msgid "« {0} »  portal template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:328
+#: ./src/pyams_portal/zmi/layout.py:338
 #, python-format
 msgid "Edit « {0} » slot properties"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:273
-msgid "Row ID must be an integer value!"
-msgstr ""
-
-#: ./src/pyams_portal/zmi/layout.py:100
+#: ./src/pyams_portal/zmi/layout.py:102
 #, python-format
 msgid "Shared template configuration ({0})"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/layout.py:277
+#: ./src/pyams_portal/zmi/layout.py:278
+msgid "Row ID must be an integer value!"
+msgstr ""
+
+#: ./src/pyams_portal/zmi/layout.py:283
 #, python-format
 msgid "Row ID must be between 1 and {0}!"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:132
+#: ./src/pyams_portal/zmi/template.py:137
 msgid "Add template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:144
+#: ./src/pyams_portal/zmi/template.py:149
 msgid "Add shared template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:186
-msgid "Rename template..."
+#: ./src/pyams_portal/zmi/template.py:192
+msgid "Template properties..."
 msgstr ""
 
 #: ./src/pyams_portal/zmi/template.py:206
-#: ./src/pyams_portal/zmi/template.py:197
-msgid "Rename template"
+msgid "Template properties"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:255
+#: ./src/pyams_portal/zmi/template.py:253
 msgid "Duplicate template..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:275
+#: ./src/pyams_portal/zmi/template.py:273
 msgid "Duplicate template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:60
+#: ./src/pyams_portal/zmi/template.py:62
 msgid "Presentation template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:196
-#: ./src/pyams_portal/zmi/template.py:265
+#: ./src/pyams_portal/zmi/template.py:263
 msgid "Cancel"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:266
+#: ./src/pyams_portal/zmi/template.py:264
 msgid "Duplicate this template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:286
+#: ./src/pyams_portal/zmi/template.py:284
 msgid "New template name"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/template.py:87
+#: ./src/pyams_portal/zmi/template.py:90
 #, python-format
 msgid "{0} (local template)"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:65
+#: ./src/pyams_portal/zmi/page.py:62
 msgid "Presentation"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:87
+#: ./src/pyams_portal/zmi/page.py:84
 msgid "Edit template configuration"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:88
+#: ./src/pyams_portal/zmi/page.py:85
 msgid "Inherit parent template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:145
+#: ./src/pyams_portal/zmi/page.py:164
 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:161
-msgid "Template properties"
+#: ./src/pyams_portal/zmi/page.py:196
+msgid "Template configuration"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/page.py:131
+#: ./src/pyams_portal/zmi/page.py:148
 msgid "You must select which shared template to use!"
 msgstr ""
 
@@ -489,18 +499,22 @@
 msgid "Delete portlet..."
 msgstr ""
 
-#: ./src/pyams_portal/zmi/templates/template-properties.pt:59
+#: ./src/pyams_portal/zmi/templates/template-properties.pt:62
 msgid "Use shared template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/templates/template-properties.pt:65
+#: ./src/pyams_portal/zmi/templates/template-properties.pt:68
 msgid "Selected template"
 msgstr ""
 
-#: ./src/pyams_portal/zmi/templates/template-properties.pt:79
+#: ./src/pyams_portal/zmi/templates/template-properties.pt:82
 msgid "Use custom local template"
 msgstr ""
 
+#: ./src/pyams_portal/zmi/templates/template-properties.pt:88
+msgid "Custom CSS class"
+msgstr ""
+
 #: ./src/pyams_portal/skin/__init__.py:36
 msgid "Hidden portlet"
 msgstr ""
--- a/src/pyams_portal/zmi/layout.py	Thu Aug 05 09:27:48 2021 +0200
+++ b/src/pyams_portal/zmi/layout.py	Fri Aug 06 09:59:34 2021 +0200
@@ -95,12 +95,12 @@
             context = get_parent(self.context, IPortalContext)
             page = IPortalPage(context)
             if page.use_local_template:
-                return _("Local template configuration")
+                return _("Local template layout")
             if page.template.name == LOCAL_TEMPLATE_NAME:
                 return _("Inherited local template configuration")
             translate = self.request.localizer.translate
             return translate(_("Shared template configuration ({0})")).format(page.template.name)
-        return _("Template configuration")
+        return _("Template layout")
 
     def get_template(self):
         return self.context
--- a/src/pyams_portal/zmi/page.py	Thu Aug 05 09:27:48 2021 +0200
+++ b/src/pyams_portal/zmi/page.py	Fri Aug 06 09:59:34 2021 +0200
@@ -10,43 +10,39 @@
 # FOR A PARTICULAR PURPOSE.
 #
 
-__docformat__ = 'restructuredtext'
-
+from pyramid.events import subscriber
+from pyramid.view import view_config
+from z3c.form import field
+from z3c.form.interfaces import IDataExtractedEvent
+from zope.interface import Interface, Invalid, alsoProvides, implementer
 
-# import standard library
-
-# import interfaces
-from pyams_form.interfaces.form import IWidgetForm, IFormHelp
+from pyams_form.form import ajax_config
+from pyams_form.help import FormHelp
+from pyams_form.interfaces.form import IFormHelp, IWidgetForm
+from pyams_pagelet.pagelet import pagelet_config
 from pyams_portal.interfaces import IPortalContext, IPortalPage, IPortalTemplateConfiguration, \
     MANAGE_TEMPLATE_PERMISSION
 from pyams_portal.zmi.interfaces import IPortalContextTemplatePropertiesMenu
-from pyams_skin.interfaces import IPageHeader, IInnerPage
+from pyams_portal.zmi.layout import PortalTemplateLayoutView, PortalTemplatePortletAJAXEditForm, \
+    PortalTemplatePortletEditForm
+from pyams_portal.zmi.template import PortalTemplateHeaderAdapter
+from pyams_skin.interfaces import IInnerPage, IPageHeader
 from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
-from pyams_utils.interfaces.data import IObjectData
-from pyams_zmi.interfaces.menu import ISiteManagementMenu
-from pyams_zmi.layer import IAdminLayer
-from z3c.form.interfaces import IDataExtractedEvent
-
-# import packages
-from pyams_form.form import ajax_config
-from pyams_form.help import FormHelp
-from pyams_pagelet.pagelet import pagelet_config
-from pyams_portal.zmi.layout import PortalTemplateLayoutView, PortalTemplatePortletEditForm, \
-    PortalTemplatePortletAJAXEditForm
-from pyams_portal.zmi.template import PortalTemplateHeaderAdapter
 from pyams_skin.viewlet.menu import MenuItem
 from pyams_template.template import template_config
 from pyams_utils.adapter import adapter_config
+from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
+from pyams_utils.interfaces.data import IObjectData
 from pyams_utils.url import absolute_url
 from pyams_viewlet.manager import viewletmanager_config
 from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminEditForm
+from pyams_zmi.interfaces.menu import ISiteManagementMenu
+from pyams_zmi.layer import IAdminLayer
 from pyams_zmi.zmi.site import PropertiesEditFormHeaderAdapter
-from pyramid.events import subscriber
-from pyramid.view import view_config
-from z3c.form import field
-from zope.interface import alsoProvides, implementer, Interface, Invalid
+
+
+__docformat__ = 'restructuredtext'
 
 from pyams_portal import _
 
@@ -184,8 +180,6 @@
 class PortalContextTemplateConfigMenu(MenuItem):
     """Portal context template configuration menu"""
 
-    label = _("Template properties")
-
     url = '#template-config.html'
 
     def __new__(cls, context, request, view, manager=None):
@@ -194,12 +188,18 @@
             return None
         return MenuItem.__new__(cls)
 
+    @property
+    def label(self):
+        page = IPortalPage(self.context)
+        if page.use_local_template:
+            return _("Template layout")
+        return _("Template configuration")
+
     def get_url(self):
         page = IPortalPage(self.context)
         if page.use_local_template:
-            return absolute_url(page.local_template, self.request, 'admin#properties.html')
-        else:
-            return super(PortalContextTemplateConfigMenu, self).get_url()
+            return absolute_url(page.local_template, self.request, 'admin#layout.html')
+        return super(PortalContextTemplateConfigMenu, self).get_url()
 
 
 @pagelet_config(name='template-config.html',
--- a/src/pyams_portal/zmi/template.py	Thu Aug 05 09:27:48 2021 +0200
+++ b/src/pyams_portal/zmi/template.py	Fri Aug 06 09:59:34 2021 +0200
@@ -96,7 +96,7 @@
 class PortalTemplateTableElementEditorAdapter(DefaultElementEditorAdapter):
     """Portal template table element editor adapter"""
 
-    view_name = 'admin#properties.html'
+    view_name = 'admin#layout.html'
     modal_target = False
 
 
@@ -229,7 +229,7 @@
         if self._renamed:
             return {
                 'status': 'redirect',
-                'location': absolute_url(self.getContent(), self.request, 'admin#properties.html')
+                'location': absolute_url(self.getContent(), self.request, 'admin')
             }
         return super().get_ajax_output(changes)