cannot add unvalaible consistency for an option

This commit is contained in:
Emmanuel Garette 2014-10-25 22:47:40 +02:00
parent 8f950620f7
commit 471af4fd75
5 changed files with 1009 additions and 783 deletions

View File

@ -20,6 +20,13 @@ def test_consistency():
raises(ConfigError, "a.impl_add_consistency('not_equal', 'a')")
def test_consistency_not_exists():
a = IntOption('a', '')
b = IntOption('b', '')
od = OptionDescription('od', '', [a, b])
raises(ConfigError, "a.impl_add_consistency('not_exists', b)")
def test_consistency_warnings_only():
a = IntOption('a', '')
b = IntOption('b', '')

View File

@ -49,5 +49,4 @@ gettext.translation(APP_NAME, fallback=True)
t = gettext.translation(APP_NAME, fallback=True)
def _(msg):
return t.gettext(msg)
_ = t.gettext

View File

@ -147,7 +147,7 @@ class Base(StorageBase):
self.impl_getname()))
if self.impl_get_callback()[0] is not None:
raise ConfigError(_("a callback is already set for option {0}, "
"cannot set another one's".format(self.impl_getname())))
"cannot set another one's").format(self.impl_getname()))
self._validate_callback(callback, callback_params)
if callback is not None:
validate_callback(callback, callback_params, 'callback')
@ -629,7 +629,7 @@ class Option(OnlyOption):
:param params: extra params (only warnings_only are allowed)
"""
if self.impl_is_readonly(): # pragma: optional cover
raise AttributeError(_("'{0}' ({1}) cannont add consistency, option is"
raise AttributeError(_("'{0}' ({1}) cannot add consistency, option is"
" read-only").format(
self.__class__.__name__,
self.impl_getname()))
@ -658,6 +658,8 @@ class Option(OnlyOption):
raise ConfigError(_('every options in consistency must be '
'multi or none'))
func = '_cons_{0}'.format(func)
if func not in dir(self):
raise ConfigError(_('consistency {0} not available for this option'))
all_cons_opts = tuple([self] + list(other_opts))
value = self.impl_getdefault()
if value is not None:

View File

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Tiramisu\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-03-29 19:01+CET\n"
"POT-Creation-Date: 2014-10-25 22:43+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
"Language-Team: Tiramisu's team <egarette@cadoles.com>\n"
@ -14,115 +14,134 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: tiramisu/autolib.py:165
#: tiramisu/autolib.py:176
msgid ""
"unable to carry out a calculation, option {0} has properties: {1} for: {2}"
msgstr ""
"impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : "
"{2}"
#: tiramisu/config.py:51
#: tiramisu/config.py:58
msgid "descr must be an optiondescription, not {0}"
msgstr "descr doit être une optiondescription pas un {0}"
#: tiramisu/config.py:126
#: tiramisu/config.py:137
msgid "unknown group_type: {0}"
msgstr "group_type inconnu: {0}"
#: tiramisu/config.py:163 tiramisu/setting.py:334 tiramisu/value.py:55
#: tiramisu/value.py:500
#: tiramisu/config.py:176 tiramisu/setting.py:321 tiramisu/value.py:54
#: tiramisu/value.py:541
msgid "the context does not exist anymore"
msgstr "le context n'existe plus"
#: tiramisu/config.py:168
#: tiramisu/config.py:181
msgid "no option description found for this config (may be GroupConfig)"
msgstr ""
"pas d'option description trouvé pour cette config (peut être un GroupConfig)"
#: tiramisu/config.py:194
#: tiramisu/config.py:209
msgid "can't assign to an OptionDescription"
msgstr "ne peut pas attribuer une valeur à une OptionDescription"
#: tiramisu/config.py:324
#: tiramisu/config.py:335
msgid "unknown type_ type {0}for _find"
msgstr "type_ type {0} pour _find inconnu"
#: tiramisu/config.py:363
#: tiramisu/config.py:370
msgid "no option found in config with these criteria"
msgstr "aucune option trouvée dans la config avec ces critères"
#: tiramisu/config.py:413
#: tiramisu/config.py:420
msgid "make_dict can't filtering with value without option"
msgstr "make_dict ne peut filtrer sur une valeur mais sans option"
#: tiramisu/config.py:434
#: tiramisu/config.py:439
msgid "unexpected path {0}, should start with {1}"
msgstr "chemin imprévu {0}, devrait commencer par {1}"
#: tiramisu/config.py:491
#: tiramisu/config.py:507
msgid "opt in getowner must be an option not {0}"
msgstr "opt dans getowner doit être une option pas {0}"
#: tiramisu/config.py:535
#: tiramisu/config.py:552
msgid "cannot serialize Config with MetaConfig"
msgstr "impossible de sérialiser une Config avec une MetaConfig"
#: tiramisu/config.py:549
#: tiramisu/config.py:566
msgid "this storage is not serialisable, could be a none persistent storage"
msgstr "ce storage n'est sérialisable, devrait être une storage non persistant"
#: tiramisu/config.py:612
#: tiramisu/config.py:629
msgid "metaconfig's children must be a list"
msgstr "enfants d'une metaconfig doit être une liste"
#: tiramisu/config.py:706
#: tiramisu/config.py:723
msgid "metaconfig's children should be config, not {0}"
msgstr "enfants d'une metaconfig doit être une config, pas {0}"
#: tiramisu/config.py:710
#: tiramisu/config.py:727
msgid "child has already a metaconfig's"
msgstr "enfant a déjà une metaconfig"
#: tiramisu/config.py:714
#: tiramisu/config.py:731
msgid "all config in metaconfig must have the same optiondescription"
msgstr ""
"toutes les configs d'une metaconfig doivent avoir la même optiondescription"
#: tiramisu/option.py:66
#: tiramisu/option/baseoption.py:56
msgid "{0} must be a function"
msgstr "{0} doit être une fonction"
#: tiramisu/option/baseoption.py:59
msgid "{0}_params must be a dict"
msgstr "{0}_params doit être un dict"
#: tiramisu/option/baseoption.py:62
msgid "{0}_params with key {1} mustn't have length different to 1"
msgstr ""
"{0}_params avec la clef {1} ne doit pas avoir une longueur différent de 1"
#: tiramisu/option/baseoption.py:66
msgid "{0}_params must be tuple for key \"{1}\""
msgstr "{0}_params doit être un tuple pour la clef \"{1}\""
#: tiramisu/option/baseoption.py:72
msgid "{0}_params with length of tuple as 1 must only have None as first value"
msgstr ""
"{0}_params avec un tuple de longueur 1 doit seulement avoir None comme "
"première valeur"
#: tiramisu/option/baseoption.py:76
msgid "{0}_params must only have 1 or 2 as length"
msgstr "{0}_params doit seulement avoir une longueur de 1 ou 2"
#: tiramisu/option/baseoption.py:81
msgid "validator not support tuple"
msgstr "validator n'accepte pas de tuple"
#: tiramisu/option/baseoption.py:84
msgid "{0}_params must have an option not a {0} for first argument"
msgstr "{0}_params doit avoir une option pas un {0} pour premier argument"
#: tiramisu/option/baseoption.py:88
msgid "{0}_params must have a boolean not a {0} for second argument"
msgstr "{0}_params doit avoir un booléen pas un {0} pour second argument"
#: tiramisu/option/baseoption.py:104
msgid "invalid name: {0} for option"
msgstr "nom invalide : {0} pour l'option"
#: tiramisu/option.py:75
msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
#: tiramisu/option.py:113
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
#: tiramisu/option.py:140 tiramisu/value.py:410
msgid "information's item not found: {0}"
msgstr "aucune config spécifiée alors que c'est nécessaire"
#: tiramisu/option.py:202
msgid "cannot serialize Option, only in OptionDescription"
msgstr "ne peut serialiser une Option, seulement via une OptionDescription"
#: tiramisu/option.py:305
#: tiramisu/option/baseoption.py:112
msgid "a default_multi is set whereas multi is False in option: {0}"
msgstr ""
"une default_multi est renseignée alors que multi est False dans l'option : "
"{0}"
#: tiramisu/option.py:311
msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
#: tiramisu/option/baseoption.py:123
msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
#: tiramisu/option.py:316
msgid "default value not allowed if option: {0} is calculated"
msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée"
#: tiramisu/option.py:319
#: tiramisu/option/baseoption.py:144
msgid ""
"params defined for a callback function but no callback defined yet for "
"option {0}"
@ -130,289 +149,112 @@ msgstr ""
"params définis pour une fonction callback mais par de callback encore "
"définis pour l'option {0}"
#: tiramisu/option.py:424 tiramisu/option.py:454
#: tiramisu/option/baseoption.py:149
msgid "a callback is already set for option {0}, cannot set another one's"
msgstr ""
"un callback est en lecture seul pour l'option {0}, ne peut en placer une "
"autre"
#: tiramisu/option/baseoption.py:276
msgid "cannot serialize Option, only in OptionDescription"
msgstr "ne peut serialiser une Option, seulement via une OptionDescription"
#: tiramisu/option/baseoption.py:354
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
#: tiramisu/option/baseoption.py:509 tiramisu/option/baseoption.py:552
msgid "invalid value for option {0}: {1}"
msgstr "valeur invalide pour l'option {0} : {1}"
#: tiramisu/option.py:448
#: tiramisu/option/baseoption.py:522
msgid "do_validation for {0}: error in value"
msgstr "do_validation for {0} : erreur dans un la valeur"
#: tiramisu/option/baseoption.py:528
msgid "do_validation for {0}: warning in value"
msgstr "do_validation for {0} : warning dans un la valeur"
#: tiramisu/option/baseoption.py:538
msgid "do_validation for {0}: error in consistency"
msgstr "do_validation for {0} : erreur dans un test de consistance"
#: tiramisu/option/baseoption.py:542
msgid "do_validation for {0}: warning in consistency"
msgstr "do_validation for {0} : warning dans un test de consistance"
#: tiramisu/option/baseoption.py:546
msgid "warning on the value of the option {0}: {1}"
msgstr "avertissement sur la valeur de l'option {0} : {1}"
#: tiramisu/option.py:465
#: tiramisu/option/baseoption.py:564 tiramisu/option/baseoption.py:573
msgid "invalid value {0} for option {1} which must be a list"
msgstr "valeur invalide pour l'option {0} : {1} laquelle doit être une liste"
#: tiramisu/option.py:523
#: tiramisu/option/baseoption.py:579
msgid "invalid value {0} for option {1} which must be a list of list"
msgstr ""
"valeur invalide pour l'option {0} : {1} laquelle doit être une liste de liste"
#: tiramisu/option/baseoption.py:632
#, fuzzy
msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr ""
"'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul"
#: tiramisu/option/baseoption.py:643
msgid "consistency must be set with an option"
msgstr "consistency doit être configuré avec une option"
#: tiramisu/option.py:525
#: tiramisu/option/baseoption.py:646 tiramisu/option/baseoption.py:653
msgid ""
"almost one option in consistency is in a dynoptiondescription but not all"
msgstr ""
"au moins une option dans le test de consistance est dans une "
"dynoptiondescription mais pas toutes"
#: tiramisu/option/baseoption.py:649
msgid "option in consistency must be in same dynoptiondescription"
msgstr ""
"option dans une consistency doit être dans le même dynoptiondescription"
#: tiramisu/option/baseoption.py:656
msgid "cannot add consistency with itself"
msgstr "ne peut ajouter une consistency avec lui même"
#: tiramisu/option.py:527
#: tiramisu/option/baseoption.py:658
msgid "every options in consistency must be multi or none"
msgstr ""
"toutes les options d'une consistency doivent être multi ou ne pas l'être"
#: tiramisu/option.py:548
#: tiramisu/option/baseoption.py:662
msgid "consistency {0} not available for this option"
msgstr "consistency {0} non valable pour cette option"
#: tiramisu/option/baseoption.py:689
msgid "same value for {0} and {1}, should be different"
msgstr "même valeur pour {0} et {1}, devrait être différent"
#: tiramisu/option.py:550
#: tiramisu/option/baseoption.py:691
msgid "same value for {0} and {1}, must be different"
msgstr "même valeur pour {0} et {1}, doit être différent"
#: tiramisu/option.py:644
msgid "values must be a tuple for {0}"
msgstr "values doit être un tuple pour {0}"
#: tiramisu/option/baseoption.py:748
msgid "default value not allowed if option: {0} is calculated"
msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée"
#: tiramisu/option.py:647
msgid "open_values must be a boolean for {0}"
msgstr "open_values doit être un booléen pour {0}"
#: tiramisu/option.py:669
msgid "value {0} is not permitted, only {1} is allowed"
msgstr "valeur {0} n'est pas permis, seules {1} sont autorisées"
#: tiramisu/option.py:681
msgid "invalid boolean"
msgstr "booléen invalide"
#: tiramisu/option.py:691
msgid "invalid integer"
msgstr "nombre invalide"
#: tiramisu/option.py:701
msgid "invalid float"
msgstr "invalide nombre flottan"
#: tiramisu/option.py:711
msgid "invalid string"
msgstr "invalide caractère"
#: tiramisu/option.py:728
msgid "invalid unicode"
msgstr "invalide unicode"
#: tiramisu/option.py:740
msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "symlinkoption mal formé, doit être une option pour symlink {0}"
#: tiramisu/option.py:791 tiramisu/option.py:794 tiramisu/option.py:799
msgid "invalid IP"
msgstr "adresse IP invalide"
#: tiramisu/option.py:805
msgid "IP is in reserved class"
msgstr "l'adresse IP est dans une plage d'adresse réservée"
#: tiramisu/option.py:807
msgid "invalid IP, mustn't be in reserved class"
msgstr "adresse IP invalide, ne doit pas être dans une classe réservée"
#: tiramisu/option.py:811
msgid "IP is not in private class"
msgstr "l'adresse IP n'est pas dans une plage d'adressage privée"
#: tiramisu/option.py:813
msgid "invalid IP, must be in private class"
msgstr "adresse IP invalide, doit être dans la classe privée"
#: tiramisu/option.py:818 tiramisu/option.py:993
msgid "invalid len for vals"
msgstr "longueur invalide pour vals"
#: tiramisu/option.py:824
msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr "IP {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
#: tiramisu/option.py:827
msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr ""
"IP invalide {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
#: tiramisu/option.py:868
msgid "inconsistency in allowed range"
msgstr "inconsistence dans la plage autorisée"
#: tiramisu/option.py:873
msgid "max value is empty"
msgstr "la valeur maximum est vide"
#: tiramisu/option.py:890
msgid "invalid port, range must have two values only"
msgstr "port invalide, une plage doit avoir deux valeurs seulement"
#: tiramisu/option.py:893
msgid "invalid port, first port in range must be smaller than the second one"
msgstr ""
"port invalide, le premier port d'une plage doit être plus petit que le second"
#: tiramisu/option.py:902
msgid "invalid port"
msgstr "port invalide"
#: tiramisu/option.py:904
msgid "invalid port, must be an between {0} and {1}"
msgstr "port invalide, port doit être entre {0} et {1}"
#: tiramisu/option.py:918
msgid "invalid network address"
msgstr "adresse réseau invalide"
#: tiramisu/option.py:924
msgid "network address is in reserved class"
msgstr "l'adresse réseau est pas dans une plage d'adresse réservée"
#: tiramisu/option.py:926
msgid "invalid network address, mustn't be in reserved class"
msgstr "adresse réseau invalide, ne doit pas être dans la classe réservée"
#: tiramisu/option.py:939
msgid "invalid netmask address"
msgstr "masque de sous-réseau invalide"
#: tiramisu/option.py:956
msgid "invalid len for opts"
msgstr "longueur invalide pour opts"
#: tiramisu/option.py:970
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un réseau"
#: tiramisu/option.py:975
msgid "invalid network {0} ({1}) with netmask {2}"
msgstr "réseau invalide {0} ({1}) avec masque {2}"
#: tiramisu/option.py:989
msgid "invalid broadcast address"
msgstr "adresse de broadcast invalide"
#: tiramisu/option.py:998
msgid ""
"invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
msgstr ""
"Broadcast invalide {0} ({1}) avec le réseau {2} ({3}) et le masque {4} ({5})"
#: tiramisu/option.py:1020
msgid "unknown type_ {0} for hostname"
msgstr "type_ inconnu {0} pour le nom d'hôte"
#: tiramisu/option.py:1023
msgid "allow_ip must be a boolean"
msgstr "allow_ip doit être un booléen"
#: tiramisu/option.py:1025
msgid "allow_without_dot must be a boolean"
msgstr "allow_without_dot doit être un booléen"
#: tiramisu/option.py:1069
msgid "invalid domainname, must have dot"
msgstr "nom de domaine invalide, doit avoir un point"
#: tiramisu/option.py:1071
msgid "invalid domainname's length (max 255)"
msgstr "longueur du nom de domaine invalide (maximum {1})"
#: tiramisu/option.py:1073
msgid "invalid domainname's length (min 2)"
msgstr "longueur du nom de domaine invalide (minimum 2)"
#: tiramisu/option.py:1075
msgid "invalid domainname"
msgstr "nom de domaine invalide"
#: tiramisu/option.py:1088
msgid "invalid email address, must contains one @"
msgstr "adresse email invalide, doit contenir un @"
#: tiramisu/option.py:1091
msgid "invalid username in email address"
msgstr "nom d'utilisateur invalide dans une adresse email"
#: tiramisu/option.py:1104
msgid "invalid url, must start with http:// or https://"
msgstr "URL invalide, doit démarrer avec http:// ou https://"
#: tiramisu/option.py:1123
msgid "invalid url, port must be an between 0 and 65536"
msgstr "URL invalide, port doit être entre 0 et 65536"
#: tiramisu/option.py:1129
msgid "invalid url, must ends with filename"
msgstr "URL invalide, doit finir avec un nom de fichier"
#: tiramisu/option.py:1141
msgid "invalid username"
msgstr "utilisateur invalide"
#: tiramisu/option.py:1152
msgid "invalid filename"
msgstr "nom de fichier invalide"
#: tiramisu/option.py:1179
msgid "duplicate option name: {0}"
msgstr "nom de l'option dupliqué : {0}"
#: tiramisu/option.py:1197
msgid "unknown Option {0} in OptionDescription {1}"
msgstr "Option {0} inconnue pour l'OptionDescription {1}"
#: tiramisu/option.py:1248
msgid "duplicate option: {0}"
msgstr "option dupliquée : {0}"
#: tiramisu/option.py:1279
msgid "consistency with option {0} which is not in Config"
msgstr "consistency avec l'option {0} qui n'est pas dans une Config"
#: tiramisu/option.py:1287
msgid "no option for path {0}"
msgstr "pas d'option pour le chemin {0}"
#: tiramisu/option.py:1293
msgid "no option {0} found"
msgstr "pas d'option {0} trouvée"
#: tiramisu/option.py:1303
msgid "cannot change group_type if already set (old {0}, new {1})"
msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})"
#: tiramisu/option.py:1315
msgid "master group {0} shall not have a subgroup"
msgstr "groupe maître {0} ne doit pas avoir de sous-groupe"
#: tiramisu/option.py:1318
msgid "master group {0} shall not have a symlinkoption"
msgstr "groupe maître {0} ne doit pas avoir de symlinkoption"
#: tiramisu/option.py:1321
msgid "not allowed option {0} in group {1}: this option is not a multi"
msgstr ""
"option non autorisée {0} dans le groupe {1} : cette option n'est pas une "
"multi"
#: tiramisu/option.py:1331
msgid "master group with wrong master name for {0}"
msgstr "le groupe maître avec un nom de maître érroné pour {0}"
#: tiramisu/option.py:1339
msgid "callback of master's option shall not refered a slave's ones"
msgstr ""
"callback d'une variable maitre ne devrait pas référencer des variables "
"esclaves"
#: tiramisu/option.py:1347
msgid "group_type: {0} not allowed"
msgstr "group_type : {0} non autorisé"
#: tiramisu/option.py:1444
#: tiramisu/option/baseoption.py:770
msgid "malformed requirements type for option: {0}, must be a dict"
msgstr ""
"type requirements malformé pour l'option : {0}, doit être un dictionnaire"
#: tiramisu/option.py:1461
#: tiramisu/option/baseoption.py:776
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr ""
"requirements mal formés pour l'option : {0} clefs inconnues {1}, doit "
"seulement avoir {2}"
#: tiramisu/option/baseoption.py:787
msgid ""
"malformed requirements for option: {0} require must have option, expected "
"and action keys"
@ -420,127 +262,359 @@ msgstr ""
"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
"option, expected et action"
#: tiramisu/option.py:1465
#: tiramisu/option/baseoption.py:791
msgid ""
"malformed requirements for option: {0} action cannot be force_store_value"
msgstr ""
"requirements mal formés pour l'option : {0} action ne peut pas être "
"force_store_value"
#: tiramisu/option.py:1470
#: tiramisu/option/baseoption.py:796
msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr ""
"requirements mal formés pour l'option : {0} inverse doit être un booléen"
#: tiramisu/option.py:1474
#: tiramisu/option/baseoption.py:800
msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr ""
"requirements mal formés pour l'option : {0} transitive doit être booléen"
#: tiramisu/option.py:1478
#: tiramisu/option/baseoption.py:804
msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr ""
"requirements mal formés pour l'option : {0} same_action doit être un booléen"
#: tiramisu/option.py:1482
#: tiramisu/option/baseoption.py:808
msgid "malformed requirements must be an option in option {0}"
msgstr "requirements mal formés doit être une option dans l'option {0}"
#: tiramisu/option.py:1485
msgid "malformed requirements option {0} must not be a multi"
msgstr "requirements mal formés l'option {0} ne doit pas être une multi"
#: tiramisu/option/baseoption.py:811
msgid "malformed requirements option {0} must not be a multi for {1}"
msgstr ""
"requirements mal formés pour l'option {0} ne doit pas être une multi pour {1}"
#: tiramisu/option.py:1491
#: tiramisu/option/baseoption.py:818
msgid ""
"malformed requirements second argument must be valid for option {0}: {1}"
msgstr ""
"requirements mal formés deuxième argument doit être valide pour l'option "
"{0} : {1}"
#: tiramisu/option.py:1496
#: tiramisu/option/baseoption.py:823
msgid "inconsistency in action types for option: {0} action: {1}"
msgstr "incohérence dans les types action pour l'option : {0} action {1}"
#: tiramisu/option.py:1521
msgid "{0} must be a function"
msgstr "{0} doit être une fonction"
#: tiramisu/option/baseoption.py:851
msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "symlinkoption mal formé, doit être une option pour symlink {0}"
#: tiramisu/option.py:1524
msgid "{0}_params must be a dict"
msgstr "{0}_params doit être un dict"
#: tiramisu/option/masterslave.py:38
msgid "master group {0} shall not have a symlinkoption"
msgstr "groupe maître {0} ne doit pas avoir de symlinkoption"
#: tiramisu/option.py:1527
msgid "{0}_params with key {1} mustn't have length different to 1"
#: tiramisu/option/masterslave.py:41
msgid "master group {0} shall not have a subgroup"
msgstr "groupe maître {0} ne doit pas avoir de sous-groupe"
#: tiramisu/option/masterslave.py:44
msgid "not allowed option {0} in group {1}: this option is not a multi"
msgstr ""
"{0}_params avec la clef {1} ne doit pas avoir une longueur différent de 1"
"option non autorisée {0} dans le groupe {1} : cette option n'est pas une "
"multi"
#: tiramisu/option.py:1531
msgid "{0}_params must be tuple for key \"{1}\""
msgstr "{0}_params doit être un tuple pour la clef \"{1}\""
#: tiramisu/option/masterslave.py:53
msgid "master group with wrong master name for {0}"
msgstr "le groupe maître avec un nom de maître érroné pour {0}"
#: tiramisu/option.py:1537
msgid "{0}_params with length of tuple as 1 must only have None as first value"
#: tiramisu/option/masterslave.py:63
msgid "callback of master's option shall not refered a slave's ones"
msgstr ""
"{0}_params avec un tuple de longueur 1 doit seulement avoir None comme "
"première valeur"
"callback d'une variable maitre ne devrait pas référencer des variables "
"esclaves"
#: tiramisu/option.py:1541
msgid "{0}_params must only have 1 or 2 as length"
msgstr "{0}_params doit seulement avoir une longueur de 1 ou 2"
#: tiramisu/option/masterslave.py:198
msgid "invalid len for the slave: {0} which has {1} as master"
msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître"
#: tiramisu/option.py:1546
msgid "validator not support tuple"
msgstr "validator n'accepte pas de tuple"
#: tiramisu/option/option.py:53
msgid "values is not a function, so values_params must be None"
msgstr "values n'est pas une fonction, donc values_params doit être None"
#: tiramisu/option.py:1549
msgid "{0}_params must have an option not a {0} for first argument"
msgstr "{0}_params doit avoir une option pas un {0} pour premier argument"
#: tiramisu/option/option.py:55
msgid "values must be a tuple or a function for {0}"
msgstr "values doit être un tuple ou une fonction pour {0}"
#: tiramisu/option.py:1553
msgid "{0}_params must have a boolean not a {0} for second argument"
msgstr "{0}_params doit avoir un booléen pas un {0} pour second argument"
#: tiramisu/option/option.py:81
msgid "calculated values for {0} is not a list"
msgstr "valeurs calculées for {0} n'est pas une liste"
#: tiramisu/setting.py:111
#: tiramisu/option/option.py:89
msgid "value {0} is not permitted, only {1} is allowed"
msgstr "valeur {0} n'est pas permis, seules {1} sont autorisées"
#: tiramisu/option/option.py:103
msgid "invalid boolean"
msgstr "booléen invalide"
#: tiramisu/option/option.py:112
msgid "invalid integer"
msgstr "nombre invalide"
#: tiramisu/option/option.py:121
msgid "invalid float"
msgstr "invalide nombre flottan"
#: tiramisu/option/option.py:130
msgid "invalid string"
msgstr "invalide caractère"
#: tiramisu/option/option.py:146
msgid "invalid unicode"
msgstr "invalide unicode"
#: tiramisu/option/option.py:178 tiramisu/option/option.py:181
#: tiramisu/option/option.py:186
msgid "invalid IP"
msgstr "adresse IP invalide"
#: tiramisu/option/option.py:192
msgid "IP is in reserved class"
msgstr "l'adresse IP est dans une plage d'adresse réservée"
#: tiramisu/option/option.py:194
msgid "invalid IP, mustn't be in reserved class"
msgstr "adresse IP invalide, ne doit pas être dans une classe réservée"
#: tiramisu/option/option.py:198
msgid "IP is not in private class"
msgstr "l'adresse IP n'est pas dans une plage d'adressage privée"
#: tiramisu/option/option.py:200
msgid "invalid IP, must be in private class"
msgstr "adresse IP invalide, doit être dans la classe privée"
#: tiramisu/option/option.py:205 tiramisu/option/option.py:377
msgid "invalid len for vals"
msgstr "longueur invalide pour vals"
#: tiramisu/option/option.py:211
msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr "IP {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
#: tiramisu/option/option.py:214
msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr ""
"IP invalide {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
#: tiramisu/option/option.py:254
msgid "inconsistency in allowed range"
msgstr "inconsistence dans la plage autorisée"
#: tiramisu/option/option.py:259
msgid "max value is empty"
msgstr "la valeur maximum est vide"
#: tiramisu/option/option.py:277
msgid "invalid port, range must have two values only"
msgstr "port invalide, une plage doit avoir deux valeurs seulement"
#: tiramisu/option/option.py:280
msgid "invalid port, first port in range must be smaller than the second one"
msgstr ""
"port invalide, le premier port d'une plage doit être plus petit que le second"
#: tiramisu/option/option.py:289
msgid "invalid port"
msgstr "port invalide"
#: tiramisu/option/option.py:291
msgid "invalid port, must be an between {0} and {1}"
msgstr "port invalide, port doit être entre {0} et {1}"
#: tiramisu/option/option.py:304
msgid "invalid network address"
msgstr "adresse réseau invalide"
#: tiramisu/option/option.py:310
msgid "network address is in reserved class"
msgstr "l'adresse réseau est pas dans une plage d'adresse réservée"
#: tiramisu/option/option.py:312
msgid "invalid network address, mustn't be in reserved class"
msgstr "adresse réseau invalide, ne doit pas être dans la classe réservée"
#: tiramisu/option/option.py:324
msgid "invalid netmask address"
msgstr "masque de sous-réseau invalide"
#: tiramisu/option/option.py:341
msgid "invalid len for opts"
msgstr "longueur invalide pour opts"
#: tiramisu/option/option.py:355
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un réseau"
#: tiramisu/option/option.py:360
msgid "invalid network {0} ({1}) with netmask {2}"
msgstr "réseau invalide {0} ({1}) avec masque {2}"
#: tiramisu/option/option.py:373
msgid "invalid broadcast address"
msgstr "adresse de broadcast invalide"
#: tiramisu/option/option.py:382
msgid ""
"invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
msgstr ""
"Broadcast invalide {0} ({1}) avec le réseau {2} ({3}) et le masque {4} ({5})"
#: tiramisu/option/option.py:403
msgid "unknown type_ {0} for hostname"
msgstr "type_ inconnu {0} pour le nom d'hôte"
#: tiramisu/option/option.py:406
msgid "allow_ip must be a boolean"
msgstr "allow_ip doit être un booléen"
#: tiramisu/option/option.py:408
msgid "allow_without_dot must be a boolean"
msgstr "allow_without_dot doit être un booléen"
#: tiramisu/option/option.py:454
msgid "invalid domainname, must have dot"
msgstr "nom de domaine invalide, doit avoir un point"
#: tiramisu/option/option.py:456
msgid "invalid domainname's length (max 255)"
msgstr "longueur du nom de domaine invalide (maximum {1})"
#: tiramisu/option/option.py:458
msgid "invalid domainname's length (min 2)"
msgstr "longueur du nom de domaine invalide (minimum 2)"
#: tiramisu/option/option.py:460
msgid "invalid domainname"
msgstr "nom de domaine invalide"
#: tiramisu/option/option.py:472
msgid "invalid email address, must contains one @"
msgstr "adresse email invalide, doit contenir un @"
#: tiramisu/option/option.py:475
msgid "invalid username in email address"
msgstr "nom d'utilisateur invalide dans une adresse email"
#: tiramisu/option/option.py:487
msgid "invalid url, must start with http:// or https://"
msgstr "URL invalide, doit démarrer avec http:// ou https://"
#: tiramisu/option/option.py:506
msgid "invalid url, port must be an between 0 and 65536"
msgstr "URL invalide, port doit être entre 0 et 65536"
#: tiramisu/option/option.py:512
msgid "invalid url, must ends with filename"
msgstr "URL invalide, doit finir avec un nom de fichier"
#: tiramisu/option/option.py:523
msgid "invalid username"
msgstr "utilisateur invalide"
#: tiramisu/option/option.py:533
msgid "invalid filename"
msgstr "nom de fichier invalide"
#: tiramisu/option/optiondescription.py:68
msgid "duplicate option name: {0}"
msgstr "nom de l'option dupliqué : {0}"
#: tiramisu/option/optiondescription.py:73
msgid "option must not start as dynoptiondescription"
msgstr "option ne doit pas commencé pareil qu'un dynoptiondescription"
#: tiramisu/option/optiondescription.py:119
msgid "consistency with option {0} which is not in Config"
msgstr "consistency avec l'option {0} qui n'est pas dans une Config"
#: tiramisu/option/optiondescription.py:139
msgid "duplicate option: {0}"
msgstr "option dupliquée : {0}"
#: tiramisu/option/optiondescription.py:155
msgid "cannot change group_type if already set (old {0}, new {1})"
msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})"
#: tiramisu/option/optiondescription.py:163
msgid "group_type: {0} not allowed"
msgstr "group_type : {0} non autorisé"
#: tiramisu/option/optiondescription.py:260
msgid "DynOptionDescription callback return not uniq value"
msgstr "callback d'une DynOptionDescription ne retourne pas une valeur unique"
#: tiramisu/option/optiondescription.py:263
msgid "invalid suffix: {0} for option"
msgstr "suffix invalide : {0} pour l'option"
#: tiramisu/option/optiondescription.py:316
msgid "cannot set optiondescription in an dynoptiondescription"
msgstr ""
"impossible de mettre une optiondescription dans un dynoptiondescription"
#: tiramisu/option/optiondescription.py:321
msgid "cannot set symlinkoption in an dynoptiondescription"
msgstr "impossible de placer un symlinkoption dans un dynoptiondescription"
#: tiramisu/option/optiondescription.py:329
msgid "callback is mandatory for dynoptiondescription"
msgstr "callback est obligatoire pour un dynoptiondescription"
#: tiramisu/setting.py:121
msgid "can't rebind {0}"
msgstr "ne peut redéfinir ({0})"
#: tiramisu/setting.py:116
#: tiramisu/setting.py:126
msgid "can't unbind {0}"
msgstr "ne peut supprimer ({0})"
#: tiramisu/setting.py:267
#: tiramisu/setting.py:255
msgid "cannot append {0} property for option {1}: this property is calculated"
msgstr ""
"ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est "
"calculée"
#: tiramisu/setting.py:358
#: tiramisu/setting.py:345
msgid "opt and all_properties must not be set together in reset"
msgstr "opt et all_properties ne doit pas être renseigné ensemble dans reset"
#: tiramisu/setting.py:376
#: tiramisu/setting.py:363
msgid "if opt is not None, path should not be None in _getproperties"
msgstr ""
"si opt n'est pas None, path devrait ne pas être à None dans _getproperties"
#: tiramisu/setting.py:486
#: tiramisu/setting.py:407
msgid "cannot add those properties: {0}"
msgstr "ne peut pas ajouter ces propriétés : {0}"
#: tiramisu/setting.py:469
msgid "cannot change the value for option {0} this option is frozen"
msgstr ""
"ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable"
#: tiramisu/setting.py:492
#: tiramisu/setting.py:475
msgid "trying to access to an option named: {0} with properties {1}"
msgstr "tentative d'accès à une option nommée : {0} avec les propriétés {1}"
#: tiramisu/setting.py:510
#: tiramisu/setting.py:493
msgid "permissive must be a tuple"
msgstr "permissive doit être un tuple"
#: tiramisu/setting.py:517 tiramisu/value.py:349
#: tiramisu/setting.py:500 tiramisu/value.py:370
msgid "invalid generic owner {0}"
msgstr "invalide owner générique {0}"
#: tiramisu/setting.py:605
#: tiramisu/setting.py:588
msgid ""
"malformed requirements imbrication detected for option: '{0}' with "
"requirement on: '{1}'"
@ -548,80 +622,129 @@ msgstr ""
"imbrication de requirements mal formés detectée pour l'option : '{0}' avec "
"requirement sur : '{1}'"
#: tiramisu/setting.py:616
#: tiramisu/setting.py:599
msgid "option '{0}' has requirement's property error: {1} {2}"
msgstr "l'option '{0}' a une erreur de propriété pour le requirement : {1} {2}"
#: tiramisu/storage/__init__.py:47
#: tiramisu/storage/__init__.py:48
msgid "storage_type is already set, cannot rebind it"
msgstr "storage_type est déjà défini, impossible de le redéfinir"
#: tiramisu/storage/__init__.py:81
#: tiramisu/storage/__init__.py:59
msgid "cannot import the storage {0}"
msgstr "ne peut pas importer le stockage {0}"
#: tiramisu/storage/__init__.py:90
msgid "option {0} not already exists in storage {1}"
msgstr "option {0} n'existe pas dans l'espace de stockage {1}"
#: tiramisu/storage/dictionary/option.py:89
msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
#: tiramisu/storage/dictionary/option.py:131 tiramisu/value.py:427
msgid "information's item not found: {0}"
msgstr "aucune config spécifiée alors que c'est nécessaire"
#: tiramisu/storage/dictionary/option.py:336
#: tiramisu/storage/sqlalchemy/option.py:348
msgid "no option for path {0}"
msgstr "pas d'option pour le chemin {0}"
#: tiramisu/storage/dictionary/option.py:342
#: tiramisu/storage/sqlalchemy/option.py:355
msgid "no option {0} found"
msgstr "pas d'option {0} trouvée"
#: tiramisu/storage/dictionary/option.py:390
msgid "cannot find dynpath"
msgstr "ne peut trouver le dynpath"
#: tiramisu/storage/dictionary/option.py:480
#: tiramisu/storage/sqlalchemy/option.py:465
msgid "suffix and context needed if it's a dyn option"
msgstr "suffix et context obligatoire si c'est une option dynamique"
#: tiramisu/storage/dictionary/option.py:493
msgid "{0} instance has no attribute '_readonly'"
msgstr "{0} instance n'a pas l'attribut '_readonly'"
#: tiramisu/storage/dictionary/option.py:507
#: tiramisu/storage/sqlalchemy/option.py:495
msgid "unknown Option {0} in OptionDescription {1}"
msgstr "Option {0} inconnue pour l'OptionDescription {1}"
#: tiramisu/storage/dictionary/storage.py:37
#: tiramisu/storage/sqlalchemy/storage.py:37
msgid "dictionary storage cannot delete session"
msgstr ""
"impossible de supprimer une session dans un espace de stockage dictionary"
#: tiramisu/storage/dictionary/storage.py:48
#: tiramisu/storage/sqlalchemy/storage.py:48
msgid "session already used"
msgstr "session déjà utilisée"
#: tiramisu/storage/dictionary/storage.py:50
#: tiramisu/storage/sqlalchemy/storage.py:50
msgid "a dictionary cannot be persistent"
msgstr "un espace de stockage dictionary ne peut être persistant"
#: tiramisu/value.py:356
#: tiramisu/value.py:64
msgid "optiondescription has no value"
msgstr "une optiondescription n'a pas de valeur"
#: tiramisu/value.py:301
msgid "you should only set value with config"
msgstr "vous devez seul affecter une valeur avec un config"
#: tiramisu/value.py:377
msgid "no value for {0} cannot change owner to {1}"
msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}"
#: tiramisu/value.py:438
#: tiramisu/value.py:467
msgid "can force cache only if cache is actived in config"
msgstr ""
"peut force la mise en cache seulement si le cache est activé dans la config"
#: tiramisu/value.py:477
#: tiramisu/value.py:506
msgid "{0} is already a Multi "
msgstr "{0} est déjà une Multi"
#: tiramisu/value.py:513 tiramisu/value.py:577
msgid "invalid len for the slave: {0} which has {1} as master"
msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître"
#: tiramisu/value.py:549
#: tiramisu/value.py:572
msgid "cannot append a value on a multi option {0} which is a slave"
msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave"
#: tiramisu/value.py:587
#: tiramisu/value.py:591
msgid "cannot sort multi option {0} if master or slave"
msgstr "ne peut trier une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:591
#: tiramisu/value.py:595
msgid "cmp is not permitted in python v3 or greater"
msgstr "cmp n'est pas permis en python v3 ou supérieure"
#: tiramisu/value.py:600
#: tiramisu/value.py:604
msgid "cannot reverse multi option {0} if master or slave"
msgstr "ne peut inverser une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:608
#: tiramisu/value.py:612
msgid "cannot insert multi option {0} if master or slave"
msgstr "ne peut insérer une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:616
#: tiramisu/value.py:620
msgid "cannot extend multi option {0} if master or slave"
msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:627
msgid "invalid value {0} for option {1}: {2}"
msgstr "valeur invalide {0} pour l'option {1} : {2}"
#: tiramisu/value.py:645
#: tiramisu/value.py:648
msgid "cannot pop a value on a multi option {0} which is a slave"
msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
#~ msgid "open_values must be a boolean for {0}"
#~ msgstr "open_values doit être un booléen pour {0}"
#~ msgid "invalid value {0} for option {1}: {2}"
#~ msgstr "valeur invalide {0} pour l'option {1} : {2}"
#~ msgid "option not in all_cons_opts"
#~ msgstr "option non présentante dans all_cons_opts"
@ -675,17 +798,8 @@ msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
#~ msgid "no config specified but needed"
#~ msgstr "aucune config spécifié alors que c'est nécessaire"
#~ msgid "{0} has no attribute impl_set_information"
#~ msgstr "{0} n'a pas d'attribut impl_set_information"
#~ msgid "{0} has no attribute impl_get_information"
#~ msgstr "{0} n'a pas d'attribut impl_get_information"
#~ msgid "invalid name: {0} for optiondescription"
#~ msgstr "nom invalide : {0} pour l'optiondescription"
#~ msgid "not allowed group_type : {0}"
#~ msgstr "group_type non autorisé : {0}"
#~ msgid "required option not found: {0}"
#~ msgstr "option requise non trouvée : {0}"

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2014-03-29 19:01+CET\n"
"POT-Creation-Date: 2014-10-25 22:43+CEST\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"
@ -15,564 +15,668 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
#: tiramisu/autolib.py:165
#: tiramisu/autolib.py:176
msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
msgstr ""
#: tiramisu/config.py:51
#: tiramisu/config.py:58
msgid "descr must be an optiondescription, not {0}"
msgstr ""
#: tiramisu/config.py:126
#: tiramisu/config.py:137
msgid "unknown group_type: {0}"
msgstr ""
#: tiramisu/config.py:163 tiramisu/setting.py:334 tiramisu/value.py:55
#: tiramisu/value.py:500
#: tiramisu/config.py:176 tiramisu/setting.py:321 tiramisu/value.py:54
#: tiramisu/value.py:541
msgid "the context does not exist anymore"
msgstr ""
#: tiramisu/config.py:168
#: tiramisu/config.py:181
msgid "no option description found for this config (may be GroupConfig)"
msgstr ""
#: tiramisu/config.py:194
#: tiramisu/config.py:209
msgid "can't assign to an OptionDescription"
msgstr ""
#: tiramisu/config.py:324
#: tiramisu/config.py:335
msgid "unknown type_ type {0}for _find"
msgstr ""
#: tiramisu/config.py:363
#: tiramisu/config.py:370
msgid "no option found in config with these criteria"
msgstr ""
#: tiramisu/config.py:413
#: tiramisu/config.py:420
msgid "make_dict can't filtering with value without option"
msgstr ""
#: tiramisu/config.py:434
#: tiramisu/config.py:439
msgid "unexpected path {0}, should start with {1}"
msgstr ""
#: tiramisu/config.py:491
#: tiramisu/config.py:507
msgid "opt in getowner must be an option not {0}"
msgstr ""
#: tiramisu/config.py:535
#: tiramisu/config.py:552
msgid "cannot serialize Config with MetaConfig"
msgstr ""
#: tiramisu/config.py:549
#: tiramisu/config.py:566
msgid "this storage is not serialisable, could be a none persistent storage"
msgstr ""
#: tiramisu/config.py:612
#: tiramisu/config.py:629
msgid "metaconfig's children must be a list"
msgstr ""
#: tiramisu/config.py:706
#: tiramisu/config.py:723
msgid "metaconfig's children should be config, not {0}"
msgstr ""
#: tiramisu/config.py:710
#: tiramisu/config.py:727
msgid "child has already a metaconfig's"
msgstr ""
#: tiramisu/config.py:714
#: tiramisu/config.py:731
msgid "all config in metaconfig must have the same optiondescription"
msgstr ""
#: tiramisu/option.py:66
msgid "invalid name: {0} for option"
msgstr ""
#: tiramisu/option.py:75
msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr ""
#: tiramisu/option.py:113
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr ""
#: tiramisu/option.py:140 tiramisu/value.py:410
msgid "information's item not found: {0}"
msgstr ""
#: tiramisu/option.py:202
msgid "cannot serialize Option, only in OptionDescription"
msgstr ""
#: tiramisu/option.py:305
msgid "a default_multi is set whereas multi is False in option: {0}"
msgstr ""
#: tiramisu/option.py:311
msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr ""
#: tiramisu/option.py:316
msgid "default value not allowed if option: {0} is calculated"
msgstr ""
#: tiramisu/option.py:319
msgid "params defined for a callback function but no callback defined yet for option {0}"
msgstr ""
#: tiramisu/option.py:424 tiramisu/option.py:454
msgid "invalid value for option {0}: {1}"
msgstr ""
#: tiramisu/option.py:448
msgid "warning on the value of the option {0}: {1}"
msgstr ""
#: tiramisu/option.py:465
msgid "invalid value {0} for option {1} which must be a list"
msgstr ""
#: tiramisu/option.py:523
msgid "consistency must be set with an option"
msgstr ""
#: tiramisu/option.py:525
msgid "cannot add consistency with itself"
msgstr ""
#: tiramisu/option.py:527
msgid "every options in consistency must be multi or none"
msgstr ""
#: tiramisu/option.py:548
msgid "same value for {0} and {1}, should be different"
msgstr ""
#: tiramisu/option.py:550
msgid "same value for {0} and {1}, must be different"
msgstr ""
#: tiramisu/option.py:644
msgid "values must be a tuple for {0}"
msgstr ""
#: tiramisu/option.py:647
msgid "open_values must be a boolean for {0}"
msgstr ""
#: tiramisu/option.py:669
msgid "value {0} is not permitted, only {1} is allowed"
msgstr ""
#: tiramisu/option.py:681
msgid "invalid boolean"
msgstr ""
#: tiramisu/option.py:691
msgid "invalid integer"
msgstr ""
#: tiramisu/option.py:701
msgid "invalid float"
msgstr ""
#: tiramisu/option.py:711
msgid "invalid string"
msgstr ""
#: tiramisu/option.py:728
msgid "invalid unicode"
msgstr ""
#: tiramisu/option.py:740
msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr ""
#: tiramisu/option.py:791 tiramisu/option.py:794 tiramisu/option.py:799
msgid "invalid IP"
msgstr ""
#: tiramisu/option.py:805
msgid "IP is in reserved class"
msgstr ""
#: tiramisu/option.py:807
msgid "invalid IP, mustn't be in reserved class"
msgstr ""
#: tiramisu/option.py:811
msgid "IP is not in private class"
msgstr ""
#: tiramisu/option.py:813
msgid "invalid IP, must be in private class"
msgstr ""
#: tiramisu/option.py:818 tiramisu/option.py:993
msgid "invalid len for vals"
msgstr ""
#: tiramisu/option.py:824
msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr ""
#: tiramisu/option.py:827
msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr ""
#: tiramisu/option.py:868
msgid "inconsistency in allowed range"
msgstr ""
#: tiramisu/option.py:873
msgid "max value is empty"
msgstr ""
#: tiramisu/option.py:890
msgid "invalid port, range must have two values only"
msgstr ""
#: tiramisu/option.py:893
msgid "invalid port, first port in range must be smaller than the second one"
msgstr ""
#: tiramisu/option.py:902
msgid "invalid port"
msgstr ""
#: tiramisu/option.py:904
msgid "invalid port, must be an between {0} and {1}"
msgstr ""
#: tiramisu/option.py:918
msgid "invalid network address"
msgstr ""
#: tiramisu/option.py:924
msgid "network address is in reserved class"
msgstr ""
#: tiramisu/option.py:926
msgid "invalid network address, mustn't be in reserved class"
msgstr ""
#: tiramisu/option.py:939
msgid "invalid netmask address"
msgstr ""
#: tiramisu/option.py:956
msgid "invalid len for opts"
msgstr ""
#: tiramisu/option.py:970
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
msgstr ""
#: tiramisu/option.py:975
msgid "invalid network {0} ({1}) with netmask {2}"
msgstr ""
#: tiramisu/option.py:989
msgid "invalid broadcast address"
msgstr ""
#: tiramisu/option.py:998
msgid "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
msgstr ""
#: tiramisu/option.py:1020
msgid "unknown type_ {0} for hostname"
msgstr ""
#: tiramisu/option.py:1023
msgid "allow_ip must be a boolean"
msgstr ""
#: tiramisu/option.py:1025
msgid "allow_without_dot must be a boolean"
msgstr ""
#: tiramisu/option.py:1069
msgid "invalid domainname, must have dot"
msgstr ""
#: tiramisu/option.py:1071
msgid "invalid domainname's length (max 255)"
msgstr ""
#: tiramisu/option.py:1073
msgid "invalid domainname's length (min 2)"
msgstr ""
#: tiramisu/option.py:1075
msgid "invalid domainname"
msgstr ""
#: tiramisu/option.py:1088
msgid "invalid email address, must contains one @"
msgstr ""
#: tiramisu/option.py:1091
msgid "invalid username in email address"
msgstr ""
#: tiramisu/option.py:1104
msgid "invalid url, must start with http:// or https://"
msgstr ""
#: tiramisu/option.py:1123
msgid "invalid url, port must be an between 0 and 65536"
msgstr ""
#: tiramisu/option.py:1129
msgid "invalid url, must ends with filename"
msgstr ""
#: tiramisu/option.py:1141
msgid "invalid username"
msgstr ""
#: tiramisu/option.py:1152
msgid "invalid filename"
msgstr ""
#: tiramisu/option.py:1179
msgid "duplicate option name: {0}"
msgstr ""
#: tiramisu/option.py:1197
msgid "unknown Option {0} in OptionDescription {1}"
msgstr ""
#: tiramisu/option.py:1248
msgid "duplicate option: {0}"
msgstr ""
#: tiramisu/option.py:1279
msgid "consistency with option {0} which is not in Config"
msgstr ""
#: tiramisu/option.py:1287
msgid "no option for path {0}"
msgstr ""
#: tiramisu/option.py:1293
msgid "no option {0} found"
msgstr ""
#: tiramisu/option.py:1303
msgid "cannot change group_type if already set (old {0}, new {1})"
msgstr ""
#: tiramisu/option.py:1315
msgid "master group {0} shall not have a subgroup"
msgstr ""
#: tiramisu/option.py:1318
msgid "master group {0} shall not have a symlinkoption"
msgstr ""
#: tiramisu/option.py:1321
msgid "not allowed option {0} in group {1}: this option is not a multi"
msgstr ""
#: tiramisu/option.py:1331
msgid "master group with wrong master name for {0}"
msgstr ""
#: tiramisu/option.py:1339
msgid "callback of master's option shall not refered a slave's ones"
msgstr ""
#: tiramisu/option.py:1347
msgid "group_type: {0} not allowed"
msgstr ""
#: tiramisu/option.py:1444
msgid "malformed requirements type for option: {0}, must be a dict"
msgstr ""
#: tiramisu/option.py:1461
msgid "malformed requirements for option: {0} require must have option, expected and action keys"
msgstr ""
#: tiramisu/option.py:1465
msgid "malformed requirements for option: {0} action cannot be force_store_value"
msgstr ""
#: tiramisu/option.py:1470
msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr ""
#: tiramisu/option.py:1474
msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr ""
#: tiramisu/option.py:1478
msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr ""
#: tiramisu/option.py:1482
msgid "malformed requirements must be an option in option {0}"
msgstr ""
#: tiramisu/option.py:1485
msgid "malformed requirements option {0} must not be a multi"
msgstr ""
#: tiramisu/option.py:1491
msgid "malformed requirements second argument must be valid for option {0}: {1}"
msgstr ""
#: tiramisu/option.py:1496
msgid "inconsistency in action types for option: {0} action: {1}"
msgstr ""
#: tiramisu/option.py:1521
#: tiramisu/option/baseoption.py:56
msgid "{0} must be a function"
msgstr ""
#: tiramisu/option.py:1524
#: tiramisu/option/baseoption.py:59
msgid "{0}_params must be a dict"
msgstr ""
#: tiramisu/option.py:1527
#: tiramisu/option/baseoption.py:62
msgid "{0}_params with key {1} mustn't have length different to 1"
msgstr ""
#: tiramisu/option.py:1531
#: tiramisu/option/baseoption.py:66
msgid "{0}_params must be tuple for key \"{1}\""
msgstr ""
#: tiramisu/option.py:1537
#: tiramisu/option/baseoption.py:72
msgid "{0}_params with length of tuple as 1 must only have None as first value"
msgstr ""
#: tiramisu/option.py:1541
#: tiramisu/option/baseoption.py:76
msgid "{0}_params must only have 1 or 2 as length"
msgstr ""
#: tiramisu/option.py:1546
#: tiramisu/option/baseoption.py:81
msgid "validator not support tuple"
msgstr ""
#: tiramisu/option.py:1549
#: tiramisu/option/baseoption.py:84
msgid "{0}_params must have an option not a {0} for first argument"
msgstr ""
#: tiramisu/option.py:1553
#: tiramisu/option/baseoption.py:88
msgid "{0}_params must have a boolean not a {0} for second argument"
msgstr ""
#: tiramisu/setting.py:111
#: tiramisu/option/baseoption.py:104
msgid "invalid name: {0} for option"
msgstr ""
#: tiramisu/option/baseoption.py:112
msgid "a default_multi is set whereas multi is False in option: {0}"
msgstr ""
#: tiramisu/option/baseoption.py:123
msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr ""
#: tiramisu/option/baseoption.py:144
msgid "params defined for a callback function but no callback defined yet for option {0}"
msgstr ""
#: tiramisu/option/baseoption.py:149
msgid "a callback is already set for option {0}, cannot set another one's"
msgstr ""
#: tiramisu/option/baseoption.py:276
msgid "cannot serialize Option, only in OptionDescription"
msgstr ""
#: tiramisu/option/baseoption.py:354
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr ""
#: tiramisu/option/baseoption.py:509 tiramisu/option/baseoption.py:552
msgid "invalid value for option {0}: {1}"
msgstr ""
#: tiramisu/option/baseoption.py:522
msgid "do_validation for {0}: error in value"
msgstr ""
#: tiramisu/option/baseoption.py:528
msgid "do_validation for {0}: warning in value"
msgstr ""
#: tiramisu/option/baseoption.py:538
msgid "do_validation for {0}: error in consistency"
msgstr ""
#: tiramisu/option/baseoption.py:542
msgid "do_validation for {0}: warning in consistency"
msgstr ""
#: tiramisu/option/baseoption.py:546
msgid "warning on the value of the option {0}: {1}"
msgstr ""
#: tiramisu/option/baseoption.py:564 tiramisu/option/baseoption.py:573
msgid "invalid value {0} for option {1} which must be a list"
msgstr ""
#: tiramisu/option/baseoption.py:579
msgid "invalid value {0} for option {1} which must be a list of list"
msgstr ""
#: tiramisu/option/baseoption.py:632
msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr ""
#: tiramisu/option/baseoption.py:643
msgid "consistency must be set with an option"
msgstr ""
#: tiramisu/option/baseoption.py:646 tiramisu/option/baseoption.py:653
msgid "almost one option in consistency is in a dynoptiondescription but not all"
msgstr ""
#: tiramisu/option/baseoption.py:649
msgid "option in consistency must be in same dynoptiondescription"
msgstr ""
#: tiramisu/option/baseoption.py:656
msgid "cannot add consistency with itself"
msgstr ""
#: tiramisu/option/baseoption.py:658
msgid "every options in consistency must be multi or none"
msgstr ""
#: tiramisu/option/baseoption.py:662
msgid "consistency {0} not available for this option"
msgstr ""
#: tiramisu/option/baseoption.py:689
msgid "same value for {0} and {1}, should be different"
msgstr ""
#: tiramisu/option/baseoption.py:691
msgid "same value for {0} and {1}, must be different"
msgstr ""
#: tiramisu/option/baseoption.py:748
msgid "default value not allowed if option: {0} is calculated"
msgstr ""
#: tiramisu/option/baseoption.py:770
msgid "malformed requirements type for option: {0}, must be a dict"
msgstr ""
#: tiramisu/option/baseoption.py:776
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr ""
#: tiramisu/option/baseoption.py:787
msgid "malformed requirements for option: {0} require must have option, expected and action keys"
msgstr ""
#: tiramisu/option/baseoption.py:791
msgid "malformed requirements for option: {0} action cannot be force_store_value"
msgstr ""
#: tiramisu/option/baseoption.py:796
msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr ""
#: tiramisu/option/baseoption.py:800
msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr ""
#: tiramisu/option/baseoption.py:804
msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr ""
#: tiramisu/option/baseoption.py:808
msgid "malformed requirements must be an option in option {0}"
msgstr ""
#: tiramisu/option/baseoption.py:811
msgid "malformed requirements option {0} must not be a multi for {1}"
msgstr ""
#: tiramisu/option/baseoption.py:818
msgid "malformed requirements second argument must be valid for option {0}: {1}"
msgstr ""
#: tiramisu/option/baseoption.py:823
msgid "inconsistency in action types for option: {0} action: {1}"
msgstr ""
#: tiramisu/option/baseoption.py:851
msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr ""
#: tiramisu/option/masterslave.py:38
msgid "master group {0} shall not have a symlinkoption"
msgstr ""
#: tiramisu/option/masterslave.py:41
msgid "master group {0} shall not have a subgroup"
msgstr ""
#: tiramisu/option/masterslave.py:44
msgid "not allowed option {0} in group {1}: this option is not a multi"
msgstr ""
#: tiramisu/option/masterslave.py:53
msgid "master group with wrong master name for {0}"
msgstr ""
#: tiramisu/option/masterslave.py:63
msgid "callback of master's option shall not refered a slave's ones"
msgstr ""
#: tiramisu/option/masterslave.py:198
msgid "invalid len for the slave: {0} which has {1} as master"
msgstr ""
#: tiramisu/option/option.py:53
msgid "values is not a function, so values_params must be None"
msgstr ""
#: tiramisu/option/option.py:55
msgid "values must be a tuple or a function for {0}"
msgstr ""
#: tiramisu/option/option.py:81
msgid "calculated values for {0} is not a list"
msgstr ""
#: tiramisu/option/option.py:89
msgid "value {0} is not permitted, only {1} is allowed"
msgstr ""
#: tiramisu/option/option.py:103
msgid "invalid boolean"
msgstr ""
#: tiramisu/option/option.py:112
msgid "invalid integer"
msgstr ""
#: tiramisu/option/option.py:121
msgid "invalid float"
msgstr ""
#: tiramisu/option/option.py:130
msgid "invalid string"
msgstr ""
#: tiramisu/option/option.py:146
msgid "invalid unicode"
msgstr ""
#: tiramisu/option/option.py:178 tiramisu/option/option.py:181
#: tiramisu/option/option.py:186
msgid "invalid IP"
msgstr ""
#: tiramisu/option/option.py:192
msgid "IP is in reserved class"
msgstr ""
#: tiramisu/option/option.py:194
msgid "invalid IP, mustn't be in reserved class"
msgstr ""
#: tiramisu/option/option.py:198
msgid "IP is not in private class"
msgstr ""
#: tiramisu/option/option.py:200
msgid "invalid IP, must be in private class"
msgstr ""
#: tiramisu/option/option.py:205 tiramisu/option/option.py:377
msgid "invalid len for vals"
msgstr ""
#: tiramisu/option/option.py:211
msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr ""
#: tiramisu/option/option.py:214
msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr ""
#: tiramisu/option/option.py:254
msgid "inconsistency in allowed range"
msgstr ""
#: tiramisu/option/option.py:259
msgid "max value is empty"
msgstr ""
#: tiramisu/option/option.py:277
msgid "invalid port, range must have two values only"
msgstr ""
#: tiramisu/option/option.py:280
msgid "invalid port, first port in range must be smaller than the second one"
msgstr ""
#: tiramisu/option/option.py:289
msgid "invalid port"
msgstr ""
#: tiramisu/option/option.py:291
msgid "invalid port, must be an between {0} and {1}"
msgstr ""
#: tiramisu/option/option.py:304
msgid "invalid network address"
msgstr ""
#: tiramisu/option/option.py:310
msgid "network address is in reserved class"
msgstr ""
#: tiramisu/option/option.py:312
msgid "invalid network address, mustn't be in reserved class"
msgstr ""
#: tiramisu/option/option.py:324
msgid "invalid netmask address"
msgstr ""
#: tiramisu/option/option.py:341
msgid "invalid len for opts"
msgstr ""
#: tiramisu/option/option.py:355
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
msgstr ""
#: tiramisu/option/option.py:360
msgid "invalid network {0} ({1}) with netmask {2}"
msgstr ""
#: tiramisu/option/option.py:373
msgid "invalid broadcast address"
msgstr ""
#: tiramisu/option/option.py:382
msgid "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
msgstr ""
#: tiramisu/option/option.py:403
msgid "unknown type_ {0} for hostname"
msgstr ""
#: tiramisu/option/option.py:406
msgid "allow_ip must be a boolean"
msgstr ""
#: tiramisu/option/option.py:408
msgid "allow_without_dot must be a boolean"
msgstr ""
#: tiramisu/option/option.py:454
msgid "invalid domainname, must have dot"
msgstr ""
#: tiramisu/option/option.py:456
msgid "invalid domainname's length (max 255)"
msgstr ""
#: tiramisu/option/option.py:458
msgid "invalid domainname's length (min 2)"
msgstr ""
#: tiramisu/option/option.py:460
msgid "invalid domainname"
msgstr ""
#: tiramisu/option/option.py:472
msgid "invalid email address, must contains one @"
msgstr ""
#: tiramisu/option/option.py:475
msgid "invalid username in email address"
msgstr ""
#: tiramisu/option/option.py:487
msgid "invalid url, must start with http:// or https://"
msgstr ""
#: tiramisu/option/option.py:506
msgid "invalid url, port must be an between 0 and 65536"
msgstr ""
#: tiramisu/option/option.py:512
msgid "invalid url, must ends with filename"
msgstr ""
#: tiramisu/option/option.py:523
msgid "invalid username"
msgstr ""
#: tiramisu/option/option.py:533
msgid "invalid filename"
msgstr ""
#: tiramisu/option/optiondescription.py:68
msgid "duplicate option name: {0}"
msgstr ""
#: tiramisu/option/optiondescription.py:73
msgid "option must not start as dynoptiondescription"
msgstr ""
#: tiramisu/option/optiondescription.py:119
msgid "consistency with option {0} which is not in Config"
msgstr ""
#: tiramisu/option/optiondescription.py:139
msgid "duplicate option: {0}"
msgstr ""
#: tiramisu/option/optiondescription.py:155
msgid "cannot change group_type if already set (old {0}, new {1})"
msgstr ""
#: tiramisu/option/optiondescription.py:163
msgid "group_type: {0} not allowed"
msgstr ""
#: tiramisu/option/optiondescription.py:260
msgid "DynOptionDescription callback return not uniq value"
msgstr ""
#: tiramisu/option/optiondescription.py:263
msgid "invalid suffix: {0} for option"
msgstr ""
#: tiramisu/option/optiondescription.py:316
msgid "cannot set optiondescription in an dynoptiondescription"
msgstr ""
#: tiramisu/option/optiondescription.py:321
msgid "cannot set symlinkoption in an dynoptiondescription"
msgstr ""
#: tiramisu/option/optiondescription.py:329
msgid "callback is mandatory for dynoptiondescription"
msgstr ""
#: tiramisu/setting.py:121
msgid "can't rebind {0}"
msgstr ""
#: tiramisu/setting.py:116
#: tiramisu/setting.py:126
msgid "can't unbind {0}"
msgstr ""
#: tiramisu/setting.py:267
#: tiramisu/setting.py:255
msgid "cannot append {0} property for option {1}: this property is calculated"
msgstr ""
#: tiramisu/setting.py:358
#: tiramisu/setting.py:345
msgid "opt and all_properties must not be set together in reset"
msgstr ""
#: tiramisu/setting.py:376
#: tiramisu/setting.py:363
msgid "if opt is not None, path should not be None in _getproperties"
msgstr ""
#: tiramisu/setting.py:486
#: tiramisu/setting.py:407
msgid "cannot add those properties: {0}"
msgstr ""
#: tiramisu/setting.py:469
msgid "cannot change the value for option {0} this option is frozen"
msgstr ""
#: tiramisu/setting.py:492
#: tiramisu/setting.py:475
msgid "trying to access to an option named: {0} with properties {1}"
msgstr ""
#: tiramisu/setting.py:510
#: tiramisu/setting.py:493
msgid "permissive must be a tuple"
msgstr ""
#: tiramisu/setting.py:517 tiramisu/value.py:349
#: tiramisu/setting.py:500 tiramisu/value.py:370
msgid "invalid generic owner {0}"
msgstr ""
#: tiramisu/setting.py:605
#: tiramisu/setting.py:588
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
msgstr ""
#: tiramisu/setting.py:616
#: tiramisu/setting.py:599
msgid "option '{0}' has requirement's property error: {1} {2}"
msgstr ""
#: tiramisu/storage/__init__.py:47
#: tiramisu/storage/__init__.py:48
msgid "storage_type is already set, cannot rebind it"
msgstr ""
#: tiramisu/storage/__init__.py:81
#: tiramisu/storage/__init__.py:59
msgid "cannot import the storage {0}"
msgstr ""
#: tiramisu/storage/__init__.py:90
msgid "option {0} not already exists in storage {1}"
msgstr ""
#: tiramisu/storage/dictionary/option.py:89
msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr ""
#: tiramisu/storage/dictionary/option.py:131 tiramisu/value.py:427
msgid "information's item not found: {0}"
msgstr ""
#: tiramisu/storage/dictionary/option.py:336
#: tiramisu/storage/sqlalchemy/option.py:348
msgid "no option for path {0}"
msgstr ""
#: tiramisu/storage/dictionary/option.py:342
#: tiramisu/storage/sqlalchemy/option.py:355
msgid "no option {0} found"
msgstr ""
#: tiramisu/storage/dictionary/option.py:390
msgid "cannot find dynpath"
msgstr ""
#: tiramisu/storage/dictionary/option.py:480
#: tiramisu/storage/sqlalchemy/option.py:465
msgid "suffix and context needed if it's a dyn option"
msgstr ""
#: tiramisu/storage/dictionary/option.py:493
msgid "{0} instance has no attribute '_readonly'"
msgstr ""
#: tiramisu/storage/dictionary/option.py:507
#: tiramisu/storage/sqlalchemy/option.py:495
msgid "unknown Option {0} in OptionDescription {1}"
msgstr ""
#: tiramisu/storage/dictionary/storage.py:37
#: tiramisu/storage/sqlalchemy/storage.py:37
msgid "dictionary storage cannot delete session"
msgstr ""
#: tiramisu/storage/dictionary/storage.py:48
#: tiramisu/storage/sqlalchemy/storage.py:48
msgid "session already used"
msgstr ""
#: tiramisu/storage/dictionary/storage.py:50
#: tiramisu/storage/sqlalchemy/storage.py:50
msgid "a dictionary cannot be persistent"
msgstr ""
#: tiramisu/value.py:356
#: tiramisu/value.py:64
msgid "optiondescription has no value"
msgstr ""
#: tiramisu/value.py:301
msgid "you should only set value with config"
msgstr ""
#: tiramisu/value.py:377
msgid "no value for {0} cannot change owner to {1}"
msgstr ""
#: tiramisu/value.py:438
#: tiramisu/value.py:467
msgid "can force cache only if cache is actived in config"
msgstr ""
#: tiramisu/value.py:477
#: tiramisu/value.py:506
msgid "{0} is already a Multi "
msgstr ""
#: tiramisu/value.py:513 tiramisu/value.py:577
msgid "invalid len for the slave: {0} which has {1} as master"
msgstr ""
#: tiramisu/value.py:549
#: tiramisu/value.py:572
msgid "cannot append a value on a multi option {0} which is a slave"
msgstr ""
#: tiramisu/value.py:587
#: tiramisu/value.py:591
msgid "cannot sort multi option {0} if master or slave"
msgstr ""
#: tiramisu/value.py:591
#: tiramisu/value.py:595
msgid "cmp is not permitted in python v3 or greater"
msgstr ""
#: tiramisu/value.py:600
#: tiramisu/value.py:604
msgid "cannot reverse multi option {0} if master or slave"
msgstr ""
#: tiramisu/value.py:608
#: tiramisu/value.py:612
msgid "cannot insert multi option {0} if master or slave"
msgstr ""
#: tiramisu/value.py:616
#: tiramisu/value.py:620
msgid "cannot extend multi option {0} if master or slave"
msgstr ""
#: tiramisu/value.py:627
msgid "invalid value {0} for option {1}: {2}"
msgstr ""
#: tiramisu/value.py:645
#: tiramisu/value.py:648
msgid "cannot pop a value on a multi option {0} which is a slave"
msgstr ""