diff --git a/test/test_option_consistency.py b/test/test_option_consistency.py index 5a81e56..4a39d7e 100644 --- a/test/test_option_consistency.py +++ b/test/test_option_consistency.py @@ -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', '') diff --git a/tiramisu/i18n.py b/tiramisu/i18n.py index 3bc6c17..340064e 100644 --- a/tiramisu/i18n.py +++ b/tiramisu/i18n.py @@ -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 diff --git a/tiramisu/option/baseoption.py b/tiramisu/option/baseoption.py index 3c3f3af..2a161e0 100644 --- a/tiramisu/option/baseoption.py +++ b/tiramisu/option/baseoption.py @@ -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: diff --git a/translations/fr/tiramisu.po b/translations/fr/tiramisu.po index eb14d72..d882812 100644 --- a/translations/fr/tiramisu.po +++ b/translations/fr/tiramisu.po @@ -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 \n" "Language-Team: Tiramisu's team \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}" diff --git a/translations/tiramisu.pot b/translations/tiramisu.pot index 35ecafe..0e2dcc2 100644 --- a/translations/tiramisu.pot +++ b/translations/tiramisu.pot @@ -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 \n" "Language-Team: LANGUAGE \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 ""