Version 0.1.9 0.1.9
authorThierry Florac <thierry.florac@onf.fr>
Fri, 08 Dec 2017 11:57:42 +0100
changeset 317 578c0df290b5
parent 316 b50158f7050d
child 318 12aec424169f
Version 0.1.9
buildout.cfg
docs/HISTORY.txt
setup.py
src/__init__.py
src/pyams_content.egg-info/PKG-INFO
src/pyams_content.egg-info/SOURCES.txt
src/pyams_content.egg-info/requires.txt
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
src/pyams_content/shared/common/interfaces/zmi.py
--- a/buildout.cfg	Fri Dec 08 10:57:36 2017 +0100
+++ b/buildout.cfg	Fri Dec 08 11:57:42 2017 +0100
@@ -92,4 +92,4 @@
 eggs = pyams_content [test]
 
 [versions]
-pyams_content = 0.1.8
+pyams_content = 0.1.9
--- a/docs/HISTORY.txt	Fri Dec 08 10:57:36 2017 +0100
+++ b/docs/HISTORY.txt	Fri Dec 08 11:57:42 2017 +0100
@@ -1,6 +1,16 @@
 History
 =======
 
+0.1.9
+-----
+ - added site management features
+ - added "pyams_content.features" module to include extra-content features like content check,
+   content preview and content reviews
+ - added base classes and management interface to handle custom "typed" contents; these are shared contents
+   of a same content-type, but for which a given "datatype" attribute determines which attributes are available
+   within a given interface which defines all available attributes
+ - updated review interfaces
+
 0.1.8
 -----
  - switch from callbacks to events in several forms output
--- a/setup.py	Fri Dec 08 10:57:36 2017 +0100
+++ b/setup.py	Fri Dec 08 11:57:42 2017 +0100
@@ -22,7 +22,7 @@
 README = os.path.join(DOCS, 'README.txt')
 HISTORY = os.path.join(DOCS, 'HISTORY.txt')
 
-version = '0.1.8'
+version = '0.1.9'
 long_description = open(README).read() + '\n\n' + open(HISTORY).read()
 
 tests_require = []
--- a/src/pyams_content.egg-info/PKG-INFO	Fri Dec 08 10:57:36 2017 +0100
+++ b/src/pyams_content.egg-info/PKG-INFO	Fri Dec 08 11:57:42 2017 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pyams-content
-Version: 0.1.8
+Version: 0.1.9
 Summary: PyAMS base content interfaces and classes
 Home-page: http://hg.ztfy.org/pyams/pyams_content
 Author: Thierry Florac
@@ -11,6 +11,16 @@
         History
         =======
         
+        0.1.9
+        -----
+         - added site management features
+         - added "pyams_content.features" module to include extra-content features like content check,
+           content preview and content reviews
+         - added base classes and management interface to handle custom "typed" contents; these are shared contents
+           of a same content-type, but for which a given "datatype" attribute determines which attributes are available
+           within a given interface which defines all available attributes
+         - updated review interfaces
+        
         0.1.8
         -----
          - switch from callbacks to events in several forms output
--- a/src/pyams_content.egg-info/SOURCES.txt	Fri Dec 08 10:57:36 2017 +0100
+++ b/src/pyams_content.egg-info/SOURCES.txt	Fri Dec 08 11:57:42 2017 +0100
@@ -2,6 +2,7 @@
 setup.py
 docs/HISTORY.txt
 docs/README.txt
+src/__init__.py
 src/pyams_content/__init__.py
 src/pyams_content/configure.zcml
 src/pyams_content/include.py
@@ -75,6 +76,7 @@
 src/pyams_content/component/paragraph/zmi/templates/html-summary.pt
 src/pyams_content/component/paragraph/zmi/templates/paragraph-title-icon.pt
 src/pyams_content/component/paragraph/zmi/templates/paragraph-title-toolbar.pt
+src/pyams_content/component/paragraph/zmi/templates/paragraphs.pt
 src/pyams_content/component/paragraph/zmi/templates/preview.pt
 src/pyams_content/component/paragraph/zmi/templates/video-summary.pt
 src/pyams_content/component/theme/__init__.py
@@ -85,10 +87,24 @@
 src/pyams_content/component/theme/zmi/portlet.py
 src/pyams_content/component/theme/zmi/templates/themes-info.pt
 src/pyams_content/doctests/README.txt
+src/pyams_content/features/__init__.py
+src/pyams_content/features/checker/__init__.py
+src/pyams_content/features/checker/interfaces.py
+src/pyams_content/features/checker/zmi/__init__.py
+src/pyams_content/features/preview/__init__.py
+src/pyams_content/features/preview/interfaces.py
+src/pyams_content/features/preview/zmi/__init__.py
+src/pyams_content/features/preview/zmi/interfaces.py
+src/pyams_content/features/review/__init__.py
+src/pyams_content/features/review/interfaces.py
+src/pyams_content/features/review/zmi/__init__.py
+src/pyams_content/features/review/zmi/templates/review-add-comment.pt
+src/pyams_content/features/review/zmi/templates/review-comments-json.pt
+src/pyams_content/features/review/zmi/templates/review-comments.pt
+src/pyams_content/features/review/zmi/templates/review-notification.pt
 src/pyams_content/generations/__init__.py
 src/pyams_content/interfaces/__init__.py
 src/pyams_content/interfaces/container.py
-src/pyams_content/interfaces/review.py
 src/pyams_content/locales/pyams_content.pot
 src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo
 src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po
@@ -100,6 +116,8 @@
 src/pyams_content/root/interfaces/__init__.py
 src/pyams_content/root/zmi/__init__.py
 src/pyams_content/root/zmi/search.py
+src/pyams_content/root/zmi/sites.py
+src/pyams_content/root/zmi/templates/advanced-search.pt
 src/pyams_content/root/zmi/templates/dashboard.pt
 src/pyams_content/scripts/__init__.py
 src/pyams_content/scripts/index.py
@@ -113,7 +131,9 @@
 src/pyams_content/shared/common/manager.py
 src/pyams_content/shared/common/review.py
 src/pyams_content/shared/common/security.py
+src/pyams_content/shared/common/types.py
 src/pyams_content/shared/common/interfaces/__init__.py
+src/pyams_content/shared/common/interfaces/types.py
 src/pyams_content/shared/common/interfaces/zmi.py
 src/pyams_content/shared/common/zmi/__init__.py
 src/pyams_content/shared/common/zmi/dashboard.py
@@ -121,20 +141,16 @@
 src/pyams_content/shared/common/zmi/i18n.py
 src/pyams_content/shared/common/zmi/manager.py
 src/pyams_content/shared/common/zmi/owner.py
-src/pyams_content/shared/common/zmi/preview.py
 src/pyams_content/shared/common/zmi/properties.py
-src/pyams_content/shared/common/zmi/review.py
 src/pyams_content/shared/common/zmi/search.py
 src/pyams_content/shared/common/zmi/security.py
+src/pyams_content/shared/common/zmi/site.py
 src/pyams_content/shared/common/zmi/summary.py
+src/pyams_content/shared/common/zmi/types.py
 src/pyams_content/shared/common/zmi/workflow.py
 src/pyams_content/shared/common/zmi/templates/advanced-search.pt
 src/pyams_content/shared/common/zmi/templates/dashboard.pt
 src/pyams_content/shared/common/zmi/templates/header.pt
-src/pyams_content/shared/common/zmi/templates/review-add-comment.pt
-src/pyams_content/shared/common/zmi/templates/review-comments-json.pt
-src/pyams_content/shared/common/zmi/templates/review-comments.pt
-src/pyams_content/shared/common/zmi/templates/review-notification.pt
 src/pyams_content/shared/common/zmi/templates/wf-archive-message.pt
 src/pyams_content/shared/common/zmi/templates/wf-archiving-message.pt
 src/pyams_content/shared/common/zmi/templates/wf-cancel-archiving-message.pt
@@ -183,8 +199,19 @@
 src/pyams_content/shared/news/interfaces/__init__.py
 src/pyams_content/shared/news/zmi/__init__.py
 src/pyams_content/shared/site/__init__.py
+src/pyams_content/shared/site/container.py
+src/pyams_content/shared/site/folder.py
+src/pyams_content/shared/site/link.py
+src/pyams_content/shared/site/manager.py
 src/pyams_content/shared/site/interfaces/__init__.py
 src/pyams_content/shared/site/zmi/__init__.py
+src/pyams_content/shared/site/zmi/container.py
+src/pyams_content/shared/site/zmi/folder.py
+src/pyams_content/shared/site/zmi/link.py
+src/pyams_content/shared/site/zmi/manager.py
+src/pyams_content/shared/site/zmi/widget/__init__.py
+src/pyams_content/shared/site/zmi/widget/interfaces.py
+src/pyams_content/shared/site/zmi/widget/templates/folders-input.pt
 src/pyams_content/shared/view/__init__.py
 src/pyams_content/shared/view/manager.py
 src/pyams_content/shared/view/reference.py
@@ -202,9 +229,6 @@
 src/pyams_content/shared/view/zmi/reference.py
 src/pyams_content/shared/view/zmi/theme.py
 src/pyams_content/shared/view/zmi/templates/preview.pt
-src/pyams_content/shared/zmi/__init__.py
-src/pyams_content/shared/zmi/sites.py
-src/pyams_content/shared/zmi/interfaces/__init__.py
 src/pyams_content/skin/__init__.py
 src/pyams_content/skin/routes.py
 src/pyams_content/skin/resources/css/pyams_content.css
--- a/src/pyams_content.egg-info/requires.txt	Fri Dec 08 10:57:36 2017 +0100
+++ b/src/pyams_content.egg-info/requires.txt	Fri Dec 08 11:57:42 2017 +0100
@@ -1,3 +1,4 @@
+setuptools
 fanstatic
 hypatia
 persistent
@@ -21,7 +22,6 @@
 pyramid
 pyramid_chameleon
 pyramid_mailer
-setuptools
 transaction
 z3c.form
 z3c.table
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	Fri Dec 08 10:57:36 2017 +0100
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Fri Dec 08 11:57:42 2017 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2017-10-12 17:15+0200\n"
+"POT-Creation-Date: 2017-12-07 09:27+0100\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -76,71 +76,73 @@
 msgid "Guest user (role)"
 msgstr "Invité (rôle)"
 
-#: src/pyams_content/component/gallery/paragraph.py:36
-#: src/pyams_content/component/gallery/paragraph.py:43
+#: src/pyams_content/component/gallery/paragraph.py:40
+#: src/pyams_content/component/gallery/paragraph.py:47
 msgid "Images gallery"
 msgstr "Galeries d'images"
 
-#: src/pyams_content/component/gallery/zmi/file.py:55
-#: src/pyams_content/component/gallery/zmi/file.py:66
-#: src/pyams_content/component/gallery/zmi/paragraph.py:174
+#: src/pyams_content/component/gallery/__init__.py:144
+msgid "Gallery"
+msgstr "Galerie d'images"
+
+#: src/pyams_content/component/gallery/zmi/file.py:57
+#: src/pyams_content/component/gallery/zmi/file.py:68
+#: src/pyams_content/component/gallery/zmi/paragraph.py:168
 msgid "Add image(s)"
 msgstr "Ajouter des images"
 
-#: src/pyams_content/component/gallery/zmi/file.py:136
-msgid "Show/hide image"
-msgstr "Cliquez pour rendre l'image visible ou non"
-
-#: src/pyams_content/component/gallery/zmi/file.py:163
-#: src/pyams_content/component/extfile/zmi/__init__.py:245
+#: src/pyams_content/component/gallery/zmi/file.py:182
+#: src/pyams_content/component/extfile/zmi/__init__.py:256
 msgid "Update image properties"
 msgstr "Propriétés de l'image"
 
-#: src/pyams_content/component/gallery/zmi/file.py:220
-msgid "Download image..."
-msgstr "Télécharger l'image"
-
-#: src/pyams_content/component/gallery/zmi/file.py:234
+#: src/pyams_content/component/gallery/zmi/file.py:239
 msgid "Remove image..."
 msgstr "Supprimer l'image"
 
-#: src/pyams_content/component/gallery/zmi/file.py:188
+#: src/pyams_content/component/gallery/zmi/file.py:149
+msgid "Show/hide image"
+msgstr "Cliquez pour rendre l'image visible ou non"
+
+#: src/pyams_content/component/gallery/zmi/file.py:207
 msgid "Audio content"
-msgstr ""
-"Cliquez sur le bouton \"Parcouir...\" pour sélectionner un nouveau contenu..."
-
-#: src/pyams_content/component/gallery/zmi/file.py:250
-#: src/pyams_content/component/association/zmi/__init__.py:280
-#: src/pyams_content/shared/zmi/sites.py:124
+msgstr "Contenu audio associé"
+
+#: src/pyams_content/component/gallery/zmi/file.py:255
+#: src/pyams_content/component/association/zmi/__init__.py:284
+#: src/pyams_content/shared/common/zmi/types.py:205
+#: src/pyams_content/shared/common/zmi/types.py:454
 #: src/pyams_content/shared/imagemap/zmi/container.py:169
+#: src/pyams_content/shared/site/zmi/container.py:527
+#: src/pyams_content/root/zmi/sites.py:195
 msgid "No provided object_name argument!"
 msgstr "Argument 'object_name' non fourni !"
 
-#: src/pyams_content/component/gallery/zmi/file.py:254
+#: src/pyams_content/component/gallery/zmi/file.py:259
 msgid "Given image name doesn't exist!"
 msgstr "L'image spécifiée n'existe pas !"
 
-#: src/pyams_content/component/gallery/zmi/paragraph.py:57
+#: src/pyams_content/component/gallery/zmi/paragraph.py:54
 msgid "Add images gallery..."
 msgstr "Galerie d'images"
 
-#: src/pyams_content/component/gallery/zmi/paragraph.py:68
+#: src/pyams_content/component/gallery/zmi/paragraph.py:65
 msgid "Add new gallery"
 msgstr "Ajout d'une galerie d'images"
 
-#: src/pyams_content/component/gallery/zmi/paragraph.py:103
+#: src/pyams_content/component/gallery/zmi/paragraph.py:95
 msgid "Edit gallery properties"
 msgstr "Propriétés de la galerie d'images"
 
-#: src/pyams_content/component/gallery/zmi/__init__.py:53
+#: src/pyams_content/component/gallery/zmi/__init__.py:57
 msgid "Update gallery properties"
 msgstr "Propriétés de la galerie d'images"
 
-#: src/pyams_content/component/gallery/zmi/__init__.py:88
+#: src/pyams_content/component/gallery/zmi/__init__.py:92
 msgid "Update gallery contents"
 msgstr "Contenu de la galerie d'images"
 
-#: src/pyams_content/component/gallery/zmi/__init__.py:161
+#: src/pyams_content/component/gallery/zmi/__init__.py:165
 msgid "Default gallery renderer"
 msgstr "Galerie par défaut"
 
@@ -184,7 +186,11 @@
 msgid "Gallery images"
 msgstr "Contenu de la galerie"
 
-#: src/pyams_content/component/gallery/zmi/templates/gallery-images.pt:33
+#: src/pyams_content/component/gallery/zmi/templates/gallery-images.pt:15
+msgid "Download images"
+msgstr "Télécharger les images"
+
+#: src/pyams_content/component/gallery/zmi/templates/gallery-images.pt:38
 msgid "Zoom image"
 msgstr "Agrandir l'image"
 
@@ -231,7 +237,7 @@
 #: src/pyams_content/component/illustration/interfaces/__init__.py:48
 #: src/pyams_content/component/paragraph/interfaces/video.py:39
 #: src/pyams_content/component/links/interfaces/__init__.py:38
-#: src/pyams_content/shared/common/interfaces/__init__.py:120
+#: src/pyams_content/shared/common/interfaces/__init__.py:136
 #: src/pyams_content/shared/form/interfaces/__init__.py:61
 msgid "Description"
 msgstr "Description"
@@ -284,17 +290,20 @@
 
 #: src/pyams_content/component/gallery/interfaces/__init__.py:89
 #: src/pyams_content/component/extfile/interfaces/__init__.py:36
+#: src/pyams_content/component/paragraph/zmi/container.py:222
 #: src/pyams_content/component/links/zmi/reverse.py:71
-#: src/pyams_content/shared/common/zmi/dashboard.py:106
+#: 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/root/zmi/templates/advanced-search.pt:188
 #: src/pyams_content/interfaces/__init__.py:99
 msgid "Title"
 msgstr "Titre"
 
 #: src/pyams_content/component/gallery/interfaces/__init__.py:90
 msgid "Gallery title, as shown in front-office"
-msgstr "Titre de la galerie présentée aux internautes"
+msgstr "Titre de la galerie présenté aux internautes"
 
 #: src/pyams_content/component/gallery/interfaces/__init__.py:94
 msgid "Gallery description displayed by front-office template"
@@ -304,26 +313,26 @@
 msgid "Gallery style"
 msgstr "Style"
 
-#: src/pyams_content/component/extfile/__init__.py:173
-#: src/pyams_content/component/extfile/__init__.py:177
+#: src/pyams_content/component/extfile/__init__.py:168
+#: src/pyams_content/component/extfile/__init__.py:172
 msgid "Standard file"
 msgstr "Fichier standard"
 
-#: src/pyams_content/component/extfile/__init__.py:185
-#: src/pyams_content/component/extfile/__init__.py:202
+#: src/pyams_content/component/extfile/__init__.py:219
+#: src/pyams_content/component/extfile/__init__.py:236
 #: src/pyams_content/shared/imagemap/interfaces/__init__.py:61
 msgid "Image"
 msgstr "Image"
 
-#: src/pyams_content/component/extfile/__init__.py:210
-#: src/pyams_content/component/extfile/__init__.py:215
-#: src/pyams_content/component/paragraph/video.py:43
-#: src/pyams_content/component/paragraph/video.py:55
+#: src/pyams_content/component/extfile/__init__.py:251
+#: src/pyams_content/component/extfile/__init__.py:256
+#: src/pyams_content/component/paragraph/video.py:46
+#: src/pyams_content/component/paragraph/video.py:58
 msgid "Video"
 msgstr "Vidéo"
 
-#: src/pyams_content/component/extfile/__init__.py:223
-#: src/pyams_content/component/extfile/__init__.py:228
+#: src/pyams_content/component/extfile/__init__.py:271
+#: src/pyams_content/component/extfile/__init__.py:276
 msgid "Audio file"
 msgstr "Fichier audio"
 
@@ -339,51 +348,51 @@
 msgid "Add new external file"
 msgstr "Ajout d'un fichier standard"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:143
+#: src/pyams_content/component/extfile/zmi/__init__.py:145
 msgid "Update file properties"
 msgstr "Propriétés du fichier standard"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:183
+#: src/pyams_content/component/extfile/zmi/__init__.py:185
 msgid "Images"
 msgstr "Images"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:196
+#: src/pyams_content/component/extfile/zmi/__init__.py:198
 msgid "Add image"
 msgstr "Image"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:208
+#: src/pyams_content/component/extfile/zmi/__init__.py:210
 msgid "Add new image"
 msgstr "Ajout d'une image"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:278
+#: src/pyams_content/component/extfile/zmi/__init__.py:296
 msgid "Videos"
 msgstr "Vidéos"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:291
+#: src/pyams_content/component/extfile/zmi/__init__.py:309
 msgid "Add video"
 msgstr "Vidéo"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:303
+#: src/pyams_content/component/extfile/zmi/__init__.py:321
 msgid "Add new video"
 msgstr "Ajout d'une vidéo"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:339
+#: src/pyams_content/component/extfile/zmi/__init__.py:359
 msgid "Update video properties"
 msgstr "Propriétés de la vidéo"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:371
+#: src/pyams_content/component/extfile/zmi/__init__.py:391
 msgid "Audios files"
 msgstr "Fichiers audios"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:384
+#: src/pyams_content/component/extfile/zmi/__init__.py:404
 msgid "Add audio file"
 msgstr "Fichier audio"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:396
+#: src/pyams_content/component/extfile/zmi/__init__.py:416
 msgid "Add new audio file"
 msgstr "Ajout d'un fichier audio"
 
-#: src/pyams_content/component/extfile/zmi/__init__.py:432
+#: src/pyams_content/component/extfile/zmi/__init__.py:454
 msgid "Update audio file properties"
 msgstr "Propriétés du fichier audio"
 
@@ -398,7 +407,7 @@
 #: src/pyams_content/component/extfile/interfaces/__init__.py:41
 #: src/pyams_content/component/paragraph/interfaces/video.py:40
 msgid "File description displayed by front-office template"
-msgstr "Description du fichier présentée aux internautes"
+msgstr "Description du fichier, présentée aux internautes"
 
 #: src/pyams_content/component/extfile/interfaces/__init__.py:48
 #: src/pyams_content/component/illustration/interfaces/__init__.py:67
@@ -456,22 +465,23 @@
 msgstr ""
 "Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu"
 
-#: src/pyams_content/component/illustration/paragraph.py:36
-#: src/pyams_content/component/illustration/paragraph.py:43
+#: src/pyams_content/component/illustration/paragraph.py:40
+#: src/pyams_content/component/illustration/paragraph.py:47
+#: src/pyams_content/component/illustration/__init__.py:141
 #: src/pyams_content/component/illustration/zmi/__init__.py:99
 #: src/pyams_content/component/illustration/zmi/__init__.py:122
 msgid "Illustration"
 msgstr "Illustration"
 
-#: src/pyams_content/component/illustration/zmi/paragraph.py:58
+#: src/pyams_content/component/illustration/zmi/paragraph.py:55
 msgid "Add illustration..."
 msgstr "Illustration"
 
-#: src/pyams_content/component/illustration/zmi/paragraph.py:69
+#: src/pyams_content/component/illustration/zmi/paragraph.py:66
 msgid "Add new illustration"
 msgstr "Ajout d'une illustration"
 
-#: src/pyams_content/component/illustration/zmi/paragraph.py:105
+#: src/pyams_content/component/illustration/zmi/paragraph.py:97
 msgid "Edit illustration properties"
 msgstr "Propriétés de l'illustration"
 
@@ -487,7 +497,7 @@
 msgid "Small illustration on the right with zoom"
 msgstr "Petite illustration sur la droite avec zoom"
 
-#: src/pyams_content/component/illustration/zmi/__init__.py:177
+#: src/pyams_content/component/illustration/zmi/__init__.py:180
 msgid "Add illustration"
 msgstr "Ajouter une illustration"
 
@@ -500,29 +510,38 @@
 msgid "Image style"
 msgstr "Style de l'image"
 
-#: src/pyams_content/component/paragraph/html.py:54
-#: src/pyams_content/component/paragraph/html.py:63
+#: src/pyams_content/component/paragraph/container.py:82
+#: src/pyams_content/component/paragraph/zmi/templates/paragraphs.pt:6
+msgid "Paragraphs"
+msgstr "Paragraphes"
+
+#: src/pyams_content/component/paragraph/container.py:104
+msgid "no visible paragraph"
+msgstr "aucun paragraphe visible"
+
+#: src/pyams_content/component/paragraph/html.py:57
+#: src/pyams_content/component/paragraph/html.py:66
 msgid "HTML paragraph"
 msgstr "HTML"
 
-#: src/pyams_content/component/paragraph/header.py:38
+#: src/pyams_content/component/paragraph/header.py:41
 #: src/pyams_content/component/paragraph/interfaces/header.py:34
 msgid "Header"
 msgstr "Chapô"
 
-#: src/pyams_content/component/paragraph/header.py:52
+#: src/pyams_content/component/paragraph/header.py:55
 msgid "Header paragraph"
 msgstr "Chapô"
 
-#: src/pyams_content/component/paragraph/zmi/__init__.py:53
+#: src/pyams_content/component/paragraph/zmi/__init__.py:57
 msgid "Paragraphs types..."
 msgstr "Types de paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/__init__.py:64
+#: src/pyams_content/component/paragraph/zmi/__init__.py:68
 msgid "Paragraphs types"
 msgstr "Types de paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/__init__.py:81
+#: src/pyams_content/component/paragraph/zmi/__init__.py:85
 msgid ""
 "You can define which types of paragraphs are allowed in this container.\n"
 "\n"
@@ -541,60 +560,71 @@
 "REMARQUE : supprimer des types de la liste des types de paragraphes "
 "autorisés sera sans effet sur les contenus existants."
 
-#: src/pyams_content/component/paragraph/zmi/video.py:62
+#: src/pyams_content/component/paragraph/zmi/__init__.py:119
+msgid "Paragraph was correctly added."
+msgstr "Le paragraphe a été ajouté."
+
+#: src/pyams_content/component/paragraph/zmi/video.py:56
 msgid "Add video paragraph..."
 msgstr "Vidéo"
 
-#: src/pyams_content/component/paragraph/zmi/video.py:73
+#: src/pyams_content/component/paragraph/zmi/video.py:67
 msgid "Add new video paragraph"
 msgstr "Ajout d'une vidéo"
 
-#: src/pyams_content/component/paragraph/zmi/video.py:120
+#: src/pyams_content/component/paragraph/zmi/video.py:109
 msgid "Edit video properties"
 msgstr "Propriétés de la vidéo"
 
-#: src/pyams_content/component/paragraph/zmi/video.py:89
-#: src/pyams_content/component/paragraph/zmi/video.py:137
+#: src/pyams_content/component/paragraph/zmi/video.py:83
+#: src/pyams_content/component/paragraph/zmi/video.py:126
 msgid "HTML content"
 msgstr "Contenu HTML"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:64
+#: src/pyams_content/component/paragraph/zmi/container.py:68
 msgid "Paragraphs..."
 msgstr "Paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:137
+#: src/pyams_content/component/paragraph/zmi/container.py:159
 msgid "Switch paragraph visibility"
 msgstr "Cliquez pour rendre le paragraphe visible ou non"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:176
+#: src/pyams_content/component/paragraph/zmi/container.py:238
+msgid "Show/hide all paragraphs"
+msgstr "Afficher/masquer tous les paragraphes"
+
+#: src/pyams_content/component/paragraph/zmi/container.py:284
+#: src/pyams_content/component/paragraph/zmi/container.py:293
 msgid "Paragraphs list"
 msgstr "Liste des paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:209
-msgid "Show/hide all paragraphs"
-msgstr "Afficher/masquer tous les paragraphes"
-
-#: src/pyams_content/component/paragraph/zmi/container.py:336
-#: src/pyams_content/component/association/zmi/__init__.py:98
+#: src/pyams_content/component/paragraph/zmi/container.py:392
+#: src/pyams_content/component/association/zmi/__init__.py:102
 msgid "Associations..."
 msgstr "Associations"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:348
+#: src/pyams_content/component/paragraph/zmi/container.py:404
 msgid "Paragraphs associations"
 msgstr "Associations par paragraphe"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:110
+#: src/pyams_content/component/paragraph/zmi/container.py:118
 msgid "No currently defined paragraph."
 msgstr "Aucun paragraphe associé à ce contenu."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:220
+#: src/pyams_content/component/paragraph/zmi/container.py:247
 msgid "Click to open/close all paragraphs editors"
 msgstr "Afficher/masquer tous les paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:232
+#: src/pyams_content/component/paragraph/zmi/container.py:260
 msgid "Click to open/close paragraph editor"
 msgstr "Afficher/masquer ce paragraphe"
 
+#: src/pyams_content/component/paragraph/zmi/container.py:124
+msgid "Check allowed paragraph types to be able to create new paragraphs."
+msgstr ""
+"Vérifiez le paramétrage des types de paragraphes autorisés pour ajouter de "
+"nouveaux paragraphes."
+
 #: src/pyams_content/component/paragraph/zmi/html.py:66
 msgid "Add HTML paragraph..."
 msgstr "HTML"
@@ -603,30 +633,31 @@
 msgid "Add new HTML paragraph"
 msgstr "Ajout d'un paragraphe HTML"
 
-#: src/pyams_content/component/paragraph/zmi/html.py:115
+#: src/pyams_content/component/paragraph/zmi/html.py:110
 msgid "Edit HTML paragraph properties"
 msgstr "Propriétés du paragraphe HTML"
 
-#: src/pyams_content/component/paragraph/zmi/header.py:54
+#: src/pyams_content/component/paragraph/zmi/header.py:51
 msgid "Add header paragraph..."
 msgstr "Chapô"
 
-#: src/pyams_content/component/paragraph/zmi/header.py:65
+#: src/pyams_content/component/paragraph/zmi/header.py:62
 msgid "Add new header paragraph"
 msgstr "Ajout d'un chapô"
 
-#: src/pyams_content/component/paragraph/zmi/header.py:100
+#: src/pyams_content/component/paragraph/zmi/header.py:92
 msgid "Edit header paragraph properties"
 msgstr "Propriétés du chapô"
 
-#: src/pyams_content/component/paragraph/zmi/templates/summary.pt:7
-#: src/pyams_content/component/paragraph/zmi/templates/summary.pt:30
+#: src/pyams_content/component/paragraph/zmi/templates/preview.pt:7
+#: src/pyams_content/component/paragraph/zmi/templates/preview.pt:30
 msgid "This content doesn't contain any paragraph."
 msgstr "Aucun paragraphe n'est associé à ce contenu."
 
 #: src/pyams_content/component/paragraph/interfaces/__init__.py:43
 #: src/pyams_content/component/association/interfaces/__init__.py:42
 #: src/pyams_content/shared/form/interfaces/__init__.py:82
+#: src/pyams_content/shared/site/interfaces/__init__.py:102
 msgid "Visible?"
 msgstr "Visible ?"
 
@@ -647,6 +678,8 @@
 msgstr "Liste des types de paragraphes autorisés pour ce type de contenu."
 
 #: src/pyams_content/component/paragraph/interfaces/__init__.py:83
+#: src/pyams_content/shared/common/zmi/types.py:151
+#: src/pyams_content/shared/common/zmi/types.py:393
 msgid "Default paragraphs"
 msgstr "Paragraphes par défaut"
 
@@ -665,10 +698,16 @@
 msgstr ""
 "Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu"
 
+#: src/pyams_content/component/theme/__init__.py:81
 #: src/pyams_content/component/theme/zmi/portlet.py:39
+#: src/pyams_content/component/theme/interfaces/__init__.py:43
 msgid "Themes"
 msgstr "Thèmes"
 
+#: src/pyams_content/component/theme/__init__.py:90
+msgid "no defined theme"
+msgstr "aucun thème défini"
+
 #: src/pyams_content/component/theme/zmi/__init__.py:52
 #: src/pyams_content/component/theme/zmi/manager.py:45
 #: src/pyams_content/shared/view/zmi/theme.py:49
@@ -683,44 +722,46 @@
 msgid "Selected themes"
 msgstr "Thèmes sélectionnés"
 
-#: src/pyams_content/component/theme/interfaces/__init__.py:43
-msgid "Terms"
-msgstr "Termes"
-
-#: src/pyams_content/component/association/paragraph.py:37
-#: src/pyams_content/component/association/paragraph.py:44
+#: src/pyams_content/component/association/paragraph.py:42
+#: src/pyams_content/component/association/paragraph.py:49
 msgid "Associations paragraph"
 msgstr "Associations"
 
-#: src/pyams_content/component/association/zmi/paragraph.py:56
+#: src/pyams_content/component/association/container.py:92
+#: src/pyams_content/component/association/zmi/templates/associations.pt:6
+msgid "Associations"
+msgstr "Associations"
+
+#: src/pyams_content/component/association/zmi/paragraph.py:55
 msgid "Add associations paragraph..."
 msgstr "Associations"
 
-#: src/pyams_content/component/association/zmi/paragraph.py:67
+#: src/pyams_content/component/association/zmi/paragraph.py:66
 msgid "Add new association paragraph"
 msgstr "Ajout d'un paragraphe « associations »"
 
-#: src/pyams_content/component/association/zmi/paragraph.py:97
+#: src/pyams_content/component/association/zmi/paragraph.py:96
 msgid "Edit association paragraph properties"
 msgstr "Propriétés du paragraphe « liens utiles »"
 
-#: src/pyams_content/component/association/zmi/__init__.py:171
+#: src/pyams_content/component/association/zmi/__init__.py:175
 msgid "Switch association visibility"
 msgstr "Cliquez pour rendre le lien visible ou non en pied de paragraphe"
 
-#: src/pyams_content/component/association/zmi/__init__.py:222
+#: src/pyams_content/component/association/zmi/__init__.py:226
 msgid "Public title"
 msgstr "Libellé public"
 
-#: src/pyams_content/component/association/zmi/__init__.py:236
+#: src/pyams_content/component/association/zmi/__init__.py:240
 msgid "Inner title"
 msgstr "Contenu interne"
 
-#: src/pyams_content/component/association/zmi/__init__.py:251
+#: src/pyams_content/component/association/zmi/__init__.py:255
 msgid "Size"
 msgstr "Taille"
 
-#: src/pyams_content/component/association/zmi/__init__.py:306
+#: src/pyams_content/component/association/zmi/__init__.py:310
+#: src/pyams_content/component/association/zmi/__init__.py:320
 msgid "Associations list"
 msgstr "Liste des associations"
 
@@ -728,55 +769,56 @@
 msgid "Association was correctly added."
 msgstr "L'association a été ajoutée."
 
-#: src/pyams_content/component/association/zmi/__init__.py:284
+#: src/pyams_content/component/association/zmi/__init__.py:288
 msgid "Given association name doesn't exist!"
 msgstr "Le nom d'association indiqué n'existe pas !"
 
-#: src/pyams_content/component/association/zmi/templates/associations.pt:6
-msgid "Associations"
-msgstr "Associations"
-
 #: src/pyams_content/component/association/interfaces/__init__.py:43
 msgid "Is this item visible in front-office?"
 msgstr "Si 'non', ce lien ne sera pas présenté aux internautes"
 
-#: src/pyams_content/component/links/__init__.py:86
+#: src/pyams_content/component/links/__init__.py:101
 msgid "Internal link"
 msgstr "Lien interne"
 
-#: src/pyams_content/component/links/__init__.py:143
+#: src/pyams_content/component/links/__init__.py:176
 msgid "External link"
 msgstr "Lien externe"
 
-#: src/pyams_content/component/links/__init__.py:184
+#: src/pyams_content/component/links/__init__.py:222
 msgid "Mailto link"
 msgstr "Lien mailto"
 
-#: src/pyams_content/component/links/zmi/__init__.py:60
+#: src/pyams_content/component/links/__init__.py:163
+#: src/pyams_content/shared/imagemap/paragraph.py:85
+msgid "target is not published"
+msgstr "le contenu ciblé n'est pas publié"
+
+#: src/pyams_content/component/links/zmi/__init__.py:56
 msgid "Internal links"
 msgstr "Liens internes"
 
-#: src/pyams_content/component/links/zmi/__init__.py:73
+#: src/pyams_content/component/links/zmi/__init__.py:69
 msgid "Add internal link"
 msgstr "Lien interne"
 
-#: src/pyams_content/component/links/zmi/__init__.py:85
+#: src/pyams_content/component/links/zmi/__init__.py:81
 msgid "Add new internal link"
 msgstr "Ajout d'un lien interne"
 
-#: src/pyams_content/component/links/zmi/__init__.py:128
+#: src/pyams_content/component/links/zmi/__init__.py:126
 msgid "Edit internal link properties"
 msgstr "Propriétés du lien interne"
 
-#: src/pyams_content/component/links/zmi/__init__.py:166
+#: src/pyams_content/component/links/zmi/__init__.py:164
 msgid "External links"
 msgstr "Liens externes"
 
-#: src/pyams_content/component/links/zmi/__init__.py:179
+#: src/pyams_content/component/links/zmi/__init__.py:177
 msgid "Add external link"
 msgstr "Lien externe"
 
-#: src/pyams_content/component/links/zmi/__init__.py:191
+#: src/pyams_content/component/links/zmi/__init__.py:189
 msgid "Add new external link"
 msgstr "Ajout d'un lien externe"
 
@@ -796,7 +838,7 @@
 msgid "Add new mailto link"
 msgstr "Ajout d'un lien « mailto »"
 
-#: src/pyams_content/component/links/zmi/__init__.py:340
+#: src/pyams_content/component/links/zmi/__init__.py:342
 msgid "Edit mailto link properties"
 msgstr "Propriétés du lien « mailto »"
 
@@ -810,6 +852,7 @@
 
 #: src/pyams_content/component/links/interfaces/__init__.py:34
 #: src/pyams_content/shared/imagemap/interfaces/__init__.py:49
+#: src/pyams_content/shared/site/interfaces/__init__.py:98
 msgid "Alternate title"
 msgstr "Titre de substitution"
 
@@ -825,10 +868,12 @@
 
 #: src/pyams_content/component/links/interfaces/__init__.py:49
 #: src/pyams_content/shared/imagemap/interfaces/__init__.py:81
+#: src/pyams_content/shared/site/interfaces/__init__.py:92
 msgid "Internal reference"
 msgstr "Référence interne"
 
 #: src/pyams_content/component/links/interfaces/__init__.py:50
+#: src/pyams_content/shared/site/interfaces/__init__.py:93
 msgid ""
 "Internal link target reference. You can search a reference using '+' "
 "followed by internal number, of by entering text matching content title."
@@ -879,93 +924,168 @@
 msgid "List of internal references"
 msgstr "Liste de références internes imposées dans la vue"
 
-#: src/pyams_content/shared/common/__init__.py:127
-#: src/pyams_content/shared/common/__init__.py:135
+#: src/pyams_content/shared/common/__init__.py:230
+#: src/pyams_content/shared/common/zmi/properties.py:66
+#: src/pyams_content/shared/common/zmi/manager.py:89
+msgid "Properties"
+msgstr "Propriétés"
+
+#: src/pyams_content/shared/common/__init__.py:144
+#: src/pyams_content/shared/common/__init__.py:152
 #, python-format
 msgid "{date} by {principal}"
 msgstr "{date} par {principal}"
 
-#: src/pyams_content/shared/common/review.py:210
+#: src/pyams_content/shared/common/__init__.py:253
 #, python-format
-msgid "A new comment was added on content « {0} »"
-msgstr "Un nouveau commentaire a été ajouté pour le contenu « {0} »"
-
-#: src/pyams_content/shared/common/review.py:167
-#, python-format
-msgid "[{service_name}] A content review is requested"
-msgstr "[{service_name}] Demande de relecture"
-
-#: src/pyams_content/shared/common/zmi/search.py:83
+msgid "title length should be between 40 and 66 characters ({length} actually)"
+msgstr "Le titre devrait être composé de 40 à 66 caractères ({length} actuellement)"
+
+#: src/pyams_content/shared/common/zmi/search.py:87
+#: src/pyams_content/root/zmi/search.py:85
 msgid "Quick search results"
 msgstr "Résultats de la recherche rapide"
 
-#: src/pyams_content/shared/common/zmi/search.py:159
-#: src/pyams_content/shared/common/zmi/dashboard.py:964
+#: src/pyams_content/shared/common/zmi/search.py:142
+#: src/pyams_content/shared/common/zmi/search.py:175
+#: src/pyams_content/root/zmi/search.py:140
+#: src/pyams_content/root/zmi/search.py:173
 msgid "Advanced search"
 msgstr "Recherche avancée"
 
-#: src/pyams_content/shared/common/zmi/search.py:248
+#: src/pyams_content/shared/common/zmi/search.py:267
+#: src/pyams_content/root/zmi/search.py:253
 msgid "Advanced search results"
 msgstr "Résultats de la recherche avancée"
 
-#: src/pyams_content/shared/common/zmi/search.py:134
-#: src/pyams_content/shared/common/zmi/dashboard.py:207
+#: src/pyams_content/shared/common/zmi/search.py:150
+#: src/pyams_content/shared/common/zmi/dashboard.py:226
+#: src/pyams_content/root/zmi/search.py:152
 msgid "Owner"
 msgstr "Propriétaire"
 
-#: src/pyams_content/shared/common/zmi/search.py:137
-#: src/pyams_content/shared/common/zmi/dashboard.py:144
+#: src/pyams_content/shared/common/zmi/search.py:153
+#: src/pyams_content/shared/common/zmi/dashboard.py:150
+#: src/pyams_content/shared/site/zmi/container.py:345
 msgid "Status"
 msgstr "Statut"
 
-#: src/pyams_content/shared/common/zmi/search.py:141
+#: src/pyams_content/shared/common/zmi/search.py:157
+#: src/pyams_content/root/zmi/search.py:155
 msgid "Created after..."
 msgstr "Créé entre le"
 
-#: src/pyams_content/shared/common/zmi/search.py:144
+#: src/pyams_content/shared/common/zmi/search.py:160
+#: src/pyams_content/root/zmi/search.py:158
 msgid "Created before..."
 msgstr "et le"
 
-#: src/pyams_content/shared/common/zmi/search.py:147
+#: src/pyams_content/shared/common/zmi/search.py:163
+#: src/pyams_content/root/zmi/search.py:161
 msgid "Modified after..."
 msgstr "Modifié entre le"
 
-#: src/pyams_content/shared/common/zmi/search.py:150
+#: src/pyams_content/shared/common/zmi/search.py:166
+#: src/pyams_content/root/zmi/search.py:164
 msgid "Modified before..."
 msgstr "et le"
 
-#: src/pyams_content/shared/common/zmi/properties.py:55
+#: src/pyams_content/shared/common/zmi/properties.py:56
 msgid "Composition"
 msgstr "Composition"
 
-#: src/pyams_content/shared/common/zmi/properties.py:65
-#: src/pyams_content/shared/common/zmi/manager.py:90
-msgid "Properties"
-msgstr "Propriétés"
-
-#: src/pyams_content/shared/common/zmi/properties.py:76
+#: src/pyams_content/shared/common/zmi/properties.py:77
 msgid "Content properties"
 msgstr "Propriétés élémentaires"
 
-#: src/pyams_content/shared/common/zmi/properties.py:115
-msgid "Publication settings"
-msgstr "Dates de publication et de retrait"
+#: src/pyams_content/shared/common/zmi/types.py:62
+msgid "Data types"
+msgstr "Types de contenus"
+
+#: src/pyams_content/shared/common/zmi/types.py:129
+msgid "Data type label"
+msgstr "Libellé du type"
+
+#: src/pyams_content/shared/common/zmi/types.py:167
+#: src/pyams_content/shared/common/zmi/types.py:409
+msgid "Default associations"
+msgstr "Associations par défaut"
+
+#: src/pyams_content/shared/common/zmi/types.py:188
+msgid "Content data types"
+msgstr "Types de contenus"
+
+#: src/pyams_content/shared/common/zmi/types.py:242
+msgid "Add data type"
+msgstr "Ajouter un type"
+
+#: src/pyams_content/shared/common/zmi/types.py:253
+msgid "Add new data type"
+msgstr "Ajout d'un type de contenu"
+
+#: src/pyams_content/shared/common/zmi/types.py:297
+msgid "Data type properties"
+msgstr "Propriétés du type de contenu"
+
+#: src/pyams_content/shared/common/zmi/types.py:372
+msgid "Subtype label"
+msgstr "Libellé du sous-type"
+
+#: src/pyams_content/shared/common/zmi/types.py:474
+msgid "Add subtype"
+msgstr "Ajouter un sous-type"
+
+#: src/pyams_content/shared/common/zmi/types.py:485
+msgid "Add new subtype"
+msgstr "Ajout d'un sous-type de contenu"
+
+#: src/pyams_content/shared/common/zmi/types.py:542
+msgid "Data subtype properties"
+msgstr "Propriétés du fichier standard"
+
+#: src/pyams_content/shared/common/zmi/types.py:105
+msgid "No currently defined data type."
+msgstr "Aucun type de contenu n'est actuellement défini."
+
+#: src/pyams_content/shared/common/zmi/types.py:281
+msgid "Specified type name is already used!"
+msgstr "Le nom indiqué pour ce type de contenu est déjà utilisé !"
+
+#: src/pyams_content/shared/common/zmi/types.py:513
+msgid "Specified subtype name is already used!"
+msgstr "Le nom indiqué pour ce sous-type de contenu est déjà utilisé !"
+
+#: src/pyams_content/shared/common/zmi/types.py:526
+msgid "Subtype was correctly added."
+msgstr "Le sous-type a été ajouté."
+
+#: src/pyams_content/shared/common/zmi/types.py:139
+msgid "Click to see subtypes"
+msgstr "Montrer ou caher les sous-types"
+
+#: src/pyams_content/shared/common/zmi/types.py:209
+msgid "Given data type doesn't exist!"
+msgstr "Le type de contenu indiqué n'existe pas !"
+
+#: src/pyams_content/shared/common/zmi/types.py:458
+msgid "Given data subtype doesn't exist!"
+msgstr "Le sous-type de contenu indiqué n'existe pas !"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:115
-#: src/pyams_content/shared/common/zmi/workflow.py:200
-#: src/pyams_content/shared/common/zmi/workflow.py:245
-#: src/pyams_content/shared/common/zmi/workflow.py:303
-#: src/pyams_content/shared/common/zmi/workflow.py:383
-#: src/pyams_content/shared/common/zmi/workflow.py:443
-#: src/pyams_content/shared/common/zmi/workflow.py:488
-#: src/pyams_content/shared/common/zmi/workflow.py:534
-#: src/pyams_content/shared/common/zmi/workflow.py:582
-#: src/pyams_content/shared/common/zmi/workflow.py:627
-#: src/pyams_content/shared/common/zmi/workflow.py:673
-#: src/pyams_content/shared/common/zmi/workflow.py:726
-#: src/pyams_content/shared/common/zmi/__init__.py:250
+#: src/pyams_content/shared/common/zmi/workflow.py:202
+#: src/pyams_content/shared/common/zmi/workflow.py:247
+#: src/pyams_content/shared/common/zmi/workflow.py:306
+#: src/pyams_content/shared/common/zmi/workflow.py:395
+#: src/pyams_content/shared/common/zmi/workflow.py:456
+#: src/pyams_content/shared/common/zmi/workflow.py:501
+#: src/pyams_content/shared/common/zmi/workflow.py:547
+#: src/pyams_content/shared/common/zmi/workflow.py:595
+#: src/pyams_content/shared/common/zmi/workflow.py:640
+#: src/pyams_content/shared/common/zmi/workflow.py:686
+#: src/pyams_content/shared/common/zmi/workflow.py:739
+#: src/pyams_content/shared/common/zmi/__init__.py:272
 #: src/pyams_content/shared/common/zmi/owner.py:74
-#: src/pyams_content/shared/common/zmi/review.py:90
+#: src/pyams_content/features/review/zmi/__init__.py:90
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -973,52 +1093,45 @@
 msgid "Request publication"
 msgstr "Demander la publication"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:171
-#: src/pyams_content/shared/common/zmi/workflow.py:170
-#: src/pyams_content/shared/common/zmi/workflow.py:273
-#: src/pyams_content/shared/common/zmi/workflow.py:414
-msgid "A comment is required"
-msgstr "Le commentaire est obligatoire"
-
-#: src/pyams_content/shared/common/zmi/workflow.py:201
+#: src/pyams_content/shared/common/zmi/workflow.py:203
 #: src/pyams_content/workflow/__init__.py:310
 msgid "Cancel publication request"
 msgstr "Annuler la demande de publication"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:246
+#: src/pyams_content/shared/common/zmi/workflow.py:248
 msgid "Refuse publication request"
 msgstr "Refuser la demande de publication"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:304
+#: src/pyams_content/shared/common/zmi/workflow.py:307
 msgid "Publish"
 msgstr "Publier"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:384
+#: src/pyams_content/shared/common/zmi/workflow.py:396
 msgid "Request retire"
 msgstr "Demander le retrait"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:444
+#: src/pyams_content/shared/common/zmi/workflow.py:457
 msgid "Cancel retire request"
 msgstr "Annuler la demande de retrait"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:489
+#: src/pyams_content/shared/common/zmi/workflow.py:502
 msgid "Retire"
 msgstr "Retirer"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:535
+#: src/pyams_content/shared/common/zmi/workflow.py:548
 #: src/pyams_content/workflow/__init__.py:429
 msgid "Request archive"
 msgstr "Demander l'archivage"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:583
+#: src/pyams_content/shared/common/zmi/workflow.py:596
 msgid "Cancel archive request"
 msgstr "Annuler la demande d'archivage"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:628
+#: src/pyams_content/shared/common/zmi/workflow.py:641
 msgid "Archive"
 msgstr "Archiver"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:674
+#: src/pyams_content/shared/common/zmi/workflow.py:687
 #: src/pyams_content/workflow/__init__.py:494
 #: src/pyams_content/workflow/__init__.py:506
 #: src/pyams_content/workflow/__init__.py:518
@@ -1027,21 +1140,26 @@
 msgid "Create new version"
 msgstr "Créer une nouvelle version"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:727
+#: src/pyams_content/shared/common/zmi/workflow.py:740
 #: src/pyams_content/workflow/__init__.py:554
 msgid "Delete version"
 msgstr "Supprimer cette version"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:167
-#: src/pyams_content/shared/common/zmi/workflow.py:353
+#: src/pyams_content/shared/common/zmi/workflow.py:173
+#: src/pyams_content/shared/common/zmi/workflow.py:365
 msgid "Publication start date is required"
 msgstr "La date de début de publication est obligatoire"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:750
+#: src/pyams_content/shared/common/zmi/workflow.py:276
+#: src/pyams_content/shared/common/zmi/workflow.py:427
+msgid "A comment is required"
+msgstr "Le commentaire est obligatoire"
+
+#: src/pyams_content/shared/common/zmi/workflow.py:763
 msgid "Delete content"
 msgstr "Supprimer définitivement ce contenu"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:759
+#: src/pyams_content/shared/common/zmi/workflow.py:772
 msgid "Delete definitively"
 msgstr "Supprimer définitivement"
 
@@ -1057,41 +1175,33 @@
 msgid "{state} {date}"
 msgstr "{state} {date}"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:240
+#: src/pyams_content/shared/common/zmi/__init__.py:262
 msgid "Duplicate content..."
 msgstr "Dupliquer le contenu"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:259
+#: src/pyams_content/shared/common/zmi/__init__.py:281
 msgid "Duplicate content"
 msgstr "Dupliquer ce contenu"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:80
+#: src/pyams_content/shared/common/zmi/__init__.py:85
 msgid "This title can be modified afterwards"
 msgstr "Pourra être modifié ultérieurement"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:251
+#: src/pyams_content/shared/common/zmi/__init__.py:273
 msgid "Duplicate this content"
 msgstr "Dupliquer ce contenu"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:304
+#: src/pyams_content/shared/common/zmi/__init__.py:333
 #, python-format
 msgid "Clone created from version {source} of {oid} (in « {state} » state)"
 msgstr ""
 "Duplication de la version {source} du contenu {oid} (alors en statut "
 "« {state} »)"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:353
+#: src/pyams_content/shared/common/zmi/__init__.py:382
 msgid "Created or modified in this version"
 msgstr "Créé ou modifié dans cette version"
 
-#: src/pyams_content/shared/common/zmi/preview.py:42
-msgid "Preview"
-msgstr "Aperçu"
-
-#: src/pyams_content/shared/common/zmi/preview.py:57
-msgid "Content preview"
-msgstr "Aperçu du contenu"
-
 #: src/pyams_content/shared/common/zmi/summary.py:51
 msgid "Display content summary"
 msgstr "Récapitulatif pour ce contenu"
@@ -1108,11 +1218,11 @@
 msgid "Publication and retire dates"
 msgstr "Dates de publication et de retrait planifiées"
 
-#: src/pyams_content/shared/common/zmi/summary.py:141
+#: src/pyams_content/shared/common/zmi/summary.py:147
 msgid "Current version"
 msgstr "À propos de cette version"
 
-#: src/pyams_content/shared/common/zmi/summary.py:171
+#: src/pyams_content/shared/common/zmi/summary.py:177
 msgid "Content history"
 msgstr "Pour mémoire"
 
@@ -1120,8 +1230,9 @@
 msgid "Associated comment"
 msgstr "Commentaire associé"
 
-#: src/pyams_content/shared/common/zmi/summary.py:153
-#: src/pyams_content/shared/common/zmi/dashboard.py:181
+#: src/pyams_content/shared/common/zmi/summary.py:159
+#: src/pyams_content/shared/common/zmi/dashboard.py:193
+#: src/pyams_content/shared/site/zmi/container.py:365
 msgid "Version"
 msgstr "Version"
 
@@ -1130,24 +1241,24 @@
 msgid "{state} {date} by {principal}"
 msgstr "{state} {date} par {principal}"
 
-#: src/pyams_content/shared/common/zmi/summary.py:159
+#: src/pyams_content/shared/common/zmi/summary.py:165
 #, python-format
 msgid "{state} since {date}, by {principal}"
 msgstr "{state} depuis {date} par {principal}"
 
-#: src/pyams_content/shared/common/zmi/manager.py:76
+#: src/pyams_content/shared/common/zmi/manager.py:75
 msgid "Tool management"
 msgstr "Gérer l'outil partagé"
 
-#: src/pyams_content/shared/common/zmi/manager.py:100
+#: src/pyams_content/shared/common/zmi/manager.py:99
 msgid "Shared tool properties"
 msgstr "Propriétés de l'outil"
 
-#: src/pyams_content/shared/common/zmi/manager.py:120
+#: src/pyams_content/shared/common/zmi/manager.py:119
 msgid "WARNING"
 msgstr "ATTENTION"
 
-#: src/pyams_content/shared/common/zmi/manager.py:122
+#: src/pyams_content/shared/common/zmi/manager.py:121
 msgid ""
 "Workflow shouldn't be modified if this tool already contains any shared "
 "content!"
@@ -1155,15 +1266,15 @@
 "Le workflow ne doit pas être modifié si cet outil renferme déjà des contenus "
 "partagés !"
 
-#: src/pyams_content/shared/common/zmi/manager.py:145
+#: src/pyams_content/shared/common/zmi/manager.py:144
 msgid "Languages"
 msgstr "Langues"
 
-#: src/pyams_content/shared/common/zmi/manager.py:156
+#: src/pyams_content/shared/common/zmi/manager.py:155
 msgid "Content languages"
 msgstr "Langues pour la traduction de cet outil"
 
-#: src/pyams_content/shared/common/zmi/manager.py:173
+#: src/pyams_content/shared/common/zmi/manager.py:172
 msgid ""
 "Tool languages are used to translate own tool properties, and newly created "
 "contents will propose these languages by default"
@@ -1210,351 +1321,294 @@
 msgid "Change owner"
 msgstr "Changer le propriétaire"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:131
+#: src/pyams_content/shared/common/zmi/site.py:38
+#, python-format
+msgid ""
+"SEARCH - Between all contents published into &laquo;&nbsp;{site}&nbsp;&raquo;"
+msgstr ""
+"RECHERCHE - Tous contenus présents dans &laquo;&nbsp;{site}&nbsp;&raquo; "
+"confondus"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:134
 msgid "Unique ID"
 msgstr "N° IN"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:167
+#: src/pyams_content/shared/common/zmi/dashboard.py:176
 msgid "Status date"
 msgstr "En date du"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:192
+#: src/pyams_content/shared/common/zmi/dashboard.py:208
 msgid "Status principal"
 msgstr "Intervenant"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:221
+#: src/pyams_content/shared/common/zmi/dashboard.py:245
 msgid "Last modification"
 msgstr "Dernière modification"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:239
-#: src/pyams_content/root/zmi/__init__.py:89
+#: src/pyams_content/shared/common/zmi/dashboard.py:263
+#: src/pyams_content/root/zmi/__init__.py:91
 msgid "Dashboard"
 msgstr "Tableau de bord"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:249
+#: src/pyams_content/shared/common/zmi/dashboard.py:273
 msgid "Contents dashboard"
 msgstr "Mon tableau de bord"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:283
-#: src/pyams_content/root/zmi/__init__.py:138
+#: src/pyams_content/shared/common/zmi/dashboard.py:319
+#: src/pyams_content/root/zmi/__init__.py:140
 #, python-format
 msgid "MANAGER - {0} content waiting for your action"
 msgstr "RESPONSABLE - {0} contenu en attente de votre intervention"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:284
-#: src/pyams_content/root/zmi/__init__.py:139
+#: src/pyams_content/shared/common/zmi/dashboard.py:320
+#: src/pyams_content/root/zmi/__init__.py:141
 #, python-format
 msgid "MANAGER - {0} contents waiting for your action"
 msgstr "RESPONSABLE - {0} contenus en attente de votre intervention"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:323
-#: src/pyams_content/root/zmi/__init__.py:181
+#: src/pyams_content/shared/common/zmi/dashboard.py:360
+#: src/pyams_content/root/zmi/__init__.py:184
 #, python-format
 msgid "CONTRIBUTOR - {0} content waiting for action"
 msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:324
-#: src/pyams_content/root/zmi/__init__.py:182
+#: src/pyams_content/shared/common/zmi/dashboard.py:361
+#: src/pyams_content/root/zmi/__init__.py:185
 #, python-format
 msgid "CONTRIBUTOR - {0} contents waiting for action"
 msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:354
-#: src/pyams_content/root/zmi/__init__.py:215
+#: src/pyams_content/shared/common/zmi/dashboard.py:392
+#: src/pyams_content/root/zmi/__init__.py:219
 #, python-format
 msgid "CONTRIBUTOR - {0} modified content"
 msgstr "CONTRIBUTEUR - {0} contenu modifié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:393
-#: src/pyams_content/root/zmi/__init__.py:256
+#: src/pyams_content/shared/common/zmi/dashboard.py:433
+#: src/pyams_content/root/zmi/__init__.py:262
 msgid "My contents"
 msgstr "Mes contenus"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:408
+#: src/pyams_content/shared/common/zmi/dashboard.py:448
 #: src/pyams_content/shared/common/zmi/templates/dashboard.pt:8
-#: src/pyams_content/root/zmi/__init__.py:271
+#: src/pyams_content/root/zmi/__init__.py:277
 #: src/pyams_content/root/zmi/templates/dashboard.pt:8
 msgid "My favorites"
 msgstr "Mes favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:417
-#: src/pyams_content/root/zmi/__init__.py:280
+#: src/pyams_content/shared/common/zmi/dashboard.py:457
+#: src/pyams_content/root/zmi/__init__.py:286
 #, python-format
 msgid "CONTRIBUTOR - {0} favorite"
 msgstr "CONTRIBUTEUR - {0} contenu favori"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:418
-#: src/pyams_content/root/zmi/__init__.py:281
+#: src/pyams_content/shared/common/zmi/dashboard.py:458
+#: src/pyams_content/root/zmi/__init__.py:287
 #, python-format
 msgid "CONTRIBUTOR - {0} favorites"
 msgstr "CONTRIBUTEUR - {0} contenus favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:430
+#: src/pyams_content/shared/common/zmi/dashboard.py:470
 #: src/pyams_content/shared/common/zmi/templates/header.pt:23
 msgid "Add/remove from favorites"
 msgstr "Ajouter/enlever des favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:491
-#: src/pyams_content/root/zmi/__init__.py:317
+#: src/pyams_content/shared/common/zmi/dashboard.py:533
+#: src/pyams_content/root/zmi/__init__.py:325
 msgid "Your favorites"
 msgstr "Mes favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:504
-#: src/pyams_content/root/zmi/__init__.py:330
+#: src/pyams_content/shared/common/zmi/dashboard.py:546
+#: src/pyams_content/root/zmi/__init__.py:338
 msgid "My preparations"
 msgstr "Mes préparations"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:513
-#: src/pyams_content/root/zmi/__init__.py:339
+#: src/pyams_content/shared/common/zmi/dashboard.py:555
+#: src/pyams_content/root/zmi/__init__.py:347
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared content"
 msgstr "CONTRIBUTEUR - {0} contenu en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:514
-#: src/pyams_content/root/zmi/__init__.py:340
+#: src/pyams_content/shared/common/zmi/dashboard.py:556
+#: src/pyams_content/root/zmi/__init__.py:348
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared contents"
 msgstr "CONTRIBUTEUR - {0} contenus en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:552
-#: src/pyams_content/root/zmi/__init__.py:377
+#: src/pyams_content/shared/common/zmi/dashboard.py:595
+#: src/pyams_content/root/zmi/__init__.py:386
 msgid "Your prepared contents"
 msgstr "Mes contenus en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:565
-#: src/pyams_content/root/zmi/__init__.py:390
+#: src/pyams_content/shared/common/zmi/dashboard.py:608
+#: src/pyams_content/root/zmi/__init__.py:399
 msgid "My submissions"
 msgstr "Mes demandes"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:574
-#: src/pyams_content/root/zmi/__init__.py:399
+#: src/pyams_content/shared/common/zmi/dashboard.py:617
+#: src/pyams_content/root/zmi/__init__.py:408
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted content"
 msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:575
-#: src/pyams_content/root/zmi/__init__.py:400
+#: src/pyams_content/shared/common/zmi/dashboard.py:618
+#: src/pyams_content/root/zmi/__init__.py:409
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted contents"
 msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:613
-#: src/pyams_content/root/zmi/__init__.py:437
+#: src/pyams_content/shared/common/zmi/dashboard.py:657
+#: src/pyams_content/root/zmi/__init__.py:447
 msgid "Your submitted contents"
 msgstr "Mes contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:626
-#: src/pyams_content/root/zmi/__init__.py:450
+#: src/pyams_content/shared/common/zmi/dashboard.py:670
+#: src/pyams_content/root/zmi/__init__.py:460
 msgid "My publications"
 msgstr "Mes publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:635
-#: src/pyams_content/root/zmi/__init__.py:459
+#: src/pyams_content/shared/common/zmi/dashboard.py:679
+#: src/pyams_content/root/zmi/__init__.py:469
 #, python-format
 msgid "CONTRIBUTOR - {0} published content"
 msgstr "CONTRIBUTEUR - {0} contenu publié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:636
-#: src/pyams_content/root/zmi/__init__.py:460
+#: src/pyams_content/shared/common/zmi/dashboard.py:680
+#: src/pyams_content/root/zmi/__init__.py:470
 #, python-format
 msgid "CONTRIBUTOR - {0} published contents"
 msgstr "CONTRIBUTEUR - {0} contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:674
-#: src/pyams_content/root/zmi/__init__.py:497
+#: src/pyams_content/shared/common/zmi/dashboard.py:719
+#: src/pyams_content/root/zmi/__init__.py:508
 msgid "Your published contents"
 msgstr "Mes contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:687
-#: src/pyams_content/root/zmi/__init__.py:510
+#: src/pyams_content/shared/common/zmi/dashboard.py:732
+#: src/pyams_content/root/zmi/__init__.py:521
 msgid "My retired contents"
 msgstr "Mes contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:696
-#: src/pyams_content/root/zmi/__init__.py:519
+#: src/pyams_content/shared/common/zmi/dashboard.py:741
+#: src/pyams_content/root/zmi/__init__.py:530
 #, python-format
 msgid "CONTRIBUTOR - {0} retired content"
 msgstr "CONTRIBUTEUR - {0} contenu retiré"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:697
-#: src/pyams_content/root/zmi/__init__.py:520
+#: src/pyams_content/shared/common/zmi/dashboard.py:742
+#: src/pyams_content/root/zmi/__init__.py:531
 #, python-format
 msgid "CONTRIBUTOR - {0} retired contents"
 msgstr "CONTRIBUTEUR - {0} contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:736
-#: src/pyams_content/root/zmi/__init__.py:558
+#: src/pyams_content/shared/common/zmi/dashboard.py:782
+#: src/pyams_content/root/zmi/__init__.py:570
 msgid "Your retired contents"
 msgstr "Mes contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:749
-#: src/pyams_content/root/zmi/__init__.py:571
+#: src/pyams_content/shared/common/zmi/dashboard.py:795
+#: src/pyams_content/root/zmi/__init__.py:583
 msgid "My archived contents"
 msgstr "Mes contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:758
-#: src/pyams_content/root/zmi/__init__.py:580
+#: src/pyams_content/shared/common/zmi/dashboard.py:804
+#: src/pyams_content/root/zmi/__init__.py:592
 #, python-format
 msgid "CONTRIBUTOR - {0} archived content"
 msgstr "CONTRIBUTEUR - {0} contenu archivé"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:759
-#: src/pyams_content/root/zmi/__init__.py:581
+#: src/pyams_content/shared/common/zmi/dashboard.py:805
+#: src/pyams_content/root/zmi/__init__.py:593
 #, python-format
 msgid "CONTRIBUTOR - {0} archived contents"
 msgstr "CONTRIBUTEUR - {0} contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:804
-#: src/pyams_content/root/zmi/__init__.py:625
+#: src/pyams_content/shared/common/zmi/dashboard.py:851
+#: src/pyams_content/root/zmi/__init__.py:638
 msgid "Your archived contents"
 msgstr "Mes contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:818
-#: src/pyams_content/root/zmi/__init__.py:639
+#: src/pyams_content/shared/common/zmi/dashboard.py:865
+#: src/pyams_content/root/zmi/__init__.py:652
 msgid "Other interventions"
 msgstr "Toutes les interventions"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:833
-#: src/pyams_content/root/zmi/__init__.py:654
+#: src/pyams_content/shared/common/zmi/dashboard.py:880
+#: src/pyams_content/root/zmi/__init__.py:667
 msgid "Last publications"
 msgstr "Dernières publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:842
-#: src/pyams_content/root/zmi/__init__.py:663
+#: src/pyams_content/shared/common/zmi/dashboard.py:889
+#: src/pyams_content/root/zmi/__init__.py:676
 #, python-format
 msgid "CONTRIBUTORS - {0} published content"
 msgstr "TOUS CONTRIBUTEURS - {0} contenu publié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:887
-#: src/pyams_content/root/zmi/__init__.py:707
+#: src/pyams_content/shared/common/zmi/dashboard.py:935
+#: src/pyams_content/root/zmi/__init__.py:721
 msgid "Last published contents"
 msgstr "Derniers contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:900
-#: src/pyams_content/root/zmi/__init__.py:720
+#: src/pyams_content/shared/common/zmi/dashboard.py:948
+#: src/pyams_content/root/zmi/__init__.py:734
 msgid "Last updates"
 msgstr "Dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:909
-#: src/pyams_content/root/zmi/__init__.py:729
+#: src/pyams_content/shared/common/zmi/dashboard.py:957
+#: src/pyams_content/root/zmi/__init__.py:743
 #, python-format
 msgid "CONTRIBUTORS - {0} updated content"
 msgstr "TOUS CONTRIBUTEURS - {0} contenu modifié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:952
-#: src/pyams_content/root/zmi/__init__.py:771
+#: src/pyams_content/shared/common/zmi/dashboard.py:1002
+#: src/pyams_content/root/zmi/__init__.py:787
 msgid "Last updated contents"
 msgstr "Derniers contenus modifiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:359
-#: src/pyams_content/root/zmi/__init__.py:220
+#: src/pyams_content/shared/common/zmi/dashboard.py:397
+#: src/pyams_content/root/zmi/__init__.py:224
 #, python-format
 msgid "CONTRIBUTOR - {0} modified contents"
 msgstr "CONTRIBUTEUR - {0} contenus modifiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:361
-#: src/pyams_content/root/zmi/__init__.py:222
+#: src/pyams_content/shared/common/zmi/dashboard.py:399
+#: src/pyams_content/root/zmi/__init__.py:226
 #, python-format
 msgid "CONTRIBUTOR - Last {0} modified contents"
 msgstr "CONTRIBUTEUR - Les {0} dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:847
-#: src/pyams_content/root/zmi/__init__.py:668
+#: src/pyams_content/shared/common/zmi/dashboard.py:894
+#: src/pyams_content/root/zmi/__init__.py:681
 #, python-format
 msgid "CONTRIBUTORS - Last {0} published contents"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:849
-#: src/pyams_content/root/zmi/__init__.py:670
+#: src/pyams_content/shared/common/zmi/dashboard.py:896
+#: src/pyams_content/root/zmi/__init__.py:683
 msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:914
-#: src/pyams_content/root/zmi/__init__.py:734
+#: src/pyams_content/shared/common/zmi/dashboard.py:962
+#: src/pyams_content/root/zmi/__init__.py:748
 #, python-format
 msgid "CONTRIBUTORS - Last {0} updated contents"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:916
-#: src/pyams_content/root/zmi/__init__.py:736
+#: src/pyams_content/shared/common/zmi/dashboard.py:964
+#: src/pyams_content/root/zmi/__init__.py:750
 msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:159
+#: src/pyams_content/shared/common/zmi/dashboard.py:296
+#, python-format
+msgid "SEARCH - Between all contents of type &laquo;&nbsp;{type}&nbsp;&raquo;"
+msgstr "RECHERCHE - Tous contenus &laquo;&nbsp;{type}&nbsp;&raquo; confondus"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:166
 #: src/pyams_content/shared/common/zmi/header.py:96
 msgid "Content publication start date is not passed yet"
 msgstr "La date de début de publication n'est pas encore atteinte"
 
-#: src/pyams_content/shared/common/zmi/review.py:61
-msgid "Ask for review..."
-msgstr "Demander une relecture"
-
-#: src/pyams_content/shared/common/zmi/review.py:99
-msgid "Content review request"
-msgstr "Demande de relecture"
-
-#: src/pyams_content/shared/common/zmi/review.py:163
-msgid "Comments"
-msgstr "Commentaires"
-
-#: src/pyams_content/shared/common/zmi/review.py:183
-msgid "Review comments"
-msgstr "Commentaires associés à cette version"
-
-#: src/pyams_content/shared/common/zmi/review.py:212
-msgid "Add comment..."
-msgstr "Ajouter un commentaire"
-
-#: src/pyams_content/shared/common/zmi/review.py:71
-msgid "Sought principals"
-msgstr "Relecteurs sollicités"
-
-#: src/pyams_content/shared/common/zmi/review.py:72
-msgid "List of principals from which a review is requested"
-msgstr ""
-"Liste des utilisateurs que vous souhaitez solliciter pour relire ce contenu"
-
-#: src/pyams_content/shared/common/zmi/review.py:75
-msgid "Comment"
-msgstr "Commentaire"
-
-#: src/pyams_content/shared/common/zmi/review.py:76
-msgid "Comment associated with this request"
-msgstr ""
-"Ce commentaire associé à cette demande sera également transmis par mail"
-
-#: src/pyams_content/shared/common/zmi/review.py:79
-msgid "Notify all reviewers"
-msgstr "Notifier tous les relecteurs"
-
-#: src/pyams_content/shared/common/zmi/review.py:80
-msgid ""
-"If 'yes', selected reviewers will be notified by mail of your request, even "
-"if they were already members of the reviewers group. Otherwise, only new "
-"reviewers will be notified"
-msgstr ""
-"Si 'oui', tous les relecteurs sollicités seront notifiés par mail de votre "
-"demande, même s'ils avaient déjà été sollicités auparavent. Dans le cas "
-"contraire, seuls les nouveaux relecteurs seront notifiés."
-
-#: src/pyams_content/shared/common/zmi/review.py:91
-msgid "Ask for content review"
-msgstr "Demander la relecture"
-
-#: src/pyams_content/shared/common/zmi/review.py:147
-msgid "Request successful. No new notification have been sent"
-msgstr ""
-"Votre demande a été transmise. Aucune nouvelle notification n'a été envoyée."
-
-#: src/pyams_content/shared/common/zmi/review.py:266
-msgid "Message is mandatory!"
-msgstr "Un commentaire est obligatoire !"
-
-#: src/pyams_content/shared/common/zmi/review.py:139
-#, python-format
-msgid "Request successful. {count} new notification(s) have been sent"
-msgstr "Votre demande a été transmise. {count} notification(s) envoyée(s)."
-
 #: src/pyams_content/shared/common/zmi/security.py:61
 msgid "Managers restrictions"
 msgstr "Restrictions des responsables"
@@ -1569,7 +1623,7 @@
 
 #: src/pyams_content/shared/common/zmi/security.py:112
 msgid "Restricted"
-msgstr "restrictions"
+msgstr "Restrictions"
 
 #: src/pyams_content/shared/common/zmi/security.py:129
 msgid "Owners"
@@ -1604,23 +1658,23 @@
 msgid "since {date}"
 msgstr "depuis {date}"
 
-#: src/pyams_content/shared/common/zmi/header.py:129
-msgid "access new version"
-msgstr "accéder à la version en préparation"
-
-#: src/pyams_content/shared/common/zmi/header.py:141
+#: src/pyams_content/shared/common/zmi/header.py:128
 msgid "access published version"
 msgstr "accéder à la version en ligne"
 
 #: src/pyams_content/shared/common/zmi/header.py:135
+msgid "access new version"
+msgstr "accéder à la version en préparation"
+
+#: src/pyams_content/shared/common/zmi/header.py:145
 msgid "access waiting version"
 msgstr "accéder à la version en attente"
 
-#: src/pyams_content/shared/common/zmi/header.py:150
+#: src/pyams_content/shared/common/zmi/header.py:156
 msgid "access retired version"
 msgstr "accéder à la version retirée"
 
-#: src/pyams_content/shared/common/zmi/header.py:159
+#: src/pyams_content/shared/common/zmi/header.py:166
 msgid "access archived version"
 msgstr "accéder à la version archivée"
 
@@ -1640,26 +1694,6 @@
 "ATTENTION : ce contenu restera visible jusqu'à ce qu'un responsable prenne "
 "en charge votre demande."
 
-#: src/pyams_content/shared/common/zmi/templates/review-comments.pt:32
-#: src/pyams_content/shared/common/zmi/templates/review-comments-json.pt:15
-#: src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:14
-msgid "Review query from"
-msgstr "Demande de relecture de "
-
-#: src/pyams_content/shared/common/zmi/templates/review-comments.pt:38
-#: src/pyams_content/shared/common/zmi/templates/review-comments-json.pt:21
-#: src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:20
-msgid "(as reviewer)"
-msgstr "(relecteur)"
-
-#: src/pyams_content/shared/common/zmi/templates/review-comments.pt:57
-msgid "Add a comment..."
-msgstr "Nouveau commentaire..."
-
-#: src/pyams_content/shared/common/zmi/templates/review-comments.pt:63
-msgid "Add comment"
-msgstr "Ajouter ce commentaire"
-
 #: src/pyams_content/shared/common/zmi/templates/header.pt:6
 msgid "Back to previous page"
 msgstr "Revenir à la page précédente"
@@ -1683,20 +1717,18 @@
 "actuel ; il pourra ensuite à nouveau être publié, en créant une nouvelle "
 "version."
 
-#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:18
-msgid "SEARCH - Between all contents of type &laquo;&nbsp;${type}&nbsp;&raquo;"
-msgstr "RECHERCHE - Tous contenus &laquo;&nbsp;${type}&nbsp;&raquo; confondus"
-
-#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:29
+#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:28
+#: src/pyams_content/root/zmi/templates/dashboard.pt:28
 msgid "Quick search..."
 msgstr "Recherche rapide..."
 
-#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:34
+#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:33
+#: src/pyams_content/root/zmi/templates/dashboard.pt:33
 msgid "Advanced search..."
 msgstr "Recherche avancée..."
 
-#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:47
-#: src/pyams_content/root/zmi/templates/dashboard.pt:23
+#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:46
+#: src/pyams_content/root/zmi/templates/dashboard.pt:46
 msgid "You are not actually concerned by any content."
 msgstr "Vous n'êtes actuellement concerné par aucun contenu."
 
@@ -1789,19 +1821,24 @@
 "pendant toute la vie du contenu, quelle que soit la version."
 
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:128
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:128
 msgid "Created between"
 msgstr "Créé entre le"
 
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:140
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:166
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:140
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:166
 msgid "and"
 msgstr "et le"
 
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:154
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:154
 msgid "Modified between"
 msgstr "Modifié entre le"
 
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:202
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:202
 msgid "Tab label"
 msgstr "Libellé de l'onglet"
 
@@ -1850,10 +1887,6 @@
 "contre être publié à nouveau, archivé, ou modifié en créant une nouvelle "
 "version."
 
-#: src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:22
-msgid "just now"
-msgstr "À l'instant !"
-
 #: src/pyams_content/shared/common/zmi/templates/wf-cancel-propose-message.pt:1
 msgid ""
 "After canceling the request, you will be able to update the content again."
@@ -1875,51 +1908,6 @@
 "Cette version va être définitivement supprimée, pour revenir à la version "
 "précédente."
 
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:4
-msgid "[${service_name}] You are requested for a content review"
-msgstr "[${service_name}] Demande de relecture"
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:30
-msgid "Hello,"
-msgstr "Bonjour,"
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:31
-msgid ""
-"You have been requested by ${sender}, contributor of « ${service_name} » "
-"website, to make a review of a content."
-msgstr ""
-"Vous êtes sollicité par ${sender}, contributeur du site internet "
-"${service_name}, qui souhaite recueillir votre commentaire à propos d'un "
-"contenu."
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:36
-msgid "${sender} added the following message to his request:"
-msgstr "${sender} a accompagné sa demande de relecture du message suivant :"
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:41
-msgid ""
-"To review and comment this publication, please use the following link: "
-"${target}."
-msgstr "Pour accéder à cette contribution, cliquer ici : ${target}."
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:44
-msgid "After reading this content, please use the « Comments » menu entry."
-msgstr ""
-"Lorsque vous aurez pris connaissance du contenu, cliquez sur le menu « "
-"Commentaires » en colonne de gauche."
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:45
-msgid ""
-"If you don't want to reply to this request, please contact ${sender} "
-"directly by replying to this mail."
-msgstr ""
-"Si vous ne souhaitez pas donner suite à cette demande, vous pouvez répondre "
-"directement à ${sender} en lui adressant un message dans ce sens."
-
-#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:47
-msgid "Thank you."
-msgstr "Merci."
-
 #: src/pyams_content/shared/common/zmi/templates/wf-owner-warning.pt:1
 msgid ""
 "RECALL: you are not the owner of the content on which you are intervening."
@@ -1947,30 +1935,108 @@
 msgid "This content is already retired and not visible."
 msgstr "Ce contenu est déjà retiré et n'est plus visible des internautes."
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:58
-msgid "Workflow name"
-msgstr "Nom du workflow"
-
-#: src/pyams_content/shared/common/interfaces/__init__.py:59
-msgid "Name of workflow utility used to manage tool contents"
-msgstr "Nom du workflow qui gère le cycle de vie des contenus de cet outil"
-
-#: src/pyams_content/shared/common/interfaces/__init__.py:67
+#: src/pyams_content/shared/common/interfaces/types.py:35
+#: src/pyams_content/shared/form/zmi/field.py:158
+msgid "Name"
+msgstr "Nom"
+
+#: src/pyams_content/shared/common/interfaces/types.py:36
+msgid "Name of this data type; must be unique between all data types"
+msgstr "Nom de ce type de donnée ; doit être unique entre tous les types"
+
+#: src/pyams_content/shared/common/interfaces/types.py:39
+#: src/pyams_content/shared/form/zmi/field.py:169
+#: src/pyams_content/shared/form/interfaces/__init__.py:57
+msgid "Label"
+msgstr "Libellé"
+
+#: src/pyams_content/shared/common/interfaces/types.py:42
+msgid "Navigation label"
+msgstr "Libellé de navigation"
+
+#: src/pyams_content/shared/common/interfaces/types.py:43
+msgid "Label used for navigation entries"
+msgstr "Libellé utilisé pour les entrées de navigation"
+
+#: src/pyams_content/shared/common/interfaces/types.py:46
+msgid "Tab-folder label"
+msgstr "Libellé d'un l'onglet"
+
+#: src/pyams_content/shared/common/interfaces/types.py:47
+msgid "Label used to include into tab folder"
+msgstr "Libellé utilisé pour l'affichage du type sous la forme d'un onglet"
+
+#: src/pyams_content/shared/common/interfaces/types.py:50
+msgid "'See also' label"
+msgstr "Libellé 'À voir aussi'"
+
+#: src/pyams_content/shared/common/interfaces/types.py:51
+msgid ""
+"This label can be used when contents of this type will be displayed in a "
+"'See also' entries block"
+msgstr ""
+"Ce libellé peut être utilisé lorsque des contenus de ce type sont affichés "
+"sous la forme d'un bloc 'À voir aussi'"
+
+#: src/pyams_content/shared/common/interfaces/types.py:55
+msgid "'Single value' label"
+msgstr "Libellé 'Valeur unique'"
+
+#: src/pyams_content/shared/common/interfaces/types.py:56
+msgid "Label given to this type when a single value is displayed"
+msgstr "Libellé utilisé pour ce type lorsqu'une seule valeur est affichée"
+
+#: src/pyams_content/shared/common/interfaces/types.py:59
+msgid "'Link to list' label"
+msgstr "Libellé 'Lien vers une liste'"
+
+#: src/pyams_content/shared/common/interfaces/types.py:60
+msgid "Label used to display a link to a list of items of this type"
+msgstr ""
+"Libellé utilisé lorsque l'on crée un lien vers uns liste de contenus de ce "
+"type"
+
+#: src/pyams_content/shared/common/interfaces/types.py:63
+msgid "Next content label"
+msgstr "Libellé du contenu suivant"
+
+#: src/pyams_content/shared/common/interfaces/types.py:64
+msgid "Label used to announce next date for this type"
+msgstr ""
+"Libellé utilisé pour afficher la prochaine date d'un événement pour ce type"
+
+#: src/pyams_content/shared/common/interfaces/types.py:67
+msgid "Pictogram"
+msgstr "Pictogramme"
+
+#: src/pyams_content/shared/common/interfaces/types.py:68
+msgid "Image associated to this data type"
+msgstr "Image associée à ce type"
+
+#: src/pyams_content/shared/common/interfaces/types.py:81
+msgid "Field names"
+msgstr "Champs associés"
+
+#: src/pyams_content/shared/common/interfaces/types.py:82
+msgid "List of fields associated with this data type"
+msgstr "Liste des champs de saisie associés à ce type"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:46
 #: src/pyams_content/root/interfaces/__init__.py:40
 msgid "Webmasters"
 msgstr "Webmestres"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:68
+#: src/pyams_content/shared/common/interfaces/__init__.py:47
 msgid "Webmasters can handle all contents, including published ones"
 msgstr ""
 "Les webmestres peuvent modifier et gérer tous les contenus, y compris ceux "
 "qui sont publiés et hormis ceux qui sont archivés"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:72
+#: src/pyams_content/shared/common/interfaces/__init__.py:51
 msgid "Pilots"
 msgstr "Pilotes"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:73
+#: src/pyams_content/shared/common/interfaces/__init__.py:52
 msgid ""
 "Pilots can handle tool configuration, manage access rules, grant users roles "
 "and manage managers restrictions"
@@ -1979,13 +2045,13 @@
 "et les contributeurs, et limitent si nécessaire l'intervention des "
 "responsables à certains contenus"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:78
-#: src/pyams_content/shared/common/interfaces/__init__.py:145
+#: src/pyams_content/shared/common/interfaces/__init__.py:57
+#: src/pyams_content/shared/common/interfaces/__init__.py:161
 msgid "Managers"
 msgstr "Responsables"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:79
-#: src/pyams_content/shared/common/interfaces/__init__.py:146
+#: src/pyams_content/shared/common/interfaces/__init__.py:58
+#: src/pyams_content/shared/common/interfaces/__init__.py:162
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
@@ -1994,20 +2060,28 @@
 "(comme la publication ou le retrait des contenus), dans la limite des "
 "restrictions qui leur sont imposées"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:84
-#: src/pyams_content/shared/common/interfaces/__init__.py:151
+#: src/pyams_content/shared/common/interfaces/__init__.py:63
+#: src/pyams_content/shared/common/interfaces/__init__.py:167
 msgid "Contributors"
 msgstr "Contributeurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:85
+#: src/pyams_content/shared/common/interfaces/__init__.py:64
 msgid "Contributors are users which are allowed to create new contents"
 msgstr "Les contributeurs sont autorisés à créer de nouveaux contenus"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:96
+#: src/pyams_content/shared/common/interfaces/__init__.py:87
+msgid "Workflow name"
+msgstr "Nom du workflow"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:88
+msgid "Name of workflow utility used to manage tool contents"
+msgstr "Nom du workflow qui gère le cycle de vie des contenus de cet outil"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:112
 msgid "Version creator"
 msgstr "À l'origine de cette version"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:97
+#: src/pyams_content/shared/common/interfaces/__init__.py:113
 msgid ""
 "Name of content's version creator. The creator of the first version is also "
 "it's owner."
@@ -2015,39 +2089,39 @@
 "Nom du créateur de cette version. Le créateur de la première version d'un "
 "contenu est aussi son propriétaire."
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:101
+#: src/pyams_content/shared/common/interfaces/__init__.py:117
 msgid "First owner"
 msgstr "Premier propriétaire"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:102
+#: src/pyams_content/shared/common/interfaces/__init__.py:118
 msgid "Name of content's first version owner"
 msgstr "Nom de l'utilisateur ayant créé la première version"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:106
+#: src/pyams_content/shared/common/interfaces/__init__.py:122
 msgid "Version creation"
 msgstr "Date de création"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:109
+#: src/pyams_content/shared/common/interfaces/__init__.py:125
 msgid "Version modifiers"
 msgstr "Intervenants"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:110
+#: src/pyams_content/shared/common/interfaces/__init__.py:126
 msgid "List of principals who modified this content"
 msgstr "Liste des utilisateurs qui sont intervenus sur cette version"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:113
+#: src/pyams_content/shared/common/interfaces/__init__.py:129
 msgid "Last modifier"
 msgstr "Dernier intervenant"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:114
+#: src/pyams_content/shared/common/interfaces/__init__.py:130
 msgid "Last principal who modified this content"
 msgstr "Dernier utilisateur étant intervenu sur ce contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:117
+#: src/pyams_content/shared/common/interfaces/__init__.py:133
 msgid "Last update"
 msgstr "Dernière modification"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:121
+#: src/pyams_content/shared/common/interfaces/__init__.py:137
 msgid ""
 "The content's description is 'hidden' into HTML's page headers; but it can "
 "be seen, for example, in some search engines results as content's description"
@@ -2056,29 +2130,33 @@
 "mais on peut la retrouver, par exemple, dans les listes de résultats des "
 "moteurs de recherche comme Google"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:126
+#: src/pyams_content/shared/common/interfaces/__init__.py:142
 msgid "Keywords"
 msgstr "Mots-clés"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:127
+#: src/pyams_content/shared/common/interfaces/__init__.py:143
 msgid "They will be included into HTML pages metadata"
 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:130
+#: src/pyams_content/shared/common/interfaces/__init__.py:146
+#: src/pyams_content/shared/site/zmi/folder.py:71
+#: src/pyams_content/shared/site/interfaces/__init__.py:57
 msgid "Notepad"
 msgstr "Bloc-notes"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:131
+#: src/pyams_content/shared/common/interfaces/__init__.py:147
+#: src/pyams_content/shared/site/zmi/folder.py:72
+#: src/pyams_content/shared/site/interfaces/__init__.py:58
 msgid "Internal information to be known about this content"
 msgstr ""
 "Pour prendre note d'informations internes utiles ou importantes à propos de "
-"ce contenu"
-
-#: src/pyams_content/shared/common/interfaces/__init__.py:138
+"ce contenu ; ces notes ne seront pas publiées sur internet."
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:154
 msgid "Content owner"
 msgstr "Propriétaire"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:139
+#: src/pyams_content/shared/common/interfaces/__init__.py:155
 msgid ""
 "The owner is the creator of content's first version, except if it was "
 "transferred afterwards to another owner"
@@ -2087,7 +2165,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:152
+#: src/pyams_content/shared/common/interfaces/__init__.py:168
 msgid ""
 "Contributors are users which are allowed to update this content in addition "
 "to it's owner"
@@ -2095,11 +2173,11 @@
 "Les contributeurs sont autorisés, en plus du propriétaire, à modifier ce "
 "contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:157
+#: src/pyams_content/shared/common/interfaces/__init__.py:173
 msgid "Readers"
 msgstr "Relecteurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:158
+#: src/pyams_content/shared/common/interfaces/__init__.py:174
 msgid ""
 "Readers are users which are asked to verify and comment contents before they "
 "are published"
@@ -2107,26 +2185,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:163
+#: src/pyams_content/shared/common/interfaces/__init__.py:179
 msgid "Guests"
 msgstr "Invités"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:164
+#: src/pyams_content/shared/common/interfaces/__init__.py:180
 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:183
+#: src/pyams_content/shared/common/interfaces/__init__.py:199
 msgid "Principal ID"
 msgstr "ID utilisateur"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:188
+#: src/pyams_content/shared/common/interfaces/__init__.py:204
 msgid "Restricted contents"
 msgstr "Accès restreints"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:189
+#: src/pyams_content/shared/common/interfaces/__init__.py:205
 msgid ""
 "If 'yes', this manager will get restricted access to manage contents based "
 "on selected settings"
@@ -2134,31 +2212,23 @@
 "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:194
+#: src/pyams_content/shared/common/interfaces/__init__.py:210
 msgid "Selected owners"
 msgstr "Propriétaires"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:195
+#: src/pyams_content/shared/common/interfaces/__init__.py:211
 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/zmi/sites.py:59
-msgid "Site tree"
-msgstr "Arborescence du site"
-
-#: src/pyams_content/shared/zmi/sites.py:69
-msgid "Blogs and shared sites"
-msgstr "Blogs et sites partagés"
-
-#: src/pyams_content/shared/zmi/sites.py:83
-msgid "Delete shared site"
-msgstr "Supprimer ce site"
-
-#: src/pyams_content/shared/zmi/sites.py:128
-msgid "Given site name doesn't exist!"
-msgstr "Le nom de site indiqué n'existe pas !"
+#: src/pyams_content/shared/form/__init__.py:94
+msgid "Form fields"
+msgstr "Champs de saisie"
+
+#: src/pyams_content/shared/form/__init__.py:95
+msgid "no field defined"
+msgstr "aucun champ défini"
 
 #: src/pyams_content/shared/form/handler.py:85
 msgid "Mailto form handler"
@@ -2238,15 +2308,6 @@
 msgid "Switch field visibility"
 msgstr "Cliquez pour rendre le champ visible ou non"
 
-#: src/pyams_content/shared/form/zmi/field.py:158
-msgid "Name"
-msgstr "Nom"
-
-#: src/pyams_content/shared/form/zmi/field.py:169
-#: src/pyams_content/shared/form/interfaces/__init__.py:57
-msgid "Label"
-msgstr "Libellé"
-
 #: src/pyams_content/shared/form/zmi/field.py:180
 #: src/pyams_content/shared/form/interfaces/__init__.py:52
 msgid "Field type"
@@ -2471,11 +2532,11 @@
 msgid "View internal references settings"
 msgstr "Références internes de la vue"
 
-#: src/pyams_content/shared/view/zmi/templates/summary.pt:2
+#: src/pyams_content/shared/view/zmi/templates/preview.pt:2
 msgid "View result items"
 msgstr "Contenus extraits par la vue"
 
-#: src/pyams_content/shared/view/zmi/templates/summary.pt:3
+#: src/pyams_content/shared/view/zmi/templates/preview.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 "
@@ -2503,7 +2564,7 @@
 
 #: src/pyams_content/shared/view/interfaces/__init__.py:40
 #: src/pyams_content/interfaces/__init__.py:111
-#: src/pyams_content/interfaces/review.py:67
+#: src/pyams_content/features/review/interfaces.py:74
 msgid "Creation date"
 msgstr "Date de création"
 
@@ -2583,21 +2644,25 @@
 msgid "Other terms"
 msgstr "Autres thèmes"
 
-#: src/pyams_content/shared/imagemap/paragraph.py:37
-#: src/pyams_content/shared/imagemap/paragraph.py:49
+#: 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
 msgid "Image map"
 msgstr "Image cliquable"
 
-#: src/pyams_content/shared/imagemap/zmi/paragraph.py:55
+#: src/pyams_content/shared/imagemap/__init__.py:149
+msgid "no area defined"
+msgstr "aucune zone définie"
+
+#: src/pyams_content/shared/imagemap/zmi/paragraph.py:54
 msgid "Add image map..."
 msgstr "Image cliquable"
 
-#: src/pyams_content/shared/imagemap/zmi/paragraph.py:66
+#: src/pyams_content/shared/imagemap/zmi/paragraph.py:65
 msgid "Add new image map"
 msgstr "Ajout d'une image cliquable"
 
-#: src/pyams_content/shared/imagemap/zmi/paragraph.py:96
+#: src/pyams_content/shared/imagemap/zmi/paragraph.py:95
 msgid "Edit paragraph properties"
 msgstr "Propriétés de l'image cliquable"
 
@@ -2694,42 +2759,173 @@
 "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/blog/zmi/__init__.py:50
+#: src/pyams_content/shared/site/zmi/folder.py:54
+msgid "Add site folder..."
+msgstr "Ajouter une rubrique"
+
+#: src/pyams_content/shared/site/zmi/folder.py:85
+msgid "Add site folder"
+msgstr "Ajout d'une rubrique"
+
+#: src/pyams_content/shared/site/zmi/folder.py:64
+#: 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/link.py:69
+msgid "Parent"
+msgstr "Niveau parent"
+
+#: src/pyams_content/shared/site/zmi/folder.py:68
+#: src/pyams_content/shared/site/zmi/link.py:70
+msgid "Folder's parent"
+msgstr "Niveau de rattachement de cette rubrique"
+
+#: src/pyams_content/shared/site/zmi/folder.py:137
+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
+msgid "Add topic..."
+msgstr "Ajouter un article"
+
+#: src/pyams_content/shared/site/zmi/__init__.py:73
+msgid "Add topic"
+msgstr "Ajout d'un article"
+
+#: src/pyams_content/shared/site/zmi/__init__.py:62
+msgid "Topic's parent"
+msgstr "Niveau parent"
+
+#: src/pyams_content/shared/site/zmi/link.py:60
+msgid "Rent content..."
+msgstr "Lier un contenu"
+
+#: src/pyams_content/shared/site/zmi/link.py:79
+msgid "Rent existing content"
+msgstr "Lier un contenu existant"
+
+#: src/pyams_content/shared/site/zmi/link.py:140
+msgid "Edit content link properties"
+msgstr "Propriétés du lien"
+
+#: src/pyams_content/shared/site/zmi/container.py:99
+#: src/pyams_content/shared/site/zmi/container.py:111
+#: src/pyams_content/shared/blog/zmi/manager.py:149
+msgid "Publication dates..."
+msgstr "Dates de publication"
+
+#: src/pyams_content/shared/site/zmi/container.py:122
+#: src/pyams_content/shared/blog/zmi/manager.py:160
+msgid "Update publication dates"
+msgstr "Dates de publication"
+
+#: src/pyams_content/shared/site/zmi/container.py:171
+#: src/pyams_content/shared/site/zmi/container.py:181
+#: src/pyams_content/root/zmi/sites.py:67
+msgid "Site tree"
+msgstr "Arborescence du site"
+
+#: src/pyams_content/shared/site/zmi/container.py:248
+#: src/pyams_content/shared/site/zmi/container.py:146
+msgid "Visible element?"
+msgstr "Élément visible ?"
+
+#: src/pyams_content/shared/site/zmi/container.py:287
+msgid "Folders and topics"
+msgstr "Rubriques et articles"
+
+#: src/pyams_content/shared/site/zmi/container.py:323
+#: src/pyams_content/root/zmi/sites.py:133
+msgid "OID"
+msgstr "N° IN"
+
+#: src/pyams_content/shared/site/zmi/container.py:379
+msgid "Delete site item"
+msgstr "Supprimer ce contenu"
+
+#: src/pyams_content/shared/site/zmi/container.py:296
+msgid "Click to open/close all folders"
+msgstr "Afficher/masquer toutes les rubriques"
+
+#: src/pyams_content/shared/site/zmi/container.py:312
+msgid "Click to show/hide inner folders"
+msgstr "Cliquer pour afficher ou cache les sous-niveaux"
+
+#: src/pyams_content/shared/site/zmi/container.py:531
+msgid "Given object name doesn't exist!"
+msgstr "Le nom d'objet indiqué n'existe pas !"
+
+#: src/pyams_content/shared/site/zmi/manager.py:79
+#: src/pyams_content/shared/site/zmi/manager.py:91
+msgid "Add site manager"
+msgstr "Ajouter un site"
+
+#: src/pyams_content/shared/site/zmi/manager.py:90
+msgid "Site manager"
+msgstr "Site"
+
+#: src/pyams_content/shared/site/zmi/manager.py:121
+#: src/pyams_content/shared/blog/zmi/manager.py:115
+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
+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
+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:78
+msgid "Topic"
+msgstr "Article"
+
+#: src/pyams_content/shared/site/interfaces/__init__.py:99
+msgid "Content title, as shown in front-office"
+msgstr "Titre présenté aux internautes"
+
+#: src/pyams_content/shared/site/interfaces/__init__.py:103
+msgid "If 'no', link is not visible"
+msgstr "Si 'non', le lien ne sera pas visible"
+
+#: src/pyams_content/shared/blog/zmi/__init__.py:49
 msgid "This blog post"
 msgstr "Cet article"
 
-#: src/pyams_content/shared/blog/zmi/__init__.py:69
-#: src/pyams_content/shared/blog/zmi/__init__.py:79
+#: src/pyams_content/shared/blog/zmi/__init__.py:68
+#: src/pyams_content/shared/blog/zmi/__init__.py:78
 msgid "Add blog post"
 msgstr "Ajouter un article"
 
-#: src/pyams_content/shared/blog/zmi/__init__.py:60
+#: src/pyams_content/shared/blog/zmi/__init__.py:59
 #, python-format
 msgid "Blog post « {title} »"
 msgstr "Article de blog « {title} »"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:67
-#: src/pyams_content/shared/blog/zmi/manager.py:79
+#: src/pyams_content/shared/blog/zmi/manager.py:73
+#: src/pyams_content/shared/blog/zmi/manager.py:85
 msgid "Add blog manager"
 msgstr "Ajouter un blog"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:78
+#: src/pyams_content/shared/blog/zmi/manager.py:84
 msgid "Blog manager"
 msgstr "Blog"
 
-#: src/pyams_content/shared/blog/zmi/manager.py:105
-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/blog/zmi/manager.py:109
+#: src/pyams_content/shared/blog/zmi/manager.py:119
 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:113
+#: src/pyams_content/shared/blog/zmi/manager.py:123
 msgid "A blog manager is already registered with this name!!"
 msgstr "Un blog est déjà inscrit dans le registre avec ce nom !"
 
-#: src/pyams_content/shared/blog/interfaces/__init__.py:28
+#: src/pyams_content/shared/blog/interfaces/__init__.py:33
 msgid "Blog post"
 msgstr "Article de blog"
 
@@ -2753,11 +2949,31 @@
 msgid "Default length used for inner tables and dashboards"
 msgstr "Longueur par défaut des tableaux internes et des tableaux de bord"
 
-#: src/pyams_content/root/zmi/__init__.py:75
+#: src/pyams_content/root/zmi/sites.py:77
+msgid "Blogs and shared sites"
+msgstr "Blogs et sites partagés"
+
+#: src/pyams_content/root/zmi/sites.py:108
+msgid "Visible site?"
+msgstr "Site visible ?"
+
+#: src/pyams_content/root/zmi/sites.py:151
+msgid "Delete shared site"
+msgstr "Supprimer ce site"
+
+#: src/pyams_content/root/zmi/sites.py:199
+msgid "Given site name doesn't exist!"
+msgstr "Le nom de site indiqué n'existe pas !"
+
+#: src/pyams_content/root/zmi/search.py:148
+msgid "Content type"
+msgstr "Type de contenu"
+
+#: src/pyams_content/root/zmi/__init__.py:77
 msgid "Home"
 msgstr "Accueil"
 
-#: src/pyams_content/root/zmi/__init__.py:782
+#: src/pyams_content/root/zmi/__init__.py:798
 msgid "Content"
 msgstr "Contenu"
 
@@ -2765,6 +2981,10 @@
 msgid "Your contents dashboard"
 msgstr "Les contenus qui me concernent"
 
+#: src/pyams_content/root/zmi/templates/dashboard.pt:18
+msgid "SEARCH - Between all contents"
+msgstr "RECHERCHE - Tous contenus confondus"
+
 #: src/pyams_content/root/interfaces/__init__.py:36
 msgid "Site managers"
 msgstr "Administrateurs"
@@ -3092,7 +3312,7 @@
 msgid "Published version {0}"
 msgstr "Version {0} publiée"
 
-#: src/pyams_content/workflow/task.py:59
+#: src/pyams_content/workflow/task.py:61
 msgid "Automatic contents withdrawal:\n"
 msgstr ""
 "Retrait automatique des contenus après la date de fin de publication :\n"
@@ -3113,10 +3333,6 @@
 msgid "WARNING: this key can't be modified after creation!!!"
 msgstr "ATTENTION : cette clé ne pourra plus être modifiée !!!"
 
-#: src/pyams_content/interfaces/__init__.py:100
-msgid "Visible label used to display content"
-msgstr "Le titre présenté aux internautes"
-
 #: src/pyams_content/interfaces/__init__.py:103
 msgid "Short name"
 msgstr "Titre court"
@@ -3131,34 +3347,270 @@
 msgid "Modification date"
 msgstr "Dernière modification apportée"
 
-#: src/pyams_content/interfaces/review.py:32
+#: src/pyams_content/features/checker/interfaces.py:27
+#, python-format
+msgid " - {field}: <span class=\"text-danger\">no value</span>"
+msgstr " - {field} : <span class=\"text-danger\">non renseigné</span>"
+
+#: src/pyams_content/features/checker/interfaces.py:28
+#, python-format
+msgid " - {field} ({lang}): <span class=\"text-danger\">no value</span>"
+msgstr " - {field} ({lang}) : <span class=\"text-danger\">non renseigné</span>"
+
+#: src/pyams_content/features/checker/interfaces.py:29
+#, python-format
+msgid " - {field}: <span class=\"text-danger\">{message}</span>"
+msgstr " - {field} : <span class=\"text-danger\">{message}</span>"
+
+#: src/pyams_content/features/checker/zmi/__init__.py:43
+msgid "Check content..."
+msgstr "Vérifier le contenu"
+
+#: src/pyams_content/features/checker/zmi/__init__.py:55
+msgid "Content check"
+msgstr "Vérification de contenu"
+
+#: src/pyams_content/features/checker/zmi/__init__.py:79
+msgid "No checker available. This content is clean!"
+msgstr "Pas de vérificateur disponible. Ce contenu est propre !"
+
+#: src/pyams_content/features/checker/zmi/__init__.py:75
+#, python-format
+msgid "{0}:"
+msgstr "{0} :"
+
+#: src/pyams_content/features/preview/zmi/__init__.py:42
+msgid "Preview"
+msgstr "Aperçu"
+
+#: src/pyams_content/features/preview/zmi/__init__.py:57
+msgid "Content preview"
+msgstr "Aperçu du contenu"
+
+#: src/pyams_content/features/review/__init__.py:186
+#, python-format
+msgid "Request comment: {comment}"
+msgstr "Commentaire joint : {comment}"
+
+#: src/pyams_content/features/review/__init__.py:216
+#, python-format
+msgid "A new comment was added on content « {0} »"
+msgstr "Un nouveau commentaire a été ajouté pour le contenu « {0} »"
+
+#: src/pyams_content/features/review/__init__.py:173
+#, python-format
+msgid "[{service_name}] A content review is requested"
+msgstr "[{service_name}] Demande de relecture"
+
+#: src/pyams_content/features/review/interfaces.py:32
 msgid "Review request"
 msgstr "Demande de relecture"
 
-#: src/pyams_content/interfaces/review.py:33
+#: src/pyams_content/features/review/interfaces.py:33
 msgid "Reviewer comment"
 msgstr "Commentaire"
 
-#: src/pyams_content/interfaces/review.py:56
+#: src/pyams_content/features/review/interfaces.py:56
 msgid "Comment writer"
 msgstr "Rédacteur"
 
-#: src/pyams_content/interfaces/review.py:59
-msgid "Comment body"
-msgstr "Commentaire"
-
-#: src/pyams_content/interfaces/review.py:62
+#: src/pyams_content/features/review/interfaces.py:59
+msgid "Content reviewers"
+msgstr "Relecteurs sollicités"
+
+#: src/pyams_content/features/review/interfaces.py:62
 msgid "Comment type"
 msgstr "Type de commentaire"
 
-#: src/pyams_content/interfaces/review.py:79
+#: src/pyams_content/features/review/interfaces.py:67
+msgid "Comment body"
+msgstr "Commentaire"
+
+#: src/pyams_content/features/review/interfaces.py:70
+msgid "Reviewer comment?"
+msgstr "Commentaire d'un relecteur ?"
+
+#: src/pyams_content/features/review/interfaces.py:86
 msgid "Reviewers list"
 msgstr "Liste des relecteurs"
 
-#: src/pyams_content/interfaces/review.py:80
+#: src/pyams_content/features/review/interfaces.py:87
 msgid "List of principals which reviewed the comment"
 msgstr "Liste des utilisateurs qui ont apporté des commentaires sur ce contenu"
 
+#: src/pyams_content/features/review/zmi/__init__.py:61
+msgid "Ask for review..."
+msgstr "Demander une relecture"
+
+#: src/pyams_content/features/review/zmi/__init__.py:99
+msgid "Content review request"
+msgstr "Demande de relecture"
+
+#: src/pyams_content/features/review/zmi/__init__.py:167
+msgid "Comments"
+msgstr "Commentaires"
+
+#: src/pyams_content/features/review/zmi/__init__.py:187
+msgid "Review comments"
+msgstr "Commentaires associés à cette version"
+
+#: src/pyams_content/features/review/zmi/__init__.py:216
+msgid "Add comment..."
+msgstr "Ajouter un commentaire"
+
+#: src/pyams_content/features/review/zmi/__init__.py:71
+msgid "Sought principals"
+msgstr "Relecteurs sollicités"
+
+#: src/pyams_content/features/review/zmi/__init__.py:72
+msgid "List of principals from which a review is requested"
+msgstr ""
+"Liste des utilisateurs que vous souhaitez solliciter par mail pour relire ce "
+"contenu"
+
+#: src/pyams_content/features/review/zmi/__init__.py:75
+msgid "Comment"
+msgstr "Commentaire"
+
+#: src/pyams_content/features/review/zmi/__init__.py:76
+msgid "Comment associated with this request"
+msgstr ""
+"Ce commentaire associé à cette demande sera également transmis par mail"
+
+#: src/pyams_content/features/review/zmi/__init__.py:79
+msgid "Notify all reviewers"
+msgstr "Notifier tous les relecteurs"
+
+#: src/pyams_content/features/review/zmi/__init__.py:80
+msgid ""
+"If 'yes', selected reviewers will be notified by mail of your request, even "
+"if they were already members of the reviewers group. Otherwise, only new "
+"reviewers will be notified"
+msgstr ""
+"Si 'oui', tous les relecteurs sollicités seront notifiés par mail de votre "
+"demande, même s'ils avaient déjà été sollicités auparavant. Dans le cas "
+"contraire, seuls les nouveaux relecteurs seront notifiés."
+
+#: src/pyams_content/features/review/zmi/__init__.py:91
+msgid "Ask for content review"
+msgstr "Demander la relecture"
+
+#: src/pyams_content/features/review/zmi/__init__.py:149
+msgid "Request successful. No new notification have been sent"
+msgstr ""
+"Votre demande a été transmise. Aucune nouvelle notification n'a été envoyée."
+
+#: src/pyams_content/features/review/zmi/__init__.py:270
+msgid "Message is mandatory!"
+msgstr "Un commentaire est obligatoire !"
+
+#: src/pyams_content/features/review/zmi/__init__.py:139
+#, python-format
+msgid "Request successful. {count} new notification(s) have been sent"
+msgstr "Votre demande a été transmise. {count} notification(s) envoyée(s)."
+
+#: src/pyams_content/features/review/zmi/templates/review-comments.pt:32
+#: src/pyams_content/features/review/zmi/templates/review-comments-json.pt:15
+#: src/pyams_content/features/review/zmi/templates/review-add-comment.pt:14
+msgid "Review query from"
+msgstr "Demande de relecture de "
+
+#: src/pyams_content/features/review/zmi/templates/review-comments.pt:38
+#: src/pyams_content/features/review/zmi/templates/review-comments-json.pt:21
+#: src/pyams_content/features/review/zmi/templates/review-add-comment.pt:20
+msgid "(as reviewer)"
+msgstr "(relecteur)"
+
+#: src/pyams_content/features/review/zmi/templates/review-comments.pt:47
+#: src/pyams_content/features/review/zmi/templates/review-comments-json.pt:30
+msgid "Selected reviewers:"
+msgstr "Auprès de :"
+
+#: src/pyams_content/features/review/zmi/templates/review-comments.pt:62
+msgid "Add a comment..."
+msgstr "Nouveau commentaire..."
+
+#: src/pyams_content/features/review/zmi/templates/review-comments.pt:68
+msgid "Add comment"
+msgstr "Ajouter ce commentaire"
+
+#: src/pyams_content/features/review/zmi/templates/review-add-comment.pt:22
+msgid "just now"
+msgstr "À l'instant !"
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:4
+msgid "[${service_name}] You are requested for a content review"
+msgstr "[${service_name}] Demande de relecture"
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:30
+msgid "Hello,"
+msgstr "Bonjour,"
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:31
+msgid ""
+"You have been requested by ${sender}, contributor of « ${service_name} » "
+"website, to make a review of a content."
+msgstr ""
+"Vous êtes sollicité par ${sender}, contributeur du site internet "
+"${service_name}, qui souhaite recueillir votre commentaire à propos d'un "
+"contenu."
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:36
+msgid "${sender} added the following message to his request:"
+msgstr "${sender} a accompagné sa demande de relecture du message suivant :"
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:41
+msgid ""
+"To review and comment this publication, please use the following link: "
+"${target}."
+msgstr "Pour accéder à cette contribution, cliquer ici : ${target}."
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:44
+msgid "After reading this content, please use the « Comments » menu entry."
+msgstr ""
+"Lorsque vous aurez pris connaissance du contenu, cliquez sur « Commentaires "
+"» dans le menu en colonne de gauche."
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:45
+msgid ""
+"If you don't want to reply to this request, please contact ${sender} "
+"directly by replying to this mail."
+msgstr ""
+"Si vous ne souhaitez pas donner suite à cette demande, vous pouvez répondre "
+"directement à ${sender} en lui adressant un message dans ce sens."
+
+#: src/pyams_content/features/review/zmi/templates/review-notification.pt:47
+msgid "Thank you."
+msgstr "Merci."
+
+#~ msgid "Publication settings"
+#~ msgstr "Dates de publication et de retrait"
+
+#~ msgid "Add new data subtype"
+#~ msgstr "Ajout d'un sous-type"
+
+#~ msgid "Terms"
+#~ msgstr "Termes"
+
+#~ msgid "{header}: {status}"
+#~ msgstr "{header} : {status}"
+
+#~ msgid "- Illustration:"
+#~ msgstr "- Illustration :"
+
+#~ msgid "Properties:"
+#~ msgstr "Propriétés :"
+
+#~ msgid "<strong>Paragraphs</strong>:"
+#~ msgstr "<strong>Paragraphes</strong> :"
+
+#~ msgid "<strong>Properties</strong>:"
+#~ msgstr "<strong>Propriétés</strong> :"
+
+#~ msgid "<strong>Properties</strong>: <span class=\"text-success\">OK</span>"
+#~ msgstr ""
+#~ "<strong>Propriétés</strong> : <span class=\"text-success\">OK</span>"
+
 #~ msgid "Quick preview"
 #~ msgstr "Aperçu"
 
@@ -3302,9 +3754,6 @@
 #~ msgid "Display current version date"
 #~ msgstr "Date de publication de cette version"
 
-#~ msgid "Displayed publication date"
-#~ msgstr "Date de publication affichée"
-
 #~ msgid "The matching date will be displayed in front-office"
 #~ msgstr "La date correspondante sera affichée en front-office"
 
@@ -3330,9 +3779,6 @@
 #~ msgid "Submit"
 #~ msgstr "Enregistrer"
 
-#~ msgid "Paragraphs"
-#~ msgstr "Paragraphes"
-
 #~ msgid "Illustration properties"
 #~ msgstr "Propriétés d'une illustration"
 
--- a/src/pyams_content/locales/pyams_content.pot	Fri Dec 08 10:57:36 2017 +0100
+++ b/src/pyams_content/locales/pyams_content.pot	Fri Dec 08 11:57:42 2017 +0100
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2017-10-12 17:15+0200\n"
+"POT-Creation-Date: 2017-12-07 09:27+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"
@@ -77,70 +77,73 @@
 msgid "Guest user (role)"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/paragraph.py:36
-#: ./src/pyams_content/component/gallery/paragraph.py:43
+#: ./src/pyams_content/component/gallery/paragraph.py:40
+#: ./src/pyams_content/component/gallery/paragraph.py:47
 msgid "Images gallery"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/file.py:55
-#: ./src/pyams_content/component/gallery/zmi/file.py:66
-#: ./src/pyams_content/component/gallery/zmi/paragraph.py:174
+#: ./src/pyams_content/component/gallery/__init__.py:144
+msgid "Gallery"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/file.py:57
+#: ./src/pyams_content/component/gallery/zmi/file.py:68
+#: ./src/pyams_content/component/gallery/zmi/paragraph.py:168
 msgid "Add image(s)"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/file.py:136
+#: ./src/pyams_content/component/gallery/zmi/file.py:182
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:256
+msgid "Update image properties"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/file.py:239
+msgid "Remove image..."
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/file.py:149
 msgid "Show/hide image"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/file.py:163
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:245
-msgid "Update image properties"
-msgstr ""
-
-#: ./src/pyams_content/component/gallery/zmi/file.py:220
-msgid "Download image..."
-msgstr ""
-
-#: ./src/pyams_content/component/gallery/zmi/file.py:234
-msgid "Remove image..."
-msgstr ""
-
-#: ./src/pyams_content/component/gallery/zmi/file.py:188
+#: ./src/pyams_content/component/gallery/zmi/file.py:207
 msgid "Audio content"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/file.py:250
-#: ./src/pyams_content/component/association/zmi/__init__.py:280
-#: ./src/pyams_content/shared/zmi/sites.py:124
+#: ./src/pyams_content/component/gallery/zmi/file.py:255
+#: ./src/pyams_content/component/association/zmi/__init__.py:284
+#: ./src/pyams_content/shared/common/zmi/types.py:205
+#: ./src/pyams_content/shared/common/zmi/types.py:454
 #: ./src/pyams_content/shared/imagemap/zmi/container.py:169
+#: ./src/pyams_content/shared/site/zmi/container.py:527
+#: ./src/pyams_content/root/zmi/sites.py:195
 msgid "No provided object_name argument!"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/file.py:254
+#: ./src/pyams_content/component/gallery/zmi/file.py:259
 msgid "Given image name doesn't exist!"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/paragraph.py:57
+#: ./src/pyams_content/component/gallery/zmi/paragraph.py:54
 msgid "Add images gallery..."
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/paragraph.py:68
+#: ./src/pyams_content/component/gallery/zmi/paragraph.py:65
 msgid "Add new gallery"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/paragraph.py:103
+#: ./src/pyams_content/component/gallery/zmi/paragraph.py:95
 msgid "Edit gallery properties"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/__init__.py:53
+#: ./src/pyams_content/component/gallery/zmi/__init__.py:57
 msgid "Update gallery properties"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/__init__.py:88
+#: ./src/pyams_content/component/gallery/zmi/__init__.py:92
 msgid "Update gallery contents"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/__init__.py:161
+#: ./src/pyams_content/component/gallery/zmi/__init__.py:165
 msgid "Default gallery renderer"
 msgstr ""
 
@@ -180,7 +183,11 @@
 msgid "Gallery images"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/templates/gallery-images.pt:33
+#: ./src/pyams_content/component/gallery/zmi/templates/gallery-images.pt:15
+msgid "Download images"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/templates/gallery-images.pt:38
 msgid "Zoom image"
 msgstr ""
 
@@ -222,7 +229,7 @@
 #: ./src/pyams_content/component/illustration/interfaces/__init__.py:48
 #: ./src/pyams_content/component/paragraph/interfaces/video.py:39
 #: ./src/pyams_content/component/links/interfaces/__init__.py:38
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:120
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:136
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:61
 msgid "Description"
 msgstr ""
@@ -274,10 +281,13 @@
 
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:89
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:36
+#: ./src/pyams_content/component/paragraph/zmi/container.py:222
 #: ./src/pyams_content/component/links/zmi/reverse.py:71
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:106
+#: ./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/root/zmi/templates/advanced-search.pt:188
 #: ./src/pyams_content/interfaces/__init__.py:99
 msgid "Title"
 msgstr ""
@@ -294,26 +304,26 @@
 msgid "Gallery style"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/__init__.py:173
-#: ./src/pyams_content/component/extfile/__init__.py:177
+#: ./src/pyams_content/component/extfile/__init__.py:168
+#: ./src/pyams_content/component/extfile/__init__.py:172
 msgid "Standard file"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/__init__.py:185
-#: ./src/pyams_content/component/extfile/__init__.py:202
+#: ./src/pyams_content/component/extfile/__init__.py:219
+#: ./src/pyams_content/component/extfile/__init__.py:236
 #: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:61
 msgid "Image"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/__init__.py:210
-#: ./src/pyams_content/component/extfile/__init__.py:215
-#: ./src/pyams_content/component/paragraph/video.py:43
-#: ./src/pyams_content/component/paragraph/video.py:55
+#: ./src/pyams_content/component/extfile/__init__.py:251
+#: ./src/pyams_content/component/extfile/__init__.py:256
+#: ./src/pyams_content/component/paragraph/video.py:46
+#: ./src/pyams_content/component/paragraph/video.py:58
 msgid "Video"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/__init__.py:223
-#: ./src/pyams_content/component/extfile/__init__.py:228
+#: ./src/pyams_content/component/extfile/__init__.py:271
+#: ./src/pyams_content/component/extfile/__init__.py:276
 msgid "Audio file"
 msgstr ""
 
@@ -329,51 +339,51 @@
 msgid "Add new external file"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:143
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:145
 msgid "Update file properties"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:183
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:185
 msgid "Images"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:196
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:198
 msgid "Add image"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:208
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:210
 msgid "Add new image"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:278
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:296
 msgid "Videos"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:291
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:309
 msgid "Add video"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:303
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:321
 msgid "Add new video"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:339
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:359
 msgid "Update video properties"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:371
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:391
 msgid "Audios files"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:384
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:404
 msgid "Add audio file"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:396
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:416
 msgid "Add new audio file"
 msgstr ""
 
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:432
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:454
 msgid "Update audio file properties"
 msgstr ""
 
@@ -440,22 +450,23 @@
 msgid "Audio file content"
 msgstr ""
 
-#: ./src/pyams_content/component/illustration/paragraph.py:36
-#: ./src/pyams_content/component/illustration/paragraph.py:43
+#: ./src/pyams_content/component/illustration/paragraph.py:40
+#: ./src/pyams_content/component/illustration/paragraph.py:47
+#: ./src/pyams_content/component/illustration/__init__.py:141
 #: ./src/pyams_content/component/illustration/zmi/__init__.py:99
 #: ./src/pyams_content/component/illustration/zmi/__init__.py:122
 msgid "Illustration"
 msgstr ""
 
-#: ./src/pyams_content/component/illustration/zmi/paragraph.py:58
+#: ./src/pyams_content/component/illustration/zmi/paragraph.py:55
 msgid "Add illustration..."
 msgstr ""
 
-#: ./src/pyams_content/component/illustration/zmi/paragraph.py:69
+#: ./src/pyams_content/component/illustration/zmi/paragraph.py:66
 msgid "Add new illustration"
 msgstr ""
 
-#: ./src/pyams_content/component/illustration/zmi/paragraph.py:105
+#: ./src/pyams_content/component/illustration/zmi/paragraph.py:97
 msgid "Edit illustration properties"
 msgstr ""
 
@@ -471,7 +482,7 @@
 msgid "Small illustration on the right with zoom"
 msgstr ""
 
-#: ./src/pyams_content/component/illustration/zmi/__init__.py:177
+#: ./src/pyams_content/component/illustration/zmi/__init__.py:180
 msgid "Add illustration"
 msgstr ""
 
@@ -484,29 +495,38 @@
 msgid "Image style"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/html.py:54
-#: ./src/pyams_content/component/paragraph/html.py:63
+#: ./src/pyams_content/component/paragraph/container.py:82
+#: ./src/pyams_content/component/paragraph/zmi/templates/paragraphs.pt:6
+msgid "Paragraphs"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/container.py:104
+msgid "no visible paragraph"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/html.py:57
+#: ./src/pyams_content/component/paragraph/html.py:66
 msgid "HTML paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/header.py:38
+#: ./src/pyams_content/component/paragraph/header.py:41
 #: ./src/pyams_content/component/paragraph/interfaces/header.py:34
 msgid "Header"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/header.py:52
+#: ./src/pyams_content/component/paragraph/header.py:55
 msgid "Header paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/__init__.py:53
+#: ./src/pyams_content/component/paragraph/zmi/__init__.py:57
 msgid "Paragraphs types..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/__init__.py:64
+#: ./src/pyams_content/component/paragraph/zmi/__init__.py:68
 msgid "Paragraphs types"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/__init__.py:81
+#: ./src/pyams_content/component/paragraph/zmi/__init__.py:85
 msgid ""
 "You can define which types of paragraphs are allowed in this container.\n"
 "\n"
@@ -515,60 +535,69 @@
 "NOTICE: removing types from allowed types list will have no effect on already created contents!"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/video.py:62
+#: ./src/pyams_content/component/paragraph/zmi/__init__.py:119
+msgid "Paragraph was correctly added."
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/video.py:56
 msgid "Add video paragraph..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/video.py:73
+#: ./src/pyams_content/component/paragraph/zmi/video.py:67
 msgid "Add new video paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/video.py:120
+#: ./src/pyams_content/component/paragraph/zmi/video.py:109
 msgid "Edit video properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/video.py:89
-#: ./src/pyams_content/component/paragraph/zmi/video.py:137
+#: ./src/pyams_content/component/paragraph/zmi/video.py:83
+#: ./src/pyams_content/component/paragraph/zmi/video.py:126
 msgid "HTML content"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:64
+#: ./src/pyams_content/component/paragraph/zmi/container.py:68
 msgid "Paragraphs..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:137
+#: ./src/pyams_content/component/paragraph/zmi/container.py:159
 msgid "Switch paragraph visibility"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:176
+#: ./src/pyams_content/component/paragraph/zmi/container.py:238
+msgid "Show/hide all paragraphs"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/container.py:284
+#: ./src/pyams_content/component/paragraph/zmi/container.py:293
 msgid "Paragraphs list"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:209
-msgid "Show/hide all paragraphs"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/zmi/container.py:336
-#: ./src/pyams_content/component/association/zmi/__init__.py:98
+#: ./src/pyams_content/component/paragraph/zmi/container.py:392
+#: ./src/pyams_content/component/association/zmi/__init__.py:102
 msgid "Associations..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:348
+#: ./src/pyams_content/component/paragraph/zmi/container.py:404
 msgid "Paragraphs associations"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:110
+#: ./src/pyams_content/component/paragraph/zmi/container.py:118
 msgid "No currently defined paragraph."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:220
+#: ./src/pyams_content/component/paragraph/zmi/container.py:247
 msgid "Click to open/close all paragraphs editors"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:232
+#: ./src/pyams_content/component/paragraph/zmi/container.py:260
 msgid "Click to open/close paragraph editor"
 msgstr ""
 
+#: ./src/pyams_content/component/paragraph/zmi/container.py:124
+msgid "Check allowed paragraph types to be able to create new paragraphs."
+msgstr ""
+
 #: ./src/pyams_content/component/paragraph/zmi/html.py:66
 msgid "Add HTML paragraph..."
 msgstr ""
@@ -577,30 +606,31 @@
 msgid "Add new HTML paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/html.py:115
+#: ./src/pyams_content/component/paragraph/zmi/html.py:110
 msgid "Edit HTML paragraph properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/header.py:54
+#: ./src/pyams_content/component/paragraph/zmi/header.py:51
 msgid "Add header paragraph..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/header.py:65
+#: ./src/pyams_content/component/paragraph/zmi/header.py:62
 msgid "Add new header paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/header.py:100
+#: ./src/pyams_content/component/paragraph/zmi/header.py:92
 msgid "Edit header paragraph properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/templates/summary.pt:7
-#: ./src/pyams_content/component/paragraph/zmi/templates/summary.pt:30
+#: ./src/pyams_content/component/paragraph/zmi/templates/preview.pt:7
+#: ./src/pyams_content/component/paragraph/zmi/templates/preview.pt:30
 msgid "This content doesn't contain any paragraph."
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/interfaces/__init__.py:43
 #: ./src/pyams_content/component/association/interfaces/__init__.py:42
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:82
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:102
 msgid "Visible?"
 msgstr ""
 
@@ -621,6 +651,8 @@
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/interfaces/__init__.py:83
+#: ./src/pyams_content/shared/common/zmi/types.py:151
+#: ./src/pyams_content/shared/common/zmi/types.py:393
 msgid "Default paragraphs"
 msgstr ""
 
@@ -637,10 +669,16 @@
 msgid "Video file content"
 msgstr ""
 
+#: ./src/pyams_content/component/theme/__init__.py:81
 #: ./src/pyams_content/component/theme/zmi/portlet.py:39
+#: ./src/pyams_content/component/theme/interfaces/__init__.py:43
 msgid "Themes"
 msgstr ""
 
+#: ./src/pyams_content/component/theme/__init__.py:90
+msgid "no defined theme"
+msgstr ""
+
 #: ./src/pyams_content/component/theme/zmi/__init__.py:52
 #: ./src/pyams_content/component/theme/zmi/manager.py:45
 #: ./src/pyams_content/shared/view/zmi/theme.py:49
@@ -655,44 +693,46 @@
 msgid "Selected themes"
 msgstr ""
 
-#: ./src/pyams_content/component/theme/interfaces/__init__.py:43
-msgid "Terms"
-msgstr ""
-
-#: ./src/pyams_content/component/association/paragraph.py:37
-#: ./src/pyams_content/component/association/paragraph.py:44
+#: ./src/pyams_content/component/association/paragraph.py:42
+#: ./src/pyams_content/component/association/paragraph.py:49
 msgid "Associations paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/paragraph.py:56
+#: ./src/pyams_content/component/association/container.py:92
+#: ./src/pyams_content/component/association/zmi/templates/associations.pt:6
+msgid "Associations"
+msgstr ""
+
+#: ./src/pyams_content/component/association/zmi/paragraph.py:55
 msgid "Add associations paragraph..."
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/paragraph.py:67
+#: ./src/pyams_content/component/association/zmi/paragraph.py:66
 msgid "Add new association paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/paragraph.py:97
+#: ./src/pyams_content/component/association/zmi/paragraph.py:96
 msgid "Edit association paragraph properties"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/__init__.py:171
+#: ./src/pyams_content/component/association/zmi/__init__.py:175
 msgid "Switch association visibility"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/__init__.py:222
+#: ./src/pyams_content/component/association/zmi/__init__.py:226
 msgid "Public title"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/__init__.py:236
+#: ./src/pyams_content/component/association/zmi/__init__.py:240
 msgid "Inner title"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/__init__.py:251
+#: ./src/pyams_content/component/association/zmi/__init__.py:255
 msgid "Size"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/__init__.py:306
+#: ./src/pyams_content/component/association/zmi/__init__.py:310
+#: ./src/pyams_content/component/association/zmi/__init__.py:320
 msgid "Associations list"
 msgstr ""
 
@@ -700,55 +740,56 @@
 msgid "Association was correctly added."
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/__init__.py:284
+#: ./src/pyams_content/component/association/zmi/__init__.py:288
 msgid "Given association name doesn't exist!"
 msgstr ""
 
-#: ./src/pyams_content/component/association/zmi/templates/associations.pt:6
-msgid "Associations"
-msgstr ""
-
 #: ./src/pyams_content/component/association/interfaces/__init__.py:43
 msgid "Is this item visible in front-office?"
 msgstr ""
 
-#: ./src/pyams_content/component/links/__init__.py:86
+#: ./src/pyams_content/component/links/__init__.py:101
 msgid "Internal link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/__init__.py:143
+#: ./src/pyams_content/component/links/__init__.py:176
 msgid "External link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/__init__.py:184
+#: ./src/pyams_content/component/links/__init__.py:222
 msgid "Mailto link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:60
+#: ./src/pyams_content/component/links/__init__.py:163
+#: ./src/pyams_content/shared/imagemap/paragraph.py:85
+msgid "target is not published"
+msgstr ""
+
+#: ./src/pyams_content/component/links/zmi/__init__.py:56
 msgid "Internal links"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:73
+#: ./src/pyams_content/component/links/zmi/__init__.py:69
 msgid "Add internal link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:85
+#: ./src/pyams_content/component/links/zmi/__init__.py:81
 msgid "Add new internal link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:128
+#: ./src/pyams_content/component/links/zmi/__init__.py:126
 msgid "Edit internal link properties"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:166
+#: ./src/pyams_content/component/links/zmi/__init__.py:164
 msgid "External links"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:179
+#: ./src/pyams_content/component/links/zmi/__init__.py:177
 msgid "Add external link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:191
+#: ./src/pyams_content/component/links/zmi/__init__.py:189
 msgid "Add new external link"
 msgstr ""
 
@@ -768,7 +809,7 @@
 msgid "Add new mailto link"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/__init__.py:340
+#: ./src/pyams_content/component/links/zmi/__init__.py:342
 msgid "Edit mailto link properties"
 msgstr ""
 
@@ -782,6 +823,7 @@
 
 #: ./src/pyams_content/component/links/interfaces/__init__.py:34
 #: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:49
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:98
 msgid "Alternate title"
 msgstr ""
 
@@ -795,10 +837,12 @@
 
 #: ./src/pyams_content/component/links/interfaces/__init__.py:49
 #: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:81
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:92
 msgid "Internal reference"
 msgstr ""
 
 #: ./src/pyams_content/component/links/interfaces/__init__.py:50
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:93
 msgid ""
 "Internal link target reference. You can search a reference using '+' followed"
 " by internal number, of by entering text matching content title."
@@ -840,93 +884,168 @@
 msgid "List of internal references"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/__init__.py:127
-#: ./src/pyams_content/shared/common/__init__.py:135
+#: ./src/pyams_content/shared/common/__init__.py:230
+#: ./src/pyams_content/shared/common/zmi/properties.py:66
+#: ./src/pyams_content/shared/common/zmi/manager.py:89
+msgid "Properties"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/__init__.py:144
+#: ./src/pyams_content/shared/common/__init__.py:152
 #, python-format
 msgid "{date} by {principal}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/review.py:210
-#, python-format
-msgid "A new comment was added on content « {0} »"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/review.py:167
+#: ./src/pyams_content/shared/common/__init__.py:253
 #, python-format
-msgid "[{service_name}] A content review is requested"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/search.py:83
+msgid "title length should be between 40 and 66 characters ({length} actually)"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/search.py:87
+#: ./src/pyams_content/root/zmi/search.py:85
 msgid "Quick search results"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:159
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:964
+#: ./src/pyams_content/shared/common/zmi/search.py:142
+#: ./src/pyams_content/shared/common/zmi/search.py:175
+#: ./src/pyams_content/root/zmi/search.py:140
+#: ./src/pyams_content/root/zmi/search.py:173
 msgid "Advanced search"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:248
+#: ./src/pyams_content/shared/common/zmi/search.py:267
+#: ./src/pyams_content/root/zmi/search.py:253
 msgid "Advanced search results"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:134
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:207
-msgid "Owner"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/search.py:137
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:144
-msgid "Status"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/search.py:141
-msgid "Created after..."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/search.py:144
-msgid "Created before..."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/search.py:147
-msgid "Modified after..."
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/search.py:150
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:226
+#: ./src/pyams_content/root/zmi/search.py:152
+msgid "Owner"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/search.py:153
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:150
+#: ./src/pyams_content/shared/site/zmi/container.py:345
+msgid "Status"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/search.py:157
+#: ./src/pyams_content/root/zmi/search.py:155
+msgid "Created after..."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/search.py:160
+#: ./src/pyams_content/root/zmi/search.py:158
+msgid "Created before..."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/search.py:163
+#: ./src/pyams_content/root/zmi/search.py:161
+msgid "Modified after..."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/search.py:166
+#: ./src/pyams_content/root/zmi/search.py:164
 msgid "Modified before..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/properties.py:55
+#: ./src/pyams_content/shared/common/zmi/properties.py:56
 msgid "Composition"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/properties.py:65
-#: ./src/pyams_content/shared/common/zmi/manager.py:90
-msgid "Properties"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/properties.py:76
+#: ./src/pyams_content/shared/common/zmi/properties.py:77
 msgid "Content properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/properties.py:115
-msgid "Publication settings"
+#: ./src/pyams_content/shared/common/zmi/types.py:62
+msgid "Data types"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:129
+msgid "Data type label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:167
+#: ./src/pyams_content/shared/common/zmi/types.py:409
+msgid "Default associations"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:188
+msgid "Content data types"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:242
+msgid "Add data type"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:253
+msgid "Add new data type"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:297
+msgid "Data type properties"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:372
+msgid "Subtype label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:474
+msgid "Add subtype"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:485
+msgid "Add new subtype"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:542
+msgid "Data subtype properties"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:105
+msgid "No currently defined data type."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:281
+msgid "Specified type name is already used!"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:513
+msgid "Specified subtype name is already used!"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:526
+msgid "Subtype was correctly added."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:139
+msgid "Click to see subtypes"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:209
+msgid "Given data type doesn't exist!"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/types.py:458
+msgid "Given data subtype doesn't exist!"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:115
-#: ./src/pyams_content/shared/common/zmi/workflow.py:200
-#: ./src/pyams_content/shared/common/zmi/workflow.py:245
-#: ./src/pyams_content/shared/common/zmi/workflow.py:303
-#: ./src/pyams_content/shared/common/zmi/workflow.py:383
-#: ./src/pyams_content/shared/common/zmi/workflow.py:443
-#: ./src/pyams_content/shared/common/zmi/workflow.py:488
-#: ./src/pyams_content/shared/common/zmi/workflow.py:534
-#: ./src/pyams_content/shared/common/zmi/workflow.py:582
-#: ./src/pyams_content/shared/common/zmi/workflow.py:627
-#: ./src/pyams_content/shared/common/zmi/workflow.py:673
-#: ./src/pyams_content/shared/common/zmi/workflow.py:726
-#: ./src/pyams_content/shared/common/zmi/__init__.py:250
+#: ./src/pyams_content/shared/common/zmi/workflow.py:202
+#: ./src/pyams_content/shared/common/zmi/workflow.py:247
+#: ./src/pyams_content/shared/common/zmi/workflow.py:306
+#: ./src/pyams_content/shared/common/zmi/workflow.py:395
+#: ./src/pyams_content/shared/common/zmi/workflow.py:456
+#: ./src/pyams_content/shared/common/zmi/workflow.py:501
+#: ./src/pyams_content/shared/common/zmi/workflow.py:547
+#: ./src/pyams_content/shared/common/zmi/workflow.py:595
+#: ./src/pyams_content/shared/common/zmi/workflow.py:640
+#: ./src/pyams_content/shared/common/zmi/workflow.py:686
+#: ./src/pyams_content/shared/common/zmi/workflow.py:739
+#: ./src/pyams_content/shared/common/zmi/__init__.py:272
 #: ./src/pyams_content/shared/common/zmi/owner.py:74
-#: ./src/pyams_content/shared/common/zmi/review.py:90
+#: ./src/pyams_content/features/review/zmi/__init__.py:90
 msgid "Cancel"
 msgstr ""
 
@@ -934,52 +1053,45 @@
 msgid "Request publication"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:171
-#: ./src/pyams_content/shared/common/zmi/workflow.py:170
-#: ./src/pyams_content/shared/common/zmi/workflow.py:273
-#: ./src/pyams_content/shared/common/zmi/workflow.py:414
-msgid "A comment is required"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/workflow.py:201
+#: ./src/pyams_content/shared/common/zmi/workflow.py:203
 #: ./src/pyams_content/workflow/__init__.py:310
 msgid "Cancel publication request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:246
+#: ./src/pyams_content/shared/common/zmi/workflow.py:248
 msgid "Refuse publication request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:304
+#: ./src/pyams_content/shared/common/zmi/workflow.py:307
 msgid "Publish"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:384
+#: ./src/pyams_content/shared/common/zmi/workflow.py:396
 msgid "Request retire"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:444
+#: ./src/pyams_content/shared/common/zmi/workflow.py:457
 msgid "Cancel retire request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:489
+#: ./src/pyams_content/shared/common/zmi/workflow.py:502
 msgid "Retire"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:535
+#: ./src/pyams_content/shared/common/zmi/workflow.py:548
 #: ./src/pyams_content/workflow/__init__.py:429
 msgid "Request archive"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:583
+#: ./src/pyams_content/shared/common/zmi/workflow.py:596
 msgid "Cancel archive request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:628
+#: ./src/pyams_content/shared/common/zmi/workflow.py:641
 msgid "Archive"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:674
+#: ./src/pyams_content/shared/common/zmi/workflow.py:687
 #: ./src/pyams_content/workflow/__init__.py:494
 #: ./src/pyams_content/workflow/__init__.py:506
 #: ./src/pyams_content/workflow/__init__.py:518
@@ -988,21 +1100,26 @@
 msgid "Create new version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:727
+#: ./src/pyams_content/shared/common/zmi/workflow.py:740
 #: ./src/pyams_content/workflow/__init__.py:554
 msgid "Delete version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:167
-#: ./src/pyams_content/shared/common/zmi/workflow.py:353
+#: ./src/pyams_content/shared/common/zmi/workflow.py:173
+#: ./src/pyams_content/shared/common/zmi/workflow.py:365
 msgid "Publication start date is required"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:750
+#: ./src/pyams_content/shared/common/zmi/workflow.py:276
+#: ./src/pyams_content/shared/common/zmi/workflow.py:427
+msgid "A comment is required"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/workflow.py:763
 msgid "Delete content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:759
+#: ./src/pyams_content/shared/common/zmi/workflow.py:772
 msgid "Delete definitively"
 msgstr ""
 
@@ -1018,39 +1135,31 @@
 msgid "{state} {date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:240
+#: ./src/pyams_content/shared/common/zmi/__init__.py:262
 msgid "Duplicate content..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:259
+#: ./src/pyams_content/shared/common/zmi/__init__.py:281
 msgid "Duplicate content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:80
+#: ./src/pyams_content/shared/common/zmi/__init__.py:85
 msgid "This title can be modified afterwards"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:251
+#: ./src/pyams_content/shared/common/zmi/__init__.py:273
 msgid "Duplicate this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:304
+#: ./src/pyams_content/shared/common/zmi/__init__.py:333
 #, python-format
 msgid "Clone created from version {source} of {oid} (in « {state} » state)"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:353
+#: ./src/pyams_content/shared/common/zmi/__init__.py:382
 msgid "Created or modified in this version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/preview.py:42
-msgid "Preview"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/preview.py:57
-msgid "Content preview"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/summary.py:51
 msgid "Display content summary"
 msgstr ""
@@ -1067,11 +1176,11 @@
 msgid "Publication and retire dates"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:141
+#: ./src/pyams_content/shared/common/zmi/summary.py:147
 msgid "Current version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:171
+#: ./src/pyams_content/shared/common/zmi/summary.py:177
 msgid "Content history"
 msgstr ""
 
@@ -1079,8 +1188,9 @@
 msgid "Associated comment"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:153
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:181
+#: ./src/pyams_content/shared/common/zmi/summary.py:159
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:193
+#: ./src/pyams_content/shared/site/zmi/container.py:365
 msgid "Version"
 msgstr ""
 
@@ -1089,38 +1199,38 @@
 msgid "{state} {date} by {principal}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:159
+#: ./src/pyams_content/shared/common/zmi/summary.py:165
 #, python-format
 msgid "{state} since {date}, by {principal}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:76
+#: ./src/pyams_content/shared/common/zmi/manager.py:75
 msgid "Tool management"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:100
+#: ./src/pyams_content/shared/common/zmi/manager.py:99
 msgid "Shared tool properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:120
+#: ./src/pyams_content/shared/common/zmi/manager.py:119
 msgid "WARNING"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:122
+#: ./src/pyams_content/shared/common/zmi/manager.py:121
 msgid ""
 "Workflow shouldn't be modified if this tool already contains any shared "
 "content!"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:145
+#: ./src/pyams_content/shared/common/zmi/manager.py:144
 msgid "Languages"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:156
+#: ./src/pyams_content/shared/common/zmi/manager.py:155
 msgid "Content languages"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:173
+#: ./src/pyams_content/shared/common/zmi/manager.py:172
 msgid ""
 "Tool languages are used to translate own tool properties, and newly created "
 "contents will propose these languages by default"
@@ -1160,345 +1270,292 @@
 msgid "Change owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:131
+#: ./src/pyams_content/shared/common/zmi/site.py:38
+#, python-format
+msgid ""
+"SEARCH - Between all contents published into &laquo;&nbsp;{site}&nbsp;&raquo;"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:134
 msgid "Unique ID"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:167
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:176
 msgid "Status date"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:192
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:208
 msgid "Status principal"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:221
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:245
 msgid "Last modification"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:239
-#: ./src/pyams_content/root/zmi/__init__.py:89
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:263
+#: ./src/pyams_content/root/zmi/__init__.py:91
 msgid "Dashboard"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:249
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:273
 msgid "Contents dashboard"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:283
-#: ./src/pyams_content/root/zmi/__init__.py:138
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:319
+#: ./src/pyams_content/root/zmi/__init__.py:140
 #, python-format
 msgid "MANAGER - {0} content waiting for your action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:284
-#: ./src/pyams_content/root/zmi/__init__.py:139
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:320
+#: ./src/pyams_content/root/zmi/__init__.py:141
 #, python-format
 msgid "MANAGER - {0} contents waiting for your action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:323
-#: ./src/pyams_content/root/zmi/__init__.py:181
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:360
+#: ./src/pyams_content/root/zmi/__init__.py:184
 #, python-format
 msgid "CONTRIBUTOR - {0} content waiting for action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:324
-#: ./src/pyams_content/root/zmi/__init__.py:182
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:361
+#: ./src/pyams_content/root/zmi/__init__.py:185
 #, python-format
 msgid "CONTRIBUTOR - {0} contents waiting for action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:354
-#: ./src/pyams_content/root/zmi/__init__.py:215
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:392
+#: ./src/pyams_content/root/zmi/__init__.py:219
 #, python-format
 msgid "CONTRIBUTOR - {0} modified content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:393
-#: ./src/pyams_content/root/zmi/__init__.py:256
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:433
+#: ./src/pyams_content/root/zmi/__init__.py:262
 msgid "My contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:408
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:448
 #: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:8
-#: ./src/pyams_content/root/zmi/__init__.py:271
+#: ./src/pyams_content/root/zmi/__init__.py:277
 #: ./src/pyams_content/root/zmi/templates/dashboard.pt:8
 msgid "My favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:417
-#: ./src/pyams_content/root/zmi/__init__.py:280
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:457
+#: ./src/pyams_content/root/zmi/__init__.py:286
 #, python-format
 msgid "CONTRIBUTOR - {0} favorite"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:418
-#: ./src/pyams_content/root/zmi/__init__.py:281
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:458
+#: ./src/pyams_content/root/zmi/__init__.py:287
 #, python-format
 msgid "CONTRIBUTOR - {0} favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:430
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:470
 #: ./src/pyams_content/shared/common/zmi/templates/header.pt:23
 msgid "Add/remove from favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:491
-#: ./src/pyams_content/root/zmi/__init__.py:317
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:533
+#: ./src/pyams_content/root/zmi/__init__.py:325
 msgid "Your favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:504
-#: ./src/pyams_content/root/zmi/__init__.py:330
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:546
+#: ./src/pyams_content/root/zmi/__init__.py:338
 msgid "My preparations"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:513
-#: ./src/pyams_content/root/zmi/__init__.py:339
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:555
+#: ./src/pyams_content/root/zmi/__init__.py:347
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:514
-#: ./src/pyams_content/root/zmi/__init__.py:340
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:556
+#: ./src/pyams_content/root/zmi/__init__.py:348
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:552
-#: ./src/pyams_content/root/zmi/__init__.py:377
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:595
+#: ./src/pyams_content/root/zmi/__init__.py:386
 msgid "Your prepared contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:565
-#: ./src/pyams_content/root/zmi/__init__.py:390
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:608
+#: ./src/pyams_content/root/zmi/__init__.py:399
 msgid "My submissions"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:574
-#: ./src/pyams_content/root/zmi/__init__.py:399
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:617
+#: ./src/pyams_content/root/zmi/__init__.py:408
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:575
-#: ./src/pyams_content/root/zmi/__init__.py:400
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:618
+#: ./src/pyams_content/root/zmi/__init__.py:409
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:613
-#: ./src/pyams_content/root/zmi/__init__.py:437
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:657
+#: ./src/pyams_content/root/zmi/__init__.py:447
 msgid "Your submitted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:626
-#: ./src/pyams_content/root/zmi/__init__.py:450
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:670
+#: ./src/pyams_content/root/zmi/__init__.py:460
 msgid "My publications"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:635
-#: ./src/pyams_content/root/zmi/__init__.py:459
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:679
+#: ./src/pyams_content/root/zmi/__init__.py:469
 #, python-format
 msgid "CONTRIBUTOR - {0} published content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:636
-#: ./src/pyams_content/root/zmi/__init__.py:460
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:680
+#: ./src/pyams_content/root/zmi/__init__.py:470
 #, python-format
 msgid "CONTRIBUTOR - {0} published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:674
-#: ./src/pyams_content/root/zmi/__init__.py:497
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:719
+#: ./src/pyams_content/root/zmi/__init__.py:508
 msgid "Your published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:687
-#: ./src/pyams_content/root/zmi/__init__.py:510
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:732
+#: ./src/pyams_content/root/zmi/__init__.py:521
 msgid "My retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:696
-#: ./src/pyams_content/root/zmi/__init__.py:519
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:741
+#: ./src/pyams_content/root/zmi/__init__.py:530
 #, python-format
 msgid "CONTRIBUTOR - {0} retired content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:697
-#: ./src/pyams_content/root/zmi/__init__.py:520
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:742
+#: ./src/pyams_content/root/zmi/__init__.py:531
 #, python-format
 msgid "CONTRIBUTOR - {0} retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:736
-#: ./src/pyams_content/root/zmi/__init__.py:558
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:782
+#: ./src/pyams_content/root/zmi/__init__.py:570
 msgid "Your retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:749
-#: ./src/pyams_content/root/zmi/__init__.py:571
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:795
+#: ./src/pyams_content/root/zmi/__init__.py:583
 msgid "My archived contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:758
-#: ./src/pyams_content/root/zmi/__init__.py:580
-#, python-format
-msgid "CONTRIBUTOR - {0} archived content"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:759
-#: ./src/pyams_content/root/zmi/__init__.py:581
-#, python-format
-msgid "CONTRIBUTOR - {0} archived contents"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:804
-#: ./src/pyams_content/root/zmi/__init__.py:625
+#: ./src/pyams_content/root/zmi/__init__.py:592
+#, python-format
+msgid "CONTRIBUTOR - {0} archived content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:805
+#: ./src/pyams_content/root/zmi/__init__.py:593
+#, python-format
+msgid "CONTRIBUTOR - {0} archived contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:851
+#: ./src/pyams_content/root/zmi/__init__.py:638
 msgid "Your archived contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:818
-#: ./src/pyams_content/root/zmi/__init__.py:639
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:865
+#: ./src/pyams_content/root/zmi/__init__.py:652
 msgid "Other interventions"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:833
-#: ./src/pyams_content/root/zmi/__init__.py:654
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:880
+#: ./src/pyams_content/root/zmi/__init__.py:667
 msgid "Last publications"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:842
-#: ./src/pyams_content/root/zmi/__init__.py:663
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:889
+#: ./src/pyams_content/root/zmi/__init__.py:676
 #, python-format
 msgid "CONTRIBUTORS - {0} published content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:887
-#: ./src/pyams_content/root/zmi/__init__.py:707
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:935
+#: ./src/pyams_content/root/zmi/__init__.py:721
 msgid "Last published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:900
-#: ./src/pyams_content/root/zmi/__init__.py:720
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:948
+#: ./src/pyams_content/root/zmi/__init__.py:734
 msgid "Last updates"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:909
-#: ./src/pyams_content/root/zmi/__init__.py:729
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:957
+#: ./src/pyams_content/root/zmi/__init__.py:743
 #, python-format
 msgid "CONTRIBUTORS - {0} updated content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:952
-#: ./src/pyams_content/root/zmi/__init__.py:771
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:1002
+#: ./src/pyams_content/root/zmi/__init__.py:787
 msgid "Last updated contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:359
-#: ./src/pyams_content/root/zmi/__init__.py:220
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:397
+#: ./src/pyams_content/root/zmi/__init__.py:224
 #, python-format
 msgid "CONTRIBUTOR - {0} modified contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:361
-#: ./src/pyams_content/root/zmi/__init__.py:222
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:399
+#: ./src/pyams_content/root/zmi/__init__.py:226
 #, python-format
 msgid "CONTRIBUTOR - Last {0} modified contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:847
-#: ./src/pyams_content/root/zmi/__init__.py:668
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:894
+#: ./src/pyams_content/root/zmi/__init__.py:681
 #, python-format
 msgid "CONTRIBUTORS - Last {0} published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:849
-#: ./src/pyams_content/root/zmi/__init__.py:670
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:896
+#: ./src/pyams_content/root/zmi/__init__.py:683
 msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:914
-#: ./src/pyams_content/root/zmi/__init__.py:734
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:962
+#: ./src/pyams_content/root/zmi/__init__.py:748
 #, python-format
 msgid "CONTRIBUTORS - Last {0} updated contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:916
-#: ./src/pyams_content/root/zmi/__init__.py:736
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:964
+#: ./src/pyams_content/root/zmi/__init__.py:750
 msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:159
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:296
+#, python-format
+msgid "SEARCH - Between all contents of type &laquo;&nbsp;{type}&nbsp;&raquo;"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:166
 #: ./src/pyams_content/shared/common/zmi/header.py:96
 msgid "Content publication start date is not passed yet"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/review.py:61
-msgid "Ask for review..."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:99
-msgid "Content review request"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:163
-msgid "Comments"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:183
-msgid "Review comments"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:212
-msgid "Add comment..."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:71
-msgid "Sought principals"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:72
-msgid "List of principals from which a review is requested"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:75
-msgid "Comment"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:76
-msgid "Comment associated with this request"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:79
-msgid "Notify all reviewers"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:80
-msgid ""
-"If 'yes', selected reviewers will be notified by mail of your request, even "
-"if they were already members of the reviewers group. Otherwise, only new "
-"reviewers will be notified"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:91
-msgid "Ask for content review"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:147
-msgid "Request successful. No new notification have been sent"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:266
-msgid "Message is mandatory!"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/review.py:139
-#, python-format
-msgid "Request successful. {count} new notification(s) have been sent"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/security.py:61
 msgid "Managers restrictions"
 msgstr ""
@@ -1545,23 +1602,23 @@
 msgid "since {date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:129
-msgid "access new version"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/header.py:141
+#: ./src/pyams_content/shared/common/zmi/header.py:128
 msgid "access published version"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/header.py:135
+msgid "access new version"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/header.py:145
 msgid "access waiting version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:150
+#: ./src/pyams_content/shared/common/zmi/header.py:156
 msgid "access retired version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:159
+#: ./src/pyams_content/shared/common/zmi/header.py:166
 msgid "access archived version"
 msgstr ""
 
@@ -1577,26 +1634,6 @@
 "request."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/review-comments.pt:32
-#: ./src/pyams_content/shared/common/zmi/templates/review-comments-json.pt:15
-#: ./src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:14
-msgid "Review query from"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-comments.pt:38
-#: ./src/pyams_content/shared/common/zmi/templates/review-comments-json.pt:21
-#: ./src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:20
-msgid "(as reviewer)"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-comments.pt:57
-msgid "Add a comment..."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-comments.pt:63
-msgid "Add comment"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/templates/header.pt:6
 msgid "Back to previous page"
 msgstr ""
@@ -1616,20 +1653,18 @@
 "again except by creating a new version."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:18
-msgid "SEARCH - Between all contents of type &laquo;&nbsp;${type}&nbsp;&raquo;"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:29
+#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:28
+#: ./src/pyams_content/root/zmi/templates/dashboard.pt:28
 msgid "Quick search..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:34
+#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:33
+#: ./src/pyams_content/root/zmi/templates/dashboard.pt:33
 msgid "Advanced search..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:47
-#: ./src/pyams_content/root/zmi/templates/dashboard.pt:23
+#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:46
+#: ./src/pyams_content/root/zmi/templates/dashboard.pt:46
 msgid "You are not actually concerned by any content."
 msgstr ""
 
@@ -1702,19 +1737,24 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:128
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:128
 msgid "Created between"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:140
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:166
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:140
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:166
 msgid "and"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:154
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:154
 msgid "Modified between"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:202
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:202
 msgid "Tab label"
 msgstr ""
 
@@ -1754,10 +1794,6 @@
 " again, or archived."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:22
-msgid "just now"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/templates/wf-cancel-propose-message.pt:1
 msgid ""
 "After canceling the request, you will be able to update the content again."
@@ -1775,44 +1811,6 @@
 "currently published version."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:4
-msgid "[${service_name}] You are requested for a content review"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:30
-msgid "Hello,"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:31
-msgid ""
-"You have been requested by ${sender}, contributor of « ${service_name} » "
-"website, to make a review of a content."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:36
-msgid "${sender} added the following message to his request:"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:41
-msgid ""
-"To review and comment this publication, please use the following link: "
-"${target}."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:44
-msgid "After reading this content, please use the « Comments » menu entry."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:45
-msgid ""
-"If you don't want to reply to this request, please contact ${sender} directly"
-" by replying to this mail."
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:47
-msgid "Thank you."
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/templates/wf-owner-warning.pt:1
 msgid ""
 "RECALL: you are not the owner of the content on which you are intervening."
@@ -1838,189 +1836,266 @@
 msgid "This content is already retired and not visible."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:58
-msgid "Workflow name"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:59
-msgid "Name of workflow utility used to manage tool contents"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:67
+#: ./src/pyams_content/shared/common/interfaces/types.py:35
+#: ./src/pyams_content/shared/form/zmi/field.py:158
+msgid "Name"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:36
+msgid "Name of this data type; must be unique between all data types"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:39
+#: ./src/pyams_content/shared/form/zmi/field.py:169
+#: ./src/pyams_content/shared/form/interfaces/__init__.py:57
+msgid "Label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:42
+msgid "Navigation label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:43
+msgid "Label used for navigation entries"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:46
+msgid "Tab-folder label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:47
+msgid "Label used to include into tab folder"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:50
+msgid "'See also' label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:51
+msgid ""
+"This label can be used when contents of this type will be displayed in a 'See"
+" also' entries block"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:55
+msgid "'Single value' label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:56
+msgid "Label given to this type when a single value is displayed"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:59
+msgid "'Link to list' label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:60
+msgid "Label used to display a link to a list of items of this type"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:63
+msgid "Next content label"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:64
+msgid "Label used to announce next date for this type"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:67
+msgid "Pictogram"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:68
+msgid "Image associated to this data type"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:81
+msgid "Field names"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/types.py:82
+msgid "List of fields associated with this data type"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:46
 #: ./src/pyams_content/root/interfaces/__init__.py:40
 msgid "Webmasters"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:68
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:47
 msgid "Webmasters can handle all contents, including published ones"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:72
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:51
 msgid "Pilots"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:73
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:52
 msgid ""
 "Pilots can handle tool configuration, manage access rules, grant users roles "
 "and manage managers restrictions"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:78
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:145
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:57
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:161
 msgid "Managers"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:79
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:146
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:58
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:162
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:84
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:151
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:63
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:167
 msgid "Contributors"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:85
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:64
 msgid "Contributors are users which are allowed to create new contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:96
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:87
+msgid "Workflow name"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:88
+msgid "Name of workflow utility used to manage tool contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:112
 msgid "Version creator"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:97
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:113
 msgid ""
 "Name of content's version creator. The creator of the first version is also "
 "it's owner."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:101
-msgid "First owner"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:102
-msgid "Name of content's first version owner"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:106
-msgid "Version creation"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:109
-msgid "Version modifiers"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:110
-msgid "List of principals who modified this content"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:113
-msgid "Last modifier"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:114
-msgid "Last principal who modified this content"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:117
-msgid "Last update"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:121
-msgid ""
-"The content's description is 'hidden' into HTML's page headers; but it can be"
-" seen, for example, in some search engines results as content's description"
+msgid "First owner"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:118
+msgid "Name of content's first version owner"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:122
+msgid "Version creation"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:125
+msgid "Version modifiers"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:126
-msgid "Keywords"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:127
-msgid "They will be included into HTML pages metadata"
+msgid "List of principals who modified this content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:129
+msgid "Last modifier"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:130
+msgid "Last principal who modified this content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:133
+msgid "Last update"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:137
+msgid ""
+"The content's description is 'hidden' into HTML's page headers; but it can be"
+" seen, for example, in some search engines results as content's description"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:142
+msgid "Keywords"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:143
+msgid "They will be included into HTML pages metadata"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:146
+#: ./src/pyams_content/shared/site/zmi/folder.py:71
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:57
 msgid "Notepad"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:131
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:147
+#: ./src/pyams_content/shared/site/zmi/folder.py:72
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:58
 msgid "Internal information to be known about this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:138
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:154
 msgid "Content owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:139
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:155
 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:152
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:168
 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:157
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:173
 msgid "Readers"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:158
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:174
 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:163
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:179
 msgid "Guests"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:164
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:180
 msgid ""
 "Guests are users which are allowed to view contents with restricted access"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:183
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:199
 msgid "Principal ID"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:188
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:204
 msgid "Restricted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:189
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:205
 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:194
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:210
 msgid "Selected owners"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:195
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:211
 msgid "Manager will have access to contents owned by these principals"
 msgstr ""
 
-#: ./src/pyams_content/shared/zmi/sites.py:59
-msgid "Site tree"
-msgstr ""
-
-#: ./src/pyams_content/shared/zmi/sites.py:69
-msgid "Blogs and shared sites"
-msgstr ""
-
-#: ./src/pyams_content/shared/zmi/sites.py:83
-msgid "Delete shared site"
-msgstr ""
-
-#: ./src/pyams_content/shared/zmi/sites.py:128
-msgid "Given site name doesn't exist!"
+#: ./src/pyams_content/shared/form/__init__.py:94
+msgid "Form fields"
+msgstr ""
+
+#: ./src/pyams_content/shared/form/__init__.py:95
+msgid "no field defined"
 msgstr ""
 
 #: ./src/pyams_content/shared/form/handler.py:85
@@ -2101,15 +2176,6 @@
 msgid "Switch field visibility"
 msgstr ""
 
-#: ./src/pyams_content/shared/form/zmi/field.py:158
-msgid "Name"
-msgstr ""
-
-#: ./src/pyams_content/shared/form/zmi/field.py:169
-#: ./src/pyams_content/shared/form/interfaces/__init__.py:57
-msgid "Label"
-msgstr ""
-
 #: ./src/pyams_content/shared/form/zmi/field.py:180
 #: ./src/pyams_content/shared/form/interfaces/__init__.py:52
 msgid "Field type"
@@ -2320,11 +2386,11 @@
 msgid "View internal references settings"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/zmi/templates/summary.pt:2
+#: ./src/pyams_content/shared/view/zmi/templates/preview.pt:2
 msgid "View result items"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/zmi/templates/summary.pt:3
+#: ./src/pyams_content/shared/view/zmi/templates/preview.pt:3
 msgid "WARNING: items displayed in this preview are out of context!!"
 msgstr ""
 
@@ -2350,7 +2416,7 @@
 
 #: ./src/pyams_content/shared/view/interfaces/__init__.py:40
 #: ./src/pyams_content/interfaces/__init__.py:111
-#: ./src/pyams_content/interfaces/review.py:67
+#: ./src/pyams_content/features/review/interfaces.py:74
 msgid "Creation date"
 msgstr ""
 
@@ -2426,21 +2492,25 @@
 msgid "Other terms"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/paragraph.py:37
-#: ./src/pyams_content/shared/imagemap/paragraph.py:49
+#: ./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
 msgid "Image map"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/zmi/paragraph.py:55
+#: ./src/pyams_content/shared/imagemap/__init__.py:149
+msgid "no area defined"
+msgstr ""
+
+#: ./src/pyams_content/shared/imagemap/zmi/paragraph.py:54
 msgid "Add image map..."
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/zmi/paragraph.py:66
+#: ./src/pyams_content/shared/imagemap/zmi/paragraph.py:65
 msgid "Add new image map"
 msgstr ""
 
-#: ./src/pyams_content/shared/imagemap/zmi/paragraph.py:96
+#: ./src/pyams_content/shared/imagemap/zmi/paragraph.py:95
 msgid "Edit paragraph properties"
 msgstr ""
 
@@ -2535,42 +2605,171 @@
 msgid "Reference to image map object"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/__init__.py:50
+#: ./src/pyams_content/shared/site/zmi/folder.py:54
+msgid "Add site folder..."
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:85
+msgid "Add site folder"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:64
+#: ./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:69
+msgid "Parent"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:68
+#: ./src/pyams_content/shared/site/zmi/link.py:70
+msgid "Folder's parent"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:137
+msgid "You must provide a folder name for default server language!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/__init__.py:52
+msgid "Add topic..."
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/__init__.py:73
+msgid "Add topic"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/__init__.py:62
+msgid "Topic's parent"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/link.py:60
+msgid "Rent content..."
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/link.py:79
+msgid "Rent existing content"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/link.py:140
+msgid "Edit content link properties"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:99
+#: ./src/pyams_content/shared/site/zmi/container.py:111
+#: ./src/pyams_content/shared/blog/zmi/manager.py:149
+msgid "Publication dates..."
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:122
+#: ./src/pyams_content/shared/blog/zmi/manager.py:160
+msgid "Update publication dates"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:171
+#: ./src/pyams_content/shared/site/zmi/container.py:181
+#: ./src/pyams_content/root/zmi/sites.py:67
+msgid "Site tree"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:248
+#: ./src/pyams_content/shared/site/zmi/container.py:146
+msgid "Visible element?"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:287
+msgid "Folders and topics"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:323
+#: ./src/pyams_content/root/zmi/sites.py:133
+msgid "OID"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:379
+msgid "Delete site item"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:296
+msgid "Click to open/close all folders"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:312
+msgid "Click to show/hide inner folders"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:531
+msgid "Given object name doesn't exist!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:79
+#: ./src/pyams_content/shared/site/zmi/manager.py:91
+msgid "Add site manager"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:90
+msgid "Site manager"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:121
+#: ./src/pyams_content/shared/blog/zmi/manager.py:115
+msgid "You must provide a short name for default server language!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:125
+msgid "Specified site manager name is already used!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:129
+msgid "A site manager is already registered with this name!!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:78
+msgid "Topic"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:99
+msgid "Content title, as shown in front-office"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:103
+msgid "If 'no', link is not visible"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:49
 msgid "This blog post"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/__init__.py:69
-#: ./src/pyams_content/shared/blog/zmi/__init__.py:79
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:68
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:78
 msgid "Add blog post"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/__init__.py:60
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:59
 #, python-format
 msgid "Blog post « {title} »"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:67
-#: ./src/pyams_content/shared/blog/zmi/manager.py:79
+#: ./src/pyams_content/shared/blog/zmi/manager.py:73
+#: ./src/pyams_content/shared/blog/zmi/manager.py:85
 msgid "Add blog manager"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:78
+#: ./src/pyams_content/shared/blog/zmi/manager.py:84
 msgid "Blog manager"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:105
-msgid "You must provide a short name for default server language!"
-msgstr ""
-
-#: ./src/pyams_content/shared/blog/zmi/manager.py:109
+#: ./src/pyams_content/shared/blog/zmi/manager.py:119
 msgid "Specified blog manager name is already used!"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/zmi/manager.py:113
+#: ./src/pyams_content/shared/blog/zmi/manager.py:123
 msgid "A blog manager is already registered with this name!!"
 msgstr ""
 
-#: ./src/pyams_content/shared/blog/interfaces/__init__.py:28
+#: ./src/pyams_content/shared/blog/interfaces/__init__.py:33
 msgid "Blog post"
 msgstr ""
 
@@ -2594,11 +2793,31 @@
 msgid "Default length used for inner tables and dashboards"
 msgstr ""
 
-#: ./src/pyams_content/root/zmi/__init__.py:75
+#: ./src/pyams_content/root/zmi/sites.py:77
+msgid "Blogs and shared sites"
+msgstr ""
+
+#: ./src/pyams_content/root/zmi/sites.py:108
+msgid "Visible site?"
+msgstr ""
+
+#: ./src/pyams_content/root/zmi/sites.py:151
+msgid "Delete shared site"
+msgstr ""
+
+#: ./src/pyams_content/root/zmi/sites.py:199
+msgid "Given site name doesn't exist!"
+msgstr ""
+
+#: ./src/pyams_content/root/zmi/search.py:148
+msgid "Content type"
+msgstr ""
+
+#: ./src/pyams_content/root/zmi/__init__.py:77
 msgid "Home"
 msgstr ""
 
-#: ./src/pyams_content/root/zmi/__init__.py:782
+#: ./src/pyams_content/root/zmi/__init__.py:798
 msgid "Content"
 msgstr ""
 
@@ -2606,6 +2825,10 @@
 msgid "Your contents dashboard"
 msgstr ""
 
+#: ./src/pyams_content/root/zmi/templates/dashboard.pt:18
+msgid "SEARCH - Between all contents"
+msgstr ""
+
 #: ./src/pyams_content/root/interfaces/__init__.py:36
 msgid "Site managers"
 msgstr ""
@@ -2928,7 +3151,7 @@
 msgid "Published version {0}"
 msgstr ""
 
-#: ./src/pyams_content/workflow/task.py:59
+#: ./src/pyams_content/workflow/task.py:61
 msgid "Automatic contents withdrawal:\n"
 msgstr ""
 
@@ -2948,10 +3171,6 @@
 msgid "WARNING: this key can't be modified after creation!!!"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/__init__.py:100
-msgid "Visible label used to display content"
-msgstr ""
-
 #: ./src/pyams_content/interfaces/__init__.py:103
 msgid "Short name"
 msgstr ""
@@ -2964,30 +3183,224 @@
 msgid "Modification date"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/review.py:32
+#: ./src/pyams_content/features/checker/interfaces.py:27
+#, python-format
+msgid " - {field}: <span class=\"text-danger\">no value</span>"
+msgstr ""
+
+#: ./src/pyams_content/features/checker/interfaces.py:28
+#, python-format
+msgid " - {field} ({lang}): <span class=\"text-danger\">no value</span>"
+msgstr ""
+
+#: ./src/pyams_content/features/checker/interfaces.py:29
+#, python-format
+msgid " - {field}: <span class=\"text-danger\">{message}</span>"
+msgstr ""
+
+#: ./src/pyams_content/features/checker/zmi/__init__.py:43
+msgid "Check content..."
+msgstr ""
+
+#: ./src/pyams_content/features/checker/zmi/__init__.py:55
+msgid "Content check"
+msgstr ""
+
+#: ./src/pyams_content/features/checker/zmi/__init__.py:79
+msgid "No checker available. This content is clean!"
+msgstr ""
+
+#: ./src/pyams_content/features/checker/zmi/__init__.py:75
+#, python-format
+msgid "{0}:"
+msgstr ""
+
+#: ./src/pyams_content/features/preview/zmi/__init__.py:42
+msgid "Preview"
+msgstr ""
+
+#: ./src/pyams_content/features/preview/zmi/__init__.py:57
+msgid "Content preview"
+msgstr ""
+
+#: ./src/pyams_content/features/review/__init__.py:186
+#, python-format
+msgid "Request comment: {comment}"
+msgstr ""
+
+#: ./src/pyams_content/features/review/__init__.py:216
+#, python-format
+msgid "A new comment was added on content « {0} »"
+msgstr ""
+
+#: ./src/pyams_content/features/review/__init__.py:173
+#, python-format
+msgid "[{service_name}] A content review is requested"
+msgstr ""
+
+#: ./src/pyams_content/features/review/interfaces.py:32
 msgid "Review request"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/review.py:33
+#: ./src/pyams_content/features/review/interfaces.py:33
 msgid "Reviewer comment"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/review.py:56
+#: ./src/pyams_content/features/review/interfaces.py:56
 msgid "Comment writer"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/review.py:59
+#: ./src/pyams_content/features/review/interfaces.py:59
+msgid "Content reviewers"
+msgstr ""
+
+#: ./src/pyams_content/features/review/interfaces.py:62
+msgid "Comment type"
+msgstr ""
+
+#: ./src/pyams_content/features/review/interfaces.py:67
 msgid "Comment body"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/review.py:62
-msgid "Comment type"
-msgstr ""
-
-#: ./src/pyams_content/interfaces/review.py:79
+#: ./src/pyams_content/features/review/interfaces.py:70
+msgid "Reviewer comment?"
+msgstr ""
+
+#: ./src/pyams_content/features/review/interfaces.py:86
 msgid "Reviewers list"
 msgstr ""
 
-#: ./src/pyams_content/interfaces/review.py:80
+#: ./src/pyams_content/features/review/interfaces.py:87
 msgid "List of principals which reviewed the comment"
 msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:61
+msgid "Ask for review..."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:99
+msgid "Content review request"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:167
+msgid "Comments"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:187
+msgid "Review comments"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:216
+msgid "Add comment..."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:71
+msgid "Sought principals"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:72
+msgid "List of principals from which a review is requested"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:75
+msgid "Comment"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:76
+msgid "Comment associated with this request"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:79
+msgid "Notify all reviewers"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:80
+msgid ""
+"If 'yes', selected reviewers will be notified by mail of your request, even "
+"if they were already members of the reviewers group. Otherwise, only new "
+"reviewers will be notified"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:91
+msgid "Ask for content review"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:149
+msgid "Request successful. No new notification have been sent"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:270
+msgid "Message is mandatory!"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/__init__.py:139
+#, python-format
+msgid "Request successful. {count} new notification(s) have been sent"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-comments.pt:32
+#: ./src/pyams_content/features/review/zmi/templates/review-comments-json.pt:15
+#: ./src/pyams_content/features/review/zmi/templates/review-add-comment.pt:14
+msgid "Review query from"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-comments.pt:38
+#: ./src/pyams_content/features/review/zmi/templates/review-comments-json.pt:21
+#: ./src/pyams_content/features/review/zmi/templates/review-add-comment.pt:20
+msgid "(as reviewer)"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-comments.pt:47
+#: ./src/pyams_content/features/review/zmi/templates/review-comments-json.pt:30
+msgid "Selected reviewers:"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-comments.pt:62
+msgid "Add a comment..."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-comments.pt:68
+msgid "Add comment"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-add-comment.pt:22
+msgid "just now"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:4
+msgid "[${service_name}] You are requested for a content review"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:30
+msgid "Hello,"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:31
+msgid ""
+"You have been requested by ${sender}, contributor of « ${service_name} » "
+"website, to make a review of a content."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:36
+msgid "${sender} added the following message to his request:"
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:41
+msgid ""
+"To review and comment this publication, please use the following link: "
+"${target}."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:44
+msgid "After reading this content, please use the « Comments » menu entry."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:45
+msgid ""
+"If you don't want to reply to this request, please contact ${sender} directly"
+" by replying to this mail."
+msgstr ""
+
+#: ./src/pyams_content/features/review/zmi/templates/review-notification.pt:47
+msgid "Thank you."
+msgstr ""
--- a/src/pyams_content/shared/common/interfaces/zmi.py	Fri Dec 08 10:57:36 2017 +0100
+++ b/src/pyams_content/shared/common/interfaces/zmi.py	Fri Dec 08 11:57:42 2017 +0100
@@ -22,16 +22,16 @@
 from zope.interface import Interface, Attribute
 
 
-class IDashboardTable(ITable):
-    """Base dashboard table marker interface"""
-
-
 class IDashboardSearchHeader(Interface):
     """Dashboard search header adapter"""
 
     title = Attribute("Header title")
 
 
+class IDashboardTable(ITable):
+    """Base dashboard table marker interface"""
+
+
 class ISharedToolDashboardTable(IDashboardTable):
     """Shared tool dashboard table marker interface"""