Updated pictogram interface
authorThierry Florac <thierry.florac@onf.fr>
Fri, 23 Mar 2018 11:04:03 +0100
changeset 496 66bae1164f85
parent 495 512c874493b9
child 497 32f7f9950df3
Updated pictogram interface
src/pyams_content/component/paragraph/interfaces/pictogram.py
src/pyams_content/component/paragraph/zmi/pictogram.py
src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo
src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po
src/pyams_content/locales/pyams_content.pot
--- a/src/pyams_content/component/paragraph/interfaces/pictogram.py	Thu Mar 22 19:12:33 2018 +0100
+++ b/src/pyams_content/component/paragraph/interfaces/pictogram.py	Fri Mar 23 11:04:03 2018 +0100
@@ -51,8 +51,9 @@
 
     pictogram = Attribute("Select pictogram object")
 
-    label = I18nTextLineField(title=_("Label"),
-                              description=_("Associated pictogram label"),
+    label = I18nTextLineField(title=_("Alternate label"),
+                              description=_("Alternate pictogram label; if not specified, the pictogram title "
+                                            "will be used"),
                               required=False)
 
     body = I18nTextField(title=_("Associated text"),
--- a/src/pyams_content/component/paragraph/zmi/pictogram.py	Thu Mar 22 19:12:33 2018 +0100
+++ b/src/pyams_content/component/paragraph/zmi/pictogram.py	Fri Mar 23 11:04:03 2018 +0100
@@ -322,6 +322,12 @@
     attrName = 'label'
     weight = 10
 
+    def getValue(self, obj):
+        value = super(PictogramsTableNameColumn, self).getValue(obj)
+        if not value:
+            value = II18n(obj.pictogram).query_attribute('title', request=self.request)
+        return value
+
 
 @adapter_config(name='body', context=(IPictogramContainerTarget, IPyAMSLayer, PictogramsTable), provides=IColumn)
 class PictogramsTableBodyColumn(I18nColumn, I18nAttrColumn):
Binary file src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo has changed
--- a/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Thu Mar 22 19:12:33 2018 +0100
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Fri Mar 23 11:04:03 2018 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-03-15 12:04+0100\n"
+"POT-Creation-Date: 2018-03-23 11:00+0100\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -108,8 +108,8 @@
 msgstr "Contenu audio associé"
 
 #: src/pyams_content/component/gallery/zmi/file.py:258
-#: src/pyams_content/component/paragraph/zmi/milestone.py:347
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:355
+#: src/pyams_content/component/paragraph/zmi/milestone.py:349
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:363
 #: src/pyams_content/component/association/zmi/__init__.py:288
 #: src/pyams_content/shared/common/zmi/types.py:208
 #: src/pyams_content/shared/common/zmi/types.py:457
@@ -235,7 +235,7 @@
 #: src/pyams_content/component/links/interfaces/__init__.py:37
 #: src/pyams_content/component/video/interfaces/__init__.py:44
 #: src/pyams_content/shared/common/interfaces/__init__.py:136
-#: src/pyams_content/shared/form/interfaces/__init__.py:61
+#: src/pyams_content/shared/form/interfaces/__init__.py:65
 msgid "Description"
 msgstr "Description"
 
@@ -288,14 +288,14 @@
 
 #: src/pyams_content/component/gallery/interfaces/__init__.py:94
 #: src/pyams_content/component/extfile/interfaces/__init__.py:36
-#: src/pyams_content/component/paragraph/zmi/milestone.py:298
+#: src/pyams_content/component/paragraph/zmi/milestone.py:300
 #: src/pyams_content/component/paragraph/zmi/container.py:224
 #: src/pyams_content/component/paragraph/interfaces/milestone.py:46
 #: src/pyams_content/component/links/zmi/reverse.py:71
 #: src/pyams_content/shared/common/zmi/dashboard.py:109
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
 #: src/pyams_content/shared/imagemap/zmi/container.py:119
-#: src/pyams_content/shared/site/zmi/folder.py:63
+#: src/pyams_content/shared/site/zmi/folder.py:64
 #: src/pyams_content/root/zmi/templates/advanced-search.pt:188
 #: src/pyams_content/interfaces/__init__.py:99
 #: src/pyams_content/reference/pictograms/zmi/__init__.py:171
@@ -328,8 +328,8 @@
 
 #: src/pyams_content/component/extfile/__init__.py:223
 #: src/pyams_content/component/extfile/__init__.py:240
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:61
-#: src/pyams_content/shared/logo/interfaces/__init__.py:42
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:66
+#: src/pyams_content/shared/logo/interfaces/__init__.py:47
 #: src/pyams_content/reference/pictograms/interfaces/__init__.py:44
 msgid "Image"
 msgstr "Image"
@@ -475,7 +475,7 @@
 "aux normes d'accessibilité."
 
 #: src/pyams_content/component/extfile/interfaces/__init__.py:81
-#: src/pyams_content/shared/logo/interfaces/__init__.py:43
+#: src/pyams_content/shared/logo/interfaces/__init__.py:48
 msgid "Image data"
 msgstr "Fichier"
 
@@ -519,7 +519,7 @@
 msgid "Edit illustration properties"
 msgstr "Propriétés de l'illustration"
 
-#: src/pyams_content/component/illustration/zmi/__init__.py:142
+#: src/pyams_content/component/illustration/zmi/__init__.py:143
 msgid "Add illustration"
 msgstr "Ajouter une illustration"
 
@@ -623,7 +623,7 @@
 msgstr "Texte enrichi"
 
 #: src/pyams_content/component/paragraph/contact.py:47
-#: src/pyams_content/component/paragraph/contact.py:71
+#: src/pyams_content/component/paragraph/contact.py:74
 msgid "Contact card"
 msgstr "Fiche contact"
 
@@ -648,38 +648,38 @@
 msgid "Edit milestone paragraph properties"
 msgstr "Propriétés de la chronologie"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:262
+#: src/pyams_content/component/paragraph/zmi/milestone.py:264
 msgid "Switch milestone visibility"
 msgstr "Cliquez pour rendre le jalon visible ou non"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:307
+#: src/pyams_content/component/paragraph/zmi/milestone.py:309
 #: src/pyams_content/component/paragraph/interfaces/milestone.py:50
 msgid "Associated label"
 msgstr "Information associée"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:316
+#: src/pyams_content/component/paragraph/zmi/milestone.py:318
 #: src/pyams_content/component/paragraph/interfaces/milestone.py:54
 msgid "Anchor"
 msgstr "Ancre"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:391
+#: src/pyams_content/component/paragraph/zmi/milestone.py:393
 msgid "Add milestone"
 msgstr "Ajouter un jalon"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:402
+#: src/pyams_content/component/paragraph/zmi/milestone.py:404
 msgid "Add new milestone"
 msgstr "Ajout d'un jalon"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:442
+#: src/pyams_content/component/paragraph/zmi/milestone.py:444
 msgid "Edit milestone properties"
 msgstr "Propriétés du jalon"
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:426
+#: src/pyams_content/component/paragraph/zmi/milestone.py:428
 msgid "Milestone was correctly added"
 msgstr "Le jalon a été ajouté."
 
-#: src/pyams_content/component/paragraph/zmi/milestone.py:355
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:363
+#: src/pyams_content/component/paragraph/zmi/milestone.py:357
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:371
 #: src/pyams_content/component/association/zmi/__init__.py:292
 msgid "Given association name doesn't exist!"
 msgstr "Le nom d'association indiqué n'existe pas !"
@@ -804,41 +804,40 @@
 msgid "Edit pictogram paragraph properties"
 msgstr "Propriétés des pictogrammes"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:283
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:285
 msgid "Switch pictogram visibility"
 msgstr "Cliquez pour rendre le paragraphe visible ou non"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:319
-#: src/pyams_content/component/paragraph/interfaces/pictogram.py:54
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:321
 #: src/pyams_content/shared/common/interfaces/types.py:39
 #: src/pyams_content/shared/form/zmi/field.py:171
-#: src/pyams_content/shared/form/interfaces/__init__.py:57
+#: src/pyams_content/shared/form/interfaces/__init__.py:61
 msgid "Label"
 msgstr "Libellé"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:328
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:336
 #: src/pyams_content/component/paragraph/interfaces/video.py:41
 #: src/pyams_content/component/paragraph/interfaces/html.py:53
 #: src/pyams_content/component/video/interfaces/__init__.py:69
 msgid "Body"
 msgstr "Contenu HTML"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:399
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:407
 #: src/pyams_content/reference/pictograms/zmi/__init__.py:56
 msgid "Add pictogram"
 msgstr "Ajouter un pictogramme"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:410
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:418
 #: src/pyams_content/reference/pictograms/zmi/__init__.py:67
 msgid "Add new pictogram"
 msgstr "Ajout d'un pictogramme"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:455
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:463
 #: src/pyams_content/reference/pictograms/zmi/__init__.py:94
 msgid "Edit pictogram properties"
 msgstr "Propriétés du pictogramme"
 
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:439
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:447
 msgid "Pictogram was correctly added"
 msgstr "Le pictogramme a été ajouté."
 
@@ -918,8 +917,8 @@
 #: src/pyams_content/component/paragraph/interfaces/__init__.py:43
 #: src/pyams_content/component/paragraph/interfaces/pictogram.py:42
 #: src/pyams_content/component/association/interfaces/__init__.py:43
-#: src/pyams_content/shared/form/interfaces/__init__.py:82
-#: src/pyams_content/shared/site/interfaces/__init__.py:95
+#: src/pyams_content/shared/form/interfaces/__init__.py:86
+#: src/pyams_content/shared/site/interfaces/__init__.py:107
 msgid "Visible?"
 msgstr "Visible ?"
 
@@ -962,7 +961,7 @@
 #: src/pyams_content/component/paragraph/interfaces/keypoint.py:45
 #: src/pyams_content/component/paragraph/interfaces/frame.py:44
 #: src/pyams_content/component/paragraph/interfaces/verbatim.py:53
-#: src/pyams_content/shared/logo/interfaces/__init__.py:67
+#: src/pyams_content/shared/logo/interfaces/__init__.py:76
 msgid "Presentation template used for this paragraph"
 msgstr "Mode de rendu utilisé par ce paragraphe"
 
@@ -1019,23 +1018,30 @@
 msgid "Name of the pictogram to select"
 msgstr "Sélection du pictogramme à afficher"
 
+#: src/pyams_content/component/paragraph/interfaces/pictogram.py:54
+msgid "Alternate label"
+msgstr "Libellé de substitution"
+
 #: src/pyams_content/component/paragraph/interfaces/pictogram.py:55
-msgid "Associated pictogram label"
-msgstr "Libellé associé au pictogramme"
-
-#: src/pyams_content/component/paragraph/interfaces/pictogram.py:58
-msgid "Associated text"
-msgstr "Texte associé"
+msgid ""
+"Alternate pictogram label; if not specified, the pictogram title will be used"
+msgstr ""
+"Libellé de substitution utilisé par le pictogramme; si rien n'est spécifié, le titre "
+"du pictogramme sélectionné sera utilisé."
 
 #: src/pyams_content/component/paragraph/interfaces/pictogram.py:59
+msgid "Associated text"
+msgstr "Texte associé"
+
+#: src/pyams_content/component/paragraph/interfaces/pictogram.py:60
 msgid "Additional text associated to this pictogram"
 msgstr "Texte complémentaire associé à ce pictogramme"
 
-#: src/pyams_content/component/paragraph/interfaces/pictogram.py:86
+#: src/pyams_content/component/paragraph/interfaces/pictogram.py:87
 msgid "Pictograms template"
 msgstr "Mode de rendu"
 
-#: src/pyams_content/component/paragraph/interfaces/pictogram.py:87
+#: src/pyams_content/component/paragraph/interfaces/pictogram.py:88
 msgid "Presentation template used for pictograms"
 msgstr "Modèle de présentation utilisé par ce paragraphe"
 
@@ -1060,7 +1066,7 @@
 msgstr "Nom de l'auteur de la citation"
 
 #: src/pyams_content/component/paragraph/interfaces/verbatim.py:48
-#: src/pyams_content/component/paragraph/interfaces/contact.py:45
+#: src/pyams_content/component/paragraph/interfaces/contact.py:50
 msgid "In charge of"
 msgstr "Fonction"
 
@@ -1084,46 +1090,46 @@
 "Ce code HTML sera utilisé en l'état et intégré dans les pages sans "
 "modification. À utiliser avec précaution !!!"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:41
+#: src/pyams_content/component/paragraph/interfaces/contact.py:46
 msgid "Contact identity"
 msgstr "Nom du contact"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:42
+#: src/pyams_content/component/paragraph/interfaces/contact.py:47
 msgid "Name of the contact"
 msgstr "Nom complet du contact"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:46
+#: src/pyams_content/component/paragraph/interfaces/contact.py:51
 msgid "Label of contact function"
 msgstr "Fonction du contact"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:49
+#: src/pyams_content/component/paragraph/interfaces/contact.py:54
 msgid "Photo"
 msgstr "Photo"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:50
+#: src/pyams_content/component/paragraph/interfaces/contact.py:55
 msgid "Use 'browse' button to select contact picture"
 msgstr "Utilisez le bouton 'Parcourir' pour sélectionner la photo du contact"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:53
+#: src/pyams_content/component/paragraph/interfaces/contact.py:63
+msgid "Address"
+msgstr "Adresse"
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:66
+msgid "Contact template"
+msgstr "Mode de rendu"
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:67
+msgid "Presentation template used for this contact"
+msgstr "Modèle de présentation utilisé pour ce contact"
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:59
 msgid "GPS location"
 msgstr "Position GPS"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:54
+#: src/pyams_content/component/paragraph/interfaces/contact.py:60
 msgid "GPS coordinates used to locate contact"
 msgstr "Coordonnées GPS de situation du contact"
 
-#: src/pyams_content/component/paragraph/interfaces/contact.py:57
-msgid "Address"
-msgstr "Adresse"
-
-#: src/pyams_content/component/paragraph/interfaces/contact.py:60
-msgid "Contact template"
-msgstr "Mode de rendu"
-
-#: src/pyams_content/component/paragraph/interfaces/contact.py:61
-msgid "Presentation template used for this contact"
-msgstr "Modèle de présentation utilisé pour ce contact"
-
 #: src/pyams_content/component/paragraph/interfaces/header.py:43
 msgid "Header template"
 msgstr "Mode de rendu"
@@ -1287,8 +1293,8 @@
 msgstr "Autres contenus qui pointent vers ce contenu"
 
 #: src/pyams_content/component/links/interfaces/__init__.py:33
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:49
-#: src/pyams_content/shared/site/interfaces/__init__.py:91
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:54
+#: src/pyams_content/shared/site/interfaces/__init__.py:103
 msgid "Alternate title"
 msgstr "Titre de substitution"
 
@@ -1303,12 +1309,12 @@
 msgstr "Description du lien, présentée aux internautes"
 
 #: src/pyams_content/component/links/interfaces/__init__.py:55
-#: src/pyams_content/shared/logo/interfaces/__init__.py:46
+#: src/pyams_content/shared/logo/interfaces/__init__.py:51
 msgid "Target URL"
 msgstr "URL cible"
 
 #: src/pyams_content/component/links/interfaces/__init__.py:56
-#: src/pyams_content/shared/logo/interfaces/__init__.py:47
+#: src/pyams_content/shared/logo/interfaces/__init__.py:52
 msgid "URL used to access external resource"
 msgstr ""
 "URL utilisée pour accéder à cette ressource externe. Doit comprendre le "
@@ -1608,19 +1614,19 @@
 msgid "Name of external platform providing selected video"
 msgstr "Nom de la plate-forme externe fournissant la vidéo à afficher"
 
-#: src/pyams_content/shared/common/__init__.py:234
+#: src/pyams_content/shared/common/__init__.py:235
 #: src/pyams_content/shared/common/zmi/properties.py:67
 #: src/pyams_content/shared/common/zmi/manager.py:90
 msgid "Properties"
 msgstr "Propriétés"
 
-#: src/pyams_content/shared/common/__init__.py:144
-#: src/pyams_content/shared/common/__init__.py:152
+#: src/pyams_content/shared/common/__init__.py:145
+#: src/pyams_content/shared/common/__init__.py:153
 #, python-format
 msgid "{date} by {principal}"
 msgstr "{date} par {principal}"
 
-#: src/pyams_content/shared/common/__init__.py:257
+#: src/pyams_content/shared/common/__init__.py:258
 #, python-format
 msgid "title length should be between 40 and 66 characters ({length} actually)"
 msgstr ""
@@ -2725,12 +2731,12 @@
 "responsables à certains contenus"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:57
-#: src/pyams_content/shared/common/interfaces/__init__.py:161
+#: src/pyams_content/shared/common/interfaces/__init__.py:165
 msgid "Managers"
 msgstr "Responsables"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:58
-#: src/pyams_content/shared/common/interfaces/__init__.py:162
+#: src/pyams_content/shared/common/interfaces/__init__.py:166
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
@@ -2740,7 +2746,7 @@
 "restrictions qui leur sont imposées"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:63
-#: src/pyams_content/shared/common/interfaces/__init__.py:167
+#: src/pyams_content/shared/common/interfaces/__init__.py:171
 msgid "Contributors"
 msgstr "Contributeurs"
 
@@ -2818,24 +2824,24 @@
 msgstr "Ces mots-clés seront intégrés dans les métadonnées des pages HTML"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:146
-#: src/pyams_content/shared/site/zmi/folder.py:71
+#: src/pyams_content/shared/site/zmi/folder.py:72
 #: src/pyams_content/shared/site/interfaces/__init__.py:56
 msgid "Notepad"
 msgstr "Bloc-notes"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:147
-#: src/pyams_content/shared/site/zmi/folder.py:72
+#: src/pyams_content/shared/site/zmi/folder.py:73
 #: src/pyams_content/shared/site/interfaces/__init__.py:57
 msgid "Internal information to be known about this content"
 msgstr ""
 "Pour prendre note d'informations internes utiles ou importantes à propos de "
 "ce contenu ; ces notes ne seront pas publiées sur internet."
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:154
+#: src/pyams_content/shared/common/interfaces/__init__.py:158
 msgid "Content owner"
 msgstr "Propriétaire"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:155
+#: src/pyams_content/shared/common/interfaces/__init__.py:159
 msgid ""
 "The owner is the creator of content's first version, except if it was "
 "transferred afterwards to another owner"
@@ -2844,7 +2850,7 @@
 "lorsque cette propriété a été transférée à un autre utilisateur après coup. "
 "Les contenus archivés ne sont plus transférables."
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:168
+#: src/pyams_content/shared/common/interfaces/__init__.py:172
 msgid ""
 "Contributors are users which are allowed to update this content in addition "
 "to it's owner"
@@ -2852,11 +2858,11 @@
 "Les contributeurs sont autorisés, en plus du propriétaire, à modifier ce "
 "contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:173
+#: src/pyams_content/shared/common/interfaces/__init__.py:177
 msgid "Readers"
 msgstr "Relecteurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:174
+#: src/pyams_content/shared/common/interfaces/__init__.py:178
 msgid ""
 "Readers are users which are asked to verify and comment contents before they "
 "are published"
@@ -2864,26 +2870,26 @@
 "Les relecteurs sont des utilisateurs qui sont sollicités pour vérifier et "
 "commenter un contenu avant sa publication"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:179
+#: src/pyams_content/shared/common/interfaces/__init__.py:183
 msgid "Guests"
 msgstr "Invités"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:180
+#: src/pyams_content/shared/common/interfaces/__init__.py:184
 msgid ""
 "Guests are users which are allowed to view contents with restricted access"
 msgstr ""
 "Les invités sont autorisés à consulter des contenus dont l'accès a été "
 "restreint"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:199
+#: src/pyams_content/shared/common/interfaces/__init__.py:207
 msgid "Principal ID"
 msgstr "ID utilisateur"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:204
+#: src/pyams_content/shared/common/interfaces/__init__.py:212
 msgid "Restricted contents"
 msgstr "Accès restreints"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:205
+#: src/pyams_content/shared/common/interfaces/__init__.py:213
 msgid ""
 "If 'yes', this manager will get restricted access to manage contents based "
 "on selected settings"
@@ -2891,21 +2897,21 @@
 "Si 'oui', ce responsable n'aura qu'un accès restreint à certains contenus en "
 "fonction de paramètres spécifiques"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:210
+#: src/pyams_content/shared/common/interfaces/__init__.py:218
 msgid "Selected owners"
 msgstr "Propriétaires"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:211
+#: src/pyams_content/shared/common/interfaces/__init__.py:219
 msgid "Manager will have access to contents owned by these principals"
 msgstr ""
 "Le responsable n'aura accès qu'aux contenus dont ces utilisateurs sont "
 "propriétaires"
 
-#: src/pyams_content/shared/form/__init__.py:94
+#: src/pyams_content/shared/form/__init__.py:99
 msgid "Form fields"
 msgstr "Champs de saisie"
 
-#: src/pyams_content/shared/form/__init__.py:95
+#: src/pyams_content/shared/form/__init__.py:100
 msgid "no field defined"
 msgstr "aucun champ défini"
 
@@ -2988,7 +2994,7 @@
 msgstr "Cliquez pour rendre le champ visible ou non"
 
 #: src/pyams_content/shared/form/zmi/field.py:182
-#: src/pyams_content/shared/form/interfaces/__init__.py:52
+#: src/pyams_content/shared/form/interfaces/__init__.py:56
 msgid "Field type"
 msgstr "Type de champ"
 
@@ -3021,145 +3027,145 @@
 msgid "Form"
 msgstr "Formulaire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:48
+#: src/pyams_content/shared/form/interfaces/__init__.py:52
 msgid "Field name"
 msgstr "Nom du champ"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:49
+#: src/pyams_content/shared/form/interfaces/__init__.py:53
 msgid "Field internal name; must be unique for a given form"
 msgstr ""
 "Nom interne du champ ; ce nom doit être unique pour un formulaire donné"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:53
+#: src/pyams_content/shared/form/interfaces/__init__.py:57
 msgid "Selected field type"
 msgstr "Type de champ proposé à l'internaute"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:58
+#: src/pyams_content/shared/form/interfaces/__init__.py:62
 msgid "User field label"
 msgstr "Libellé affiché à l'internaute"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:62
+#: src/pyams_content/shared/form/interfaces/__init__.py:66
 msgid "Field description can be displayed as hint"
 msgstr ""
 "Description du champ, qui pourra être affichée sous la forme d'une info-bulle"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:65
+#: src/pyams_content/shared/form/interfaces/__init__.py:69
 msgid "Placeholder"
 msgstr "Espace réservé"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:66
+#: src/pyams_content/shared/form/interfaces/__init__.py:70
 msgid "Some field types like textline can display a placeholder"
 msgstr ""
 "Certains champs tels que les zones de texte peuvent afficher ce texte tant "
 "qu'aucune valeur n'y a été saisie"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:69
+#: src/pyams_content/shared/form/interfaces/__init__.py:73
 msgid "Optional values"
 msgstr "Liste de valeurs"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:70
+#: src/pyams_content/shared/form/interfaces/__init__.py:74
 msgid "List of available values (for 'choice' and 'list' field types)"
 msgstr ""
 "Liste des valeurs disponibles (pour les champs de types 'Sélection simple' "
 "ou 'Sélection multiple')"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:73
+#: src/pyams_content/shared/form/interfaces/__init__.py:77
 msgid "Default value"
 msgstr "Valeur par défaut"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:74
+#: src/pyams_content/shared/form/interfaces/__init__.py:78
 msgid "Give default value if field type can use it"
 msgstr ""
 "Donner la valeur par défaut du champ ; attention, tous les types de champs "
 "ne peuvent pas utiliser une valeur par défaut !"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:77
+#: src/pyams_content/shared/form/interfaces/__init__.py:81
 msgid "Required?"
 msgstr "Obligatoire ?"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:78
+#: src/pyams_content/shared/form/interfaces/__init__.py:82
 msgid "Select 'yes' to set field as mandatory"
 msgstr "Sélectionnez 'oui' pour que la saisie de ce champ soit obligatoire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:83
+#: src/pyams_content/shared/form/interfaces/__init__.py:87
 msgid "Select 'no' to hide given field..."
 msgstr "Sélectionnez 'non' pour masquer ce champ"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:117
+#: src/pyams_content/shared/form/interfaces/__init__.py:121
 msgid "Form title"
 msgstr "Titre du formulaire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:120
+#: src/pyams_content/shared/form/interfaces/__init__.py:124
 msgid "Form header"
 msgstr "En-tête du formulaire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:123
+#: src/pyams_content/shared/form/interfaces/__init__.py:127
 msgid "Form handler"
 msgstr "Gestionnaire du formulaire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:124
+#: src/pyams_content/shared/form/interfaces/__init__.py:128
 msgid "Select how form data is transmitted"
 msgstr ""
 "Le gestionnaire sélectionné détermine la façon dont les données saisies par "
 "les internautes seront stockées ou envoyées"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:127
+#: src/pyams_content/shared/form/interfaces/__init__.py:131
 msgid "Authenticated only?"
 msgstr "Authentification requise ?"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:128
+#: src/pyams_content/shared/form/interfaces/__init__.py:132
 msgid "If 'yes', only authenticated users will be able to see and submit form"
 msgstr ""
 "Si 'oui', seuls les utilisateurs authentifiés pourront saisir des données "
 "dans le formulaire et les soumettre"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:132
+#: src/pyams_content/shared/form/interfaces/__init__.py:136
 msgid "Use captcha?"
 msgstr "Ajouter un captcha ?"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:133
-msgid "If 'yes', a captcha will be added automatically to the form"
-msgstr "Si 'oui', un captcha sera ajouté automatiquement au formulaire"
-
 #: src/pyams_content/shared/form/interfaces/__init__.py:137
+msgid "If 'yes', a captcha will be added automatically to the form"
+msgstr "Si 'oui', un captcha sera ajouté automatiquement au formulaire"
+
+#: src/pyams_content/shared/form/interfaces/__init__.py:141
 msgid "Submit label"
 msgstr "Libellé de soumission"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:138
+#: src/pyams_content/shared/form/interfaces/__init__.py:142
 msgid "Label of form submit button"
 msgstr "Libellé du bouton de soumission du formulaire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:171
+#: src/pyams_content/shared/form/interfaces/__init__.py:179
 msgid "Source address"
 msgstr "Adresse source"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:172
+#: src/pyams_content/shared/form/interfaces/__init__.py:180
 msgid "Mail address from which form data is sent"
 msgstr "Adresse de messagerie émettrice des données"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:175
+#: src/pyams_content/shared/form/interfaces/__init__.py:183
 msgid "Source name"
 msgstr "Nom de la source"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:176
+#: src/pyams_content/shared/form/interfaces/__init__.py:184
 msgid "Name of mail data sender"
 msgstr "Nom de l'émetteur des données"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:179
+#: src/pyams_content/shared/form/interfaces/__init__.py:187
 msgid "Recipient address"
 msgstr "Adresse de destination"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:180
+#: src/pyams_content/shared/form/interfaces/__init__.py:188
 msgid "Mail address to which form data is sent"
 msgstr ""
 "Adresse d'envoi des données; vous pouvez indiquer plusieurs adresses en les "
 "séparant par des point-virgules"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:183
+#: src/pyams_content/shared/form/interfaces/__init__.py:191
 msgid "Recipient name"
 msgstr "Nom du destinataire"
 
-#: src/pyams_content/shared/form/interfaces/__init__.py:184
+#: src/pyams_content/shared/form/interfaces/__init__.py:192
 msgid "Name of data recipient"
 msgstr "Nom du destinataire des messages"
 
@@ -3177,7 +3183,7 @@
 msgid "News topic « {title} »"
 msgstr "Brève « {title} »"
 
-#: src/pyams_content/shared/news/interfaces/__init__.py:27
+#: src/pyams_content/shared/news/interfaces/__init__.py:28
 msgid "News topic"
 msgstr "Brève"
 
@@ -3211,11 +3217,11 @@
 msgid "View internal references settings"
 msgstr "Références internes de la vue"
 
-#: src/pyams_content/shared/view/zmi/templates/preview.pt:2
+#: src/pyams_content/shared/view/zmi/templates/render.pt:2
 msgid "View result items"
 msgstr "Contenus extraits par la vue"
 
-#: src/pyams_content/shared/view/zmi/templates/preview.pt:3
+#: src/pyams_content/shared/view/zmi/templates/render.pt:3
 msgid "WARNING: items displayed in this preview are out of context!!"
 msgstr ""
 "ATTENTION : les résultats affichés dans cet aperçu ne tiennent pas compte du "
@@ -3259,85 +3265,85 @@
 msgid "First publication date"
 msgstr "Date de première publication"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:140
+#: src/pyams_content/shared/view/interfaces/__init__.py:148
 msgid "Always include selected internal references"
 msgstr "Toujours inclure toutes les références internes"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:141
+#: src/pyams_content/shared/view/interfaces/__init__.py:149
 msgid "Include selected internal references only if empty"
 msgstr "Inclure les références internes seulement lorsque la vue est vide"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:56
+#: src/pyams_content/shared/view/interfaces/__init__.py:60
 msgid "Select context type?"
 msgstr "Type du contexte ?"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:57
+#: src/pyams_content/shared/view/interfaces/__init__.py:61
 msgid "If 'yes', content type will be extracted from context"
 msgstr ""
 "Si 'oui', seuls des contenus du même type que le contexte seront "
 "automatiquement sélectionnés"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:61
+#: src/pyams_content/shared/view/interfaces/__init__.py:65
 msgid "Other content types"
 msgstr "Autres types de contenus"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:62
+#: src/pyams_content/shared/view/interfaces/__init__.py:66
 msgid "Selected content types; leave empty for all"
 msgstr ""
 "Autres types de contenus sélectionnés ; si l'on n'extrait pas le type du "
 "contexte et si cette sélection est vide, tous les types seront pris en charge"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:69
+#: src/pyams_content/shared/view/interfaces/__init__.py:73
 msgid "Order by"
 msgstr "Ordre de tri"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:70
+#: src/pyams_content/shared/view/interfaces/__init__.py:74
 msgid "Property to use to sort results"
 msgstr "Propriété utilisée pour trier les résultats"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:75
+#: src/pyams_content/shared/view/interfaces/__init__.py:79
 msgid "Reversed order?"
 msgstr "Ordre inverse ?"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:76
+#: src/pyams_content/shared/view/interfaces/__init__.py:80
 msgid "If 'yes', items order will be reversed"
 msgstr "Si 'oui', le tri se fera en ordre descendant"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:80
+#: src/pyams_content/shared/view/interfaces/__init__.py:84
 msgid "Results count limit"
 msgstr "Limite de résultats"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:81
+#: src/pyams_content/shared/view/interfaces/__init__.py:85
 msgid "Maximum number of results that the view may retrieve"
 msgstr "Nombre maximal de résultats que la vue doit renvoyer"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:150
+#: src/pyams_content/shared/view/interfaces/__init__.py:158
 msgid "Internal references usage"
 msgstr "Utilisation des références internes"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:151
+#: src/pyams_content/shared/view/interfaces/__init__.py:159
 msgid "Specify how selected references are included into view results"
 msgstr ""
 "Indique comment les références internes indiquées seront intégrées à la "
 "liste des résultats"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:163
+#: src/pyams_content/shared/view/interfaces/__init__.py:171
 msgid "Select context themes?"
 msgstr "Thèmes du contexte ?"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:164
+#: src/pyams_content/shared/view/interfaces/__init__.py:172
 msgid "If 'yes', themes will be extracted from context"
 msgstr ""
 "Si 'oui', les thèmes associés au contexte d'application de la vue seront "
 "automatiquement sélectionnés"
 
-#: src/pyams_content/shared/view/interfaces/__init__.py:168
+#: src/pyams_content/shared/view/interfaces/__init__.py:176
 msgid "Other terms"
 msgstr "Autres thèmes"
 
 #: src/pyams_content/shared/imagemap/paragraph.py:42
 #: src/pyams_content/shared/imagemap/paragraph.py:54
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:34
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:35
 msgid "Image map"
 msgstr "Image cliquable"
 
@@ -3355,7 +3361,7 @@
 msgid "image map '{0}' is not published"
 msgstr "l'image cliquable '{0}' n'est pas publiée"
 
-#: src/pyams_content/shared/imagemap/__init__.py:149
+#: src/pyams_content/shared/imagemap/__init__.py:154
 msgid "no area defined"
 msgstr "aucune zone définie"
 
@@ -3398,12 +3404,12 @@
 msgstr "Zones de l'image"
 
 #: src/pyams_content/shared/imagemap/zmi/container.py:65
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:65
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:70
 msgid "Image map areas"
 msgstr "Zones cliquables de l'images"
 
 #: src/pyams_content/shared/imagemap/zmi/container.py:136
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:44
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:49
 msgid "Link target"
 msgstr "Cible du lien"
 
@@ -3435,79 +3441,79 @@
 msgid "Edit image map properties"
 msgstr "Propriétés de l'image"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:45
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:50
 msgid "Internal or external link associated with this map area"
 msgstr "Lien interne ou externe associé à cette zone"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:50
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:55
 msgid "Alternate label associated with this area"
 msgstr "Libellé de substitution associé à cette zone"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:53
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:58
 msgid "Map area coordinates"
 msgstr "Coordonnées"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:54
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:59
 msgid "List of coordinates of image area"
 msgstr "Positionnement de la zone cliquable sur l'image"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:62
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:67
 msgid "Image supporting map areas"
 msgstr "Sélection de l'image qui supportera les zones cliquables"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:66
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:71
 msgid "List of defined map areas"
 msgstr "Liste des zones cliquables définies sur l'image"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:84
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:93
 msgid "Internal reference"
 msgstr "Référence interne"
 
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:85
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:94
 msgid "Reference to image map object"
 msgstr ""
 "Référence interne de l'image cliquable. Vous pouvez la rechercher par des "
 "mots de son titre, ou par son numéro interne (précédé d'un '+')."
 
-#: src/pyams_content/shared/site/zmi/folder.py:54
+#: src/pyams_content/shared/site/zmi/folder.py:55
 msgid "Add site folder..."
 msgstr "Ajouter une rubrique"
 
-#: src/pyams_content/shared/site/zmi/folder.py:85
+#: src/pyams_content/shared/site/zmi/folder.py:86
 msgid "Add site folder"
 msgstr "Ajout d'une rubrique"
 
-#: src/pyams_content/shared/site/zmi/folder.py:64
+#: src/pyams_content/shared/site/zmi/folder.py:65
 #: src/pyams_content/interfaces/__init__.py:100
 msgid "Visible label used to display content"
 msgstr "Le titre présenté aux internautes"
 
-#: src/pyams_content/shared/site/zmi/folder.py:67
-#: src/pyams_content/shared/site/zmi/__init__.py:61
+#: src/pyams_content/shared/site/zmi/folder.py:68
+#: src/pyams_content/shared/site/zmi/__init__.py:63
 #: src/pyams_content/shared/site/zmi/link.py:68
 msgid "Parent"
 msgstr "Niveau parent"
 
-#: src/pyams_content/shared/site/zmi/folder.py:68
+#: src/pyams_content/shared/site/zmi/folder.py:69
 #: src/pyams_content/shared/site/zmi/link.py:69
 msgid "Folder's parent"
 msgstr "Niveau de rattachement de cette rubrique"
 
-#: src/pyams_content/shared/site/zmi/folder.py:137
+#: src/pyams_content/shared/site/zmi/folder.py:146
 msgid "You must provide a folder name for default server language!"
 msgstr ""
 "Vous devez fournir un nom pour ce dossier pour la langue par défaut du "
 "serveur !"
 
-#: src/pyams_content/shared/site/zmi/__init__.py:52
+#: src/pyams_content/shared/site/zmi/__init__.py:54
 msgid "Add topic..."
 msgstr "Ajouter un article"
 
-#: src/pyams_content/shared/site/zmi/__init__.py:73
+#: src/pyams_content/shared/site/zmi/__init__.py:75
 msgid "Add topic"
 msgstr "Ajout d'un article"
 
-#: src/pyams_content/shared/site/zmi/__init__.py:62
+#: src/pyams_content/shared/site/zmi/__init__.py:64
 msgid "Topic's parent"
 msgstr "Niveau parent"
 
@@ -3525,12 +3531,13 @@
 
 #: src/pyams_content/shared/site/zmi/container.py:101
 #: src/pyams_content/shared/site/zmi/container.py:113
-#: src/pyams_content/shared/blog/zmi/manager.py:149
+#: src/pyams_content/shared/blog/zmi/manager.py:151
+#: src/pyams_content/shared/blog/zmi/manager.py:163
 msgid "Publication dates..."
 msgstr "Dates de publication"
 
 #: src/pyams_content/shared/site/zmi/container.py:124
-#: src/pyams_content/shared/blog/zmi/manager.py:160
+#: src/pyams_content/shared/blog/zmi/manager.py:174
 msgid "Update publication dates"
 msgstr "Dates de publication"
 
@@ -3571,37 +3578,37 @@
 "Impossible de déplacer une rubrique dans l'une de ses sous-rubriques ou "
 "contenus ! Rechargement de la page..."
 
-#: src/pyams_content/shared/site/zmi/manager.py:79
-#: src/pyams_content/shared/site/zmi/manager.py:91
+#: src/pyams_content/shared/site/zmi/manager.py:80
+#: src/pyams_content/shared/site/zmi/manager.py:92
 msgid "Add site manager"
 msgstr "Ajouter un site"
 
-#: src/pyams_content/shared/site/zmi/manager.py:90
+#: src/pyams_content/shared/site/zmi/manager.py:91
 msgid "Site manager"
 msgstr "Site"
 
-#: src/pyams_content/shared/site/zmi/manager.py:121
-#: src/pyams_content/shared/blog/zmi/manager.py:115
+#: src/pyams_content/shared/site/zmi/manager.py:123
+#: src/pyams_content/shared/blog/zmi/manager.py:117
 msgid "You must provide a short name for default server language!"
 msgstr "Vous devez fournir un nom court pour la langue par défaut du serveur !"
 
-#: src/pyams_content/shared/site/zmi/manager.py:125
+#: src/pyams_content/shared/site/zmi/manager.py:127
 msgid "Specified site manager name is already used!"
 msgstr "Le nom indiqué pour ce site existe déjà !"
 
-#: src/pyams_content/shared/site/zmi/manager.py:129
+#: src/pyams_content/shared/site/zmi/manager.py:131
 msgid "A site manager is already registered with this name!!"
 msgstr "Un site est déjà inscrit dans le registre avec ce nom !"
 
-#: src/pyams_content/shared/site/interfaces/__init__.py:77
+#: src/pyams_content/shared/site/interfaces/__init__.py:85
 msgid "Topic"
 msgstr "Article"
 
-#: src/pyams_content/shared/site/interfaces/__init__.py:92
+#: src/pyams_content/shared/site/interfaces/__init__.py:104
 msgid "Content title, as shown in front-office"
 msgstr "Titre présenté aux internautes"
 
-#: src/pyams_content/shared/site/interfaces/__init__.py:96
+#: src/pyams_content/shared/site/interfaces/__init__.py:108
 msgid "If 'no', link is not visible"
 msgstr "Si 'non', le lien ne sera pas visible"
 
@@ -3624,11 +3631,11 @@
 msgid "logo '{0}' is not published"
 msgstr "le logo '{0}' n'est pas publié"
 
-#: src/pyams_content/shared/logo/__init__.py:63
+#: src/pyams_content/shared/logo/__init__.py:67
 msgid "no image defined"
 msgstr "aucune image définie"
 
-#: src/pyams_content/shared/logo/__init__.py:66
+#: src/pyams_content/shared/logo/__init__.py:70
 msgid "no URL defined"
 msgstr "aucune URL définie"
 
@@ -3658,19 +3665,19 @@
 msgid "Logo « {title} »"
 msgstr "Logo « {title} »"
 
-#: src/pyams_content/shared/logo/interfaces/__init__.py:32
+#: src/pyams_content/shared/logo/interfaces/__init__.py:33
 msgid "Logo"
 msgstr "Logo"
 
-#: src/pyams_content/shared/logo/interfaces/__init__.py:62
+#: src/pyams_content/shared/logo/interfaces/__init__.py:71
 msgid "Logos references"
 msgstr "Logos sélectionnés"
 
-#: src/pyams_content/shared/logo/interfaces/__init__.py:63
+#: src/pyams_content/shared/logo/interfaces/__init__.py:72
 msgid "List of internal logos references"
 msgstr "Liste de références internes vers les logos à afficher"
 
-#: src/pyams_content/shared/logo/interfaces/__init__.py:66
+#: src/pyams_content/shared/logo/interfaces/__init__.py:75
 msgid "Logos template"
 msgstr "Mode de rendu"
 
@@ -3688,20 +3695,20 @@
 msgid "Blog post « {title} »"
 msgstr "Article de blog « {title} »"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:73
-#: src/pyams_content/shared/blog/zmi/manager.py:85
+#: src/pyams_content/shared/blog/zmi/manager.py:74
+#: src/pyams_content/shared/blog/zmi/manager.py:86
 msgid "Add blog manager"
 msgstr "Ajouter un blog"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:84
+#: src/pyams_content/shared/blog/zmi/manager.py:85
 msgid "Blog manager"
 msgstr "Blog"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:119
+#: src/pyams_content/shared/blog/zmi/manager.py:121
 msgid "Specified blog manager name is already used!"
 msgstr "Le nom indiqué pour ce blog existe déjà !"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:123
+#: src/pyams_content/shared/blog/zmi/manager.py:125
 msgid "A blog manager is already registered with this name!!"
 msgstr "Un blog est déjà inscrit dans le registre avec ce nom !"
 
@@ -4249,6 +4256,15 @@
 msgid "Content preview"
 msgstr "Aperçu du contenu"
 
+#: src/pyams_content/features/preview/zmi/__init__.py:67
+#, python-format
+msgid "{title} ({preview})"
+msgstr "{title} ({preview})"
+
+#: src/pyams_content/features/preview/zmi/__init__.py:68
+msgid "preview"
+msgstr "aperçu"
+
 #: src/pyams_content/features/review/__init__.py:186
 #, python-format
 msgid "Request comment: {comment}"
@@ -4445,6 +4461,9 @@
 msgid "Thank you."
 msgstr "Merci."
 
+#~ msgid "Associated pictogram label"
+#~ msgstr "Libellé associé au pictogramme"
+
 #~ msgid "This content doesn't contain any paragraph."
 #~ msgstr "Aucun paragraphe n'est associé à ce contenu."
 
--- a/src/pyams_content/locales/pyams_content.pot	Thu Mar 22 19:12:33 2018 +0100
+++ b/src/pyams_content/locales/pyams_content.pot	Fri Mar 23 11:04:03 2018 +0100
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-03-15 12:04+0100\n"
+"POT-Creation-Date: 2018-03-23 11:00+0100\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"
@@ -109,8 +109,8 @@
 msgstr ""
 
 #: ./src/pyams_content/component/gallery/zmi/file.py:258
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:347
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:355
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:349
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:363
 #: ./src/pyams_content/component/association/zmi/__init__.py:288
 #: ./src/pyams_content/shared/common/zmi/types.py:208
 #: ./src/pyams_content/shared/common/zmi/types.py:457
@@ -227,7 +227,7 @@
 #: ./src/pyams_content/component/links/interfaces/__init__.py:37
 #: ./src/pyams_content/component/video/interfaces/__init__.py:44
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:136
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:61
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:65
 msgid "Description"
 msgstr ""
 
@@ -278,14 +278,14 @@
 
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:94
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:36
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:298
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:300
 #: ./src/pyams_content/component/paragraph/zmi/container.py:224
 #: ./src/pyams_content/component/paragraph/interfaces/milestone.py:46
 #: ./src/pyams_content/component/links/zmi/reverse.py:71
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:109
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
 #: ./src/pyams_content/shared/imagemap/zmi/container.py:119
-#: ./src/pyams_content/shared/site/zmi/folder.py:63
+#: ./src/pyams_content/shared/site/zmi/folder.py:64
 #: ./src/pyams_content/root/zmi/templates/advanced-search.pt:188
 #: ./src/pyams_content/interfaces/__init__.py:99
 #: ./src/pyams_content/reference/pictograms/zmi/__init__.py:171
@@ -315,8 +315,8 @@
 
 #: ./src/pyams_content/component/extfile/__init__.py:223
 #: ./src/pyams_content/component/extfile/__init__.py:240
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:61
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:42
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:66
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:47
 #: ./src/pyams_content/reference/pictograms/interfaces/__init__.py:44
 msgid "Image"
 msgstr ""
@@ -454,7 +454,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:81
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:43
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:48
 msgid "Image data"
 msgstr ""
 
@@ -495,7 +495,7 @@
 msgid "Edit illustration properties"
 msgstr ""
 
-#: ./src/pyams_content/component/illustration/zmi/__init__.py:142
+#: ./src/pyams_content/component/illustration/zmi/__init__.py:143
 msgid "Add illustration"
 msgstr ""
 
@@ -596,7 +596,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/contact.py:47
-#: ./src/pyams_content/component/paragraph/contact.py:71
+#: ./src/pyams_content/component/paragraph/contact.py:74
 msgid "Contact card"
 msgstr ""
 
@@ -621,38 +621,38 @@
 msgid "Edit milestone paragraph properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:262
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:264
 msgid "Switch milestone visibility"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:307
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:309
 #: ./src/pyams_content/component/paragraph/interfaces/milestone.py:50
 msgid "Associated label"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:316
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:318
 #: ./src/pyams_content/component/paragraph/interfaces/milestone.py:54
 msgid "Anchor"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:391
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:393
 msgid "Add milestone"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:402
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:404
 msgid "Add new milestone"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:442
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:444
 msgid "Edit milestone properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:426
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:428
 msgid "Milestone was correctly added"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:355
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:363
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:357
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:371
 #: ./src/pyams_content/component/association/zmi/__init__.py:292
 msgid "Given association name doesn't exist!"
 msgstr ""
@@ -765,41 +765,40 @@
 msgid "Edit pictogram paragraph properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:283
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:285
 msgid "Switch pictogram visibility"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:319
-#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:54
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:321
 #: ./src/pyams_content/shared/common/interfaces/types.py:39
 #: ./src/pyams_content/shared/form/zmi/field.py:171
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:57
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:61
 msgid "Label"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:328
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:336
 #: ./src/pyams_content/component/paragraph/interfaces/video.py:41
 #: ./src/pyams_content/component/paragraph/interfaces/html.py:53
 #: ./src/pyams_content/component/video/interfaces/__init__.py:69
 msgid "Body"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:399
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:407
 #: ./src/pyams_content/reference/pictograms/zmi/__init__.py:56
 msgid "Add pictogram"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:410
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:418
 #: ./src/pyams_content/reference/pictograms/zmi/__init__.py:67
 msgid "Add new pictogram"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:455
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:463
 #: ./src/pyams_content/reference/pictograms/zmi/__init__.py:94
 msgid "Edit pictogram properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:439
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:447
 msgid "Pictogram was correctly added"
 msgstr ""
 
@@ -879,8 +878,8 @@
 #: ./src/pyams_content/component/paragraph/interfaces/__init__.py:43
 #: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:42
 #: ./src/pyams_content/component/association/interfaces/__init__.py:43
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:82
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:95
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:86
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:107
 msgid "Visible?"
 msgstr ""
 
@@ -919,7 +918,7 @@
 #: ./src/pyams_content/component/paragraph/interfaces/keypoint.py:45
 #: ./src/pyams_content/component/paragraph/interfaces/frame.py:44
 #: ./src/pyams_content/component/paragraph/interfaces/verbatim.py:53
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:67
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:76
 msgid "Presentation template used for this paragraph"
 msgstr ""
 
@@ -974,23 +973,28 @@
 msgid "Name of the pictogram to select"
 msgstr ""
 
+#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:54
+msgid "Alternate label"
+msgstr ""
+
 #: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:55
-msgid "Associated pictogram label"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:58
-msgid "Associated text"
+msgid ""
+"Alternate pictogram label; if not specified, the pictogram title will be used"
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:59
+msgid "Associated text"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:60
 msgid "Additional text associated to this pictogram"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:86
-msgid "Pictograms template"
-msgstr ""
-
 #: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:87
+msgid "Pictograms template"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:88
 msgid "Presentation template used for pictograms"
 msgstr ""
 
@@ -1015,7 +1019,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/interfaces/verbatim.py:48
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:45
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:50
 msgid "In charge of"
 msgstr ""
 
@@ -1037,44 +1041,44 @@
 "care!!"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:41
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:46
 msgid "Contact identity"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:42
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:47
 msgid "Name of the contact"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:46
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:51
 msgid "Label of contact function"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:49
-msgid "Photo"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:50
-msgid "Use 'browse' button to select contact picture"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:53
-msgid "GPS location"
-msgstr ""
-
 #: ./src/pyams_content/component/paragraph/interfaces/contact.py:54
-msgid "GPS coordinates used to locate contact"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:57
+msgid "Photo"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:55
+msgid "Use 'browse' button to select contact picture"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:63
 msgid "Address"
 msgstr ""
 
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:66
+msgid "Contact template"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:67
+msgid "Presentation template used for this contact"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:59
+msgid "GPS location"
+msgstr ""
+
 #: ./src/pyams_content/component/paragraph/interfaces/contact.py:60
-msgid "Contact template"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:61
-msgid "Presentation template used for this contact"
+msgid "GPS coordinates used to locate contact"
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/interfaces/header.py:43
@@ -1240,8 +1244,8 @@
 msgstr ""
 
 #: ./src/pyams_content/component/links/interfaces/__init__.py:33
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:49
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:91
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:54
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:103
 msgid "Alternate title"
 msgstr ""
 
@@ -1254,12 +1258,12 @@
 msgstr ""
 
 #: ./src/pyams_content/component/links/interfaces/__init__.py:55
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:46
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:51
 msgid "Target URL"
 msgstr ""
 
 #: ./src/pyams_content/component/links/interfaces/__init__.py:56
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:47
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:52
 msgid "URL used to access external resource"
 msgstr ""
 
@@ -1532,19 +1536,19 @@
 msgid "Name of external platform providing selected video"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/__init__.py:234
+#: ./src/pyams_content/shared/common/__init__.py:235
 #: ./src/pyams_content/shared/common/zmi/properties.py:67
 #: ./src/pyams_content/shared/common/zmi/manager.py:90
 msgid "Properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/__init__.py:144
-#: ./src/pyams_content/shared/common/__init__.py:152
+#: ./src/pyams_content/shared/common/__init__.py:145
+#: ./src/pyams_content/shared/common/__init__.py:153
 #, python-format
 msgid "{date} by {principal}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/__init__.py:257
+#: ./src/pyams_content/shared/common/__init__.py:258
 #, python-format
 msgid "title length should be between 40 and 66 characters ({length} actually)"
 msgstr ""
@@ -2579,19 +2583,19 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:57
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:161
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:165
 msgid "Managers"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:58
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:162
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:166
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:63
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:167
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:171
 msgid "Contributors"
 msgstr ""
 
@@ -2664,79 +2668,79 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:146
-#: ./src/pyams_content/shared/site/zmi/folder.py:71
+#: ./src/pyams_content/shared/site/zmi/folder.py:72
 #: ./src/pyams_content/shared/site/interfaces/__init__.py:56
 msgid "Notepad"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:147
-#: ./src/pyams_content/shared/site/zmi/folder.py:72
+#: ./src/pyams_content/shared/site/zmi/folder.py:73
 #: ./src/pyams_content/shared/site/interfaces/__init__.py:57
 msgid "Internal information to be known about this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:154
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:158
 msgid "Content owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:155
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:159
 msgid ""
 "The owner is the creator of content's first version, except if it was "
 "transferred afterwards to another owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:168
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:172
 msgid ""
 "Contributors are users which are allowed to update this content in addition "
 "to it's owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:173
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:177
 msgid "Readers"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:174
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:178
 msgid ""
 "Readers are users which are asked to verify and comment contents before they "
 "are published"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:179
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:183
 msgid "Guests"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:180
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:184
 msgid ""
 "Guests are users which are allowed to view contents with restricted access"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:199
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:207
 msgid "Principal ID"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:204
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:212
 msgid "Restricted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:205
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:213
 msgid ""
 "If 'yes', this manager will get restricted access to manage contents based on"
 " selected settings"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:210
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:218
 msgid "Selected owners"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:211
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:219
 msgid "Manager will have access to contents owned by these principals"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/__init__.py:94
+#: ./src/pyams_content/shared/form/__init__.py:99
 msgid "Form fields"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/__init__.py:95
+#: ./src/pyams_content/shared/form/__init__.py:100
 msgid "no field defined"
 msgstr ""
 
@@ -2819,7 +2823,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/form/zmi/field.py:182
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:52
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:56
 msgid "Field type"
 msgstr ""
 
@@ -2852,131 +2856,131 @@
 msgid "Form"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:48
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:52
 msgid "Field name"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:49
-msgid "Field internal name; must be unique for a given form"
-msgstr ""
-
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:53
+msgid "Field internal name; must be unique for a given form"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:57
 msgid "Selected field type"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:58
-msgid "User field label"
-msgstr ""
-
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:62
-msgid "Field description can be displayed as hint"
-msgstr ""
-
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:65
-msgid "Placeholder"
+msgid "User field label"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:66
-msgid "Some field types like textline can display a placeholder"
+msgid "Field description can be displayed as hint"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:69
-msgid "Optional values"
+msgid "Placeholder"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:70
-msgid "List of available values (for 'choice' and 'list' field types)"
+msgid "Some field types like textline can display a placeholder"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:73
-msgid "Default value"
+msgid "Optional values"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:74
-msgid "Give default value if field type can use it"
+msgid "List of available values (for 'choice' and 'list' field types)"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:77
-msgid "Required?"
+msgid "Default value"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:78
+msgid "Give default value if field type can use it"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:81
+msgid "Required?"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:82
 msgid "Select 'yes' to set field as mandatory"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:83
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:87
 msgid "Select 'no' to hide given field..."
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:117
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:121
 msgid "Form title"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:120
-msgid "Form header"
-msgstr ""
-
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:123
-msgid "Form handler"
-msgstr ""
-
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:124
-msgid "Select how form data is transmitted"
+msgid "Form header"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:127
-msgid "Authenticated only?"
+msgid "Form handler"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:128
-msgid "If 'yes', only authenticated users will be able to see and submit form"
+msgid "Select how form data is transmitted"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:131
+msgid "Authenticated only?"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:132
+msgid "If 'yes', only authenticated users will be able to see and submit form"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:136
 msgid "Use captcha?"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:133
-msgid "If 'yes', a captcha will be added automatically to the form"
-msgstr ""
-
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:137
+msgid "If 'yes', a captcha will be added automatically to the form"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:141
 msgid "Submit label"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:138
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:142
 msgid "Label of form submit button"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:171
-msgid "Source address"
-msgstr ""
-
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:172
-msgid "Mail address from which form data is sent"
-msgstr ""
-
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:175
-msgid "Source name"
-msgstr ""
-
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:176
-msgid "Name of mail data sender"
-msgstr ""
-
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:179
-msgid "Recipient address"
+msgid "Source address"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:180
-msgid "Mail address to which form data is sent"
+msgid "Mail address from which form data is sent"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:183
-msgid "Recipient name"
+msgid "Source name"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:184
+msgid "Name of mail data sender"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:187
+msgid "Recipient address"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:188
+msgid "Mail address to which form data is sent"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:191
+msgid "Recipient name"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:192
 msgid "Name of data recipient"
 msgstr ""
 
@@ -2994,7 +2998,7 @@
 msgid "News topic « {title} »"
 msgstr ""
 
-#: ./src/pyams_content/shared/news/interfaces/__init__.py:27
+#: ./src/pyams_content/shared/news/interfaces/__init__.py:28
 msgid "News topic"
 msgstr ""
 
@@ -3028,11 +3032,11 @@
 msgid "View internal references settings"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/zmi/templates/preview.pt:2
+#: ./src/pyams_content/shared/view/zmi/templates/render.pt:2
 msgid "View result items"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/zmi/templates/preview.pt:3
+#: ./src/pyams_content/shared/view/zmi/templates/render.pt:3
 msgid "WARNING: items displayed in this preview are out of context!!"
 msgstr ""
 
@@ -3074,77 +3078,77 @@
 msgid "First publication date"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:140
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:148
 msgid "Always include selected internal references"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:141
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:149
 msgid "Include selected internal references only if empty"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:56
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:60
 msgid "Select context type?"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:57
-msgid "If 'yes', content type will be extracted from context"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces/__init__.py:61
+msgid "If 'yes', content type will be extracted from context"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:65
 msgid "Other content types"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:62
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:66
 msgid "Selected content types; leave empty for all"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:69
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:73
 msgid "Order by"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:70
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:74
 msgid "Property to use to sort results"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:75
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:79
 msgid "Reversed order?"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:76
-msgid "If 'yes', items order will be reversed"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces/__init__.py:80
+msgid "If 'yes', items order will be reversed"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:84
 msgid "Results count limit"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:81
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:85
 msgid "Maximum number of results that the view may retrieve"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:150
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:158
 msgid "Internal references usage"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:151
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:159
 msgid "Specify how selected references are included into view results"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:163
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:171
 msgid "Select context themes?"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:164
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:172
 msgid "If 'yes', themes will be extracted from context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces/__init__.py:168
+#: ./src/pyams_content/shared/view/interfaces/__init__.py:176
 msgid "Other terms"
 msgstr ""
 
 #: ./src/pyams_content/shared/imagemap/paragraph.py:42
 #: ./src/pyams_content/shared/imagemap/paragraph.py:54
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:34
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:35
 msgid "Image map"
 msgstr ""
 
@@ -3162,7 +3166,7 @@
 msgid "image map '{0}' is not published"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/__init__.py:149
+#: ./src/pyams_content/shared/imagemap/__init__.py:154
 msgid "no area defined"
 msgstr ""
 
@@ -3205,12 +3209,12 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/imagemap/zmi/container.py:65
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:65
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:70
 msgid "Image map areas"
 msgstr ""
 
 #: ./src/pyams_content/shared/imagemap/zmi/container.py:136
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:44
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:49
 msgid "Link target"
 msgstr ""
 
@@ -3242,75 +3246,75 @@
 msgid "Edit image map properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:45
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:50
 msgid "Internal or external link associated with this map area"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:50
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:55
 msgid "Alternate label associated with this area"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:53
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:58
 msgid "Map area coordinates"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:54
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:59
 msgid "List of coordinates of image area"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:62
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:67
 msgid "Image supporting map areas"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:66
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:71
 msgid "List of defined map areas"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:84
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:93
 msgid "Internal reference"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:85
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:94
 msgid "Reference to image map object"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:54
+#: ./src/pyams_content/shared/site/zmi/folder.py:55
 msgid "Add site folder..."
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:85
+#: ./src/pyams_content/shared/site/zmi/folder.py:86
 msgid "Add site folder"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:64
+#: ./src/pyams_content/shared/site/zmi/folder.py:65
 #: ./src/pyams_content/interfaces/__init__.py:100
 msgid "Visible label used to display content"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:67
-#: ./src/pyams_content/shared/site/zmi/__init__.py:61
-#: ./src/pyams_content/shared/site/zmi/link.py:68
-msgid "Parent"
-msgstr ""
-
 #: ./src/pyams_content/shared/site/zmi/folder.py:68
+#: ./src/pyams_content/shared/site/zmi/__init__.py:63
+#: ./src/pyams_content/shared/site/zmi/link.py:68
+msgid "Parent"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:69
 #: ./src/pyams_content/shared/site/zmi/link.py:69
 msgid "Folder's parent"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:137
+#: ./src/pyams_content/shared/site/zmi/folder.py:146
 msgid "You must provide a folder name for default server language!"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/__init__.py:52
+#: ./src/pyams_content/shared/site/zmi/__init__.py:54
 msgid "Add topic..."
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/__init__.py:73
+#: ./src/pyams_content/shared/site/zmi/__init__.py:75
 msgid "Add topic"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/__init__.py:62
+#: ./src/pyams_content/shared/site/zmi/__init__.py:64
 msgid "Topic's parent"
 msgstr ""
 
@@ -3328,12 +3332,13 @@
 
 #: ./src/pyams_content/shared/site/zmi/container.py:101
 #: ./src/pyams_content/shared/site/zmi/container.py:113
-#: ./src/pyams_content/shared/blog/zmi/manager.py:149
+#: ./src/pyams_content/shared/blog/zmi/manager.py:151
+#: ./src/pyams_content/shared/blog/zmi/manager.py:163
 msgid "Publication dates..."
 msgstr ""
 
 #: ./src/pyams_content/shared/site/zmi/container.py:124
-#: ./src/pyams_content/shared/blog/zmi/manager.py:160
+#: ./src/pyams_content/shared/blog/zmi/manager.py:174
 msgid "Update publication dates"
 msgstr ""
 
@@ -3372,37 +3377,37 @@
 msgid "Can't reparent object to one of it's children. Reloading..."
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/manager.py:79
-#: ./src/pyams_content/shared/site/zmi/manager.py:91
+#: ./src/pyams_content/shared/site/zmi/manager.py:80
+#: ./src/pyams_content/shared/site/zmi/manager.py:92
 msgid "Add site manager"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/manager.py:90
+#: ./src/pyams_content/shared/site/zmi/manager.py:91
 msgid "Site manager"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/manager.py:121
-#: ./src/pyams_content/shared/blog/zmi/manager.py:115
+#: ./src/pyams_content/shared/site/zmi/manager.py:123
+#: ./src/pyams_content/shared/blog/zmi/manager.py:117
 msgid "You must provide a short name for default server language!"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/manager.py:125
+#: ./src/pyams_content/shared/site/zmi/manager.py:127
 msgid "Specified site manager name is already used!"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/manager.py:129
+#: ./src/pyams_content/shared/site/zmi/manager.py:131
 msgid "A site manager is already registered with this name!!"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:77
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:85
 msgid "Topic"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:92
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:104
 msgid "Content title, as shown in front-office"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:96
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:108
 msgid "If 'no', link is not visible"
 msgstr ""
 
@@ -3425,11 +3430,11 @@
 msgid "logo '{0}' is not published"
 msgstr ""
 
-#: ./src/pyams_content/shared/logo/__init__.py:63
+#: ./src/pyams_content/shared/logo/__init__.py:67
 msgid "no image defined"
 msgstr ""
 
-#: ./src/pyams_content/shared/logo/__init__.py:66
+#: ./src/pyams_content/shared/logo/__init__.py:70
 msgid "no URL defined"
 msgstr ""
 
@@ -3459,19 +3464,19 @@
 msgid "Logo « {title} »"
 msgstr ""
 
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:32
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:33
 msgid "Logo"
 msgstr ""
 
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:62
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:71
 msgid "Logos references"
 msgstr ""
 
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:63
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:72
 msgid "List of internal logos references"
 msgstr ""
 
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:66
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:75
 msgid "Logos template"
 msgstr ""
 
@@ -3489,20 +3494,20 @@
 msgid "Blog post « {title} »"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:73
-#: ./src/pyams_content/shared/blog/zmi/manager.py:85
+#: ./src/pyams_content/shared/blog/zmi/manager.py:74
+#: ./src/pyams_content/shared/blog/zmi/manager.py:86
 msgid "Add blog manager"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:84
+#: ./src/pyams_content/shared/blog/zmi/manager.py:85
 msgid "Blog manager"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:119
+#: ./src/pyams_content/shared/blog/zmi/manager.py:121
 msgid "Specified blog manager name is already used!"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:123
+#: ./src/pyams_content/shared/blog/zmi/manager.py:125
 msgid "A blog manager is already registered with this name!!"
 msgstr ""
 
@@ -4043,6 +4048,15 @@
 msgid "Content preview"
 msgstr ""
 
+#: ./src/pyams_content/features/preview/zmi/__init__.py:67
+#, python-format
+msgid "{title} ({preview})"
+msgstr ""
+
+#: ./src/pyams_content/features/preview/zmi/__init__.py:68
+msgid "preview"
+msgstr ""
+
 #: ./src/pyams_content/features/review/__init__.py:186
 #, python-format
 msgid "Request comment: {comment}"