Added multiple mail addresses schema field
authorThierry Florac <tflorac@ulthar.net>
Tue, 23 Jun 2020 13:02:10 +0200
changeset 436 f7154a8ec9eb
parent 435 4504a27af426
child 437 b5131bd64de7
Added multiple mail addresses schema field
src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.mo
src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po
src/pyams_utils/locales/pyams_utils.pot
src/pyams_utils/schema.py
Binary file src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.mo has changed
--- a/src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po	Tue Jun 23 12:53:06 2020 +0200
+++ b/src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po	Tue Jun 23 13:02:10 2020 +0200
@@ -4,7 +4,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2019-01-18 13:52+0100\n"
+"POT-Creation-Date: 2020-06-23 12:47+0200\n"
 "PO-Revision-Date: 2015-01-18 01:01+0100\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -15,74 +15,46 @@
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "Generated-By: Lingua 3.7\n"
 
-#: src/pyams_utils/pygments.py:106
-msgid "Selected lexer"
-msgstr "Format du code"
-
-#: src/pyams_utils/pygments.py:107
-msgid "Lexer used to format source code"
-msgstr "Lexeur utilisé pour analyser le code source"
-
-#: src/pyams_utils/pygments.py:112
-msgid "Display line numbers?"
-msgstr "Numéros de lignes ?"
-
-#: src/pyams_utils/pygments.py:113
-msgid "If 'no', line numbers will be hidden"
-msgstr "Si 'non', les numéros de lignes ne seront pas affichés"
-
-#: src/pyams_utils/pygments.py:117
-msgid "Lines wrap?"
-msgstr "Sauts de lignes ?"
-
-#: src/pyams_utils/pygments.py:118
-msgid ""
-"If 'yes', lines wraps will be enabled; line numbers will not be displayed if "
-"lines wrap is enabled..."
-msgstr ""
-"Si 'oui', les sauts de lignes seront possibles ; dans ce mode, l'affichage "
-"des numéros de lignes n'est pas possible..."
-
-#: src/pyams_utils/pygments.py:123
-msgid "Color style"
-msgstr "Style de couleur"
-
-#: src/pyams_utils/pygments.py:124
-msgid "Selected color style"
-msgstr "Style de mise en forme de la syntaxe"
-
-#: src/pyams_utils/pygments.py:75
+#: src/pyams_utils/pygments.py:81
 msgid "Automatic detection"
 msgstr "Détection automatique"
 
-#: src/pyams_utils/size.py:69
+#: src/pyams_utils/size.py:75
 msgid "0.0## Gb"
 msgstr "0.0## Go"
 
-#: src/pyams_utils/size.py:61
+#: src/pyams_utils/size.py:67
 msgid "0 bytes"
 msgstr "0 octets"
 
-#: src/pyams_utils/size.py:64
+#: src/pyams_utils/size.py:70
 msgid "0.# Kb"
 msgstr "0.# Ko"
 
-#: src/pyams_utils/size.py:67
+#: src/pyams_utils/size.py:73
 msgid "0.0# Mb"
 msgstr "0.0# Mo"
 
-#: src/pyams_utils/schema.py:181
+#: src/pyams_utils/schema.py:210
 msgid ""
 "Email address must be entered as « name@domain.name », without '<' and '>' "
 "characters"
 msgstr ""
 "L'adresse est incorrecte, la saisie ne respecte pas la forme « xxx@yyy.com »."
 
-#: src/pyams_utils/schema.py:115
+#: src/pyams_utils/schema.py:235
+msgid ""
+"Email addresses must be entered as « name@domain.name », without '<' and '>' "
+"characters, and separated by semicolons"
+msgstr ""
+"La valeur indiquée est incorrecte ; vous pouvez indiquer plusieurs adresses "
+"sous pas la forme « xxx@yyy.com », séparées par des points-virgules."
+
+#: src/pyams_utils/schema.py:142
 msgid "Color length must be 3 or 6 characters"
 msgstr "La longueur d'une couleur doit être de 3 ou 6 caractères"
 
-#: src/pyams_utils/schema.py:118
+#: src/pyams_utils/schema.py:145
 msgid ""
 "Color value must contain only valid hexadecimal color codes (numbers or "
 "letters between 'A' end 'F')"
@@ -90,563 +62,599 @@
 "Une couleur ne doit contenir que des valeurs hexadécimales correctes "
 "(nombres ou lettres de 'A' à 'F')"
 
-#: src/pyams_utils/date.py:94
+#: src/pyams_utils/date.py:97
 msgid "%d/%m/%Y"
 msgstr "%d/%m/%Y"
 
-#: src/pyams_utils/date.py:95
+#: src/pyams_utils/date.py:98
 msgid "%d/%m/%Y - %H:%M"
 msgstr "%d/%m/%Y - %H:%M"
 
-#: src/pyams_utils/date.py:97
+#: src/pyams_utils/date.py:100
 msgid "on %d/%m/%Y"
 msgstr "le %d/%m/%Y"
 
-#: src/pyams_utils/date.py:98
+#: src/pyams_utils/date.py:101
 msgid "on %d/%m/%Y at %H:%M"
 msgstr "le %d/%m/%Y à %H:%M"
 
-#: src/pyams_utils/date.py:156
+#: src/pyams_utils/date.py:160
 #, c-format
 msgid "%d months ago"
 msgstr "Il y a %d mois"
 
-#: src/pyams_utils/date.py:231
+#: src/pyams_utils/date.py:236
 #, c-format
 msgid "%d months"
 msgstr "%d mois"
 
-#: src/pyams_utils/date.py:158
+#: src/pyams_utils/date.py:162
 #, c-format
 msgid "%d weeks ago"
 msgstr "Il y a %d semaines"
 
-#: src/pyams_utils/date.py:233
+#: src/pyams_utils/date.py:238
 #, c-format
 msgid "%d weeks"
 msgstr "%d semaines"
 
-#: src/pyams_utils/date.py:160
+#: src/pyams_utils/date.py:164
 #, c-format
 msgid "%d days ago"
 msgstr "Il y a %d jours"
 
-#: src/pyams_utils/date.py:162
+#: src/pyams_utils/date.py:166
 msgid "the day before yesterday"
 msgstr "avant-hier"
 
-#: src/pyams_utils/date.py:235
+#: src/pyams_utils/date.py:240
 #, c-format
 msgid "%d days"
 msgstr "%d jours"
 
-#: src/pyams_utils/date.py:164
+#: src/pyams_utils/date.py:168
 msgid "yesterday"
 msgstr "hier"
 
-#: src/pyams_utils/date.py:240
+#: src/pyams_utils/date.py:245
 msgid "24 hours"
 msgstr "24 heures"
 
-#: src/pyams_utils/date.py:242
+#: src/pyams_utils/date.py:247
 #, c-format
 msgid "%d day and %d hours"
 msgstr "%d jours et %d heures"
 
-#: src/pyams_utils/date.py:245
+#: src/pyams_utils/date.py:250
 #, c-format
 msgid "%d hours"
 msgstr "%d heures"
 
-#: src/pyams_utils/date.py:168
+#: src/pyams_utils/date.py:172
 #, c-format
 msgid "%d hours ago"
 msgstr "Il y a %d heures"
 
-#: src/pyams_utils/date.py:172
+#: src/pyams_utils/date.py:176
 msgid "less than 5 minutes ago"
 msgstr "Il y a moins de 5 minutes"
 
-#: src/pyams_utils/date.py:249
+#: src/pyams_utils/date.py:254
 #, c-format
 msgid "%d minutes"
 msgstr "%d minutes"
 
-#: src/pyams_utils/date.py:251
+#: src/pyams_utils/date.py:256
 #, c-format
 msgid "%d seconds"
 msgstr "%d secondes"
 
-#: src/pyams_utils/date.py:170
+#: src/pyams_utils/date.py:174
 #, c-format
 msgid "%d minutes ago"
 msgstr "Il y a %d minutes"
 
-#: src/pyams_utils/encoding.py:32
+#: src/pyams_utils/encoding.py:33
 msgid "English (ASCII)"
 msgstr "Anglais (ASCII)"
 
-#: src/pyams_utils/encoding.py:33
+#: src/pyams_utils/encoding.py:34
 msgid "Traditional Chinese (big5)"
 msgstr "Chinois traditionnel (big5)"
 
-#: src/pyams_utils/encoding.py:34
+#: src/pyams_utils/encoding.py:35
 msgid "Traditional Chinese (big5hkscs)"
 msgstr "Chinois traditionnel (big5hkscs)"
 
-#: src/pyams_utils/encoding.py:35
+#: src/pyams_utils/encoding.py:36
 msgid "English (cp037)"
 msgstr "Anglais (cp037)"
 
-#: src/pyams_utils/encoding.py:36
+#: src/pyams_utils/encoding.py:37
 msgid "Hebrew (cp424)"
 msgstr "Hébreu (cp424)"
 
-#: src/pyams_utils/encoding.py:37
+#: src/pyams_utils/encoding.py:38
 msgid "English (cp437)"
 msgstr "Anglais (cp437)"
 
-#: src/pyams_utils/encoding.py:38
+#: src/pyams_utils/encoding.py:39
 msgid "Western Europe (cp500)"
 msgstr "Europe de l'ouest (cp500)"
 
-#: src/pyams_utils/encoding.py:39
+#: src/pyams_utils/encoding.py:40
 msgid "Arabic (cp720)"
 msgstr "Arabe (cp720)"
 
-#: src/pyams_utils/encoding.py:40
+#: src/pyams_utils/encoding.py:41
 msgid "Greek (cp737)"
 msgstr "Grec (cp737)"
 
-#: src/pyams_utils/encoding.py:41
+#: src/pyams_utils/encoding.py:42
 msgid "Baltic languages (cp775)"
 msgstr "Langues baltes (cp775)"
 
-#: src/pyams_utils/encoding.py:42
+#: src/pyams_utils/encoding.py:43
 msgid "Western Europe (cp850)"
 msgstr "Europe de l'ouest (cp850)"
 
-#: src/pyams_utils/encoding.py:43
+#: src/pyams_utils/encoding.py:44
 msgid "Central and Eastern Europe (cp852)"
 msgstr "Europe centrale et de l'est (cp852)"
 
-#: src/pyams_utils/encoding.py:44
+#: src/pyams_utils/encoding.py:45
 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (cp855)"
 msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe (cp855)"
 
-#: src/pyams_utils/encoding.py:45
+#: src/pyams_utils/encoding.py:46
 msgid "Hebrew (cp856)"
 msgstr "Hébreu (cp856)"
 
-#: src/pyams_utils/encoding.py:46
+#: src/pyams_utils/encoding.py:47
 msgid "Turkish (cp857)"
 msgstr "Turc (cp857)"
 
-#: src/pyams_utils/encoding.py:47
+#: src/pyams_utils/encoding.py:48
 msgid "Western Europe (cp858)"
 msgstr "Europe de l'ouest (cp858)"
 
-#: src/pyams_utils/encoding.py:48
+#: src/pyams_utils/encoding.py:49
 msgid "Portuguese (cp860)"
 msgstr "Portugais (cp860)"
 
-#: src/pyams_utils/encoding.py:49
+#: src/pyams_utils/encoding.py:50
 msgid "Icelandic (cp861)"
 msgstr "Islandais (cp861)"
 
-#: src/pyams_utils/encoding.py:50
+#: src/pyams_utils/encoding.py:51
 msgid "Hebrew (cp862)"
 msgstr "Hébreu (cp862)"
 
-#: src/pyams_utils/encoding.py:51
+#: src/pyams_utils/encoding.py:52
 msgid "Canadian (cp863)"
 msgstr "Canadien (cp863)"
 
-#: src/pyams_utils/encoding.py:52
+#: src/pyams_utils/encoding.py:53
 msgid "Arabic (cp864)"
 msgstr "Arabe (cp864)"
 
-#: src/pyams_utils/encoding.py:53
+#: src/pyams_utils/encoding.py:54
 msgid "Danish, Norwegian (cp865)"
 msgstr "Danois, Norvégien (cp865)"
 
-#: src/pyams_utils/encoding.py:54
+#: src/pyams_utils/encoding.py:55
 msgid "Russian (cp866)"
 msgstr "Russe (cp866)"
 
-#: src/pyams_utils/encoding.py:55
+#: src/pyams_utils/encoding.py:56
 msgid "Greek (cp869)"
 msgstr "Grec (cp869)"
 
-#: src/pyams_utils/encoding.py:56
+#: src/pyams_utils/encoding.py:57
 msgid "Thai (cp874)"
 msgstr "Thaï (cp874)"
 
-#: src/pyams_utils/encoding.py:57
+#: src/pyams_utils/encoding.py:58
 msgid "Greek (cp875)"
 msgstr "Grec (cp875)"
 
-#: src/pyams_utils/encoding.py:58
+#: src/pyams_utils/encoding.py:59
 msgid "Japanese (cp932)"
 msgstr "Japonais (cp932)"
 
-#: src/pyams_utils/encoding.py:59
+#: src/pyams_utils/encoding.py:60
 msgid "Korean (cp949)"
 msgstr "Coréen (cp949)"
 
-#: src/pyams_utils/encoding.py:60
+#: src/pyams_utils/encoding.py:61
 msgid "Traditional Chinese (cp950)"
 msgstr "Chinois traditionnel (cp950)"
 
-#: src/pyams_utils/encoding.py:61
+#: src/pyams_utils/encoding.py:62
 msgid "Urdu (cp1006)"
 msgstr "Ourdou (cp1006)"
 
-#: src/pyams_utils/encoding.py:62
+#: src/pyams_utils/encoding.py:63
 msgid "Turkish (cp1026)"
 msgstr "Turc (cp1026)"
 
-#: src/pyams_utils/encoding.py:63
+#: src/pyams_utils/encoding.py:64
 msgid "Western Europe (cp1140)"
 msgstr "Europe de l'ouest (cp1140)"
 
-#: src/pyams_utils/encoding.py:64
+#: src/pyams_utils/encoding.py:65
 msgid "Central and Eastern Europe (cp1250)"
 msgstr "Europe centrale et de l'est (cp1250)"
 
-#: src/pyams_utils/encoding.py:65
+#: src/pyams_utils/encoding.py:66
 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (cp1251)"
 msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe (cp1251)"
 
-#: src/pyams_utils/encoding.py:66
+#: src/pyams_utils/encoding.py:67
 msgid "Western Europe (cp1252)"
 msgstr "Europe de l'ouest (cp1252)"
 
-#: src/pyams_utils/encoding.py:67
+#: src/pyams_utils/encoding.py:68
 msgid "Greek (cp1253)"
 msgstr "Grec (cp1253)"
 
-#: src/pyams_utils/encoding.py:68
+#: src/pyams_utils/encoding.py:69
 msgid "Turkish (cp1254)"
 msgstr "Turc (cp1254)"
 
-#: src/pyams_utils/encoding.py:69
+#: src/pyams_utils/encoding.py:70
 msgid "Hebrew (cp1255)"
 msgstr "Hébreu (cp1255)"
 
-#: src/pyams_utils/encoding.py:70
+#: src/pyams_utils/encoding.py:71
 msgid "Arabic (cp1256)"
 msgstr "Arabe (cp1256)"
 
-#: src/pyams_utils/encoding.py:71
+#: src/pyams_utils/encoding.py:72
 msgid "Baltic languages (cp1257)"
 msgstr "Langues baltes (cp1257)"
 
-#: src/pyams_utils/encoding.py:72
+#: src/pyams_utils/encoding.py:73
 msgid "Vietnamese (cp1258)"
 msgstr "Viernamien (cp1258)"
 
-#: src/pyams_utils/encoding.py:73
+#: src/pyams_utils/encoding.py:74
 msgid "Japanese (euc_jp)"
 msgstr "Japonais (euc-jp)"
 
-#: src/pyams_utils/encoding.py:74
+#: src/pyams_utils/encoding.py:75
 msgid "Japanese (euc_jis_2004)"
 msgstr "Japonais (euc-jis-2004)"
 
-#: src/pyams_utils/encoding.py:75
+#: src/pyams_utils/encoding.py:76
 msgid "Japanese (euc_jisx0213)"
 msgstr "Japonais (euc-jisx0213)"
 
-#: src/pyams_utils/encoding.py:76
+#: src/pyams_utils/encoding.py:77
 msgid "Korean (euc_kr)"
 msgstr "Coréen (euc-kr)"
 
-#: src/pyams_utils/encoding.py:77
+#: src/pyams_utils/encoding.py:78
 msgid "Simplified Chinese (gb2312)"
 msgstr "Chinois simplifié (gb2312)"
 
-#: src/pyams_utils/encoding.py:78
+#: src/pyams_utils/encoding.py:79
 msgid "Unified Chinese (gbk)"
 msgstr "Chinois unifié (gbk)"
 
-#: src/pyams_utils/encoding.py:79
+#: src/pyams_utils/encoding.py:80
 msgid "Unified Chinese (gb18030)"
 msgstr "Chinois unifié (gb18030)"
 
-#: src/pyams_utils/encoding.py:80
+#: src/pyams_utils/encoding.py:81
 msgid "Simplified Chinese (hz)"
 msgstr "Chinois simplifié (hz)"
 
-#: src/pyams_utils/encoding.py:81
+#: src/pyams_utils/encoding.py:82
 msgid "Japanese (iso2022_jp)"
 msgstr "Japonais (iso2022-jp)"
 
-#: src/pyams_utils/encoding.py:82
+#: src/pyams_utils/encoding.py:83
 msgid "Japanese (iso2022_jp_1)"
 msgstr "Japonais (iso2022-jp-1)"
 
-#: src/pyams_utils/encoding.py:83
+#: src/pyams_utils/encoding.py:84
 msgid ""
 "Japanese, Korean, Simplified Chinese, Western Europe, Greek (iso2022_jp_2)"
 msgstr ""
 "Japonais, Coréen, Chinois simplifié, Europe de l'ouest, Grec (iso2022-jp-2)"
 
-#: src/pyams_utils/encoding.py:84
+#: src/pyams_utils/encoding.py:85
 msgid "Japanese (iso2022_jp_2004)"
 msgstr "Japonais (iso2022-jp-2004)"
 
-#: src/pyams_utils/encoding.py:85
+#: src/pyams_utils/encoding.py:86
 msgid "Japanese (iso2022_jp_3)"
 msgstr "Japonais (iso2022-jp-3)"
 
-#: src/pyams_utils/encoding.py:86
+#: src/pyams_utils/encoding.py:87
 msgid "Japanese (iso2022_jp_ext)"
 msgstr "Japonais (iso2022-jp-ext)"
 
-#: src/pyams_utils/encoding.py:87
+#: src/pyams_utils/encoding.py:88
 msgid "Korean (iso2022_kr)"
 msgstr "Coréen (iso2022-kr)"
 
-#: src/pyams_utils/encoding.py:88
+#: src/pyams_utils/encoding.py:89
 msgid "West Europe (latin_1)"
 msgstr "Europe de l'ouest (latin-1)"
 
-#: src/pyams_utils/encoding.py:89
+#: src/pyams_utils/encoding.py:90
 msgid "Central and Eastern Europe (iso8859_2)"
 msgstr "Europe centrale et de l'est (iso8859-2)"
 
-#: src/pyams_utils/encoding.py:90
+#: src/pyams_utils/encoding.py:91
 msgid "Esperanto, Maltese (iso8859_3)"
 msgstr "Espéranto, Maltais (iso8859-3)"
 
-#: src/pyams_utils/encoding.py:91
+#: src/pyams_utils/encoding.py:92
 msgid "Baltic languages (iso8859_4)"
 msgstr "Langues baltes (iso8859-4)"
 
-#: src/pyams_utils/encoding.py:92
+#: src/pyams_utils/encoding.py:93
 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (iso8859_5)"
 msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe (iso8859-5)"
 
-#: src/pyams_utils/encoding.py:93
+#: src/pyams_utils/encoding.py:94
 msgid "Arabic (iso8859_6)"
 msgstr "Arabe (iso8859-6)"
 
-#: src/pyams_utils/encoding.py:94
+#: src/pyams_utils/encoding.py:95
 msgid "Greek (iso8859_7)"
 msgstr "Grec (iso8869-7)"
 
-#: src/pyams_utils/encoding.py:95
+#: src/pyams_utils/encoding.py:96
 msgid "Hebrew (iso8859_8)"
 msgstr "Hébreu (iso8859-8)"
 
-#: src/pyams_utils/encoding.py:96
+#: src/pyams_utils/encoding.py:97
 msgid "Turkish (iso8859_9)"
 msgstr "Turc (iso8859-9)"
 
-#: src/pyams_utils/encoding.py:97
+#: src/pyams_utils/encoding.py:98
 msgid "Nordic languages (iso8859_10)"
 msgstr "Langues nordiques (iso8859-10)"
 
-#: src/pyams_utils/encoding.py:98
+#: src/pyams_utils/encoding.py:99
 msgid "Baltic languages (iso8859_13)"
 msgstr "Langues baltes (iso8859-13)"
 
-#: src/pyams_utils/encoding.py:99
+#: src/pyams_utils/encoding.py:100
 msgid "Celtic languages (iso8859_14)"
 msgstr "Langues celtes (iso8859-14)"
 
-#: src/pyams_utils/encoding.py:100
+#: src/pyams_utils/encoding.py:101
 msgid "Western Europe (iso8859_15)"
 msgstr "Europe de l'ouest (iso8859-15)"
 
-#: src/pyams_utils/encoding.py:101
+#: src/pyams_utils/encoding.py:102
 msgid "South-Eastern Europe (iso8859_16)"
 msgstr "Europe du sud-est (iso8859-16)"
 
-#: src/pyams_utils/encoding.py:102
+#: src/pyams_utils/encoding.py:103
 msgid "Korean (johab)"
 msgstr "Coréen (johab)"
 
-#: src/pyams_utils/encoding.py:103
+#: src/pyams_utils/encoding.py:104
 msgid "Russian (koi8_r)"
 msgstr "Russe (kio8-r)"
 
-#: src/pyams_utils/encoding.py:104
+#: src/pyams_utils/encoding.py:105
 msgid "Ukrainian (koi8_u)"
 msgstr "Ukrainien (kio8-u)"
 
-#: src/pyams_utils/encoding.py:105
+#: src/pyams_utils/encoding.py:106
 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (mac_cyrillic)"
 msgstr "Bulgare, Biolorusse, Macédonien, Russe, Serve (mac-cyrillic)"
 
-#: src/pyams_utils/encoding.py:106
+#: src/pyams_utils/encoding.py:107
 msgid "Greek (mac_greek)"
 msgstr "Grec (mac-greek)"
 
-#: src/pyams_utils/encoding.py:107
+#: src/pyams_utils/encoding.py:108
 msgid "Icelandic (mac_iceland)"
 msgstr "Islandais (mac-iceland)"
 
-#: src/pyams_utils/encoding.py:108
+#: src/pyams_utils/encoding.py:109
 msgid "Central and Eastern Europe (mac_latin2)"
 msgstr "Europe centrale et de l'ouest (mac-latin2)"
 
-#: src/pyams_utils/encoding.py:109
+#: src/pyams_utils/encoding.py:110
 msgid "Western Europe (mac_roman)"
 msgstr "Europe de l'Ouest (mac-roman)"
 
-#: src/pyams_utils/encoding.py:110
+#: src/pyams_utils/encoding.py:111
 msgid "Turkish (mac_turkish)"
 msgstr "Turc (mac-turkish)"
 
-#: src/pyams_utils/encoding.py:111
+#: src/pyams_utils/encoding.py:112
 msgid "Kazakh (ptcp154)"
 msgstr "Kazak (ptcp154)"
 
-#: src/pyams_utils/encoding.py:112
+#: src/pyams_utils/encoding.py:113
 msgid "Japanese (shift_jis)"
 msgstr "Japonais (shift_jis)"
 
-#: src/pyams_utils/encoding.py:113
+#: src/pyams_utils/encoding.py:114
 msgid "Japanese (shift_jis_2004)"
 msgstr "Japonais (shift-jis-2004)"
 
-#: src/pyams_utils/encoding.py:114
+#: src/pyams_utils/encoding.py:115
 msgid "Japanese (shift_jisx0213)"
 msgstr "Japonais (shift-jisx0213)"
 
-#: src/pyams_utils/encoding.py:115
+#: src/pyams_utils/encoding.py:116
 msgid "all languages (utf_32)"
 msgstr "toutes les langues (utf-32)"
 
-#: src/pyams_utils/encoding.py:116
+#: src/pyams_utils/encoding.py:117
 msgid "all languages (utf_32_be)"
 msgstr "toutes les langues (utf-32-be)"
 
-#: src/pyams_utils/encoding.py:117
+#: src/pyams_utils/encoding.py:118
 msgid "all languages (utf_32_le)"
 msgstr "toutes les langues (utf-32-le)"
 
-#: src/pyams_utils/encoding.py:118
+#: src/pyams_utils/encoding.py:119
 msgid "all languages (utf_16)"
 msgstr "toutes les langues (utf-16)"
 
-#: src/pyams_utils/encoding.py:119
+#: src/pyams_utils/encoding.py:120
 msgid "all languages (BMP only - utf_16_be)"
 msgstr "toutes les langues (BMP seulement - utf-16-be"
 
-#: src/pyams_utils/encoding.py:120
+#: src/pyams_utils/encoding.py:121
 msgid "all languages (BMP only - utf_16_le)"
 msgstr "toutes les langues (BMP seulement - utf-16-le)"
 
-#: src/pyams_utils/encoding.py:121
+#: src/pyams_utils/encoding.py:122
 msgid "all languages (utf_7)"
 msgstr "toutes les langues (utf-7)"
 
-#: src/pyams_utils/encoding.py:122
+#: src/pyams_utils/encoding.py:123
 msgid "all languages (utf_8)"
 msgstr "toutes les langues (utf-8)"
 
-#: src/pyams_utils/encoding.py:123
+#: src/pyams_utils/encoding.py:124
 msgid "all languages (utf_8_sig)"
 msgstr "toutes les langues (utf-8-sig)"
 
-#: src/pyams_utils/text.py:94
+#: src/pyams_utils/text.py:108
 msgid "Simple text"
 msgstr "Texte simple"
 
-#: src/pyams_utils/text.py:118
+#: src/pyams_utils/text.py:132
 msgid "ReStructured text"
 msgstr "Texte structuré"
 
-#: src/pyams_utils/text.py:143
+#: src/pyams_utils/text.py:157
 msgid "Markdown text"
 msgstr "Markdown"
 
-#: src/pyams_utils/interfaces/inherit.py:37
+#: src/pyams_utils/interfaces/inherit.py:39
 msgid "Inherit from parent?"
 msgstr "Hériter du parent ?"
 
-#: src/pyams_utils/interfaces/inherit.py:41
+#: src/pyams_utils/interfaces/inherit.py:43
 msgid "Don't inherit from parent?"
 msgstr "Ne pas hériter du parent ?"
 
-#: src/pyams_utils/interfaces/__init__.py:33
+#: src/pyams_utils/interfaces/pygments.py:34
+msgid "Selected lexer"
+msgstr "Format du code"
+
+#: src/pyams_utils/interfaces/pygments.py:35
+msgid "Lexer used to format source code"
+msgstr "Lexeur utilisé pour analyser le code source"
+
+#: src/pyams_utils/interfaces/pygments.py:40
+msgid "Display line numbers?"
+msgstr "Numéros de lignes ?"
+
+#: src/pyams_utils/interfaces/pygments.py:41
+msgid "If 'no', line numbers will be hidden"
+msgstr "Si 'non', les numéros de lignes ne seront pas affichés"
+
+#: src/pyams_utils/interfaces/pygments.py:45
+msgid "Lines wrap?"
+msgstr "Sauts de lignes ?"
+
+#: src/pyams_utils/interfaces/pygments.py:46
+msgid ""
+"If 'yes', lines wraps will be enabled; line numbers will not be displayed if "
+"lines wrap is enabled..."
+msgstr ""
+"Si 'oui', les sauts de lignes seront possibles ; dans ce mode, l'affichage "
+"des numéros de lignes n'est pas possible..."
+
+#: src/pyams_utils/interfaces/pygments.py:51
+msgid "Color style"
+msgstr "Style de couleur"
+
+#: src/pyams_utils/interfaces/pygments.py:52
+msgid "Selected color style"
+msgstr "Style de mise en forme de la syntaxe"
+
+#: src/pyams_utils/interfaces/__init__.py:35
 msgid "Wrong contained type"
 msgstr "Type de contenu incorrect"
 
-#: src/pyams_utils/interfaces/__init__.py:34
+#: src/pyams_utils/interfaces/__init__.py:36
 msgid "One or more entries of sequence are not unique."
 msgstr "Toutes les entrées de la séquence ne sont pas uniques"
 
-#: src/pyams_utils/interfaces/__init__.py:35
+#: src/pyams_utils/interfaces/__init__.py:37
 msgid "Schema not fully implemented"
 msgstr "Schéma non implémenté"
 
-#: src/pyams_utils/interfaces/__init__.py:36
+#: src/pyams_utils/interfaces/__init__.py:38
 msgid "Schema not provided"
 msgstr "Schéma non fourni"
 
-#: src/pyams_utils/interfaces/__init__.py:37
+#: src/pyams_utils/interfaces/__init__.py:39
 msgid "The specified URI is not valid."
 msgstr ""
 "L'URL indiquée est invalide ; elle doit comprendre le protocole d'accès au "
 "site, comme « http:// » ou « https:// »"
 
-#: src/pyams_utils/interfaces/__init__.py:38
+#: src/pyams_utils/interfaces/__init__.py:40
 msgid "The specified id is not valid."
 msgstr "L'ID indiqué est invalide"
 
-#: src/pyams_utils/interfaces/__init__.py:39
+#: src/pyams_utils/interfaces/__init__.py:41
 msgid "The specified dotted name is not valid."
 msgstr "Le nom indiqué est invalide"
 
-#: src/pyams_utils/interfaces/__init__.py:40
+#: src/pyams_utils/interfaces/__init__.py:42
 msgid "The field is not bound."
 msgstr "Le chanmp n'est pas lié"
 
-#: src/pyams_utils/interfaces/__init__.py:42
+#: src/pyams_utils/interfaces/__init__.py:44
 msgid "Required input is missing."
 msgstr "Ce champ est obligatoire"
 
-#: src/pyams_utils/interfaces/__init__.py:43
+#: src/pyams_utils/interfaces/__init__.py:45
 msgid "Object is of wrong type."
 msgstr "L'objet est d'un type incorrect"
 
-#: src/pyams_utils/interfaces/__init__.py:44
+#: src/pyams_utils/interfaces/__init__.py:46
 msgid "Value is too big"
 msgstr "Valeur trop grande"
 
-#: src/pyams_utils/interfaces/__init__.py:45
+#: src/pyams_utils/interfaces/__init__.py:47
 msgid "Value is too small"
 msgstr "Valeur trop petite"
 
-#: src/pyams_utils/interfaces/__init__.py:46
+#: src/pyams_utils/interfaces/__init__.py:48
 msgid "Value is too long"
 msgstr "Valeur trop longue"
 
-#: src/pyams_utils/interfaces/__init__.py:47
+#: src/pyams_utils/interfaces/__init__.py:49
 msgid "Value is too short"
 msgstr "Valeur trop courte"
 
-#: src/pyams_utils/interfaces/__init__.py:48
+#: src/pyams_utils/interfaces/__init__.py:50
 msgid "Invalid value"
 msgstr "Valeur incorrecte"
 
-#: src/pyams_utils/interfaces/__init__.py:49
+#: src/pyams_utils/interfaces/__init__.py:51
 msgid "Constraint not satisfied"
 msgstr "Contrainte non satisfaite"
 
-#: src/pyams_utils/interfaces/__init__.py:50
+#: src/pyams_utils/interfaces/__init__.py:52
 msgid "Not a container"
 msgstr "Ce n'est pas un conteneur"
 
-#: src/pyams_utils/interfaces/__init__.py:51
+#: src/pyams_utils/interfaces/__init__.py:53
 msgid "Not an iterator"
 msgstr "Ce n'est pas un itérateur"
 
-#: src/pyams_utils/interfaces/zeo.py:71
+#: src/pyams_utils/interfaces/zeo.py:74
 msgid "Opened ZEO connection"
 msgstr "Connexion ZEO"
 
@@ -702,29 +710,29 @@
 "Mot de passe correspondant au code utilisateur indiqué; pour les serveurs "
 "ZEO avant la version 5.0 uniquement!!"
 
-#: src/pyams_utils/interfaces/zeo.py:57
+#: src/pyams_utils/interfaces/zeo.py:58
 msgid "ZEO server realm"
 msgstr "Domaine"
 
-#: src/pyams_utils/interfaces/zeo.py:58
+#: src/pyams_utils/interfaces/zeo.py:59
 msgid "Realm name on ZEO server; only for ZEO server before 5.0"
 msgstr ""
 "Nom du domaine d'authentification; pour les serveurs ZEO avant la version "
 "5.0 uniquement!!"
 
-#: src/pyams_utils/interfaces/zeo.py:61
+#: src/pyams_utils/interfaces/zeo.py:63
 msgid "BLOBs directory"
 msgstr "Dossier des BLOBs"
 
-#: src/pyams_utils/interfaces/zeo.py:62
+#: src/pyams_utils/interfaces/zeo.py:64
 msgid "Directory path for blob data"
 msgstr "Nom du répertoire destiné au stockage des blobs"
 
-#: src/pyams_utils/interfaces/zeo.py:65
+#: src/pyams_utils/interfaces/zeo.py:67
 msgid "Shared BLOBs directory ?"
 msgstr "Répertoire partagé ?"
 
-#: src/pyams_utils/interfaces/zeo.py:66
+#: src/pyams_utils/interfaces/zeo.py:68
 msgid ""
 "Flag whether the blob_dir is a server-shared filesystem that should be used "
 "instead of transferring blob data over zrpc."
@@ -733,7 +741,7 @@
 "partagé avec le serveur ou non ; dans ce cas, les fichiers seront accédés "
 "directement au lieu d'être chargés via ZRPC"
 
-#: src/pyams_utils/interfaces/text.py:34
+#: src/pyams_utils/interfaces/text.py:35
 msgid "Optional renderer label"
 msgstr "Libellé optionnel du mode de rendu"
 
@@ -745,11 +753,11 @@
 msgid "Default server timezone"
 msgstr "Fuseau horaire par défaut"
 
-#: src/pyams_utils/widget/decimal.py:31
+#: src/pyams_utils/widget/decimal.py:35
 msgid "The entered value is not a valid decimal literal."
 msgstr ""
-"La valeur saisie n'est pas une valeur décimale correcte (veuillez utiliser le point comme "
-"séparateur décimal)."
+"La valeur saisie n'est pas une valeur décimale correcte (veuillez utiliser "
+"le point comme séparateur décimal)."
 
 #~ msgid "Renderer name"
 #~ msgstr "Nom de l'outil de rendu"
--- a/src/pyams_utils/locales/pyams_utils.pot	Tue Jun 23 12:53:06 2020 +0200
+++ b/src/pyams_utils/locales/pyams_utils.pot	Tue Jun 23 13:02:10 2020 +0200
@@ -1,12 +1,12 @@
 #
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2019-01-18 13:52+0100\n"
+"POT-Creation-Date: 2020-06-23 12:47+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"
@@ -16,630 +16,636 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingua 3.10.dev0\n"
 
-#: ./src/pyams_utils/pygments.py:106
-msgid "Selected lexer"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:107
-msgid "Lexer used to format source code"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:112
-msgid "Display line numbers?"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:113
-msgid "If 'no', line numbers will be hidden"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:117
-msgid "Lines wrap?"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:118
-msgid ""
-"If 'yes', lines wraps will be enabled; line numbers will not be displayed if "
-"lines wrap is enabled..."
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:123
-msgid "Color style"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:124
-msgid "Selected color style"
-msgstr ""
-
-#: ./src/pyams_utils/pygments.py:75
+#: ./src/pyams_utils/pygments.py:81
 msgid "Automatic detection"
 msgstr ""
 
-#: ./src/pyams_utils/size.py:69
+#: ./src/pyams_utils/size.py:75
 msgid "0.0## Gb"
 msgstr ""
 
-#: ./src/pyams_utils/size.py:61
+#: ./src/pyams_utils/size.py:67
 msgid "0 bytes"
 msgstr ""
 
-#: ./src/pyams_utils/size.py:64
+#: ./src/pyams_utils/size.py:70
 msgid "0.# Kb"
 msgstr ""
 
-#: ./src/pyams_utils/size.py:67
+#: ./src/pyams_utils/size.py:73
 msgid "0.0# Mb"
 msgstr ""
 
-#: ./src/pyams_utils/schema.py:181
+#: ./src/pyams_utils/schema.py:210
 msgid ""
 "Email address must be entered as « name@domain.name », without '<' and '>' "
 "characters"
 msgstr ""
 
-#: ./src/pyams_utils/schema.py:115
+#: ./src/pyams_utils/schema.py:235
+msgid ""
+"Email addresses must be entered as « name@domain.name », without '<' and '>' "
+"characters, and separated by semicolons"
+msgstr ""
+
+#: ./src/pyams_utils/schema.py:142
 msgid "Color length must be 3 or 6 characters"
 msgstr ""
 
-#: ./src/pyams_utils/schema.py:118
+#: ./src/pyams_utils/schema.py:145
 msgid ""
 "Color value must contain only valid hexadecimal color codes (numbers or "
 "letters between 'A' end 'F')"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:94
+#: ./src/pyams_utils/date.py:97
 msgid "%d/%m/%Y"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:95
+#: ./src/pyams_utils/date.py:98
 msgid "%d/%m/%Y - %H:%M"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:97
+#: ./src/pyams_utils/date.py:100
 msgid "on %d/%m/%Y"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:98
+#: ./src/pyams_utils/date.py:101
 msgid "on %d/%m/%Y at %H:%M"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:156
+#: ./src/pyams_utils/date.py:160
 #, c-format
 msgid "%d months ago"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:231
+#: ./src/pyams_utils/date.py:236
 #, c-format
 msgid "%d months"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:158
+#: ./src/pyams_utils/date.py:162
 #, c-format
 msgid "%d weeks ago"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:233
+#: ./src/pyams_utils/date.py:238
 #, c-format
 msgid "%d weeks"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:160
+#: ./src/pyams_utils/date.py:164
 #, c-format
 msgid "%d days ago"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:162
+#: ./src/pyams_utils/date.py:166
 msgid "the day before yesterday"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:235
+#: ./src/pyams_utils/date.py:240
 #, c-format
 msgid "%d days"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:164
+#: ./src/pyams_utils/date.py:168
 msgid "yesterday"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:240
+#: ./src/pyams_utils/date.py:245
 msgid "24 hours"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:242
+#: ./src/pyams_utils/date.py:247
 #, c-format
 msgid "%d day and %d hours"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:245
+#: ./src/pyams_utils/date.py:250
 #, c-format
 msgid "%d hours"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:168
+#: ./src/pyams_utils/date.py:172
 #, c-format
 msgid "%d hours ago"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:172
+#: ./src/pyams_utils/date.py:176
 msgid "less than 5 minutes ago"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:249
+#: ./src/pyams_utils/date.py:254
 #, c-format
 msgid "%d minutes"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:251
+#: ./src/pyams_utils/date.py:256
 #, c-format
 msgid "%d seconds"
 msgstr ""
 
-#: ./src/pyams_utils/date.py:170
+#: ./src/pyams_utils/date.py:174
 #, c-format
 msgid "%d minutes ago"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:32
+#: ./src/pyams_utils/encoding.py:33
 msgid "English (ASCII)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:33
-msgid "Traditional Chinese (big5)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:34
-msgid "Traditional Chinese (big5hkscs)"
+msgid "Traditional Chinese (big5)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:35
-msgid "English (cp037)"
+msgid "Traditional Chinese (big5hkscs)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:36
-msgid "Hebrew (cp424)"
+msgid "English (cp037)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:37
-msgid "English (cp437)"
+msgid "Hebrew (cp424)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:38
-msgid "Western Europe (cp500)"
+msgid "English (cp437)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:39
-msgid "Arabic (cp720)"
+msgid "Western Europe (cp500)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:40
+msgid "Arabic (cp720)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:41
 msgid "Greek (cp737)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:41
+#: ./src/pyams_utils/encoding.py:42
 msgid "Baltic languages (cp775)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:42
+#: ./src/pyams_utils/encoding.py:43
 msgid "Western Europe (cp850)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:43
-msgid "Central and Eastern Europe (cp852)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:44
-msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (cp855)"
+msgid "Central and Eastern Europe (cp852)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:45
+msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (cp855)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:46
 msgid "Hebrew (cp856)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:46
+#: ./src/pyams_utils/encoding.py:47
 msgid "Turkish (cp857)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:47
+#: ./src/pyams_utils/encoding.py:48
 msgid "Western Europe (cp858)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:48
+#: ./src/pyams_utils/encoding.py:49
 msgid "Portuguese (cp860)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:49
-msgid "Icelandic (cp861)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:50
-msgid "Hebrew (cp862)"
+msgid "Icelandic (cp861)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:51
-msgid "Canadian (cp863)"
+msgid "Hebrew (cp862)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:52
-msgid "Arabic (cp864)"
+msgid "Canadian (cp863)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:53
+msgid "Arabic (cp864)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:54
 msgid "Danish, Norwegian (cp865)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:54
+#: ./src/pyams_utils/encoding.py:55
 msgid "Russian (cp866)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:55
+#: ./src/pyams_utils/encoding.py:56
 msgid "Greek (cp869)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:56
-msgid "Thai (cp874)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:57
-msgid "Greek (cp875)"
+msgid "Thai (cp874)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:58
+msgid "Greek (cp875)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:59
 msgid "Japanese (cp932)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:59
+#: ./src/pyams_utils/encoding.py:60
 msgid "Korean (cp949)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:60
+#: ./src/pyams_utils/encoding.py:61
 msgid "Traditional Chinese (cp950)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:61
+#: ./src/pyams_utils/encoding.py:62
 msgid "Urdu (cp1006)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:62
-msgid "Turkish (cp1026)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:63
-msgid "Western Europe (cp1140)"
+msgid "Turkish (cp1026)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:64
-msgid "Central and Eastern Europe (cp1250)"
+msgid "Western Europe (cp1140)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:65
-msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (cp1251)"
+msgid "Central and Eastern Europe (cp1250)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:66
+msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (cp1251)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:67
 msgid "Western Europe (cp1252)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:67
+#: ./src/pyams_utils/encoding.py:68
 msgid "Greek (cp1253)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:68
+#: ./src/pyams_utils/encoding.py:69
 msgid "Turkish (cp1254)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:69
-msgid "Hebrew (cp1255)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:70
-msgid "Arabic (cp1256)"
+msgid "Hebrew (cp1255)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:71
+msgid "Arabic (cp1256)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:72
 msgid "Baltic languages (cp1257)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:72
+#: ./src/pyams_utils/encoding.py:73
 msgid "Vietnamese (cp1258)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:73
+#: ./src/pyams_utils/encoding.py:74
 msgid "Japanese (euc_jp)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:74
+#: ./src/pyams_utils/encoding.py:75
 msgid "Japanese (euc_jis_2004)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:75
-msgid "Japanese (euc_jisx0213)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:76
-msgid "Korean (euc_kr)"
+msgid "Japanese (euc_jisx0213)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:77
-msgid "Simplified Chinese (gb2312)"
+msgid "Korean (euc_kr)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:78
-msgid "Unified Chinese (gbk)"
+msgid "Simplified Chinese (gb2312)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:79
-msgid "Unified Chinese (gb18030)"
+msgid "Unified Chinese (gbk)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:80
-msgid "Simplified Chinese (hz)"
+msgid "Unified Chinese (gb18030)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:81
-msgid "Japanese (iso2022_jp)"
+msgid "Simplified Chinese (hz)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:82
+msgid "Japanese (iso2022_jp)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:83
 msgid "Japanese (iso2022_jp_1)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:83
+#: ./src/pyams_utils/encoding.py:84
 msgid ""
 "Japanese, Korean, Simplified Chinese, Western Europe, Greek (iso2022_jp_2)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:84
+#: ./src/pyams_utils/encoding.py:85
 msgid "Japanese (iso2022_jp_2004)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:85
+#: ./src/pyams_utils/encoding.py:86
 msgid "Japanese (iso2022_jp_3)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:86
-msgid "Japanese (iso2022_jp_ext)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:87
+msgid "Japanese (iso2022_jp_ext)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:88
 msgid "Korean (iso2022_kr)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:88
+#: ./src/pyams_utils/encoding.py:89
 msgid "West Europe (latin_1)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:89
+#: ./src/pyams_utils/encoding.py:90
 msgid "Central and Eastern Europe (iso8859_2)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:90
-msgid "Esperanto, Maltese (iso8859_3)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:91
-msgid "Baltic languages (iso8859_4)"
+msgid "Esperanto, Maltese (iso8859_3)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:92
-msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (iso8859_5)"
+msgid "Baltic languages (iso8859_4)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:93
+msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (iso8859_5)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:94
 msgid "Arabic (iso8859_6)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:94
+#: ./src/pyams_utils/encoding.py:95
 msgid "Greek (iso8859_7)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:95
+#: ./src/pyams_utils/encoding.py:96
 msgid "Hebrew (iso8859_8)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:96
+#: ./src/pyams_utils/encoding.py:97
 msgid "Turkish (iso8859_9)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:97
+#: ./src/pyams_utils/encoding.py:98
 msgid "Nordic languages (iso8859_10)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:98
-msgid "Baltic languages (iso8859_13)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:99
-msgid "Celtic languages (iso8859_14)"
+msgid "Baltic languages (iso8859_13)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:100
-msgid "Western Europe (iso8859_15)"
+msgid "Celtic languages (iso8859_14)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:101
-msgid "South-Eastern Europe (iso8859_16)"
+msgid "Western Europe (iso8859_15)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:102
-msgid "Korean (johab)"
+msgid "South-Eastern Europe (iso8859_16)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:103
-msgid "Russian (koi8_r)"
+msgid "Korean (johab)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:104
-msgid "Ukrainian (koi8_u)"
+msgid "Russian (koi8_r)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:105
+msgid "Ukrainian (koi8_u)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:106
 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian (mac_cyrillic)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:106
+#: ./src/pyams_utils/encoding.py:107
 msgid "Greek (mac_greek)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:107
+#: ./src/pyams_utils/encoding.py:108
 msgid "Icelandic (mac_iceland)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:108
+#: ./src/pyams_utils/encoding.py:109
 msgid "Central and Eastern Europe (mac_latin2)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:109
-msgid "Western Europe (mac_roman)"
-msgstr ""
-
 #: ./src/pyams_utils/encoding.py:110
-msgid "Turkish (mac_turkish)"
+msgid "Western Europe (mac_roman)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:111
-msgid "Kazakh (ptcp154)"
+msgid "Turkish (mac_turkish)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:112
-msgid "Japanese (shift_jis)"
+msgid "Kazakh (ptcp154)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:113
-msgid "Japanese (shift_jis_2004)"
+msgid "Japanese (shift_jis)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:114
-msgid "Japanese (shift_jisx0213)"
+msgid "Japanese (shift_jis_2004)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:115
-msgid "all languages (utf_32)"
+msgid "Japanese (shift_jisx0213)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:116
-msgid "all languages (utf_32_be)"
+msgid "all languages (utf_32)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:117
-msgid "all languages (utf_32_le)"
+msgid "all languages (utf_32_be)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:118
-msgid "all languages (utf_16)"
+msgid "all languages (utf_32_le)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:119
-msgid "all languages (BMP only - utf_16_be)"
+msgid "all languages (utf_16)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:120
-msgid "all languages (BMP only - utf_16_le)"
+msgid "all languages (BMP only - utf_16_be)"
 msgstr ""
 
 #: ./src/pyams_utils/encoding.py:121
+msgid "all languages (BMP only - utf_16_le)"
+msgstr ""
+
+#: ./src/pyams_utils/encoding.py:122
 msgid "all languages (utf_7)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:122
+#: ./src/pyams_utils/encoding.py:123
 msgid "all languages (utf_8)"
 msgstr ""
 
-#: ./src/pyams_utils/encoding.py:123
+#: ./src/pyams_utils/encoding.py:124
 msgid "all languages (utf_8_sig)"
 msgstr ""
 
-#: ./src/pyams_utils/text.py:94
+#: ./src/pyams_utils/text.py:108
 msgid "Simple text"
 msgstr ""
 
-#: ./src/pyams_utils/text.py:118
+#: ./src/pyams_utils/text.py:132
 msgid "ReStructured text"
 msgstr ""
 
-#: ./src/pyams_utils/text.py:143
+#: ./src/pyams_utils/text.py:157
 msgid "Markdown text"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/inherit.py:37
+#: ./src/pyams_utils/interfaces/inherit.py:39
 msgid "Inherit from parent?"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/inherit.py:41
+#: ./src/pyams_utils/interfaces/inherit.py:43
 msgid "Don't inherit from parent?"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/__init__.py:33
-msgid "Wrong contained type"
+#: ./src/pyams_utils/interfaces/pygments.py:34
+msgid "Selected lexer"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/pygments.py:35
+msgid "Lexer used to format source code"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/pygments.py:40
+msgid "Display line numbers?"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/pygments.py:41
+msgid "If 'no', line numbers will be hidden"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/__init__.py:34
-msgid "One or more entries of sequence are not unique."
+#: ./src/pyams_utils/interfaces/pygments.py:45
+msgid "Lines wrap?"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/pygments.py:46
+msgid ""
+"If 'yes', lines wraps will be enabled; line numbers will not be displayed if "
+"lines wrap is enabled..."
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/pygments.py:51
+msgid "Color style"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/pygments.py:52
+msgid "Selected color style"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:35
-msgid "Schema not fully implemented"
+msgid "Wrong contained type"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:36
-msgid "Schema not provided"
+msgid "One or more entries of sequence are not unique."
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:37
+msgid "Schema not fully implemented"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/__init__.py:38
+msgid "Schema not provided"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/__init__.py:39
 msgid "The specified URI is not valid."
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/__init__.py:38
+#: ./src/pyams_utils/interfaces/__init__.py:40
 msgid "The specified id is not valid."
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/__init__.py:39
+#: ./src/pyams_utils/interfaces/__init__.py:41
 msgid "The specified dotted name is not valid."
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/__init__.py:40
+#: ./src/pyams_utils/interfaces/__init__.py:42
 msgid "The field is not bound."
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/__init__.py:42
-msgid "Required input is missing."
-msgstr ""
-
-#: ./src/pyams_utils/interfaces/__init__.py:43
-msgid "Object is of wrong type."
-msgstr ""
-
 #: ./src/pyams_utils/interfaces/__init__.py:44
-msgid "Value is too big"
+msgid "Required input is missing."
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:45
-msgid "Value is too small"
+msgid "Object is of wrong type."
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:46
-msgid "Value is too long"
+msgid "Value is too big"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:47
-msgid "Value is too short"
+msgid "Value is too small"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:48
-msgid "Invalid value"
+msgid "Value is too long"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:49
-msgid "Constraint not satisfied"
+msgid "Value is too short"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:50
-msgid "Not a container"
+msgid "Invalid value"
 msgstr ""
 
 #: ./src/pyams_utils/interfaces/__init__.py:51
+msgid "Constraint not satisfied"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/__init__.py:52
+msgid "Not a container"
+msgstr ""
+
+#: ./src/pyams_utils/interfaces/__init__.py:53
 msgid "Not an iterator"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:71
+#: ./src/pyams_utils/interfaces/zeo.py:74
 msgid "Opened ZEO connection"
 msgstr ""
 
@@ -691,33 +697,33 @@
 msgid "User password on ZEO server; only for ZEO server before 5.0"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:57
+#: ./src/pyams_utils/interfaces/zeo.py:58
 msgid "ZEO server realm"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:58
+#: ./src/pyams_utils/interfaces/zeo.py:59
 msgid "Realm name on ZEO server; only for ZEO server before 5.0"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:61
+#: ./src/pyams_utils/interfaces/zeo.py:63
 msgid "BLOBs directory"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:62
+#: ./src/pyams_utils/interfaces/zeo.py:64
 msgid "Directory path for blob data"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:65
+#: ./src/pyams_utils/interfaces/zeo.py:67
 msgid "Shared BLOBs directory ?"
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/zeo.py:66
+#: ./src/pyams_utils/interfaces/zeo.py:68
 msgid ""
 "Flag whether the blob_dir is a server-shared filesystem that should be used "
 "instead of transferring blob data over zrpc."
 msgstr ""
 
-#: ./src/pyams_utils/interfaces/text.py:34
+#: ./src/pyams_utils/interfaces/text.py:35
 msgid "Optional renderer label"
 msgstr ""
 
@@ -729,6 +735,6 @@
 msgid "Default server timezone"
 msgstr ""
 
-#: ./src/pyams_utils/widget/decimal.py:31
+#: ./src/pyams_utils/widget/decimal.py:35
 msgid "The entered value is not a valid decimal literal."
 msgstr ""
--- a/src/pyams_utils/schema.py	Tue Jun 23 12:53:06 2020 +0200
+++ b/src/pyams_utils/schema.py	Tue Jun 23 13:02:10 2020 +0200
@@ -207,8 +207,8 @@
 class InvalidEmail(ValidationError):
     """Invalid email validation error"""
 
-    __doc__ = _(
-        "Email address must be entered as « name@domain.name », without '<' and '>' characters")
+    __doc__ = _("Email address must be entered as « name@domain.name », without '<' and '>' "
+                "characters")
 
 
 @implementer(IMailAddressField)
@@ -219,3 +219,29 @@
         super(MailAddressField, self)._validate(value)
         if not EMAIL_REGEX.match(value):
             raise InvalidEmail(value)
+
+
+#
+# Multiple addresses field
+#
+
+class IMailAddressesListField(ITextLine):
+    """Marker interface for multiple mail addresses list"""
+
+
+class InvalidEmailsList(ValidationError):
+    """Invalid mail addresses list validation error"""
+
+    __doc__ = _("Email addresses must be entered as « name@domain.name », without '<' and '>' "
+                "characters, and separated by semicolons")
+
+
+@implementer(IMailAddressesListField)
+class MailAddressesListField(TextLine):
+    """Mail addresses list field"""
+
+    def _validate(self, value):
+        super(MailAddressesListField, self)._validate(value)
+        for address in value.split(';'):
+            if not EMAIL_REGEX.match(address.strip()):
+                raise InvalidEmailsList(value)