fix: better errors message
This commit is contained in:
parent
1b640689b8
commit
b8899c98b1
6 changed files with 199 additions and 165 deletions
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Tiramisu\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-02-07 07:55+0100\n"
|
||||
"POT-Creation-Date: 2025-03-19 09:51+0100\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
|
||||
"Language-Team: Tiramisu's team <egarette@cadoles.com>\n"
|
||||
|
@ -34,7 +34,7 @@ msgstr "Ne peut avoir de warnings durant une validation"
|
|||
msgid "Commands:"
|
||||
msgstr "Commandes :"
|
||||
|
||||
#: tiramisu/api.py:111 tiramisu/api.py:1843
|
||||
#: tiramisu/api.py:111 tiramisu/api.py:1849
|
||||
msgid "please specify a valid sub function ({0}.{1})"
|
||||
msgstr "veuillez spécifier une sous fonction valide ({0}.{1})"
|
||||
|
||||
|
@ -42,7 +42,7 @@ msgstr "veuillez spécifier une sous fonction valide ({0}.{1})"
|
|||
msgid "please do not specify index ({0}.{1})"
|
||||
msgstr "veuillez ne pas spécifier d'index ({0}.{1})"
|
||||
|
||||
#: tiramisu/api.py:201 tiramisu/api.py:847
|
||||
#: tiramisu/api.py:201 tiramisu/api.py:848
|
||||
msgid "please specify index with a follower option ({0}.{1})"
|
||||
msgstr "veuillez spécifier un index avec une option suiveuse ({0}.{1})"
|
||||
|
||||
|
@ -94,31 +94,31 @@ msgstr "ne peut trouver \"{0}\" dans l'option \"{1}\" à l'index \"{2}\""
|
|||
msgid "cannot find \"{0}\""
|
||||
msgstr "ne peut trouver \"{0}\""
|
||||
|
||||
#: tiramisu/api.py:811
|
||||
#: tiramisu/api.py:812
|
||||
msgid "cannot reduce length of the leader {}"
|
||||
msgstr "il est impossible de réduire la longueur du leader \"{}\""
|
||||
|
||||
#: tiramisu/api.py:864
|
||||
#: tiramisu/api.py:865
|
||||
msgid "only multi value has defaultmulti"
|
||||
msgstr "seule les valeurs multiple a l'attribut defaultmulti"
|
||||
|
||||
#: tiramisu/api.py:1023
|
||||
#: tiramisu/api.py:1029
|
||||
msgid "please specify a valid sub function ({0}.{1}) for {2}"
|
||||
msgstr "veuillez spécifier une sous fonction valide ({0}.{1}) pour {2}"
|
||||
|
||||
#: tiramisu/api.py:1410
|
||||
#: tiramisu/api.py:1416
|
||||
msgid "properties must be a frozenset"
|
||||
msgstr "une propriété doit être de type frozenset"
|
||||
|
||||
#: tiramisu/api.py:1414 tiramisu/api.py:1441
|
||||
#: tiramisu/api.py:1420 tiramisu/api.py:1447
|
||||
msgid "unknown when {} (must be in append or remove)"
|
||||
msgstr "value {} inconsistent (doit être append ou remove)"
|
||||
|
||||
#: tiramisu/api.py:1427 tiramisu/api.py:1451 tiramisu/config.py:1681
|
||||
#: tiramisu/api.py:1433 tiramisu/api.py:1457 tiramisu/config.py:1681
|
||||
msgid "unknown type {}"
|
||||
msgstr "type inconnu {}"
|
||||
|
||||
#: tiramisu/api.py:1815
|
||||
#: tiramisu/api.py:1821
|
||||
msgid "do not use unrestraint, nowarnings or forcepermissive together"
|
||||
msgstr ""
|
||||
"il ne faut pas utiliser unrestraint, nowarnings ou forcepermissive ensemble"
|
||||
|
@ -181,7 +181,7 @@ msgstr "l'option dans ParamInformation ne peut pas être une option dynamique"
|
|||
|
||||
#: tiramisu/autolib.py:279
|
||||
msgid "first argument ({0}) must be a function"
|
||||
msgstr "le premier argument ({0}à doit être une fonction"
|
||||
msgstr "le premier argument ({0}) doit être une fonction"
|
||||
|
||||
#: tiramisu/autolib.py:283
|
||||
msgid "help_function ({0}) must be a function"
|
||||
|
@ -373,31 +373,39 @@ msgid "cannot modify the {0} {1} because has {2} {3}"
|
|||
msgstr "ne peut modifier {0} \"{1}\" à cause {2} {3}"
|
||||
|
||||
#: tiramisu/error.py:118
|
||||
msgid "cannot access to {0} {1} because \"{2}\" hasn't value"
|
||||
msgstr "ne peut accéder à {0} {1} parce que \"{2}\" n'a pas de valeur"
|
||||
|
||||
#: tiramisu/error.py:120
|
||||
msgid "{0} {1} is mandatory but hasn't value"
|
||||
msgstr "{0} {1} est obligatoire mais n'a pas de valeur"
|
||||
|
||||
#: tiramisu/error.py:123
|
||||
msgid "cannot access to {0} {1} because \"{2}\" has {3} {4}"
|
||||
msgstr "ne peut accéder à {0} {1} parce que \"{2}\" a {3} {4}"
|
||||
|
||||
#: tiramisu/error.py:120
|
||||
#: tiramisu/error.py:125
|
||||
msgid "cannot access to {0} {1} because has {2} {3}"
|
||||
msgstr "ne peut accéder à l'{0} {1} à cause {2} {3}"
|
||||
|
||||
#: tiramisu/error.py:192
|
||||
#: tiramisu/error.py:197
|
||||
msgid "invalid value"
|
||||
msgstr "valeur invalide"
|
||||
|
||||
#: tiramisu/error.py:202
|
||||
#: tiramisu/error.py:207
|
||||
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\""
|
||||
msgstr "attention, \"{0}\" peut être un {1} invalide pour \"{2}\""
|
||||
|
||||
#: tiramisu/error.py:204
|
||||
#: tiramisu/error.py:209
|
||||
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\" at index \"{3}\""
|
||||
msgstr ""
|
||||
"attention, \"{0}\" peut être un {1} invalide pour \"{2}\" à l'index \"{3}\""
|
||||
|
||||
#: tiramisu/error.py:223 tiramisu/error.py:234
|
||||
#: tiramisu/error.py:228 tiramisu/error.py:239
|
||||
msgid "\"{0}\" is an invalid {1} for \"{2}\""
|
||||
msgstr "\"{0}\" est une valeur invalide pour l'option \"{2}\" de type {1}"
|
||||
|
||||
#: tiramisu/error.py:225
|
||||
#: tiramisu/error.py:230
|
||||
msgid "\"{0}\" is an invalid {1} for \"{2}\" at index \"{3}\""
|
||||
msgstr "\"{0}\" est un {1} invalide pour \"{2}\" à l'index \"{3}\""
|
||||
|
||||
|
@ -480,25 +488,25 @@ msgstr "\"{0}\" est un nom invalide pour une option"
|
|||
msgid "invalid properties type {0} for {1}, must be a frozenset"
|
||||
msgstr "type {0} invalide pour des propriétés pour {1}, doit être un frozenset"
|
||||
|
||||
#: tiramisu/option/baseoption.py:98
|
||||
#: tiramisu/option/baseoption.py:100
|
||||
msgid "invalid property type {0} for {1}, must be a string or a Calculation"
|
||||
msgstr ""
|
||||
"type {0} invalide pour des propriétés pour {1}, doit être des caractères ou "
|
||||
"un objet Calculation"
|
||||
|
||||
#: tiramisu/option/baseoption.py:249
|
||||
#: tiramisu/option/baseoption.py:251
|
||||
msgid "information's item for {0} not found: \"{1}\""
|
||||
msgstr "item pour {0} dans les informations non trouvée: \"{1}\""
|
||||
|
||||
#: tiramisu/option/baseoption.py:267
|
||||
#: tiramisu/option/baseoption.py:269
|
||||
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:308
|
||||
#: tiramisu/option/baseoption.py:310
|
||||
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
||||
msgstr "\"{}\" ({}) l'attribut de l'objet \"{}\" est en lecture seule"
|
||||
|
||||
#: tiramisu/option/baseoption.py:320
|
||||
#: tiramisu/option/baseoption.py:322
|
||||
msgid "{0} not part of any Config"
|
||||
msgstr "{0} ne fait pas parti d'une Config"
|
||||
|
||||
|
@ -522,27 +530,27 @@ msgstr "seul \"{0}\" est autorisé"
|
|||
msgid "only {0} are allowed"
|
||||
msgstr "seul {0} sont autorisées"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:62
|
||||
#: tiramisu/option/domainnameoption.py:67
|
||||
msgid "unknown type {0} for hostname"
|
||||
msgstr "type_ inconnu {0} pour le nom d'hôte"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:65
|
||||
#: tiramisu/option/domainnameoption.py:70
|
||||
msgid "allow_ip must be a boolean"
|
||||
msgstr "allow_ip doit être un booléen"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:67
|
||||
#: tiramisu/option/domainnameoption.py:72
|
||||
msgid "allow_cidr_network must be a boolean"
|
||||
msgstr "allow_cidr_network doit être un booléen"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:69
|
||||
#: tiramisu/option/domainnameoption.py:74
|
||||
msgid "allow_without_dot must be a boolean"
|
||||
msgstr "allow_without_dot doit être un booléen"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:71
|
||||
#: tiramisu/option/domainnameoption.py:76
|
||||
msgid "allow_startswith_dot must be a boolean"
|
||||
msgstr "allow_startswith_dot doit être un booléen"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:82
|
||||
#: tiramisu/option/domainnameoption.py:87
|
||||
msgid ""
|
||||
"must start with lowercase characters followed by lowercase characters, "
|
||||
"number, \"-\" and \".\" characters are allowed"
|
||||
|
@ -550,7 +558,7 @@ msgstr ""
|
|||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||
"minuscule, des nombres, \"-\" et \".\" sont autorisés"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:85
|
||||
#: tiramisu/option/domainnameoption.py:90
|
||||
msgid ""
|
||||
"must start with lowercase characters followed by lowercase characters, "
|
||||
"number, \"-\" and \".\" characters are recommanded"
|
||||
|
@ -558,7 +566,7 @@ msgstr ""
|
|||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||
"minuscule, des nombres, \"-\" et \".\" sont recommandés"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:90
|
||||
#: tiramisu/option/domainnameoption.py:95
|
||||
msgid ""
|
||||
"must start with lowercase characters followed by lowercase characters, "
|
||||
"number and \"-\" characters are allowed"
|
||||
|
@ -566,7 +574,7 @@ msgstr ""
|
|||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||
"minuscule, des nombres et \"-\" sont autorisés"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:93
|
||||
#: tiramisu/option/domainnameoption.py:98
|
||||
msgid ""
|
||||
"must start with lowercase characters followed by lowercase characters, "
|
||||
"number and \"-\" characters are recommanded"
|
||||
|
@ -574,40 +582,40 @@ msgstr ""
|
|||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||
"minuscule, des nombres et\"-\" sont recommandés"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:97
|
||||
#: tiramisu/option/domainnameoption.py:98
|
||||
#: tiramisu/option/domainnameoption.py:102
|
||||
#: tiramisu/option/domainnameoption.py:103
|
||||
msgid "could be a IP, otherwise {}"
|
||||
msgstr "peut être une IP, autrement {}"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:143
|
||||
#: tiramisu/option/domainnameoption.py:148
|
||||
msgid "invalid length (min 1)"
|
||||
msgstr "longueur invalide (min 1)"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:146
|
||||
#: tiramisu/option/domainnameoption.py:151
|
||||
msgid "invalid length (max {0})"
|
||||
msgstr "longueur invalide (max {0})"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:152
|
||||
#: tiramisu/option/domainnameoption.py:157
|
||||
msgid "must have dot"
|
||||
msgstr "doit avoir un point"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:154
|
||||
#: tiramisu/option/domainnameoption.py:159
|
||||
msgid "invalid length (max 255)"
|
||||
msgstr "longueur invalide (max 255)"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:175
|
||||
#: tiramisu/option/domainnameoption.py:180
|
||||
msgid "DNS resolution failed"
|
||||
msgstr "la résolution DNS a échoué"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:179
|
||||
#: tiramisu/option/domainnameoption.py:184
|
||||
msgid "error resolving DNS: {1}"
|
||||
msgstr "erreur de résolution DNS : {1}"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:186
|
||||
#: tiramisu/option/domainnameoption.py:191
|
||||
msgid "must not be an IP"
|
||||
msgstr "ne doit pas être une IP"
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:209
|
||||
#: tiramisu/option/domainnameoption.py:214
|
||||
msgid "some characters are uppercase"
|
||||
msgstr "des caractères sont en majuscule"
|
||||
|
||||
|
@ -650,6 +658,10 @@ msgstr "fichier"
|
|||
msgid "cannot find this {0}"
|
||||
msgstr "ce {0} est introuvable"
|
||||
|
||||
#: tiramisu/option/intoption.py:46
|
||||
msgid "which is not an integer"
|
||||
msgstr "qui n'est pas un chiffre"
|
||||
|
||||
#: tiramisu/option/intoption.py:52
|
||||
msgid "value should be equal or greater than \"{0}\""
|
||||
msgstr "la valeur devrait être supérieur ou égal à {0}"
|
||||
|
@ -774,19 +786,19 @@ msgstr ""
|
|||
"valeur invalide pour default_multi \"{0}\" pour l'option {1}, doit être une "
|
||||
"liste pour une submulti"
|
||||
|
||||
#: tiramisu/option/option.py:285
|
||||
#: tiramisu/option/option.py:291
|
||||
msgid "the value \"{}\" is not unique"
|
||||
msgstr "la valeur de \"{}\" n'est pas unique"
|
||||
|
||||
#: tiramisu/option/option.py:347
|
||||
#: tiramisu/option/option.py:353
|
||||
msgid "which must not be a list"
|
||||
msgstr "qui ne doit pas être une liste"
|
||||
|
||||
#: tiramisu/option/option.py:399 tiramisu/option/option.py:425
|
||||
#: tiramisu/option/option.py:405 tiramisu/option/option.py:431
|
||||
msgid "which must be a list"
|
||||
msgstr "qui doit être une liste"
|
||||
|
||||
#: tiramisu/option/option.py:419
|
||||
#: tiramisu/option/option.py:425
|
||||
msgid "which \"{}\" must be a list of list"
|
||||
msgstr "lequel \"{}\" doit être une liste de liste"
|
||||
|
||||
|
@ -869,27 +881,27 @@ msgstr "{0} a plus de droit que {1}"
|
|||
msgid "too weak"
|
||||
msgstr "trop simple"
|
||||
|
||||
#: tiramisu/option/portoption.py:74
|
||||
#: tiramisu/option/portoption.py:80
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr "inconsistence dans la plage autorisée"
|
||||
|
||||
#: tiramisu/option/portoption.py:79
|
||||
#: tiramisu/option/portoption.py:85
|
||||
msgid "max value is empty"
|
||||
msgstr "la valeur maximum est vide"
|
||||
|
||||
#: tiramisu/option/portoption.py:92
|
||||
#: tiramisu/option/portoption.py:98
|
||||
msgid "range must have two values only"
|
||||
msgstr "un rang doit avoir deux valeurs seulement"
|
||||
|
||||
#: tiramisu/option/portoption.py:95
|
||||
#: tiramisu/option/portoption.py:101
|
||||
msgid "first port in range must be smaller than the second one"
|
||||
msgstr "le premier port d'un rang doit être plus petit que le second"
|
||||
|
||||
#: tiramisu/option/portoption.py:121
|
||||
#: tiramisu/option/portoption.py:127
|
||||
msgid "should be between {0} and {1}"
|
||||
msgstr "devrait être une nombre entre {0} et {1}"
|
||||
|
||||
#: tiramisu/option/portoption.py:123
|
||||
#: tiramisu/option/portoption.py:129
|
||||
msgid "must be between {0} and {1}"
|
||||
msgstr "doit être une nombre entre {0} et {1}"
|
||||
|
||||
|
@ -904,31 +916,31 @@ msgstr ""
|
|||
"symlink mal formé, le second paramètre doit être une option pour \"{0}\", "
|
||||
"not {1}"
|
||||
|
||||
#: tiramisu/option/urloption.py:91
|
||||
#: tiramisu/option/urloption.py:92
|
||||
msgid "must start with http:// or https://"
|
||||
msgstr "doit débuter par http:// ou https://"
|
||||
|
||||
#: tiramisu/option/urloption.py:116
|
||||
#: tiramisu/option/urloption.py:117
|
||||
msgid "the port \"{0}\" is invalid: {1}"
|
||||
msgstr "le port \"{0}\" est invalide : {1}"
|
||||
|
||||
#: tiramisu/option/urloption.py:123
|
||||
#: tiramisu/option/urloption.py:124
|
||||
msgid "the domain \"{0}\" is invalid: {1}"
|
||||
msgstr "le domaine \"{0}\" est invalide : {1}"
|
||||
|
||||
#: tiramisu/option/urloption.py:127
|
||||
#: tiramisu/option/urloption.py:128
|
||||
msgid "must ends with a valid resource name"
|
||||
msgstr "doit finir par un nom de ressource valide"
|
||||
|
||||
#: tiramisu/setting.py:255
|
||||
#: tiramisu/setting.py:258
|
||||
msgid "can't rebind {0}"
|
||||
msgstr "ne peut redéfinir ({0})"
|
||||
|
||||
#: tiramisu/setting.py:262
|
||||
#: tiramisu/setting.py:265
|
||||
msgid "can't unbind {0}"
|
||||
msgstr "ne peut supprimer ({0})"
|
||||
|
||||
#: tiramisu/setting.py:464
|
||||
#: tiramisu/setting.py:467
|
||||
msgid ""
|
||||
"invalid property type {type(new_prop)} for {subconfig.option.impl_getname()} "
|
||||
"with {prop.function.__name__} function"
|
||||
|
@ -936,15 +948,15 @@ msgstr ""
|
|||
"type {type(new_prop)} de la propriété invalide pour la fonction {subconfig."
|
||||
"option.impl_getname()} with {prop.function.__name__}"
|
||||
|
||||
#: tiramisu/setting.py:476
|
||||
#: tiramisu/setting.py:479
|
||||
msgid "leader cannot have \"{new_prop}\" property"
|
||||
msgstr "une option leader ne peu avoir la propriété \"{new_prop}\""
|
||||
|
||||
#: tiramisu/setting.py:564
|
||||
#: tiramisu/setting.py:567
|
||||
msgid "leader cannot have \"{0}\" property"
|
||||
msgstr "leader ne peut avoir la propriété \"{0}\""
|
||||
|
||||
#: tiramisu/setting.py:573
|
||||
#: tiramisu/setting.py:576
|
||||
msgid ""
|
||||
"a leader ({0}) cannot have \"force_default_on_freeze\" or "
|
||||
"\"force_metaconfig_on_freeze\" property without \"frozen\""
|
||||
|
@ -952,19 +964,19 @@ msgstr ""
|
|||
"une option leader ({0}) ne peut avoir de propriété "
|
||||
"\"force_default_on_freeze\" or \"force_metaconfig_on_freeze\" sans \"frozen\""
|
||||
|
||||
#: tiramisu/setting.py:607
|
||||
#: tiramisu/setting.py:610
|
||||
msgid "permissive must be a frozenset"
|
||||
msgstr "une permissive doit être de type frozenset"
|
||||
|
||||
#: tiramisu/setting.py:617
|
||||
#: tiramisu/setting.py:620
|
||||
msgid "cannot add those permissives: {0}"
|
||||
msgstr "ne peut ajouter ces permissives : {0}"
|
||||
|
||||
#: tiramisu/setting.py:654
|
||||
#: tiramisu/setting.py:657
|
||||
msgid "can't reset properties to the symlinkoption \"{}\""
|
||||
msgstr "ne peut réinitialiser les propriétés de la symlinkoption \"{}\""
|
||||
|
||||
#: tiramisu/setting.py:667
|
||||
#: tiramisu/setting.py:670
|
||||
msgid "can't reset permissives to the symlinkoption \"{}\""
|
||||
msgstr "ne peut réinitialiser les permissive de la symlinkoption \"{}\""
|
||||
|
||||
|
@ -994,17 +1006,17 @@ msgstr ""
|
|||
msgid "unknown action {}"
|
||||
msgstr "action inconnue {}"
|
||||
|
||||
#: tiramisu/value.py:564 tiramisu/value.py:861
|
||||
#: tiramisu/value.py:566 tiramisu/value.py:863
|
||||
msgid "set owner \"{0}\" is forbidden"
|
||||
msgstr "assigner l'utilisateur \"{0}\" est interdit"
|
||||
|
||||
#: tiramisu/value.py:571
|
||||
#: tiramisu/value.py:573
|
||||
msgid "\"{0}\" is a default value, so we cannot change owner to \"{1}\""
|
||||
msgstr ""
|
||||
"\"{0}\" est une valeur par défaut, donc ne peut changer d'utilisateur à "
|
||||
"\"{1}\""
|
||||
|
||||
#: tiramisu/value.py:740
|
||||
#: tiramisu/value.py:742
|
||||
msgid ""
|
||||
"index {index} is greater than the length {length} for option {subconfig."
|
||||
"option.impl_get_display_name(with_quote=True)}"
|
||||
|
@ -1012,7 +1024,7 @@ msgstr ""
|
|||
"l'index {index} est supérieur à la longueur \"{length}\" pour l'option "
|
||||
"\"{subconfig.option.impl_get_display_name(with_quote=True)}\""
|
||||
|
||||
#: tiramisu/value.py:847
|
||||
#: tiramisu/value.py:849
|
||||
msgid "information's item not found \"{}\""
|
||||
msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2025-02-07 08:01+0100\n"
|
||||
"POT-Creation-Date: 2025-03-19 09:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -35,7 +35,7 @@ msgstr ""
|
|||
msgid "Commands:"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:111 tiramisu/api.py:1843
|
||||
#: tiramisu/api.py:111 tiramisu/api.py:1849
|
||||
msgid "please specify a valid sub function ({0}.{1})"
|
||||
msgstr ""
|
||||
|
||||
|
@ -43,7 +43,7 @@ msgstr ""
|
|||
msgid "please do not specify index ({0}.{1})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:201 tiramisu/api.py:847
|
||||
#: tiramisu/api.py:201 tiramisu/api.py:848
|
||||
msgid "please specify index with a follower option ({0}.{1})"
|
||||
msgstr ""
|
||||
|
||||
|
@ -83,31 +83,31 @@ msgstr ""
|
|||
msgid "cannot find \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:811
|
||||
#: tiramisu/api.py:812
|
||||
msgid "cannot reduce length of the leader {}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:864
|
||||
#: tiramisu/api.py:865
|
||||
msgid "only multi value has defaultmulti"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:1023
|
||||
#: tiramisu/api.py:1029
|
||||
msgid "please specify a valid sub function ({0}.{1}) for {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:1410
|
||||
#: tiramisu/api.py:1416
|
||||
msgid "properties must be a frozenset"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:1414 tiramisu/api.py:1441
|
||||
#: tiramisu/api.py:1420 tiramisu/api.py:1447
|
||||
msgid "unknown when {} (must be in append or remove)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:1427 tiramisu/api.py:1451 tiramisu/config.py:1681
|
||||
#: tiramisu/api.py:1433 tiramisu/api.py:1457 tiramisu/config.py:1681
|
||||
msgid "unknown type {}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:1815
|
||||
#: tiramisu/api.py:1821
|
||||
msgid "do not use unrestraint, nowarnings or forcepermissive together"
|
||||
msgstr ""
|
||||
|
||||
|
@ -320,30 +320,38 @@ msgid "cannot modify the {0} {1} because has {2} {3}"
|
|||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:118
|
||||
msgid "cannot access to {0} {1} because \"{2}\" has {3} {4}"
|
||||
msgid "cannot access to {0} {1} because \"{2}\" hasn't value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:120
|
||||
msgid "{0} {1} is mandatory but hasn't value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:123
|
||||
msgid "cannot access to {0} {1} because \"{2}\" has {3} {4}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:125
|
||||
msgid "cannot access to {0} {1} because has {2} {3}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:192
|
||||
#: tiramisu/error.py:197
|
||||
msgid "invalid value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:202
|
||||
#: tiramisu/error.py:207
|
||||
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:204
|
||||
#: tiramisu/error.py:209
|
||||
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\" at index \"{3}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:223 tiramisu/error.py:234
|
||||
#: tiramisu/error.py:228 tiramisu/error.py:239
|
||||
msgid "\"{0}\" is an invalid {1} for \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:225
|
||||
#: tiramisu/error.py:230
|
||||
msgid "\"{0}\" is an invalid {1} for \"{2}\" at index \"{3}\""
|
||||
msgstr ""
|
||||
|
||||
|
@ -411,23 +419,23 @@ msgstr ""
|
|||
msgid "invalid properties type {0} for {1}, must be a frozenset"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:98
|
||||
#: tiramisu/option/baseoption.py:100
|
||||
msgid "invalid property type {0} for {1}, must be a string or a Calculation"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:249
|
||||
#: tiramisu/option/baseoption.py:251
|
||||
msgid "information's item for {0} not found: \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:267
|
||||
#: tiramisu/option/baseoption.py:269
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:308
|
||||
#: tiramisu/option/baseoption.py:310
|
||||
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:320
|
||||
#: tiramisu/option/baseoption.py:322
|
||||
msgid "{0} not part of any Config"
|
||||
msgstr ""
|
||||
|
||||
|
@ -451,76 +459,76 @@ msgstr ""
|
|||
msgid "only {0} are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:62
|
||||
#: tiramisu/option/domainnameoption.py:67
|
||||
msgid "unknown type {0} for hostname"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:65
|
||||
#: tiramisu/option/domainnameoption.py:70
|
||||
msgid "allow_ip must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:67
|
||||
#: tiramisu/option/domainnameoption.py:72
|
||||
msgid "allow_cidr_network must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:69
|
||||
#: tiramisu/option/domainnameoption.py:74
|
||||
msgid "allow_without_dot must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:71
|
||||
#: tiramisu/option/domainnameoption.py:76
|
||||
msgid "allow_startswith_dot must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:82
|
||||
#: tiramisu/option/domainnameoption.py:87
|
||||
msgid "must start with lowercase characters followed by lowercase characters, number, \"-\" and \".\" characters are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:85
|
||||
#: tiramisu/option/domainnameoption.py:90
|
||||
msgid "must start with lowercase characters followed by lowercase characters, number, \"-\" and \".\" characters are recommanded"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:90
|
||||
#: tiramisu/option/domainnameoption.py:95
|
||||
msgid "must start with lowercase characters followed by lowercase characters, number and \"-\" characters are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:93
|
||||
#: tiramisu/option/domainnameoption.py:98
|
||||
msgid "must start with lowercase characters followed by lowercase characters, number and \"-\" characters are recommanded"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:97
|
||||
#: tiramisu/option/domainnameoption.py:98
|
||||
#: tiramisu/option/domainnameoption.py:102
|
||||
#: tiramisu/option/domainnameoption.py:103
|
||||
msgid "could be a IP, otherwise {}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:143
|
||||
#: tiramisu/option/domainnameoption.py:148
|
||||
msgid "invalid length (min 1)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:146
|
||||
#: tiramisu/option/domainnameoption.py:151
|
||||
msgid "invalid length (max {0})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:152
|
||||
#: tiramisu/option/domainnameoption.py:157
|
||||
msgid "must have dot"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:154
|
||||
#: tiramisu/option/domainnameoption.py:159
|
||||
msgid "invalid length (max 255)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:175
|
||||
#: tiramisu/option/domainnameoption.py:180
|
||||
msgid "DNS resolution failed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:179
|
||||
#: tiramisu/option/domainnameoption.py:184
|
||||
msgid "error resolving DNS: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:186
|
||||
#: tiramisu/option/domainnameoption.py:191
|
||||
msgid "must not be an IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:209
|
||||
#: tiramisu/option/domainnameoption.py:214
|
||||
msgid "some characters are uppercase"
|
||||
msgstr ""
|
||||
|
||||
|
@ -556,6 +564,10 @@ msgstr ""
|
|||
msgid "cannot find this {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/intoption.py:46
|
||||
msgid "which is not an integer"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/intoption.py:52
|
||||
msgid "value should be equal or greater than \"{0}\""
|
||||
msgstr ""
|
||||
|
@ -668,19 +680,19 @@ msgstr ""
|
|||
msgid "invalid default_multi value \"{0}\" for option {1}, must be a list for a submulti"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:285
|
||||
#: tiramisu/option/option.py:291
|
||||
msgid "the value \"{}\" is not unique"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:347
|
||||
#: tiramisu/option/option.py:353
|
||||
msgid "which must not be a list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:399 tiramisu/option/option.py:425
|
||||
#: tiramisu/option/option.py:405 tiramisu/option/option.py:431
|
||||
msgid "which must be a list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:419
|
||||
#: tiramisu/option/option.py:425
|
||||
msgid "which \"{}\" must be a list of list"
|
||||
msgstr ""
|
||||
|
||||
|
@ -757,27 +769,27 @@ msgstr ""
|
|||
msgid "too weak"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:74
|
||||
#: tiramisu/option/portoption.py:80
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:79
|
||||
#: tiramisu/option/portoption.py:85
|
||||
msgid "max value is empty"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:92
|
||||
#: tiramisu/option/portoption.py:98
|
||||
msgid "range must have two values only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:95
|
||||
#: tiramisu/option/portoption.py:101
|
||||
msgid "first port in range must be smaller than the second one"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:121
|
||||
#: tiramisu/option/portoption.py:127
|
||||
msgid "should be between {0} and {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:123
|
||||
#: tiramisu/option/portoption.py:129
|
||||
msgid "must be between {0} and {1}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -789,59 +801,59 @@ msgstr ""
|
|||
msgid "malformed symlink second parameters must be an option for \"{0}\", not {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:91
|
||||
#: tiramisu/option/urloption.py:92
|
||||
msgid "must start with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:116
|
||||
#: tiramisu/option/urloption.py:117
|
||||
msgid "the port \"{0}\" is invalid: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:123
|
||||
#: tiramisu/option/urloption.py:124
|
||||
msgid "the domain \"{0}\" is invalid: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:127
|
||||
#: tiramisu/option/urloption.py:128
|
||||
msgid "must ends with a valid resource name"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:255
|
||||
#: tiramisu/setting.py:258
|
||||
msgid "can't rebind {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:262
|
||||
#: tiramisu/setting.py:265
|
||||
msgid "can't unbind {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:464
|
||||
#: tiramisu/setting.py:467
|
||||
msgid "invalid property type {type(new_prop)} for {subconfig.option.impl_getname()} with {prop.function.__name__} function"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:476
|
||||
#: tiramisu/setting.py:479
|
||||
msgid "leader cannot have \"{new_prop}\" property"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:564
|
||||
#: tiramisu/setting.py:567
|
||||
msgid "leader cannot have \"{0}\" property"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:573
|
||||
#: tiramisu/setting.py:576
|
||||
msgid "a leader ({0}) cannot have \"force_default_on_freeze\" or \"force_metaconfig_on_freeze\" property without \"frozen\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:607
|
||||
#: tiramisu/setting.py:610
|
||||
msgid "permissive must be a frozenset"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:617
|
||||
#: tiramisu/setting.py:620
|
||||
msgid "cannot add those permissives: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:654
|
||||
#: tiramisu/setting.py:657
|
||||
msgid "can't reset properties to the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:667
|
||||
#: tiramisu/setting.py:670
|
||||
msgid "can't reset permissives to the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
|
@ -869,19 +881,19 @@ msgstr ""
|
|||
msgid "unknown action {}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:564 tiramisu/value.py:861
|
||||
#: tiramisu/value.py:566 tiramisu/value.py:863
|
||||
msgid "set owner \"{0}\" is forbidden"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:571
|
||||
#: tiramisu/value.py:573
|
||||
msgid "\"{0}\" is a default value, so we cannot change owner to \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:740
|
||||
#: tiramisu/value.py:742
|
||||
msgid "index {index} is greater than the length {length} for option {subconfig.option.impl_get_display_name(with_quote=True)}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:847
|
||||
#: tiramisu/value.py:849
|
||||
msgid "information's item not found \"{}\""
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -910,34 +910,39 @@ class TiramisuOptionValue(CommonTiramisuOption, _TiramisuODGet):
|
|||
def mandatory(self):
|
||||
"""Return path of options with mandatory property without any value"""
|
||||
subconfig = self._subconfig
|
||||
if subconfig.option.impl_is_optiondescription():
|
||||
ori_config_bag = self._subconfig.config_bag
|
||||
config_bag = ori_config_bag.copy()
|
||||
config_bag.properties -= {"mandatory", "empty", "warnings"}
|
||||
config_bag.set_permissive()
|
||||
self._subconfig.config_bag = config_bag
|
||||
options = []
|
||||
for subconfig in self._config_bag.context.walk(
|
||||
self._subconfig,
|
||||
only_mandatory=True,
|
||||
):
|
||||
options.append(
|
||||
TiramisuOption(
|
||||
subconfig.path,
|
||||
subconfig.index,
|
||||
ori_config_bag,
|
||||
subconfig=subconfig,
|
||||
)
|
||||
)
|
||||
self._subconfig.config_bag = ori_config_bag
|
||||
return options
|
||||
ori_config_bag = self._subconfig.config_bag
|
||||
config_bag = ori_config_bag.copy()
|
||||
config_bag.properties -= {"mandatory", "empty", "warnings"}
|
||||
config_bag.set_permissive()
|
||||
self._subconfig.config_bag = config_bag
|
||||
try:
|
||||
self._config_bag.context.walk_valid_value(
|
||||
self._subconfig, only_mandatory=True
|
||||
)
|
||||
except PropertiesOptionError as err:
|
||||
return err.proptype == ["mandatory"] or err.proptype == ["empty"]
|
||||
return False
|
||||
if subconfig.option.impl_is_optiondescription():
|
||||
options = []
|
||||
for subconfig in config_bag.context.walk(
|
||||
self._subconfig,
|
||||
only_mandatory=True,
|
||||
):
|
||||
options.append(
|
||||
TiramisuOption(
|
||||
subconfig.path,
|
||||
subconfig.index,
|
||||
ori_config_bag,
|
||||
subconfig=subconfig,
|
||||
)
|
||||
)
|
||||
self._subconfig.config_bag = ori_config_bag
|
||||
return options
|
||||
try:
|
||||
self._config_bag.context.walk_valid_value(
|
||||
self._subconfig, only_mandatory=True
|
||||
)
|
||||
except PropertiesOptionError as err:
|
||||
return err.proptype == ["mandatory"] or err.proptype == ["empty"]
|
||||
self._subconfig.config_bag = ori_config_bag
|
||||
return False
|
||||
except Exception as err:
|
||||
self._subconfig.config_bag = ori_config_bag
|
||||
raise err from err
|
||||
|
||||
|
||||
def _registers(
|
||||
|
|
|
@ -113,6 +113,11 @@ class PropertiesOptionError(AttributeError):
|
|||
msg = _('cannot modify the {0} {1} because "{2}" has {3} {4}')
|
||||
else:
|
||||
msg = _("cannot modify the {0} {1} because has {2} {3}")
|
||||
elif properties == ["mandatory"]:
|
||||
if self._orig_opt:
|
||||
msg = _("cannot access to {0} {1} because \"{2}\" hasn't value")
|
||||
else:
|
||||
msg = _("{0} {1} is mandatory but hasn't value")
|
||||
else:
|
||||
if self._orig_opt:
|
||||
msg = _('cannot access to {0} {1} because "{2}" has {3} {4}')
|
||||
|
|
Binary file not shown.
|
@ -43,7 +43,7 @@ class IntOption(Option):
|
|||
value: int,
|
||||
) -> None:
|
||||
if not isinstance(value, int):
|
||||
raise ValueError()
|
||||
raise ValueError(_('which is not an integer'))
|
||||
|
||||
def second_level_validation(self, value, warnings_only):
|
||||
min_number = self.impl_get_extra("min_number")
|
||||
|
|
Loading…
Reference in a new issue