Added UserSkinnableContent as base class for site root
authorThierry Florac <thierry.florac@onf.fr>
Mon, 10 Oct 2016 15:24:45 +0200
changeset 56 eecb9a1e87aa
parent 55 912cb6d5314e
child 57 23ee41f44161
Added UserSkinnableContent as base class for site root
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/root/__init__.py
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	Mon Oct 10 11:46:32 2016 +0200
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Mon Oct 10 15:24:45 2016 +0200
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2016-03-23 16:37+0100\n"
+"POT-Creation-Date: 2016-08-09 17:26+0200\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -40,7 +40,7 @@
 msgid "Comment content"
 msgstr "Commenter un contenu"
 
-#: src/pyams_content/__init__.py:45 src/pyams_content/workflow/__init__.py:309
+#: src/pyams_content/__init__.py:45 src/pyams_content/workflow/__init__.py:317
 msgid "Publish content"
 msgstr "Publier le contenu"
 
@@ -106,12 +106,12 @@
 #: src/pyams_content/component/gallery/interfaces/__init__.py:86
 #: src/pyams_content/component/extfile/zmi/container.py:167
 #: src/pyams_content/component/extfile/interfaces/__init__.py:41
-#: src/pyams_content/component/paragraph/zmi/container.py:254
+#: src/pyams_content/component/paragraph/zmi/container.py:252
 #: src/pyams_content/component/paragraph/interfaces/__init__.py:46
-#: src/pyams_content/component/links/zmi/container.py:144
-#: src/pyams_content/component/links/interfaces/__init__.py:42
+#: src/pyams_content/component/links/zmi/container.py:145
+#: src/pyams_content/component/links/interfaces/__init__.py:43
 #: src/pyams_content/shared/common/zmi/dashboard.py:104
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:187
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
 #: src/pyams_content/interfaces/__init__.py:54
 msgid "Title"
 msgstr "Titre"
@@ -148,6 +148,7 @@
 msgstr "Supprimer l'image..."
 
 #: src/pyams_content/component/gallery/zmi/gallery.py:235
+#: src/pyams_content/shared/zmi/sites.py:124
 msgid "No provided object_name argument!"
 msgstr "Argument 'object_name' non fourni !"
 
@@ -191,8 +192,8 @@
 #: src/pyams_content/component/gallery/interfaces/__init__.py:49
 #: src/pyams_content/component/gallery/interfaces/__init__.py:90
 #: src/pyams_content/component/extfile/interfaces/__init__.py:45
-#: src/pyams_content/component/links/interfaces/__init__.py:46
-#: src/pyams_content/shared/common/interfaces/__init__.py:107
+#: src/pyams_content/component/links/interfaces/__init__.py:47
+#: src/pyams_content/shared/common/interfaces/__init__.py:113
 msgid "Description"
 msgstr "Description"
 
@@ -320,7 +321,7 @@
 
 #: src/pyams_content/component/extfile/zmi/container.py:111
 #: src/pyams_content/component/extfile/interfaces/__init__.py:101
-#: src/pyams_content/component/paragraph/zmi/container.py:203
+#: src/pyams_content/component/paragraph/zmi/container.py:201
 msgid "External files"
 msgstr "Fichiers joints"
 
@@ -375,39 +376,39 @@
 msgid "Quick preview"
 msgstr "Aperçu"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:65
+#: src/pyams_content/component/paragraph/zmi/container.py:63
 msgid "Paragraphs..."
 msgstr "Paragraphes..."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:81
+#: src/pyams_content/component/paragraph/zmi/container.py:79
 msgid "Paragraphs list"
 msgstr "Liste des paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:143
+#: src/pyams_content/component/paragraph/zmi/container.py:141
 msgid "Click and drag to sort paragraphs..."
 msgstr "Utilisez le glisser/déposer pour ordonner les paragraphes..."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:161
+#: src/pyams_content/component/paragraph/zmi/container.py:159
 msgid "Switch paragraph visibility"
 msgstr "Cliquez pour modifier la visibilité du paragraphe..."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:221
+#: src/pyams_content/component/paragraph/zmi/container.py:219
 msgid "Useful links"
 msgstr "Liens utiles"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:239
+#: src/pyams_content/component/paragraph/zmi/container.py:237
 msgid "Images galleries"
 msgstr "Galeries d'images"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:130
+#: src/pyams_content/component/paragraph/zmi/container.py:128
 msgid "No currently defined paragraph."
 msgstr "Aucun paragraphe associé à ce contenu."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:264
+#: src/pyams_content/component/paragraph/zmi/container.py:262
 msgid "Click to open/close all paragraphs editors"
 msgstr "Afficher/masquer tous les paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:281
+#: src/pyams_content/component/paragraph/zmi/container.py:279
 msgid "Click to open/close paragraph editor"
 msgstr "Afficher/masquer ce paragraphe"
 
@@ -514,35 +515,50 @@
 msgstr "Ajouter un lien interne"
 
 #: src/pyams_content/component/links/zmi/__init__.py:122
-#: src/pyams_content/component/links/zmi/__init__.py:227
-msgid "Edit link properties"
-msgstr "Modifier les propriétés d'un lien utile"
+msgid "Edit internal link properties"
+msgstr "Modifier les propriétés d'un lien interne"
 
 #: src/pyams_content/component/links/zmi/__init__.py:157
 msgid "Add external link"
 msgstr "Ajouter un lien externe"
 
 #: src/pyams_content/component/links/zmi/__init__.py:169
-msgid "Add new External link"
+msgid "Add new external link"
 msgstr "Ajouter un lien externe"
 
-#: src/pyams_content/component/links/zmi/container.py:63
+#: src/pyams_content/component/links/zmi/__init__.py:227
+msgid "Edit external link properties"
+msgstr "Modifier les propriétés d'un lien externe"
+
+#: src/pyams_content/component/links/zmi/__init__.py:263
+msgid "Add mailto link"
+msgstr "Ajouter un lien « mailto »"
+
+#: src/pyams_content/component/links/zmi/__init__.py:275
+msgid "Add new mailto link"
+msgstr "Ajouter un lien « mailto »"
+
+#: src/pyams_content/component/links/zmi/__init__.py:333
+msgid "Edit mailto link properties"
+msgstr "Modifier les propriétés d'un lien « mailto »"
+
+#: src/pyams_content/component/links/zmi/container.py:64
 msgid "Useful links..."
 msgstr "Liens utiles..."
 
-#: src/pyams_content/component/links/zmi/container.py:99
+#: src/pyams_content/component/links/zmi/container.py:100
 msgid "Useful links list"
 msgstr "Liste des liens utiles"
 
-#: src/pyams_content/component/links/zmi/container.py:156
+#: src/pyams_content/component/links/zmi/container.py:157
 msgid "Link target"
 msgstr "Cible du lien"
 
-#: src/pyams_content/component/links/zmi/container.py:199
+#: src/pyams_content/component/links/zmi/container.py:200
 msgid "Edit useful links links"
 msgstr "LIens utiles associés"
 
-#: src/pyams_content/component/links/zmi/container.py:136
+#: src/pyams_content/component/links/zmi/container.py:137
 msgid "No currently defined link."
 msgstr "Aucun lien utile asocié à ce contenu."
 
@@ -562,19 +578,23 @@
 msgid "Add external link..."
 msgstr "Ajouter un lien externe..."
 
-#: src/pyams_content/component/links/interfaces/__init__.py:43
+#: src/pyams_content/component/links/zmi/templates/widget-input.pt:26
+msgid "Add mailto link..."
+msgstr "Ajouter un lien « mailto »..."
+
+#: src/pyams_content/component/links/interfaces/__init__.py:44
 msgid "Link title, as shown in front-office"
 msgstr "Titre du lien, tel qu'affiché en front-office"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:47
+#: src/pyams_content/component/links/interfaces/__init__.py:48
 msgid "Link description displayed by front-office template"
 msgstr "Description du lien, affichée en front-office"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:60
+#: src/pyams_content/component/links/interfaces/__init__.py:61
 msgid "Internal reference"
 msgstr "Référence interne"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:61
+#: src/pyams_content/component/links/interfaces/__init__.py:62
 msgid ""
 "Internal link target reference. You can search a reference using '+' "
 "followed by internal number, of by entering text matching content title."
@@ -583,30 +603,49 @@
 "référence en utilisant le '+' suivi du numéro interne, ou en indiquant des "
 "mots contenus dans son titre..."
 
-#: src/pyams_content/component/links/interfaces/__init__.py:73
+#: src/pyams_content/component/links/interfaces/__init__.py:74
 msgid "Target URL"
 msgstr "URL cible"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:74
+#: src/pyams_content/component/links/interfaces/__init__.py:75
 msgid "URL used to access external resource"
 msgstr "URL utilisée pour accéder à cette ressource externe"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:77
+#: src/pyams_content/component/links/interfaces/__init__.py:78
 msgid "Language"
 msgstr "Langue"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:78
+#: src/pyams_content/component/links/interfaces/__init__.py:79
 msgid "Language used in this remote resource"
 msgstr "Langue utilisée pour cette ressource extene"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:96
+#: src/pyams_content/component/links/interfaces/__init__.py:90
+msgid "Target address"
+msgstr "Adresse mail"
+
+#: src/pyams_content/component/links/interfaces/__init__.py:91
+msgid "Target email address"
+msgstr ""
+"Adresse de messagerie \"stricte\" (uniquement \"xxx@yyy.com\") de la cible"
+
+#: src/pyams_content/component/links/interfaces/__init__.py:109
 msgid "Contained links"
 msgstr "Liens utiles"
 
-#: src/pyams_content/component/links/interfaces/__init__.py:97
+#: src/pyams_content/component/links/interfaces/__init__.py:110
 msgid "List of internal or external links linked to this object"
 msgstr "Liste des liens internes ou externes associés à cet objet"
 
+#: src/pyams_content/shared/common/review.py:204
+#, 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:161
+#, python-format
+msgid "[{service_name}] A content review is requested"
+msgstr "[{service_name}] Demande de relecture"
+
 #: src/pyams_content/shared/common/zmi/search.py:73
 msgid "Quick search results"
 msgstr "Résultats de la recherche rapide"
@@ -620,12 +659,12 @@
 msgstr "Résultats de la recherche avancée"
 
 #: src/pyams_content/shared/common/zmi/search.py:118
-#: src/pyams_content/shared/common/zmi/dashboard.py:185
+#: src/pyams_content/shared/common/zmi/dashboard.py:194
 msgid "Owner"
 msgstr "Propriétaire"
 
 #: src/pyams_content/shared/common/zmi/search.py:121
-#: src/pyams_content/shared/common/zmi/dashboard.py:144
+#: src/pyams_content/shared/common/zmi/dashboard.py:153
 msgid "Status"
 msgstr "Statut"
 
@@ -678,8 +717,9 @@
 #: src/pyams_content/shared/common/zmi/workflow.py:677
 #: src/pyams_content/shared/common/zmi/workflow.py:723
 #: src/pyams_content/shared/common/zmi/workflow.py:776
-#: src/pyams_content/shared/common/zmi/__init__.py:240
+#: src/pyams_content/shared/common/zmi/__init__.py:247
 #: src/pyams_content/shared/common/zmi/owner.py:74
+#: src/pyams_content/shared/common/zmi/review.py:90
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -688,7 +728,7 @@
 msgstr "Demander la publication"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:245
-#: src/pyams_content/workflow/__init__.py:255
+#: src/pyams_content/workflow/__init__.py:259
 msgid "Cancel publication request"
 msgstr "Annuler la demande de publication"
 
@@ -713,7 +753,7 @@
 msgstr "Retirer"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:573
-#: src/pyams_content/workflow/__init__.py:355
+#: src/pyams_content/workflow/__init__.py:371
 msgid "Request archive"
 msgstr "Demander l'archivage"
 
@@ -726,16 +766,16 @@
 msgstr "Archiver"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:724
-#: src/pyams_content/workflow/__init__.py:414
-#: src/pyams_content/workflow/__init__.py:426
-#: src/pyams_content/workflow/__init__.py:438
-#: src/pyams_content/workflow/__init__.py:450
-#: src/pyams_content/workflow/__init__.py:462
+#: src/pyams_content/workflow/__init__.py:436
+#: src/pyams_content/workflow/__init__.py:448
+#: src/pyams_content/workflow/__init__.py:460
+#: src/pyams_content/workflow/__init__.py:472
+#: src/pyams_content/workflow/__init__.py:484
 msgid "Create new version"
 msgstr "Créer une nouvelle version"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:777
-#: src/pyams_content/workflow/__init__.py:474
+#: src/pyams_content/workflow/__init__.py:496
 msgid "Delete version"
 msgstr "Supprimer cette version"
 
@@ -761,34 +801,34 @@
 msgstr "{state} | par {principal}"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:133
-#: src/pyams_content/workflow/__init__.py:529
-#: src/pyams_content/workflow/__init__.py:552
+#: src/pyams_content/workflow/__init__.py:551
+#: src/pyams_content/workflow/__init__.py:574
 #, python-format
 msgid "{state} {date}"
 msgstr "{state} {date}"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:230
+#: src/pyams_content/shared/common/zmi/__init__.py:237
 msgid "Duplicate content..."
 msgstr "Dupliquer le contenu..."
 
-#: src/pyams_content/shared/common/zmi/__init__.py:249
+#: src/pyams_content/shared/common/zmi/__init__.py:256
 msgid "Duplicate content"
 msgstr "Dupliquer ce contenu"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:78
+#: src/pyams_content/shared/common/zmi/__init__.py:79
 msgid "This title can be modified afterwards"
 msgstr "Le titre pourra être modifié ultérieurement"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:241
+#: src/pyams_content/shared/common/zmi/__init__.py:248
 msgid "Duplicate this content"
 msgstr "Dupliquer ce contenu"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:290
+#: src/pyams_content/shared/common/zmi/__init__.py:298
 #, python-format
 msgid "Duplicate content ({oid})"
 msgstr "Contenu dupliqué ({oid})"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:336
+#: src/pyams_content/shared/common/zmi/__init__.py:344
 msgid "Created or modified in this version"
 msgstr "Créé ou modifié dans cette version"
 
@@ -809,7 +849,7 @@
 msgstr "Historique de ce contenu"
 
 #: src/pyams_content/shared/common/zmi/summary.py:109
-#: src/pyams_content/shared/common/zmi/dashboard.py:133
+#: src/pyams_content/shared/common/zmi/dashboard.py:142
 msgid "Version"
 msgstr "Version"
 
@@ -854,7 +894,7 @@
 msgid "Change content's owner"
 msgstr "Changement de propriétaire"
 
-#: src/pyams_content/shared/common/zmi/owner.py:126
+#: src/pyams_content/shared/common/zmi/owner.py:131
 msgid ""
 "All versions of this content which are not archived will be transferred to "
 "newly selected owner"
@@ -884,274 +924,340 @@
 msgid "Change owner"
 msgstr "Changer le propriétaire"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:120
+#: src/pyams_content/shared/common/zmi/dashboard.py:129
 msgid "Unique ID"
 msgstr "N° IN"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:160
+#: src/pyams_content/shared/common/zmi/dashboard.py:169
 msgid "Status date"
 msgstr "En date du"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:172
+#: src/pyams_content/shared/common/zmi/dashboard.py:181
 msgid "Status principal"
 msgstr "Intervenant"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:197
+#: src/pyams_content/shared/common/zmi/dashboard.py:206
 msgid "Last modification"
 msgstr "Dernière modification"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:215
+#: src/pyams_content/shared/common/zmi/dashboard.py:224
 #: src/pyams_content/root/zmi/__init__.py:88
 msgid "Dashboard"
 msgstr "Tableau de bord"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:226
+#: src/pyams_content/shared/common/zmi/dashboard.py:235
 msgid "Contents dashboard"
 msgstr "Les contenus qui me concernent"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:260
+#: src/pyams_content/shared/common/zmi/dashboard.py:269
 #: src/pyams_content/root/zmi/__init__.py:134
 #, 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:261
+#: src/pyams_content/shared/common/zmi/dashboard.py:270
 #: src/pyams_content/root/zmi/__init__.py:135
 #, 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:302
+#: src/pyams_content/shared/common/zmi/dashboard.py:311
 #: src/pyams_content/root/zmi/__init__.py:179
 #, python-format
 msgid "CONTRIBUTOR - {0} content waiting for action"
 msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:303
+#: src/pyams_content/shared/common/zmi/dashboard.py:312
 #: src/pyams_content/root/zmi/__init__.py:180
 #, python-format
 msgid "CONTRIBUTOR - {0} contents waiting for action"
 msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:333
+#: src/pyams_content/shared/common/zmi/dashboard.py:342
 #: src/pyams_content/root/zmi/__init__.py:213
 #, python-format
 msgid "CONTRIBUTOR - {0} modified content"
-msgstr "CONTRIBUTEUR - {0} contenu retiré"
-
-#: src/pyams_content/shared/common/zmi/dashboard.py:372
+msgstr "CONTRIBUTEUR - {0} contenu modifié"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:381
 #: src/pyams_content/root/zmi/__init__.py:254
 msgid "My contents"
 msgstr "Tous mes contenus"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:387
+#: src/pyams_content/shared/common/zmi/dashboard.py:396
 #: src/pyams_content/root/zmi/__init__.py:269
 msgid "My favorites"
 msgstr "Mes favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:396
+#: src/pyams_content/shared/common/zmi/dashboard.py:405
 #: src/pyams_content/root/zmi/__init__.py:278
 #, python-format
 msgid "CONTRIBUTOR - {0} favorite"
 msgstr "CONTRIBUTEUR - {0} contenu favori"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:397
+#: src/pyams_content/shared/common/zmi/dashboard.py:406
 #: src/pyams_content/root/zmi/__init__.py:279
 #, python-format
 msgid "CONTRIBUTOR - {0} favorites"
 msgstr "CONTRIBUTEUR - {0} contenus favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:409
+#: src/pyams_content/shared/common/zmi/dashboard.py:418
 #: src/pyams_content/shared/common/zmi/templates/header.pt:24
 msgid "Add/remove from favorites"
 msgstr "Ajouter/enlever des favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:470
+#: src/pyams_content/shared/common/zmi/dashboard.py:479
 #: src/pyams_content/root/zmi/__init__.py:315
 msgid "Your favorites"
 msgstr "Mes favoris"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:483
+#: src/pyams_content/shared/common/zmi/dashboard.py:492
 #: src/pyams_content/root/zmi/__init__.py:328
 msgid "My preparations"
 msgstr "Mes préparations"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:492
+#: src/pyams_content/shared/common/zmi/dashboard.py:501
 #: src/pyams_content/root/zmi/__init__.py:337
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared content"
 msgstr "CONTRIBUTEUR - {0} contenu en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:493
+#: src/pyams_content/shared/common/zmi/dashboard.py:502
 #: src/pyams_content/root/zmi/__init__.py:338
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared contents"
 msgstr "CONTRIBUTEUR - {0} contenus en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:532
+#: src/pyams_content/shared/common/zmi/dashboard.py:541
 #: src/pyams_content/root/zmi/__init__.py:375
 msgid "Your prepared contents"
 msgstr "Mes contenus en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:545
+#: src/pyams_content/shared/common/zmi/dashboard.py:554
 #: src/pyams_content/root/zmi/__init__.py:388
 msgid "My submissions"
 msgstr "Mes soumissions"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:554
+#: src/pyams_content/shared/common/zmi/dashboard.py:563
 #: src/pyams_content/root/zmi/__init__.py:397
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted content"
 msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:555
+#: src/pyams_content/shared/common/zmi/dashboard.py:564
 #: src/pyams_content/root/zmi/__init__.py:398
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted contents"
 msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:594
+#: src/pyams_content/shared/common/zmi/dashboard.py:603
 #: src/pyams_content/root/zmi/__init__.py:435
 msgid "Your submitted contents"
 msgstr "Mes contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:607
+#: src/pyams_content/shared/common/zmi/dashboard.py:616
 #: src/pyams_content/root/zmi/__init__.py:448
 msgid "My publications"
 msgstr "Mes publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:616
+#: src/pyams_content/shared/common/zmi/dashboard.py:625
 #: src/pyams_content/root/zmi/__init__.py:457
 #, python-format
 msgid "CONTRIBUTOR - {0} published content"
 msgstr "CONTRIBUTEUR - {0} contenu publié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:617
+#: src/pyams_content/shared/common/zmi/dashboard.py:626
 #: src/pyams_content/root/zmi/__init__.py:458
 #, python-format
 msgid "CONTRIBUTOR - {0} published contents"
 msgstr "CONTRIBUTEUR - {0} contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:656
+#: src/pyams_content/shared/common/zmi/dashboard.py:665
 #: src/pyams_content/root/zmi/__init__.py:495
 msgid "Your published contents"
 msgstr "Mes contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:669
+#: src/pyams_content/shared/common/zmi/dashboard.py:678
 #: src/pyams_content/root/zmi/__init__.py:508
 msgid "My retired contents"
 msgstr "Mes contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:678
+#: src/pyams_content/shared/common/zmi/dashboard.py:687
 #: src/pyams_content/root/zmi/__init__.py:517
 #, python-format
 msgid "CONTRIBUTOR - {0} retired content"
 msgstr "CONTRIBUTEUR - {0} contenu retiré"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:679
+#: src/pyams_content/shared/common/zmi/dashboard.py:688
 #: src/pyams_content/root/zmi/__init__.py:518
 #, python-format
 msgid "CONTRIBUTOR - {0} retired contents"
 msgstr "CONTRIBUTEUR - {0} contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:719
+#: src/pyams_content/shared/common/zmi/dashboard.py:728
 #: src/pyams_content/root/zmi/__init__.py:556
 msgid "Your retired contents"
 msgstr "Mes contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:732
+#: src/pyams_content/shared/common/zmi/dashboard.py:741
 #: src/pyams_content/root/zmi/__init__.py:569
 msgid "My archived contents"
 msgstr "Mes contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:741
+#: src/pyams_content/shared/common/zmi/dashboard.py:750
 #: src/pyams_content/root/zmi/__init__.py:578
 #, python-format
 msgid "CONTRIBUTOR - {0} archived content"
 msgstr "CONTRIBUTEUR - {0} contenu archivé"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:742
+#: src/pyams_content/shared/common/zmi/dashboard.py:751
 #: src/pyams_content/root/zmi/__init__.py:579
 #, python-format
 msgid "CONTRIBUTOR - {0} archived contents"
 msgstr "CONTRIBUTEUR - {0} contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:788
+#: src/pyams_content/shared/common/zmi/dashboard.py:797
 #: src/pyams_content/root/zmi/__init__.py:623
 msgid "Your archived contents"
 msgstr "Mes contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:802
+#: src/pyams_content/shared/common/zmi/dashboard.py:811
 #: src/pyams_content/root/zmi/__init__.py:637
 msgid "Other interventions"
 msgstr "Toutes les interventions"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:817
+#: src/pyams_content/shared/common/zmi/dashboard.py:826
 #: src/pyams_content/root/zmi/__init__.py:652
 msgid "Last publications"
 msgstr "Dernières publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:826
+#: src/pyams_content/shared/common/zmi/dashboard.py:835
 #: src/pyams_content/root/zmi/__init__.py:661
 #, python-format
 msgid "CONTRIBUTORS - {0} published content"
 msgstr "TOUS CONTRIBUTEURS - {0} contenu publié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:872
+#: src/pyams_content/shared/common/zmi/dashboard.py:881
 #: src/pyams_content/root/zmi/__init__.py:705
 msgid "Last published contents"
 msgstr "Derniers contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:885
+#: src/pyams_content/shared/common/zmi/dashboard.py:894
 #: src/pyams_content/root/zmi/__init__.py:718
 msgid "Last updates"
 msgstr "Dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:894
+#: src/pyams_content/shared/common/zmi/dashboard.py:903
 #: src/pyams_content/root/zmi/__init__.py:727
 #, python-format
 msgid "CONTRIBUTORS - {0} updated content"
 msgstr "TOUS CONTRIBUTEURS - {0} contenu modifié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:938
+#: src/pyams_content/shared/common/zmi/dashboard.py:947
 #: src/pyams_content/root/zmi/__init__.py:769
 msgid "Last updated contents"
 msgstr "Derniers contenus modifiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:338
+#: src/pyams_content/shared/common/zmi/dashboard.py:347
 #: src/pyams_content/root/zmi/__init__.py:218
 #, python-format
 msgid "CONTRIBUTOR - {0} modified contents"
 msgstr "CONTRIBUTEUR - {0} contenus modifiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:340
+#: src/pyams_content/shared/common/zmi/dashboard.py:349
 #: src/pyams_content/root/zmi/__init__.py:220
 #, python-format
 msgid "CONTRIBUTOR - Last {0} modified contents"
 msgstr "CONTRIBUTEUR - Les {0} dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:831
+#: src/pyams_content/shared/common/zmi/dashboard.py:840
 #: src/pyams_content/root/zmi/__init__.py:666
 #, python-format
 msgid "CONTRIBUTORS - Last {0} published contents"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:833
+#: src/pyams_content/shared/common/zmi/dashboard.py:842
 #: src/pyams_content/root/zmi/__init__.py:668
 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:899
+#: src/pyams_content/shared/common/zmi/dashboard.py:908
 #: src/pyams_content/root/zmi/__init__.py:732
 #, python-format
 msgid "CONTRIBUTORS - Last {0} updated contents"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:901
+#: src/pyams_content/shared/common/zmi/dashboard.py:910
 #: src/pyams_content/root/zmi/__init__.py:734
 msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
 msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications"
 
+#: 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:158
+msgid "Comments"
+msgstr "Commentaires"
+
+#: src/pyams_content/shared/common/zmi/review.py:178
+msgid "Review comments"
+msgstr "Commentaires des relecteurs"
+
+#: 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:144
+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:248
+msgid "Message is mandatory!"
+msgstr "Un commentaire est obligatoire !"
+
+#: src/pyams_content/shared/common/zmi/review.py:138
+#, 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"
@@ -1183,21 +1289,21 @@
 "autorisé à gérer. Si vous indiquez plusieurs critères, il pourra gérer les "
 "contenus pour lesquels au moins l'un des critères correspond."
 
-#: src/pyams_content/shared/common/zmi/header.py:67
+#: src/pyams_content/shared/common/zmi/header.py:84
 #, python-format
 msgid "{state} by {principal}"
 msgstr "{state} par {principal}"
 
-#: src/pyams_content/shared/common/zmi/header.py:91
+#: src/pyams_content/shared/common/zmi/header.py:108
 #, python-format
 msgid "since {date}"
 msgstr "depuis {date}"
 
-#: src/pyams_content/shared/common/zmi/header.py:100
+#: src/pyams_content/shared/common/zmi/header.py:117
 msgid "access new version"
 msgstr "accéder à la nouvelle version en préparation"
 
-#: src/pyams_content/shared/common/zmi/header.py:109
+#: src/pyams_content/shared/common/zmi/header.py:126
 msgid "access published version"
 msgstr "accéder à la version en ligne"
 
@@ -1217,6 +1323,14 @@
 "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:43
+msgid "Add a comment..."
+msgstr "Ajouter un commentaire..."
+
+#: src/pyams_content/shared/common/zmi/templates/review-comments.pt:49
+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"
@@ -1341,20 +1455,20 @@
 "Un numéro unique lui sera également attribué ; ce numéro sera conservé "
 "pendant toute la vie du contenu, quelle que soit la version."
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:127
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:128
 msgid "Created between"
 msgstr "Créé entre le"
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:139
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:165
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:140
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:166
 msgid "and"
 msgstr "et le"
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:153
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:154
 msgid "Modified between"
 msgstr "Modifié entre le"
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:201
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:202
 msgid "Tab label"
 msgstr "Libellé de l'onglet"
 
@@ -1403,6 +1517,10 @@
 "Après ce retrait, il ne sera plus visible des internautes. Il pourra par "
 "contre être modifié, pour être publié à nouveau, ou archivé."
 
+#: src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:11
+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."
@@ -1416,6 +1534,36 @@
 "Cette version de ce contenu va être définitivement supprimée. Seule la "
 "version actuellement publiée sera conservée."
 
+#: 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:12
+msgid "Hello,"
+msgstr "Bonjour,"
+
+#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:13
+msgid ""
+"You have been requested by ${sender} to make a review of a content called « "
+"${title} » which has been created on publication platform « ${service_name} "
+"»."
+msgstr ""
+"Vous avez été sollicité par ${sender} pour relire un contenu intitulé « "
+"${title} » qui a été créé sur la plate-forme de publication appelée « "
+"${service_name} »."
+
+#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:19
+msgid "Comment associated with this request is:"
+msgstr "Le commentaire associé à cette demande est le suivant :"
+
+#: src/pyams_content/shared/common/zmi/templates/review-notification.pt:21
+msgid ""
+"To review and comment this publication, please use the following link: "
+"${target}"
+msgstr ""
+"Pour relire et commenter cette publication, veuillez utiliser le lien "
+"suivant : ${target}"
+
 #: 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."
@@ -1443,30 +1591,30 @@
 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:51
+#: src/pyams_content/shared/common/interfaces/__init__.py:57
 msgid "Workflow name"
 msgstr "Nom du workflow"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:52
+#: src/pyams_content/shared/common/interfaces/__init__.py:58
 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:60
+#: src/pyams_content/shared/common/interfaces/__init__.py:66
 #: src/pyams_content/root/interfaces/__init__.py:40
 msgid "Webmasters"
 msgstr "Webmestres"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:61
+#: src/pyams_content/shared/common/interfaces/__init__.py:67
 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"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:65
+#: src/pyams_content/shared/common/interfaces/__init__.py:71
 msgid "Pilots"
 msgstr "Pilotes"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:66
+#: src/pyams_content/shared/common/interfaces/__init__.py:72
 msgid ""
 "Pilots can handle tool configuration, manage access rules, grant users roles "
 "and manage managers restrictions"
@@ -1475,13 +1623,13 @@
 "les responsables et les contributeurs, et peuvent gérer les restrictions "
 "d'accès des contributeurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:71
-#: src/pyams_content/shared/common/interfaces/__init__.py:132
+#: src/pyams_content/shared/common/interfaces/__init__.py:77
+#: src/pyams_content/shared/common/interfaces/__init__.py:138
 msgid "Managers"
 msgstr "Responsables"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:72
-#: src/pyams_content/shared/common/interfaces/__init__.py:133
+#: src/pyams_content/shared/common/interfaces/__init__.py:78
+#: src/pyams_content/shared/common/interfaces/__init__.py:139
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
@@ -1490,20 +1638,20 @@
 "(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:77
-#: src/pyams_content/shared/common/interfaces/__init__.py:138
+#: src/pyams_content/shared/common/interfaces/__init__.py:83
+#: src/pyams_content/shared/common/interfaces/__init__.py:144
 msgid "Contributors"
 msgstr "Contributeurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:78
+#: src/pyams_content/shared/common/interfaces/__init__.py:84
 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:89
+#: src/pyams_content/shared/common/interfaces/__init__.py:95
 msgid "Version creator"
 msgstr "À l'origine de cette version"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:90
+#: src/pyams_content/shared/common/interfaces/__init__.py:96
 msgid ""
 "Name of content's version creator. The creator of the first version is also "
 "it's owner."
@@ -1511,31 +1659,31 @@
 "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:94
+#: src/pyams_content/shared/common/interfaces/__init__.py:100
 msgid "First owner"
 msgstr "Premier propriétaire"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:95
+#: src/pyams_content/shared/common/interfaces/__init__.py:101
 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:99
+#: src/pyams_content/shared/common/interfaces/__init__.py:105
 msgid "Version modifiers"
 msgstr "Intervenants"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:100
+#: src/pyams_content/shared/common/interfaces/__init__.py:106
 msgid "List of principals who modified this content"
 msgstr "Liste des utilisateurs qui sont intervenus sur ce contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:103
+#: src/pyams_content/shared/common/interfaces/__init__.py:109
 msgid "Last modifier"
 msgstr "Dernier intervenant"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:104
+#: src/pyams_content/shared/common/interfaces/__init__.py:110
 msgid "Last principal who modified this content"
 msgstr "Dernier utilisateur étant intervenu sur ce contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:108
+#: src/pyams_content/shared/common/interfaces/__init__.py:114
 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"
@@ -1544,29 +1692,29 @@
 "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:113
+#: src/pyams_content/shared/common/interfaces/__init__.py:119
 msgid "Keywords"
 msgstr "Mots-clés"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:114
+#: src/pyams_content/shared/common/interfaces/__init__.py:120
 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:117
+#: src/pyams_content/shared/common/interfaces/__init__.py:123
 msgid "Notepad"
 msgstr "Bloc-notes"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:118
+#: src/pyams_content/shared/common/interfaces/__init__.py:124
 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:125
+#: src/pyams_content/shared/common/interfaces/__init__.py:131
 msgid "Content owner"
 msgstr "Propriétaire"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:126
+#: src/pyams_content/shared/common/interfaces/__init__.py:132
 msgid ""
 "The owner is the creator of content's first version, except if it was "
 "transferred afterwards to another owner"
@@ -1575,7 +1723,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:139
+#: src/pyams_content/shared/common/interfaces/__init__.py:145
 msgid ""
 "Contributors are users which are allowed to update this content in addition "
 "to it's owner"
@@ -1583,11 +1731,11 @@
 "Les contributeurs sont autorisés, en plus du propriétaire, à modifier ce "
 "contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:144
+#: src/pyams_content/shared/common/interfaces/__init__.py:150
 msgid "Readers"
 msgstr "Relecteurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:145
+#: src/pyams_content/shared/common/interfaces/__init__.py:151
 msgid ""
 "Readers are users which are asked to verify and comment contents before they "
 "are published"
@@ -1595,26 +1743,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:150
+#: src/pyams_content/shared/common/interfaces/__init__.py:156
 msgid "Guests"
 msgstr "Invités"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:151
+#: src/pyams_content/shared/common/interfaces/__init__.py:157
 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:170
+#: src/pyams_content/shared/common/interfaces/__init__.py:176
 msgid "Principal ID"
 msgstr "ID utilisateur"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:175
+#: src/pyams_content/shared/common/interfaces/__init__.py:181
 msgid "Restricted contents"
 msgstr "Accès restreints"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:176
+#: src/pyams_content/shared/common/interfaces/__init__.py:182
 msgid ""
 "If 'yes', this manager will get restricted access to manage contents based "
 "on selected settings"
@@ -1622,16 +1770,32 @@
 "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:181
+#: src/pyams_content/shared/common/interfaces/__init__.py:187
 msgid "Selected owners"
 msgstr "Propriétaires"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:182
+#: src/pyams_content/shared/common/interfaces/__init__.py:188
 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/news/zmi/properties.py:38
 msgid "Publication settings"
 msgstr "Paramètres de publication"
@@ -1685,6 +1849,45 @@
 "au-delà de cette date, mais restera accessible via le moteur de recherche (à "
 "la différence des contenus retirés ou archivés)"
 
+#: src/pyams_content/shared/blog/zmi/__init__.py:50
+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
+msgid "Add blog post"
+msgstr "Ajouter un article"
+
+#: src/pyams_content/shared/blog/zmi/__init__.py:60
+#, 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
+msgid "Add blog manager"
+msgstr "Ajouter un blog"
+
+#: src/pyams_content/shared/blog/zmi/manager.py:78
+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
+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
+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
+msgid "Blog post"
+msgstr "Article de blog"
+
 #: src/pyams_content/profile/zmi/__init__.py:40
 msgid "Admin. profile"
 msgstr "Profil d'admin."
@@ -1731,11 +1934,15 @@
 "Tous les utilisateurs auxquels sera attribué un rôle seront placés dans ce "
 "groupe"
 
-#: src/pyams_content/zmi/viewlet/toplinks/__init__.py:45
+#: src/pyams_content/zmi/viewlet/toplinks/__init__.py:47
+msgid "Shared sites"
+msgstr "Sites et blogs"
+
+#: src/pyams_content/zmi/viewlet/toplinks/__init__.py:65
 msgid "Shared contents"
 msgstr "Contenus partagés"
 
-#: src/pyams_content/zmi/viewlet/toplinks/__init__.py:63
+#: src/pyams_content/zmi/viewlet/toplinks/__init__.py:85
 msgid "My roles"
 msgstr "Mes rôles"
 
@@ -1820,19 +2027,19 @@
 msgstr "Création du brouillon"
 
 #: src/pyams_content/workflow/__init__.py:229
-#: src/pyams_content/workflow/__init__.py:242
+#: src/pyams_content/workflow/__init__.py:244
 msgid "Propose publication"
 msgstr "Demander la publication"
 
 #: src/pyams_content/workflow/__init__.py:236
-#: src/pyams_content/workflow/__init__.py:249
+#: src/pyams_content/workflow/__init__.py:251
 msgid "Publication request"
 msgstr "Demande de publication"
 
 #: src/pyams_content/workflow/__init__.py:237
-#: src/pyams_content/workflow/__init__.py:250
-#: src/pyams_content/workflow/__init__.py:328
-#: src/pyams_content/workflow/__init__.py:362
+#: src/pyams_content/workflow/__init__.py:252
+#: src/pyams_content/workflow/__init__.py:338
+#: src/pyams_content/workflow/__init__.py:378
 msgid ""
 "content managers authorized to take charge of your content are going to be "
 "notified of your request."
@@ -1840,130 +2047,186 @@
 "les responsables habilités à prendre en charge votre demande vont être "
 "sollicités."
 
-#: src/pyams_content/workflow/__init__.py:262
-msgid "Publication request canceled"
-msgstr "Annulation de la demande de publication"
+#: src/pyams_content/workflow/__init__.py:240
+#, python-format
+msgid "A publication request has been submitted for content « {0} »"
+msgstr "Une demande de publication a été soumise pour le contenu « {0} »"
+
+#: src/pyams_content/workflow/__init__.py:255
+#, python-format
+msgid "A new publication request has been submitted for content « {0} »"
+msgstr ""
+"Une demande de nouvelle publication a été soumise pour le contenu « {0} »"
 
 #: src/pyams_content/workflow/__init__.py:266
+msgid "Publication request canceled"
+msgstr "Annulation de la demande de publication"
+
+#: src/pyams_content/workflow/__init__.py:268
+#, python-format
+msgid "The publication request for content « {0} » has been cancelled"
+msgstr "La demande de publication du contenu « {0} » a été annulée"
+
+#: src/pyams_content/workflow/__init__.py:272
 msgid "Reset canceled publication to draft"
 msgstr "Retour automatique en statut 'brouillon'"
 
-#: src/pyams_content/workflow/__init__.py:270
-#: src/pyams_content/workflow/__init__.py:297
+#: src/pyams_content/workflow/__init__.py:276
+#: src/pyams_content/workflow/__init__.py:305
 msgid "State reset to 'draft' (automatic)"
 msgstr "Retour automatique en statut 'brouillon'"
 
-#: src/pyams_content/workflow/__init__.py:274
+#: src/pyams_content/workflow/__init__.py:280
 msgid "Reset canceled publication to retired"
 msgstr "Retour automatique en statut 'retiré'"
 
-#: src/pyams_content/workflow/__init__.py:278
+#: src/pyams_content/workflow/__init__.py:284
 msgid "State reset to 'retired' (automatic)"
 msgstr "Retour automatique en statut 'retiré'"
 
-#: src/pyams_content/workflow/__init__.py:282
+#: src/pyams_content/workflow/__init__.py:288
 msgid "Refuse publication"
 msgstr "Refuser la publication"
 
-#: src/pyams_content/workflow/__init__.py:289
+#: src/pyams_content/workflow/__init__.py:295
 msgid "Publication refused"
 msgstr "Refus de publication"
 
-#: src/pyams_content/workflow/__init__.py:293
+#: src/pyams_content/workflow/__init__.py:297
+#, python-format
+msgid "The publication request for content « {0} » has been refused"
+msgstr "La publication du contenu « {0} » a été refusée"
+
+#: src/pyams_content/workflow/__init__.py:301
 msgid "Reset refused publication to draft"
 msgstr "Publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:301
+#: src/pyams_content/workflow/__init__.py:309
 msgid "Reset refused publication to retired"
 msgstr "Publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:305
+#: src/pyams_content/workflow/__init__.py:313
 msgid "State reset to 'refused' (automatic)"
 msgstr "Retour automatique en status 'refusé'"
 
-#: src/pyams_content/workflow/__init__.py:317
+#: src/pyams_content/workflow/__init__.py:325
 msgid "Content published"
 msgstr "Publication"
 
-#: src/pyams_content/workflow/__init__.py:321
+#: src/pyams_content/workflow/__init__.py:327
+#, python-format
+msgid "The content « {0} » has been published"
+msgstr "Le contenu « {0} » a été publié"
+
+#: src/pyams_content/workflow/__init__.py:331
 msgid "Request retiring"
 msgstr "Demander le retrait"
 
-#: src/pyams_content/workflow/__init__.py:327
+#: src/pyams_content/workflow/__init__.py:337
 msgid "Retire request"
 msgstr "Demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:333
+#: src/pyams_content/workflow/__init__.py:341
+#, python-format
+msgid "A retire request has been submitted for content « {0} »"
+msgstr "Une demande de retrait a été soumise pour le contenu « {0} »"
+
+#: src/pyams_content/workflow/__init__.py:345
 msgid "Cancel retiring request"
 msgstr "Annuler la demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:340
+#: src/pyams_content/workflow/__init__.py:352
 msgid "Retire request canceled"
 msgstr "Annulation de la demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:344
+#: src/pyams_content/workflow/__init__.py:354
+#, python-format
+msgid "The retiring request for content « {0} » has been cancelled"
+msgstr "La demande de retrait du contenu « {0} » a été annulée"
+
+#: src/pyams_content/workflow/__init__.py:358
 msgid "Retire content"
 msgstr "Retirer"
 
-#: src/pyams_content/workflow/__init__.py:351
+#: src/pyams_content/workflow/__init__.py:365
 msgid "Content retired"
 msgstr "Retrait"
 
-#: src/pyams_content/workflow/__init__.py:361
+#: src/pyams_content/workflow/__init__.py:367
+#, python-format
+msgid "The content « {0} » has been retired"
+msgstr "Le contenu « {0} » a été retiré"
+
+#: src/pyams_content/workflow/__init__.py:377
 msgid "Archive request"
 msgstr "Demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:367
+#: src/pyams_content/workflow/__init__.py:381
+#, python-format
+msgid "An archive request has been submitted for content « {0} »"
+msgstr "Une demande d'archivage a été soumise pour le contenu « {0} »"
+
+#: src/pyams_content/workflow/__init__.py:385
 msgid "Cancel archiving request"
 msgstr "Annuler la demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:374
+#: src/pyams_content/workflow/__init__.py:392
 msgid "Archive request canceled"
 msgstr "Annulation de la demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:378
+#: src/pyams_content/workflow/__init__.py:394
+#, python-format
+msgid "The archive request for content « {0} » has been cancelled"
+msgstr "La demande d'archivage du contenu « {0} » a été annulée"
+
+#: src/pyams_content/workflow/__init__.py:398
 msgid "Archive content"
 msgstr "Archiver"
 
-#: src/pyams_content/workflow/__init__.py:386
+#: src/pyams_content/workflow/__init__.py:406
 msgid "Content archived"
 msgstr "Archivage"
 
-#: src/pyams_content/workflow/__init__.py:390
+#: src/pyams_content/workflow/__init__.py:408
+#, python-format
+msgid "The content « {0} » has been archived"
+msgstr "Le contenu « {0} » a été archivé"
+
+#: src/pyams_content/workflow/__init__.py:412
 msgid "Archive published content"
 msgstr "Archivage automatique d'un contenu publié"
 
-#: src/pyams_content/workflow/__init__.py:394
-#: src/pyams_content/workflow/__init__.py:402
-#: src/pyams_content/workflow/__init__.py:410
+#: src/pyams_content/workflow/__init__.py:416
+#: src/pyams_content/workflow/__init__.py:424
+#: src/pyams_content/workflow/__init__.py:432
 msgid "Content archived after version publication"
 msgstr "Archivage automatique après publication"
 
-#: src/pyams_content/workflow/__init__.py:398
+#: src/pyams_content/workflow/__init__.py:420
 msgid "Archive retiring content"
 msgstr "Archivage automatique d'un contenu en attente de retrait"
 
-#: src/pyams_content/workflow/__init__.py:406
+#: src/pyams_content/workflow/__init__.py:428
 msgid "Archive retired content"
 msgstr "Archivage automatique d'un contenu retiré"
 
-#: src/pyams_content/workflow/__init__.py:422
-#: src/pyams_content/workflow/__init__.py:434
-#: src/pyams_content/workflow/__init__.py:446
-#: src/pyams_content/workflow/__init__.py:458
-#: src/pyams_content/workflow/__init__.py:470
+#: src/pyams_content/workflow/__init__.py:444
+#: src/pyams_content/workflow/__init__.py:456
+#: src/pyams_content/workflow/__init__.py:468
+#: src/pyams_content/workflow/__init__.py:480
+#: src/pyams_content/workflow/__init__.py:492
 msgid "New version created"
 msgstr "Création d'une nouvelle version"
 
-#: src/pyams_content/workflow/__init__.py:482
+#: src/pyams_content/workflow/__init__.py:504
 msgid "Version deleted"
 msgstr "Version supprimée"
 
-#: src/pyams_content/workflow/__init__.py:550
+#: src/pyams_content/workflow/__init__.py:572
 msgid "publication refused"
 msgstr "publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:548
+#: src/pyams_content/workflow/__init__.py:570
 msgid "new version created"
 msgstr "nouvelle version en préparation"
 
@@ -1995,6 +2258,7 @@
 "été identifié)"
 
 #: src/pyams_content/interfaces/__init__.py:66
+#: src/pyams_content/interfaces/review.py:67
 msgid "Creation date"
 msgstr "Date de création"
 
@@ -2002,6 +2266,34 @@
 msgid "Modification date"
 msgstr "Dernière modification apportée"
 
+#: src/pyams_content/interfaces/review.py:32
+msgid "Review request"
+msgstr "Demande de relecture"
+
+#: src/pyams_content/interfaces/review.py:33
+msgid "Reviewer comment"
+msgstr "Commentaire"
+
+#: src/pyams_content/interfaces/review.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
+msgid "Comment type"
+msgstr "Type de commentaire"
+
+#: src/pyams_content/interfaces/review.py:79
+msgid "Reviewers list"
+msgstr "Liste des relecteurs"
+
+#: src/pyams_content/interfaces/review.py:80
+msgid "List of principals which reviewed the comment"
+msgstr "Liste des utilisateurs qui ont apporté des commentaires sur ce contenu"
+
 #~ msgid "Paragraphs"
 #~ msgstr "Paragraphes"
 
--- a/src/pyams_content/locales/pyams_content.pot	Mon Oct 10 11:46:32 2016 +0200
+++ b/src/pyams_content/locales/pyams_content.pot	Mon Oct 10 15:24:45 2016 +0200
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2016-03-23 16:37+0100\n"
+"POT-Creation-Date: 2016-08-09 17:26+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,7 +41,7 @@
 msgstr ""
 
 #: ./src/pyams_content/__init__.py:45
-#: ./src/pyams_content/workflow/__init__.py:309
+#: ./src/pyams_content/workflow/__init__.py:317
 msgid "Publish content"
 msgstr ""
 
@@ -107,12 +107,12 @@
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:86
 #: ./src/pyams_content/component/extfile/zmi/container.py:167
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:41
-#: ./src/pyams_content/component/paragraph/zmi/container.py:254
+#: ./src/pyams_content/component/paragraph/zmi/container.py:252
 #: ./src/pyams_content/component/paragraph/interfaces/__init__.py:46
-#: ./src/pyams_content/component/links/zmi/container.py:144
-#: ./src/pyams_content/component/links/interfaces/__init__.py:42
+#: ./src/pyams_content/component/links/zmi/container.py:145
+#: ./src/pyams_content/component/links/interfaces/__init__.py:43
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:104
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:187
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
 #: ./src/pyams_content/interfaces/__init__.py:54
 msgid "Title"
 msgstr ""
@@ -149,6 +149,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/gallery/zmi/gallery.py:235
+#: ./src/pyams_content/shared/zmi/sites.py:124
 msgid "No provided object_name argument!"
 msgstr ""
 
@@ -190,8 +191,8 @@
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:49
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:90
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:45
-#: ./src/pyams_content/component/links/interfaces/__init__.py:46
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:107
+#: ./src/pyams_content/component/links/interfaces/__init__.py:47
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:113
 msgid "Description"
 msgstr ""
 
@@ -318,7 +319,7 @@
 
 #: ./src/pyams_content/component/extfile/zmi/container.py:111
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:101
-#: ./src/pyams_content/component/paragraph/zmi/container.py:203
+#: ./src/pyams_content/component/paragraph/zmi/container.py:201
 msgid "External files"
 msgstr ""
 
@@ -371,39 +372,39 @@
 msgid "Quick preview"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:65
+#: ./src/pyams_content/component/paragraph/zmi/container.py:63
 msgid "Paragraphs..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:81
+#: ./src/pyams_content/component/paragraph/zmi/container.py:79
 msgid "Paragraphs list"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:143
+#: ./src/pyams_content/component/paragraph/zmi/container.py:141
 msgid "Click and drag to sort paragraphs..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:161
+#: ./src/pyams_content/component/paragraph/zmi/container.py:159
 msgid "Switch paragraph visibility"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:221
+#: ./src/pyams_content/component/paragraph/zmi/container.py:219
 msgid "Useful links"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:239
+#: ./src/pyams_content/component/paragraph/zmi/container.py:237
 msgid "Images galleries"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:130
+#: ./src/pyams_content/component/paragraph/zmi/container.py:128
 msgid "No currently defined paragraph."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:264
+#: ./src/pyams_content/component/paragraph/zmi/container.py:262
 msgid "Click to open/close all paragraphs editors"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:281
+#: ./src/pyams_content/component/paragraph/zmi/container.py:279
 msgid "Click to open/close paragraph editor"
 msgstr ""
 
@@ -510,8 +511,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/links/zmi/__init__.py:122
-#: ./src/pyams_content/component/links/zmi/__init__.py:227
-msgid "Edit link properties"
+msgid "Edit internal link properties"
 msgstr ""
 
 #: ./src/pyams_content/component/links/zmi/__init__.py:157
@@ -519,26 +519,42 @@
 msgstr ""
 
 #: ./src/pyams_content/component/links/zmi/__init__.py:169
-msgid "Add new External link"
-msgstr ""
-
-#: ./src/pyams_content/component/links/zmi/container.py:63
+msgid "Add new external link"
+msgstr ""
+
+#: ./src/pyams_content/component/links/zmi/__init__.py:227
+msgid "Edit external link properties"
+msgstr ""
+
+#: ./src/pyams_content/component/links/zmi/__init__.py:263
+msgid "Add mailto link"
+msgstr ""
+
+#: ./src/pyams_content/component/links/zmi/__init__.py:275
+msgid "Add new mailto link"
+msgstr ""
+
+#: ./src/pyams_content/component/links/zmi/__init__.py:333
+msgid "Edit mailto link properties"
+msgstr ""
+
+#: ./src/pyams_content/component/links/zmi/container.py:64
 msgid "Useful links..."
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/container.py:99
+#: ./src/pyams_content/component/links/zmi/container.py:100
 msgid "Useful links list"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/container.py:156
+#: ./src/pyams_content/component/links/zmi/container.py:157
 msgid "Link target"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/container.py:199
+#: ./src/pyams_content/component/links/zmi/container.py:200
 msgid "Edit useful links links"
 msgstr ""
 
-#: ./src/pyams_content/component/links/zmi/container.py:136
+#: ./src/pyams_content/component/links/zmi/container.py:137
 msgid "No currently defined link."
 msgstr ""
 
@@ -558,48 +574,70 @@
 msgid "Add external link..."
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:43
+#: ./src/pyams_content/component/links/zmi/templates/widget-input.pt:26
+msgid "Add mailto link..."
+msgstr ""
+
+#: ./src/pyams_content/component/links/interfaces/__init__.py:44
 msgid "Link title, as shown in front-office"
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:47
+#: ./src/pyams_content/component/links/interfaces/__init__.py:48
 msgid "Link description displayed by front-office template"
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:60
-msgid "Internal reference"
-msgstr ""
-
 #: ./src/pyams_content/component/links/interfaces/__init__.py:61
+msgid "Internal reference"
+msgstr ""
+
+#: ./src/pyams_content/component/links/interfaces/__init__.py:62
 msgid ""
 "Internal link target reference. You can search a reference using '+' followed"
 " by internal number, of by entering text matching content title."
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:73
+#: ./src/pyams_content/component/links/interfaces/__init__.py:74
 msgid "Target URL"
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:74
+#: ./src/pyams_content/component/links/interfaces/__init__.py:75
 msgid "URL used to access external resource"
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:77
-msgid "Language"
-msgstr ""
-
 #: ./src/pyams_content/component/links/interfaces/__init__.py:78
+msgid "Language"
+msgstr ""
+
+#: ./src/pyams_content/component/links/interfaces/__init__.py:79
 msgid "Language used in this remote resource"
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:96
+#: ./src/pyams_content/component/links/interfaces/__init__.py:90
+msgid "Target address"
+msgstr ""
+
+#: ./src/pyams_content/component/links/interfaces/__init__.py:91
+msgid "Target email address"
+msgstr ""
+
+#: ./src/pyams_content/component/links/interfaces/__init__.py:109
 msgid "Contained links"
 msgstr ""
 
-#: ./src/pyams_content/component/links/interfaces/__init__.py:97
+#: ./src/pyams_content/component/links/interfaces/__init__.py:110
 msgid "List of internal or external links linked to this object"
 msgstr ""
 
+#: ./src/pyams_content/shared/common/review.py:204
+#, python-format
+msgid "A new comment was added on content « {0} »"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/review.py:161
+#, python-format
+msgid "[{service_name}] A content review is requested"
+msgstr ""
+
 #: ./src/pyams_content/shared/common/zmi/search.py:73
 msgid "Quick search results"
 msgstr ""
@@ -613,12 +651,12 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/search.py:118
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:185
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:194
 msgid "Owner"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/search.py:121
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:144
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:153
 msgid "Status"
 msgstr ""
 
@@ -671,8 +709,9 @@
 #: ./src/pyams_content/shared/common/zmi/workflow.py:677
 #: ./src/pyams_content/shared/common/zmi/workflow.py:723
 #: ./src/pyams_content/shared/common/zmi/workflow.py:776
-#: ./src/pyams_content/shared/common/zmi/__init__.py:240
+#: ./src/pyams_content/shared/common/zmi/__init__.py:247
 #: ./src/pyams_content/shared/common/zmi/owner.py:74
+#: ./src/pyams_content/shared/common/zmi/review.py:90
 msgid "Cancel"
 msgstr ""
 
@@ -681,7 +720,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:245
-#: ./src/pyams_content/workflow/__init__.py:255
+#: ./src/pyams_content/workflow/__init__.py:259
 msgid "Cancel publication request"
 msgstr ""
 
@@ -706,7 +745,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:573
-#: ./src/pyams_content/workflow/__init__.py:355
+#: ./src/pyams_content/workflow/__init__.py:371
 msgid "Request archive"
 msgstr ""
 
@@ -719,16 +758,16 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:724
-#: ./src/pyams_content/workflow/__init__.py:414
-#: ./src/pyams_content/workflow/__init__.py:426
-#: ./src/pyams_content/workflow/__init__.py:438
-#: ./src/pyams_content/workflow/__init__.py:450
-#: ./src/pyams_content/workflow/__init__.py:462
+#: ./src/pyams_content/workflow/__init__.py:436
+#: ./src/pyams_content/workflow/__init__.py:448
+#: ./src/pyams_content/workflow/__init__.py:460
+#: ./src/pyams_content/workflow/__init__.py:472
+#: ./src/pyams_content/workflow/__init__.py:484
 msgid "Create new version"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:777
-#: ./src/pyams_content/workflow/__init__.py:474
+#: ./src/pyams_content/workflow/__init__.py:496
 msgid "Delete version"
 msgstr ""
 
@@ -754,34 +793,34 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:133
-#: ./src/pyams_content/workflow/__init__.py:529
-#: ./src/pyams_content/workflow/__init__.py:552
+#: ./src/pyams_content/workflow/__init__.py:551
+#: ./src/pyams_content/workflow/__init__.py:574
 #, python-format
 msgid "{state} {date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:230
+#: ./src/pyams_content/shared/common/zmi/__init__.py:237
 msgid "Duplicate content..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:249
+#: ./src/pyams_content/shared/common/zmi/__init__.py:256
 msgid "Duplicate content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:78
+#: ./src/pyams_content/shared/common/zmi/__init__.py:79
 msgid "This title can be modified afterwards"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:241
+#: ./src/pyams_content/shared/common/zmi/__init__.py:248
 msgid "Duplicate this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:290
+#: ./src/pyams_content/shared/common/zmi/__init__.py:298
 #, python-format
 msgid "Duplicate content ({oid})"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:336
+#: ./src/pyams_content/shared/common/zmi/__init__.py:344
 msgid "Created or modified in this version"
 msgstr ""
 
@@ -802,7 +841,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/summary.py:109
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:133
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:142
 msgid "Version"
 msgstr ""
 
@@ -842,7 +881,7 @@
 msgid "Change content's owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/owner.py:126
+#: ./src/pyams_content/shared/common/zmi/owner.py:131
 msgid ""
 "All versions of this content which are not archived will be transferred to "
 "newly selected owner"
@@ -868,274 +907,334 @@
 msgid "Change owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:120
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:129
 msgid "Unique ID"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:160
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:169
 msgid "Status date"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:172
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:181
 msgid "Status principal"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:197
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:206
 msgid "Last modification"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:215
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:224
 #: ./src/pyams_content/root/zmi/__init__.py:88
 msgid "Dashboard"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:226
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:235
 msgid "Contents dashboard"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:260
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:269
 #: ./src/pyams_content/root/zmi/__init__.py:134
 #, python-format
 msgid "MANAGER - {0} content waiting for your action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:261
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:270
 #: ./src/pyams_content/root/zmi/__init__.py:135
 #, python-format
 msgid "MANAGER - {0} contents waiting for your action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:302
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:311
 #: ./src/pyams_content/root/zmi/__init__.py:179
 #, python-format
 msgid "CONTRIBUTOR - {0} content waiting for action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:303
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:312
 #: ./src/pyams_content/root/zmi/__init__.py:180
 #, python-format
 msgid "CONTRIBUTOR - {0} contents waiting for action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:333
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:342
 #: ./src/pyams_content/root/zmi/__init__.py:213
 #, python-format
 msgid "CONTRIBUTOR - {0} modified content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:372
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:381
 #: ./src/pyams_content/root/zmi/__init__.py:254
 msgid "My contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:387
-#: ./src/pyams_content/root/zmi/__init__.py:269
-msgid "My favorites"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:396
+#: ./src/pyams_content/root/zmi/__init__.py:269
+msgid "My favorites"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:405
 #: ./src/pyams_content/root/zmi/__init__.py:278
 #, python-format
 msgid "CONTRIBUTOR - {0} favorite"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:397
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:406
 #: ./src/pyams_content/root/zmi/__init__.py:279
 #, python-format
 msgid "CONTRIBUTOR - {0} favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:409
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:418
 #: ./src/pyams_content/shared/common/zmi/templates/header.pt:24
 msgid "Add/remove from favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:470
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:479
 #: ./src/pyams_content/root/zmi/__init__.py:315
 msgid "Your favorites"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:483
-#: ./src/pyams_content/root/zmi/__init__.py:328
-msgid "My preparations"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:492
+#: ./src/pyams_content/root/zmi/__init__.py:328
+msgid "My preparations"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:501
 #: ./src/pyams_content/root/zmi/__init__.py:337
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:493
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:502
 #: ./src/pyams_content/root/zmi/__init__.py:338
 #, python-format
 msgid "CONTRIBUTOR - {0} prepared contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:532
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:541
 #: ./src/pyams_content/root/zmi/__init__.py:375
 msgid "Your prepared contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:545
-#: ./src/pyams_content/root/zmi/__init__.py:388
-msgid "My submissions"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:554
+#: ./src/pyams_content/root/zmi/__init__.py:388
+msgid "My submissions"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:563
 #: ./src/pyams_content/root/zmi/__init__.py:397
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:555
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:564
 #: ./src/pyams_content/root/zmi/__init__.py:398
 #, python-format
 msgid "CONTRIBUTOR - {0} submitted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:594
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:603
 #: ./src/pyams_content/root/zmi/__init__.py:435
 msgid "Your submitted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:607
-#: ./src/pyams_content/root/zmi/__init__.py:448
-msgid "My publications"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:616
+#: ./src/pyams_content/root/zmi/__init__.py:448
+msgid "My publications"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:625
 #: ./src/pyams_content/root/zmi/__init__.py:457
 #, python-format
 msgid "CONTRIBUTOR - {0} published content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:617
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:626
 #: ./src/pyams_content/root/zmi/__init__.py:458
 #, python-format
 msgid "CONTRIBUTOR - {0} published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:656
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:665
 #: ./src/pyams_content/root/zmi/__init__.py:495
 msgid "Your published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:669
-#: ./src/pyams_content/root/zmi/__init__.py:508
-msgid "My retired contents"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:678
+#: ./src/pyams_content/root/zmi/__init__.py:508
+msgid "My retired contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:687
 #: ./src/pyams_content/root/zmi/__init__.py:517
 #, python-format
 msgid "CONTRIBUTOR - {0} retired content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:679
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:688
 #: ./src/pyams_content/root/zmi/__init__.py:518
 #, python-format
 msgid "CONTRIBUTOR - {0} retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:719
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:728
 #: ./src/pyams_content/root/zmi/__init__.py:556
 msgid "Your retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:732
-#: ./src/pyams_content/root/zmi/__init__.py:569
-msgid "My archived contents"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:741
+#: ./src/pyams_content/root/zmi/__init__.py:569
+msgid "My archived contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:750
 #: ./src/pyams_content/root/zmi/__init__.py:578
 #, python-format
 msgid "CONTRIBUTOR - {0} archived content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:742
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:751
 #: ./src/pyams_content/root/zmi/__init__.py:579
 #, python-format
 msgid "CONTRIBUTOR - {0} archived contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:788
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:797
 #: ./src/pyams_content/root/zmi/__init__.py:623
 msgid "Your archived contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:802
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:811
 #: ./src/pyams_content/root/zmi/__init__.py:637
 msgid "Other interventions"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:817
-#: ./src/pyams_content/root/zmi/__init__.py:652
-msgid "Last publications"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:826
+#: ./src/pyams_content/root/zmi/__init__.py:652
+msgid "Last publications"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:835
 #: ./src/pyams_content/root/zmi/__init__.py:661
 #, python-format
 msgid "CONTRIBUTORS - {0} published content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:872
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:881
 #: ./src/pyams_content/root/zmi/__init__.py:705
 msgid "Last published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:885
-#: ./src/pyams_content/root/zmi/__init__.py:718
-msgid "Last updates"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:894
+#: ./src/pyams_content/root/zmi/__init__.py:718
+msgid "Last updates"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:903
 #: ./src/pyams_content/root/zmi/__init__.py:727
 #, python-format
 msgid "CONTRIBUTORS - {0} updated content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:938
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:947
 #: ./src/pyams_content/root/zmi/__init__.py:769
 msgid "Last updated contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:338
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:347
 #: ./src/pyams_content/root/zmi/__init__.py:218
 #, python-format
 msgid "CONTRIBUTOR - {0} modified contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:340
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:349
 #: ./src/pyams_content/root/zmi/__init__.py:220
 #, python-format
 msgid "CONTRIBUTOR - Last {0} modified contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:831
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:840
 #: ./src/pyams_content/root/zmi/__init__.py:666
 #, python-format
 msgid "CONTRIBUTORS - Last {0} published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:833
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:842
 #: ./src/pyams_content/root/zmi/__init__.py:668
 msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:899
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:908
 #: ./src/pyams_content/root/zmi/__init__.py:732
 #, python-format
 msgid "CONTRIBUTORS - Last {0} updated contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:901
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:910
 #: ./src/pyams_content/root/zmi/__init__.py:734
 msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
 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:158
+msgid "Comments"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/review.py:178
+msgid "Review comments"
+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:144
+msgid "Request successful. No new notification have been sent"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/review.py:248
+msgid "Message is mandatory!"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/review.py:138
+#, 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 ""
@@ -1164,21 +1263,21 @@
 "which at least one criteria is matching."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:67
+#: ./src/pyams_content/shared/common/zmi/header.py:84
 #, python-format
 msgid "{state} by {principal}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:91
+#: ./src/pyams_content/shared/common/zmi/header.py:108
 #, python-format
 msgid "since {date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:100
+#: ./src/pyams_content/shared/common/zmi/header.py:117
 msgid "access new version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:109
+#: ./src/pyams_content/shared/common/zmi/header.py:126
 msgid "access published version"
 msgstr ""
 
@@ -1194,6 +1293,14 @@
 "request."
 msgstr ""
 
+#: ./src/pyams_content/shared/common/zmi/templates/review-comments.pt:43
+msgid "Add a comment..."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/templates/review-comments.pt:49
+msgid "Add comment"
+msgstr ""
+
 #: ./src/pyams_content/shared/common/zmi/templates/header.pt:6
 msgid "Back to previous page"
 msgstr ""
@@ -1293,20 +1400,20 @@
 "shared by all content's versions."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:127
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:128
 msgid "Created between"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:139
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:165
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:140
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:166
 msgid "and"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:153
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:154
 msgid "Modified between"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:201
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:202
 msgid "Tab label"
 msgstr ""
 
@@ -1346,6 +1453,10 @@
 " again, or archived."
 msgstr ""
 
+#: ./src/pyams_content/shared/common/zmi/templates/review-add-comment.pt:11
+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."
@@ -1357,6 +1468,31 @@
 "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:12
+msgid "Hello,"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:13
+msgid ""
+"You have been requested by ${sender} to make a review of a content called « "
+"${title} » which has been created on publication platform « ${service_name} "
+"»."
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:19
+msgid "Comment associated with this request is:"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/templates/review-notification.pt:21
+msgid ""
+"To review and comment this publication, please use the following link: "
+"${target}"
+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."
@@ -1382,167 +1518,183 @@
 msgid "This content is already retired and not visible."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:51
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:57
 msgid "Workflow name"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:52
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:58
 msgid "Name of workflow utility used to manage tool contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:60
-#: ./src/pyams_content/root/interfaces/__init__.py:40
-msgid "Webmasters"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:61
-msgid "Webmasters can handle all contents, including published ones"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:65
-msgid "Pilots"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:66
-msgid ""
-"Pilots can handle tool configuration, manage access rules, grant users roles "
-"and manage managers restrictions"
+#: ./src/pyams_content/root/interfaces/__init__.py:40
+msgid "Webmasters"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:67
+msgid "Webmasters can handle all contents, including published ones"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:71
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:132
-msgid "Managers"
+msgid "Pilots"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:72
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:133
 msgid ""
-"Managers can handle main operations in tool's workflow, like publish or "
-"retire contents"
+"Pilots can handle tool configuration, manage access rules, grant users roles "
+"and manage managers restrictions"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:77
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:138
-msgid "Contributors"
+msgid "Managers"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:78
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:139
+msgid ""
+"Managers can handle main operations in tool's workflow, like publish or "
+"retire contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:83
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:144
+msgid "Contributors"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:84
 msgid "Contributors are users which are allowed to create new contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:89
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:95
 msgid "Version creator"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:90
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:96
 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:94
-msgid "First owner"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:95
-msgid "Name of content's first version owner"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:99
-msgid "Version modifiers"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:100
+msgid "First owner"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:101
+msgid "Name of content's first version owner"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:105
+msgid "Version modifiers"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:106
 msgid "List of principals who modified this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:103
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:109
 msgid "Last modifier"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:104
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:110
 msgid "Last principal who modified this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:108
-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:113
-msgid "Keywords"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:114
+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:119
+msgid "Keywords"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:120
 msgid "They will be included into HTML pages metadata"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:117
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:123
 msgid "Notepad"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:118
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:124
 msgid "Internal information to be known about this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:125
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:131
 msgid "Content owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:126
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:132
 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:139
-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:144
-msgid "Readers"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:145
 msgid ""
-"Readers are users which are asked to verify and comment contents before they "
-"are published"
+"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:150
-msgid "Guests"
+msgid "Readers"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:151
 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:156
+msgid "Guests"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:157
+msgid ""
 "Guests are users which are allowed to view contents with restricted access"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:170
-msgid "Principal ID"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:175
-msgid "Restricted contents"
-msgstr ""
-
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:176
-msgid ""
-"If 'yes', this manager will get restricted access to manage contents based on"
-" selected settings"
+msgid "Principal ID"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:181
-msgid "Selected owners"
+msgid "Restricted contents"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:182
+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:187
+msgid "Selected owners"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:188
 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!"
+msgstr ""
+
 #: ./src/pyams_content/shared/news/zmi/properties.py:38
 msgid "Publication settings"
 msgstr ""
@@ -1592,6 +1744,45 @@
 "will still be available via the search engine"
 msgstr ""
 
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:50
+msgid "This blog post"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:69
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:79
+msgid "Add blog post"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/zmi/__init__.py:60
+#, 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
+msgid "Add blog manager"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/zmi/manager.py:78
+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
+msgid "Specified blog manager name is already used!"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/zmi/manager.py:113
+msgid "A blog manager is already registered with this name!!"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/interfaces/__init__.py:28
+msgid "Blog post"
+msgstr ""
+
 #: ./src/pyams_content/profile/zmi/__init__.py:40
 msgid "Admin. profile"
 msgstr ""
@@ -1636,11 +1827,15 @@
 msgid "Name of group containing all roles owners"
 msgstr ""
 
-#: ./src/pyams_content/zmi/viewlet/toplinks/__init__.py:45
+#: ./src/pyams_content/zmi/viewlet/toplinks/__init__.py:47
+msgid "Shared sites"
+msgstr ""
+
+#: ./src/pyams_content/zmi/viewlet/toplinks/__init__.py:65
 msgid "Shared contents"
 msgstr ""
 
-#: ./src/pyams_content/zmi/viewlet/toplinks/__init__.py:63
+#: ./src/pyams_content/zmi/viewlet/toplinks/__init__.py:85
 msgid "My roles"
 msgstr ""
 
@@ -1725,148 +1920,203 @@
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:229
-#: ./src/pyams_content/workflow/__init__.py:242
+#: ./src/pyams_content/workflow/__init__.py:244
 msgid "Propose publication"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:236
-#: ./src/pyams_content/workflow/__init__.py:249
+#: ./src/pyams_content/workflow/__init__.py:251
 msgid "Publication request"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:237
-#: ./src/pyams_content/workflow/__init__.py:250
-#: ./src/pyams_content/workflow/__init__.py:328
-#: ./src/pyams_content/workflow/__init__.py:362
+#: ./src/pyams_content/workflow/__init__.py:252
+#: ./src/pyams_content/workflow/__init__.py:338
+#: ./src/pyams_content/workflow/__init__.py:378
 msgid ""
 "content managers authorized to take charge of your content are going to be "
 "notified of your request."
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:262
-msgid "Publication request canceled"
+#: ./src/pyams_content/workflow/__init__.py:240
+#, python-format
+msgid "A publication request has been submitted for content « {0} »"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:255
+#, python-format
+msgid "A new publication request has been submitted for content « {0} »"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:266
+msgid "Publication request canceled"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:268
+#, python-format
+msgid "The publication request for content « {0} » has been cancelled"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:272
 msgid "Reset canceled publication to draft"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:270
-#: ./src/pyams_content/workflow/__init__.py:297
+#: ./src/pyams_content/workflow/__init__.py:276
+#: ./src/pyams_content/workflow/__init__.py:305
 msgid "State reset to 'draft' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:274
+#: ./src/pyams_content/workflow/__init__.py:280
 msgid "Reset canceled publication to retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:278
+#: ./src/pyams_content/workflow/__init__.py:284
 msgid "State reset to 'retired' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:282
+#: ./src/pyams_content/workflow/__init__.py:288
 msgid "Refuse publication"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:289
+#: ./src/pyams_content/workflow/__init__.py:295
 msgid "Publication refused"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:293
-msgid "Reset refused publication to draft"
+#: ./src/pyams_content/workflow/__init__.py:297
+#, python-format
+msgid "The publication request for content « {0} » has been refused"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:301
+msgid "Reset refused publication to draft"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:309
 msgid "Reset refused publication to retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:305
+#: ./src/pyams_content/workflow/__init__.py:313
 msgid "State reset to 'refused' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:317
+#: ./src/pyams_content/workflow/__init__.py:325
 msgid "Content published"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:321
-msgid "Request retiring"
-msgstr ""
-
 #: ./src/pyams_content/workflow/__init__.py:327
+#, python-format
+msgid "The content « {0} » has been published"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:331
+msgid "Request retiring"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:337
 msgid "Retire request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:333
+#: ./src/pyams_content/workflow/__init__.py:341
+#, python-format
+msgid "A retire request has been submitted for content « {0} »"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:345
 msgid "Cancel retiring request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:340
+#: ./src/pyams_content/workflow/__init__.py:352
 msgid "Retire request canceled"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:344
+#: ./src/pyams_content/workflow/__init__.py:354
+#, python-format
+msgid "The retiring request for content « {0} » has been cancelled"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:358
 msgid "Retire content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:351
+#: ./src/pyams_content/workflow/__init__.py:365
 msgid "Content retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:361
-msgid "Archive request"
-msgstr ""
-
 #: ./src/pyams_content/workflow/__init__.py:367
+#, python-format
+msgid "The content « {0} » has been retired"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:377
+msgid "Archive request"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:381
+#, python-format
+msgid "An archive request has been submitted for content « {0} »"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:385
 msgid "Cancel archiving request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:374
+#: ./src/pyams_content/workflow/__init__.py:392
 msgid "Archive request canceled"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:378
-msgid "Archive content"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:386
-msgid "Content archived"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:390
-msgid "Archive published content"
-msgstr ""
-
 #: ./src/pyams_content/workflow/__init__.py:394
-#: ./src/pyams_content/workflow/__init__.py:402
-#: ./src/pyams_content/workflow/__init__.py:410
-msgid "Content archived after version publication"
+#, python-format
+msgid "The archive request for content « {0} » has been cancelled"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:398
-msgid "Archive retiring content"
+msgid "Archive content"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:406
+msgid "Content archived"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:408
+#, python-format
+msgid "The content « {0} » has been archived"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:412
+msgid "Archive published content"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:416
+#: ./src/pyams_content/workflow/__init__.py:424
+#: ./src/pyams_content/workflow/__init__.py:432
+msgid "Content archived after version publication"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:420
+msgid "Archive retiring content"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:428
 msgid "Archive retired content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:422
-#: ./src/pyams_content/workflow/__init__.py:434
-#: ./src/pyams_content/workflow/__init__.py:446
-#: ./src/pyams_content/workflow/__init__.py:458
-#: ./src/pyams_content/workflow/__init__.py:470
+#: ./src/pyams_content/workflow/__init__.py:444
+#: ./src/pyams_content/workflow/__init__.py:456
+#: ./src/pyams_content/workflow/__init__.py:468
+#: ./src/pyams_content/workflow/__init__.py:480
+#: ./src/pyams_content/workflow/__init__.py:492
 msgid "New version created"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:482
+#: ./src/pyams_content/workflow/__init__.py:504
 msgid "Version deleted"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:550
+#: ./src/pyams_content/workflow/__init__.py:572
 msgid "publication refused"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:548
+#: ./src/pyams_content/workflow/__init__.py:570
 msgid "new version created"
 msgstr ""
 
@@ -1896,9 +2146,38 @@
 msgstr ""
 
 #: ./src/pyams_content/interfaces/__init__.py:66
+#: ./src/pyams_content/interfaces/review.py:67
 msgid "Creation date"
 msgstr ""
 
 #: ./src/pyams_content/interfaces/__init__.py:70
 msgid "Modification date"
 msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:32
+msgid "Review request"
+msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:33
+msgid "Reviewer comment"
+msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:56
+msgid "Comment writer"
+msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:59
+msgid "Comment body"
+msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:62
+msgid "Comment type"
+msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:79
+msgid "Reviewers list"
+msgstr ""
+
+#: ./src/pyams_content/interfaces/review.py:80
+msgid "List of principals which reviewed the comment"
+msgstr ""
--- a/src/pyams_content/root/__init__.py	Mon Oct 10 11:46:32 2016 +0200
+++ b/src/pyams_content/root/__init__.py	Mon Oct 10 15:24:45 2016 +0200
@@ -31,6 +31,7 @@
 from pyams_security.property import RolePrincipalsFieldProperty
 from pyams_security.security import ProtectedObject
 from pyams_skin.configuration import Configuration, StaticConfiguration, BackOfficeConfiguration
+from pyams_skin.skin import UserSkinnableContent
 from pyams_utils.adapter import adapter_config
 from pyams_utils.registry import get_utility
 from pyams_utils.site import BaseSiteRoot
@@ -50,7 +51,7 @@
 
 
 @implementer(IDefaultProtectionPolicy, ISiteRoot, ISiteRootRoles, IPortalContext)
-class SiteRoot(ProtectedObject, BaseSiteRoot):
+class SiteRoot(ProtectedObject, BaseSiteRoot, UserSkinnableContent):
     """Main site root"""
 
     __roles__ = ('system.Manager', 'pyams.Webmaster', 'pyams.Operator')