Compare commits
No commits in common. "e8921795d3ef097d471bdd05e021f3f6e752907e" and "aa774cbce96a981512611de8879ad8470f2a3237" have entirely different histories.
e8921795d3
...
aa774cbce9
29 changed files with 340 additions and 525 deletions
|
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tiramisu\n"
|
"Project-Id-Version: Tiramisu\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-10-04 15:43+0200\n"
|
"POT-Creation-Date: 2025-09-19 22:03+0200\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
|
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
|
||||||
"Language-Team: Tiramisu's team <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:"
|
msgid "Commands:"
|
||||||
msgstr "Commandes :"
|
msgstr "Commandes :"
|
||||||
|
|
||||||
#: tiramisu/api.py:118 tiramisu/api.py:1963
|
#: tiramisu/api.py:118 tiramisu/api.py:1955
|
||||||
msgid "please specify a valid sub function ({0}.{1})"
|
msgid "please specify a valid sub function ({0}.{1})"
|
||||||
msgstr "veuillez spécifier une sous fonction valide ({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})"
|
msgid "please do not specify index ({0}.{1})"
|
||||||
msgstr "veuillez ne pas spécifier d'index ({0}.{1})"
|
msgstr "veuillez ne pas spécifier d'index ({0}.{1})"
|
||||||
|
|
||||||
#: tiramisu/api.py:211 tiramisu/api.py:948
|
#: tiramisu/api.py:211 tiramisu/api.py:940
|
||||||
msgid "please specify index with a follower option ({0}.{1})"
|
msgid "please specify index with a follower option ({0}.{1})"
|
||||||
msgstr "veuillez spécifier un index avec une option suiveuse ({0}.{1})"
|
msgstr "veuillez spécifier un index avec une option suiveuse ({0}.{1})"
|
||||||
|
|
||||||
|
|
@ -50,15 +50,7 @@ msgstr "veuillez spécifier un index avec une option suiveuse ({0}.{1})"
|
||||||
msgid "please specify a valid sub function ({0}.{1}): {2}"
|
msgid "please specify a valid sub function ({0}.{1}): {2}"
|
||||||
msgstr "veuillez spécifier une sous fonction valide ({0}.{1}): {2}"
|
msgstr "veuillez spécifier une sous fonction valide ({0}.{1}): {2}"
|
||||||
|
|
||||||
#: tiramisu/api.py:447
|
#: tiramisu/api.py:525
|
||||||
msgid "optiondescription"
|
|
||||||
msgstr "option description"
|
|
||||||
|
|
||||||
#: tiramisu/api.py:452
|
|
||||||
msgid "symlink"
|
|
||||||
msgstr "lien symbolique"
|
|
||||||
|
|
||||||
#: tiramisu/api.py:533
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"the option {0} is not a dynamic option, cannot get identifiers with "
|
"the option {0} is not a dynamic option, cannot get identifiers with "
|
||||||
"only_self parameter to True"
|
"only_self parameter to True"
|
||||||
|
|
@ -66,15 +58,15 @@ msgstr ""
|
||||||
"l'option {0} n'est pas une option dynamique, ne peut retrouver l'identifiant "
|
"l'option {0} n'est pas une option dynamique, ne peut retrouver l'identifiant "
|
||||||
"avec le paramètre only_self à True"
|
"avec le paramètre only_self à True"
|
||||||
|
|
||||||
#: tiramisu/api.py:621
|
#: tiramisu/api.py:613
|
||||||
msgid "cannot get option from a follower symlink without index"
|
msgid "cannot get option from a follower symlink without index"
|
||||||
msgstr "ne peut avoir d'option pour une symlink suiveuse sans index"
|
msgstr "ne peut avoir d'option pour une symlink suiveuse sans index"
|
||||||
|
|
||||||
#: tiramisu/api.py:699
|
#: tiramisu/api.py:691
|
||||||
msgid "cannot add this property: \"{0}\""
|
msgid "cannot add this property: \"{0}\""
|
||||||
msgstr "ne peut pas ajouter cette propriété : \"{0}\""
|
msgstr "ne peut pas ajouter cette propriété : \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/api.py:726
|
#: tiramisu/api.py:718
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot remove option's property \"{0}\", use permissive instead in option "
|
"cannot remove option's property \"{0}\", use permissive instead in option "
|
||||||
"\"{1}\""
|
"\"{1}\""
|
||||||
|
|
@ -82,11 +74,11 @@ msgstr ""
|
||||||
"ne supprimer la propriété \"{0}\" de l'option, utiliser plutôt permissive "
|
"ne supprimer la propriété \"{0}\" de l'option, utiliser plutôt permissive "
|
||||||
"dans l'option \"{1}\""
|
"dans l'option \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/api.py:730
|
#: tiramisu/api.py:722
|
||||||
msgid "cannot find \"{0}\" in option \"{1}\""
|
msgid "cannot find \"{0}\" in option \"{1}\""
|
||||||
msgstr "ne peut trouver \"{0}\" dans l'option \"{1}\""
|
msgstr "ne peut trouver \"{0}\" dans l'option \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/api.py:735
|
#: tiramisu/api.py:727
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot remove option's property \"{0}\", use permissive instead in option "
|
"cannot remove option's property \"{0}\", use permissive instead in option "
|
||||||
"\"{1}\" at index \"{2}\""
|
"\"{1}\" at index \"{2}\""
|
||||||
|
|
@ -94,35 +86,35 @@ msgstr ""
|
||||||
"ne peut supprimer la propriété \"{0}\" de l'option, utilisez plutôt "
|
"ne peut supprimer la propriété \"{0}\" de l'option, utilisez plutôt "
|
||||||
"permissive dans l'option \"{1}\" a l'index \"{2}\""
|
"permissive dans l'option \"{1}\" a l'index \"{2}\""
|
||||||
|
|
||||||
#: tiramisu/api.py:739
|
#: tiramisu/api.py:731
|
||||||
msgid "cannot find \"{0}\" in option \"{1}\" at index \"{2}\""
|
msgid "cannot find \"{0}\" in option \"{1}\" at index \"{2}\""
|
||||||
msgstr "ne peut trouver \"{0}\" dans l'option \"{1}\" à l'index \"{2}\""
|
msgstr "ne peut trouver \"{0}\" dans l'option \"{1}\" à l'index \"{2}\""
|
||||||
|
|
||||||
#: tiramisu/api.py:783
|
#: tiramisu/api.py:775
|
||||||
msgid "cannot find \"{0}\""
|
msgid "cannot find \"{0}\""
|
||||||
msgstr "ne peut trouver \"{0}\""
|
msgstr "ne peut trouver \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/api.py:965
|
#: tiramisu/api.py:957
|
||||||
msgid "only multi value has defaultmulti"
|
msgid "only multi value has defaultmulti"
|
||||||
msgstr "seule les valeurs multiple a l'attribut defaultmulti"
|
msgstr "seule les valeurs multiple a l'attribut defaultmulti"
|
||||||
|
|
||||||
#: tiramisu/api.py:1129
|
#: tiramisu/api.py:1121
|
||||||
msgid "please specify a valid sub function ({0}.{1}) for {2}"
|
msgid "please specify a valid sub function ({0}.{1}) for {2}"
|
||||||
msgstr "veuillez spécifier une sous fonction valide ({0}.{1}) pour {2}"
|
msgstr "veuillez spécifier une sous fonction valide ({0}.{1}) pour {2}"
|
||||||
|
|
||||||
#: tiramisu/api.py:1528
|
#: tiramisu/api.py:1520
|
||||||
msgid "properties must be a frozenset"
|
msgid "properties must be a frozenset"
|
||||||
msgstr "une propriété doit être de type frozenset"
|
msgstr "une propriété doit être de type frozenset"
|
||||||
|
|
||||||
#: tiramisu/api.py:1532 tiramisu/api.py:1559
|
#: tiramisu/api.py:1524 tiramisu/api.py:1551
|
||||||
msgid "unknown when {} (must be in append or remove)"
|
msgid "unknown when {} (must be in append or remove)"
|
||||||
msgstr "value {} inconsistent (doit être append ou remove)"
|
msgstr "value {} inconsistent (doit être append ou remove)"
|
||||||
|
|
||||||
#: tiramisu/api.py:1545 tiramisu/api.py:1569 tiramisu/config.py:1712
|
#: tiramisu/api.py:1537 tiramisu/api.py:1561 tiramisu/config.py:1691
|
||||||
msgid "unknown type {}"
|
msgid "unknown type {}"
|
||||||
msgstr "type inconnu {}"
|
msgstr "type inconnu {}"
|
||||||
|
|
||||||
#: tiramisu/api.py:1935
|
#: tiramisu/api.py:1927
|
||||||
msgid "do not use unrestraint, nowarnings or forcepermissive together"
|
msgid "do not use unrestraint, nowarnings or forcepermissive together"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"il ne faut pas utiliser unrestraint, nowarnings ou forcepermissive ensemble"
|
"il ne faut pas utiliser unrestraint, nowarnings ou forcepermissive ensemble"
|
||||||
|
|
@ -246,51 +238,50 @@ msgstr ""
|
||||||
msgid "unexpected error \"{1}\" in function \"{2}\" for option {0}"
|
msgid "unexpected error \"{1}\" in function \"{2}\" for option {0}"
|
||||||
msgstr "erreur inattendue \"{1}\" dans la fonction \"{2}\" pour l'option {0}"
|
msgstr "erreur inattendue \"{1}\" dans la fonction \"{2}\" pour l'option {0}"
|
||||||
|
|
||||||
#: tiramisu/config.py:392 tiramisu/config.py:414 tiramisu/config.py:745
|
#: tiramisu/config.py:391 tiramisu/config.py:413
|
||||||
#: tiramisu/config.py:754
|
msgid "option name {0} is not unique in {1}"
|
||||||
msgid "option name \"{0}\" is not unique in {1}"
|
msgstr "le nom de l'option {0} n'est pas unique dans {1}"
|
||||||
msgstr "le nom de l'option \"{0}\" n'est pas unique dans {1}"
|
|
||||||
|
|
||||||
#: tiramisu/config.py:639
|
#: tiramisu/config.py:638
|
||||||
msgid "there is no option description for this config (may be GroupConfig)"
|
msgid "there is no option description for this config (may be GroupConfig)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"il n'y a pas d'option description trouvé pour cette config (peut être un "
|
"il n'y a pas d'option description trouvé pour cette config (peut être un "
|
||||||
"GroupConfig)"
|
"GroupConfig)"
|
||||||
|
|
||||||
#: tiramisu/config.py:1010 tiramisu/option/optiondescription.py:74
|
#: tiramisu/config.py:989 tiramisu/option/optiondescription.py:74
|
||||||
msgid "option description seems to be part of an other config"
|
msgid "option description seems to be part of an other config"
|
||||||
msgstr "l'option description semble faire parti d'une autre config"
|
msgstr "l'option description semble faire parti d'une autre config"
|
||||||
|
|
||||||
#: tiramisu/config.py:1172
|
#: tiramisu/config.py:1151
|
||||||
msgid "parent of {0} not already exists"
|
msgid "parent of {0} not already exists"
|
||||||
msgstr "le parent de {0} n'existe plus"
|
msgstr "le parent de {0} n'existe plus"
|
||||||
|
|
||||||
#: tiramisu/config.py:1219
|
#: tiramisu/config.py:1198
|
||||||
msgid "cannot set leadership object has root optiondescription"
|
msgid "cannot set leadership object has root optiondescription"
|
||||||
msgstr "ne peut assigner un objet leadership comme optiondescription racine"
|
msgstr "ne peut assigner un objet leadership comme optiondescription racine"
|
||||||
|
|
||||||
#: tiramisu/config.py:1222
|
#: tiramisu/config.py:1201
|
||||||
msgid "cannot set dynoptiondescription object has root optiondescription"
|
msgid "cannot set dynoptiondescription object has root optiondescription"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ne peut assigner un objet dynoptiondescription comme optiondescription racine"
|
"ne peut assigner un objet dynoptiondescription comme optiondescription racine"
|
||||||
|
|
||||||
#: tiramisu/config.py:1269
|
#: tiramisu/config.py:1248
|
||||||
msgid "child must be a Config, GroupConfig, MixConfig or MetaConfig"
|
msgid "child must be a Config, GroupConfig, MixConfig or MetaConfig"
|
||||||
msgstr "l'enfant doit être une Config, GroupConfig, MixConfig ou MetaConfig"
|
msgstr "l'enfant doit être une Config, GroupConfig, MixConfig ou MetaConfig"
|
||||||
|
|
||||||
#: tiramisu/config.py:1278
|
#: tiramisu/config.py:1257
|
||||||
msgid "config name must be uniq in groupconfig for \"{0}\""
|
msgid "config name must be uniq in groupconfig for \"{0}\""
|
||||||
msgstr "le nom d'un config doit être unique dans un groupconfig pour \"{0}\""
|
msgstr "le nom d'un config doit être unique dans un groupconfig pour \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/config.py:1487
|
#: tiramisu/config.py:1466
|
||||||
msgid "unknown config \"{}\""
|
msgid "unknown config \"{}\""
|
||||||
msgstr "config \"{}\" inconnue"
|
msgstr "config \"{}\" inconnue"
|
||||||
|
|
||||||
#: tiramisu/config.py:1512
|
#: tiramisu/config.py:1491
|
||||||
msgid "child must be a Config, MixConfig or MetaConfig"
|
msgid "child must be a Config, MixConfig or MetaConfig"
|
||||||
msgstr "l'enfant doit être une Config, MixConfig ou MetaConfig"
|
msgstr "l'enfant doit être une Config, MixConfig ou MetaConfig"
|
||||||
|
|
||||||
#: tiramisu/config.py:1547
|
#: tiramisu/config.py:1526
|
||||||
msgid ""
|
msgid ""
|
||||||
"force_default, force_default_if_same or force_dont_change_value cannot be "
|
"force_default, force_default_if_same or force_dont_change_value cannot be "
|
||||||
"set with only_config"
|
"set with only_config"
|
||||||
|
|
@ -298,43 +289,43 @@ msgstr ""
|
||||||
"force_default, force_default_if_same ou force_dont_change_value ne peuvent "
|
"force_default, force_default_if_same ou force_dont_change_value ne peuvent "
|
||||||
"pas être spécifié avec only_config"
|
"pas être spécifié avec only_config"
|
||||||
|
|
||||||
#: tiramisu/config.py:1557
|
#: tiramisu/config.py:1536
|
||||||
msgid "force_default and force_dont_change_value cannot be set together"
|
msgid "force_default and force_dont_change_value cannot be set together"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"force_default et force_dont_change_value ne peuvent pas être mis ensemble"
|
"force_default et force_dont_change_value ne peuvent pas être mis ensemble"
|
||||||
|
|
||||||
#: tiramisu/config.py:1708
|
#: tiramisu/config.py:1687
|
||||||
msgid "config name must be uniq in groupconfig for {0}"
|
msgid "config name must be uniq in groupconfig for {0}"
|
||||||
msgstr "le nom de la config doit être unique dans un groupconfig pour {0}"
|
msgstr "le nom de la config doit être unique dans un groupconfig pour {0}"
|
||||||
|
|
||||||
#: tiramisu/config.py:1753
|
#: tiramisu/config.py:1732
|
||||||
msgid "config added has no name, the name is mandatory"
|
msgid "config added has no name, the name is mandatory"
|
||||||
msgstr "la config ajoutée n'a pas de nom, le nom est obligatoire"
|
msgstr "la config ajoutée n'a pas de nom, le nom est obligatoire"
|
||||||
|
|
||||||
#: tiramisu/config.py:1758
|
#: tiramisu/config.py:1737
|
||||||
msgid "config name \"{0}\" is not uniq in groupconfig \"{1}\""
|
msgid "config name \"{0}\" is not uniq in groupconfig \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"le nom d'un config \"{0}\" n'est pas unique dans le groupconfig \"{1}\""
|
"le nom d'un config \"{0}\" n'est pas unique dans le groupconfig \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/config.py:1776 tiramisu/config.py:1782
|
#: tiramisu/config.py:1755 tiramisu/config.py:1761
|
||||||
msgid "cannot find the config {0}"
|
msgid "cannot find the config {0}"
|
||||||
msgstr "ne peut pas trouver la config {0}"
|
msgstr "ne peut pas trouver la config {0}"
|
||||||
|
|
||||||
#: tiramisu/config.py:1808
|
#: tiramisu/config.py:1787
|
||||||
msgid "MetaConfig with optiondescription must have string has child, not {}"
|
msgid "MetaConfig with optiondescription must have string has child, not {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"MetaConfig avec une optiondescription doit avoir un nom comme enfant, pas {}"
|
"MetaConfig avec une optiondescription doit avoir un nom comme enfant, pas {}"
|
||||||
|
|
||||||
#: tiramisu/config.py:1820
|
#: tiramisu/config.py:1799
|
||||||
msgid "child must be a Config or MetaConfig"
|
msgid "child must be a Config or MetaConfig"
|
||||||
msgstr "enfant doit être une une Config ou une MetaConfig"
|
msgstr "enfant doit être une une Config ou une MetaConfig"
|
||||||
|
|
||||||
#: tiramisu/config.py:1825
|
#: tiramisu/config.py:1804
|
||||||
msgid "all config in metaconfig must have the same optiondescription"
|
msgid "all config in metaconfig must have the same optiondescription"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"toutes les configs d'une metaconfig doivent avoir la même optiondescription"
|
"toutes les configs d'une metaconfig doivent avoir la même optiondescription"
|
||||||
|
|
||||||
#: tiramisu/config.py:1842
|
#: tiramisu/config.py:1821
|
||||||
msgid "metaconfig must have the same optiondescription"
|
msgid "metaconfig must have the same optiondescription"
|
||||||
msgstr "metaconfig doivent avoir la même optiondescription"
|
msgstr "metaconfig doivent avoir la même optiondescription"
|
||||||
|
|
||||||
|
|
@ -479,19 +470,11 @@ msgid "attention, \"{0}\" could be an invalid {1} for {2} at index \"{3}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"attention, \"{0}\" peut être un {1} invalide pour {2} à l'index \"{3}\""
|
"attention, \"{0}\" peut être un {1} invalide pour {2} à l'index \"{3}\""
|
||||||
|
|
||||||
#: tiramisu/error.py:370
|
#: tiramisu/error.py:368 tiramisu/error.py:379
|
||||||
msgid "{2} has an invalid {1}"
|
|
||||||
msgstr "{2} a un {1} invalide"
|
|
||||||
|
|
||||||
#: tiramisu/error.py:372
|
|
||||||
msgid "{2} at index \"{3}\" has an invalid {1}"
|
|
||||||
msgstr "{2} à l'index a un invalide {1}"
|
|
||||||
|
|
||||||
#: tiramisu/error.py:375 tiramisu/error.py:386
|
|
||||||
msgid "\"{0}\" is an invalid {1} for {2}"
|
msgid "\"{0}\" is an invalid {1} for {2}"
|
||||||
msgstr "\"{0}\" est une valeur invalide pour l'option {2} de type {1}"
|
msgstr "\"{0}\" est une valeur invalide pour l'option {2} de type {1}"
|
||||||
|
|
||||||
#: tiramisu/error.py:377
|
#: tiramisu/error.py:370
|
||||||
msgid "\"{0}\" is an invalid {1} for {2} at index \"{3}\""
|
msgid "\"{0}\" is an invalid {1} for {2} at index \"{3}\""
|
||||||
msgstr "\"{0}\" est un {1} invalide pour {2} à l'index \"{3}\""
|
msgstr "\"{0}\" est un {1} invalide pour {2} à l'index \"{3}\""
|
||||||
|
|
||||||
|
|
@ -580,79 +563,63 @@ msgstr ""
|
||||||
"type {0} invalide pour des propriétés pour {1}, doit être des caractères ou "
|
"type {0} invalide pour des propriétés pour {1}, doit être des caractères ou "
|
||||||
"un objet Calculation"
|
"un objet Calculation"
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:254
|
#: tiramisu/option/baseoption.py:253
|
||||||
msgid "information's item for {0} not found: \"{1}\""
|
msgid "information's item for {0} not found: \"{1}\""
|
||||||
msgstr "item pour {0} dans les informations non trouvée: \"{1}\""
|
msgstr "item pour {0} dans les informations non trouvée: \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:272
|
#: tiramisu/option/baseoption.py:271
|
||||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||||
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
|
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:313
|
#: tiramisu/option/baseoption.py:312
|
||||||
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
||||||
msgstr "\"{}\" ({}) l'attribut de l'objet \"{}\" est en lecture seule"
|
msgstr "\"{}\" ({}) l'attribut de l'objet \"{}\" est en lecture seule"
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:325
|
#: tiramisu/option/baseoption.py:324
|
||||||
msgid "{0} not part of any Config"
|
msgid "{0} not part of any Config"
|
||||||
msgstr "{0} ne fait pas parti d'une Config"
|
msgstr "{0} ne fait pas parti d'une Config"
|
||||||
|
|
||||||
#: tiramisu/option/booloption.py:33
|
#: tiramisu/option/broadcastoption.py:41
|
||||||
msgid "boolean"
|
msgid "invalid string"
|
||||||
msgstr "booléen"
|
msgstr "invalide caractère"
|
||||||
|
|
||||||
#: tiramisu/option/broadcastoption.py:34
|
#: tiramisu/option/choiceoption.py:52
|
||||||
msgid "broadcast address"
|
|
||||||
msgstr "adresse de broadcast"
|
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:41
|
|
||||||
msgid "choice"
|
|
||||||
msgstr "choix"
|
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:53
|
|
||||||
msgid "values must be a tuple or a calculation for {0}"
|
msgid "values must be a tuple or a calculation for {0}"
|
||||||
msgstr "les valeurs doivent être un tuple ou une fonction pour {0}"
|
msgstr "les valeurs doivent être un tuple ou une fonction pour {0}"
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:76
|
#: tiramisu/option/choiceoption.py:75
|
||||||
msgid "the calculated values \"{0}\" for \"{1}\" is not a list"
|
msgid "the calculated values \"{0}\" for \"{1}\" is not a list"
|
||||||
msgstr "les valeurs calculées \"{0}\" pour \"{1}\" n'est pas une liste"
|
msgstr "les valeurs calculées \"{0}\" pour \"{1}\" n'est pas une liste"
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:107
|
#: tiramisu/option/choiceoption.py:106
|
||||||
msgid "only \"{0}\" is allowed"
|
msgid "only \"{0}\" is allowed"
|
||||||
msgstr "seul \"{0}\" est autorisé"
|
msgstr "seul \"{0}\" est autorisé"
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:109
|
#: tiramisu/option/choiceoption.py:108
|
||||||
msgid "only {0} are allowed"
|
msgid "only {0} are allowed"
|
||||||
msgstr "seul {0} sont autorisées"
|
msgstr "seul {0} sont autorisées"
|
||||||
|
|
||||||
#: tiramisu/option/dateoption.py:34
|
#: tiramisu/option/domainnameoption.py:67
|
||||||
msgid "date"
|
|
||||||
msgstr "date"
|
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:46
|
|
||||||
msgid "domain name"
|
|
||||||
msgstr "nom de domaine"
|
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:68
|
|
||||||
msgid "unknown type {0} for hostname"
|
msgid "unknown type {0} for hostname"
|
||||||
msgstr "type_ inconnu {0} pour le nom d'hôte"
|
msgstr "type_ inconnu {0} pour le nom d'hôte"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:71
|
#: tiramisu/option/domainnameoption.py:70
|
||||||
msgid "allow_ip must be a boolean"
|
msgid "allow_ip must be a boolean"
|
||||||
msgstr "allow_ip doit être un booléen"
|
msgstr "allow_ip doit être un booléen"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:73
|
#: tiramisu/option/domainnameoption.py:72
|
||||||
msgid "allow_cidr_network must be a boolean"
|
msgid "allow_cidr_network must be a boolean"
|
||||||
msgstr "allow_cidr_network doit être un booléen"
|
msgstr "allow_cidr_network doit être un booléen"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:75
|
#: tiramisu/option/domainnameoption.py:74
|
||||||
msgid "allow_without_dot must be a boolean"
|
msgid "allow_without_dot must be a boolean"
|
||||||
msgstr "allow_without_dot doit être un booléen"
|
msgstr "allow_without_dot doit être un booléen"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:77
|
#: tiramisu/option/domainnameoption.py:76
|
||||||
msgid "allow_startswith_dot must be a boolean"
|
msgid "allow_startswith_dot must be a boolean"
|
||||||
msgstr "allow_startswith_dot doit être un booléen"
|
msgstr "allow_startswith_dot doit être un booléen"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:88
|
#: tiramisu/option/domainnameoption.py:87
|
||||||
msgid ""
|
msgid ""
|
||||||
"must start with lowercase characters followed by lowercase characters, "
|
"must start with lowercase characters followed by lowercase characters, "
|
||||||
"number, \"-\" and \".\" characters are allowed"
|
"number, \"-\" and \".\" characters are allowed"
|
||||||
|
|
@ -660,7 +627,7 @@ msgstr ""
|
||||||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||||
"minuscule, des nombres, \"-\" et \".\" sont autorisés"
|
"minuscule, des nombres, \"-\" et \".\" sont autorisés"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:91
|
#: tiramisu/option/domainnameoption.py:90
|
||||||
msgid ""
|
msgid ""
|
||||||
"must start with lowercase characters followed by lowercase characters, "
|
"must start with lowercase characters followed by lowercase characters, "
|
||||||
"number, \"-\" and \".\" characters are recommanded"
|
"number, \"-\" and \".\" characters are recommanded"
|
||||||
|
|
@ -668,7 +635,7 @@ msgstr ""
|
||||||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||||
"minuscule, des nombres, \"-\" et \".\" sont recommandés"
|
"minuscule, des nombres, \"-\" et \".\" sont recommandés"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:96
|
#: tiramisu/option/domainnameoption.py:95
|
||||||
msgid ""
|
msgid ""
|
||||||
"must start with lowercase characters followed by lowercase characters, "
|
"must start with lowercase characters followed by lowercase characters, "
|
||||||
"number and \"-\" characters are allowed"
|
"number and \"-\" characters are allowed"
|
||||||
|
|
@ -676,7 +643,7 @@ msgstr ""
|
||||||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||||
"minuscule, des nombres et \"-\" sont autorisés"
|
"minuscule, des nombres et \"-\" sont autorisés"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:99
|
#: tiramisu/option/domainnameoption.py:98
|
||||||
msgid ""
|
msgid ""
|
||||||
"must start with lowercase characters followed by lowercase characters, "
|
"must start with lowercase characters followed by lowercase characters, "
|
||||||
"number and \"-\" characters are recommanded"
|
"number and \"-\" characters are recommanded"
|
||||||
|
|
@ -684,54 +651,54 @@ msgstr ""
|
||||||
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
"doit démarrer par un caractère en minuscule suivi par des caractères en "
|
||||||
"minuscule, des nombres et\"-\" sont recommandés"
|
"minuscule, des nombres et\"-\" sont recommandés"
|
||||||
|
|
||||||
|
#: tiramisu/option/domainnameoption.py:102
|
||||||
#: tiramisu/option/domainnameoption.py:103
|
#: tiramisu/option/domainnameoption.py:103
|
||||||
#: tiramisu/option/domainnameoption.py:104
|
|
||||||
msgid "could be a IP, otherwise {}"
|
msgid "could be a IP, otherwise {}"
|
||||||
msgstr "peut être une IP, autrement {}"
|
msgstr "peut être une IP, autrement {}"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:149
|
#: tiramisu/option/domainnameoption.py:148
|
||||||
msgid "invalid length (min 1)"
|
msgid "invalid length (min 1)"
|
||||||
msgstr "longueur invalide (min 1)"
|
msgstr "longueur invalide (min 1)"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:152
|
#: tiramisu/option/domainnameoption.py:151
|
||||||
msgid "invalid length (max {0})"
|
msgid "invalid length (max {0})"
|
||||||
msgstr "longueur invalide (max {0})"
|
msgstr "longueur invalide (max {0})"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:158
|
#: tiramisu/option/domainnameoption.py:157
|
||||||
msgid "must have dot"
|
msgid "must have dot"
|
||||||
msgstr "doit avoir un point"
|
msgstr "doit avoir un point"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:160
|
#: tiramisu/option/domainnameoption.py:159
|
||||||
msgid "invalid length (max 255)"
|
msgid "invalid length (max 255)"
|
||||||
msgstr "longueur invalide (max 255)"
|
msgstr "longueur invalide (max 255)"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:180
|
#: tiramisu/option/domainnameoption.py:179
|
||||||
msgid "DNS resolution failed"
|
msgid "DNS resolution failed"
|
||||||
msgstr "la résolution DNS a échoué"
|
msgstr "la résolution DNS a échoué"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:183
|
#: tiramisu/option/domainnameoption.py:182
|
||||||
msgid "error resolving DNS: {1}"
|
msgid "error resolving DNS: {1}"
|
||||||
msgstr "erreur de résolution DNS : {1}"
|
msgstr "erreur de résolution DNS : {1}"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:190
|
#: tiramisu/option/domainnameoption.py:189
|
||||||
msgid "must not be an IP"
|
msgid "must not be an IP"
|
||||||
msgstr "ne doit pas être une IP"
|
msgstr "ne doit pas être une IP"
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:213
|
#: tiramisu/option/domainnameoption.py:212
|
||||||
msgid "some characters are uppercase"
|
msgid "some characters are uppercase"
|
||||||
msgstr "des caractères sont en majuscule"
|
msgstr "des caractères sont en majuscule"
|
||||||
|
|
||||||
#: tiramisu/option/dynoptiondescription.py:138
|
#: tiramisu/option/dynoptiondescription.py:130
|
||||||
msgid "DynOptionDescription identifiers for option {0}, is not a list ({1})"
|
msgid "DynOptionDescription identifiers for option {0}, is not a list ({1})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"les identifiants de la DynOptionDescription pour l'option {0}, n'est pas une "
|
"les identifiants de la DynOptionDescription pour l'option {0}, n'est pas une "
|
||||||
"liste ({1})"
|
"liste ({1})"
|
||||||
|
|
||||||
#: tiramisu/option/dynoptiondescription.py:150
|
#: tiramisu/option/dynoptiondescription.py:142
|
||||||
msgid "invalid identifier \"{}\" for option {}"
|
msgid "invalid identifier \"{}\" for option {}"
|
||||||
msgstr "identifiant \"{}\" invalide pour l'option \"{}\""
|
msgstr "identifiant \"{}\" invalide pour l'option \"{}\""
|
||||||
|
|
||||||
#: tiramisu/option/dynoptiondescription.py:162
|
#: tiramisu/option/dynoptiondescription.py:154
|
||||||
msgid ""
|
msgid ""
|
||||||
"DynOptionDescription \"{0}\" identifiers return a list with same values "
|
"DynOptionDescription \"{0}\" identifiers return a list with same values "
|
||||||
"\"{1}\""
|
"\"{1}\""
|
||||||
|
|
@ -739,92 +706,72 @@ msgstr ""
|
||||||
"Les identifiants de la DynOptionDescription \"{0}\" retourne une liste avec "
|
"Les identifiants de la DynOptionDescription \"{0}\" retourne une liste avec "
|
||||||
"des valeurs identiques \"{1}\""
|
"des valeurs identiques \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/option/emailoption.py:37
|
#: tiramisu/option/filenameoption.py:47
|
||||||
msgid "email address"
|
|
||||||
msgstr "adresse mail"
|
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:35
|
|
||||||
msgid "file name"
|
|
||||||
msgstr "nom de fichier"
|
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:48
|
|
||||||
msgid "types parameter must be a list, not \"{0}\" for \"{1}\""
|
msgid "types parameter must be a list, not \"{0}\" for \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"le paramètre types doit être une liste, au lieu de \"{0}\" pour \"{1}\""
|
"le paramètre types doit être une liste, au lieu de \"{0}\" pour \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:68
|
#: tiramisu/option/filenameoption.py:67
|
||||||
msgid "must starts with \"/\""
|
msgid "must starts with \"/\""
|
||||||
msgstr "doit débuter par \"/\""
|
msgstr "doit débuter par \"/\""
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:79
|
#: tiramisu/option/filenameoption.py:78
|
||||||
msgid "directory"
|
msgid "directory"
|
||||||
msgstr "répertoire"
|
msgstr "répertoire"
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:79
|
#: tiramisu/option/filenameoption.py:78
|
||||||
msgid "file"
|
msgid "file"
|
||||||
msgstr "fichier"
|
msgstr "fichier"
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:83
|
#: tiramisu/option/filenameoption.py:82
|
||||||
msgid "cannot find this {0}"
|
msgid "cannot find this {0}"
|
||||||
msgstr "ce {0} est introuvable"
|
msgstr "ce {0} est introuvable"
|
||||||
|
|
||||||
#: tiramisu/option/floatoption.py:33
|
#: tiramisu/option/intoption.py:46
|
||||||
msgid "float"
|
|
||||||
msgstr "nombre flottant"
|
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:32
|
|
||||||
msgid "integer"
|
|
||||||
msgstr "nombre"
|
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:51
|
|
||||||
msgid "which is not an integer"
|
msgid "which is not an integer"
|
||||||
msgstr "qui n'est pas un chiffre"
|
msgstr "qui n'est pas un chiffre"
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:57
|
#: tiramisu/option/intoption.py:52
|
||||||
msgid "value should be equal or greater than \"{0}\""
|
msgid "value should be equal or greater than \"{0}\""
|
||||||
msgstr "la valeur devrait être supérieur ou égal à {0}"
|
msgstr "la valeur devrait être supérieur ou égal à {0}"
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:59
|
#: tiramisu/option/intoption.py:54
|
||||||
msgid "value must be equal or greater than \"{0}\""
|
msgid "value must be equal or greater than \"{0}\""
|
||||||
msgstr "valeur doit être supérieur ou égal à {0}"
|
msgstr "valeur doit être supérieur ou égal à {0}"
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:64
|
#: tiramisu/option/intoption.py:59
|
||||||
msgid "value should be less than \"{0}\""
|
msgid "value should be less than \"{0}\""
|
||||||
msgstr "valeur devrait être inférieur à \"{0}\""
|
msgstr "valeur devrait être inférieur à \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:66
|
#: tiramisu/option/intoption.py:61
|
||||||
msgid "value must be less than \"{0}\""
|
msgid "value must be less than \"{0}\""
|
||||||
msgstr "valeur doit être inférieur à \"{0}\""
|
msgstr "valeur doit être inférieur à \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:34
|
#: tiramisu/option/ipoption.py:57
|
||||||
msgid "IP"
|
|
||||||
msgstr "IP"
|
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:61
|
|
||||||
msgid "it's in fact a network address"
|
msgid "it's in fact a network address"
|
||||||
msgstr "c'est un faite une adresse réseau"
|
msgstr "c'est un faite une adresse réseau"
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:63
|
#: tiramisu/option/ipoption.py:59
|
||||||
msgid "it's in fact a broacast address"
|
msgid "it's in fact a broacast address"
|
||||||
msgstr "c'est en faite une adresse de broadcast"
|
msgstr "c'est en faite une adresse de broadcast"
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:75
|
#: tiramisu/option/ipoption.py:71
|
||||||
msgid "CIDR address must have a \"/\""
|
msgid "CIDR address must have a \"/\""
|
||||||
msgstr "une adresse CIDR doit avoir un \"/\""
|
msgstr "une adresse CIDR doit avoir un \"/\""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:84
|
#: tiramisu/option/ipoption.py:80
|
||||||
msgid "shouldn't be reserved IP"
|
msgid "shouldn't be reserved IP"
|
||||||
msgstr "ne devrait pas être une IP réservée"
|
msgstr "ne devrait pas être une IP réservée"
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:86
|
#: tiramisu/option/ipoption.py:82
|
||||||
msgid "mustn't be reserved IP"
|
msgid "mustn't be reserved IP"
|
||||||
msgstr "ne doit pas être une IP réservée"
|
msgstr "ne doit pas être une IP réservée"
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:90
|
#: tiramisu/option/ipoption.py:86
|
||||||
msgid "should be private IP"
|
msgid "should be private IP"
|
||||||
msgstr "devrait être une IP privée"
|
msgstr "devrait être une IP privée"
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:92
|
#: tiramisu/option/ipoption.py:88
|
||||||
msgid "must be private IP"
|
msgid "must be private IP"
|
||||||
msgstr "doit être une IP privée"
|
msgstr "doit être une IP privée"
|
||||||
|
|
||||||
|
|
@ -855,56 +802,44 @@ msgstr ""
|
||||||
"valeur par défaut non autorisée pour l'option suiveuse {0} dans l'option "
|
"valeur par défaut non autorisée pour l'option suiveuse {0} dans l'option "
|
||||||
"leadership {1}"
|
"leadership {1}"
|
||||||
|
|
||||||
#: tiramisu/option/macoption.py:35
|
#: tiramisu/option/networkoption.py:45
|
||||||
msgid "mac address"
|
msgid "must use CIDR notation"
|
||||||
msgstr "adresse MAC"
|
msgstr "doit utiliser la notation CIDR"
|
||||||
|
|
||||||
#: tiramisu/option/netmaskoption.py:33
|
#: tiramisu/option/networkoption.py:60
|
||||||
msgid "netmask address"
|
|
||||||
msgstr "adresse netmask"
|
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:34
|
|
||||||
msgid "network address"
|
|
||||||
msgstr "adresse réseau"
|
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:41
|
|
||||||
msgid "it's not a network address"
|
|
||||||
msgstr "ce n'est pas une adresse réseau"
|
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:46
|
|
||||||
msgid "shouldn't be reserved network"
|
msgid "shouldn't be reserved network"
|
||||||
msgstr "ne devrait pas être une IP réservée"
|
msgstr "ne devrait pas être une IP réservée"
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:48
|
#: tiramisu/option/networkoption.py:62
|
||||||
msgid "mustn't be reserved network"
|
msgid "mustn't be reserved network"
|
||||||
msgstr "ne doit pas être une IP réservée"
|
msgstr "ne doit pas être une IP réservée"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:75
|
#: tiramisu/option/option.py:73
|
||||||
msgid "default_multi is set whereas multi is False in option: {0}"
|
msgid "default_multi is set whereas multi is False in option: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"default_multi est spécifié alors que multi est à False pour l'option : {0}"
|
"default_multi est spécifié alors que multi est à False pour l'option : {0}"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:95
|
#: tiramisu/option/option.py:93
|
||||||
msgid "invalid multi type \"{}\" for \"{}\""
|
msgid "invalid multi type \"{}\" for \"{}\""
|
||||||
msgstr "type multiple \"{}\" invalide pour \"{}\""
|
msgstr "type multiple \"{}\" invalide pour \"{}\""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:114
|
#: tiramisu/option/option.py:112
|
||||||
msgid "validators must be a list of Calculation for \"{0}\""
|
msgid "validators must be a list of Calculation for \"{0}\""
|
||||||
msgstr "validators doit être une liste de Calculation pour \"{0}\""
|
msgstr "validators doit être une liste de Calculation pour \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:119
|
#: tiramisu/option/option.py:117
|
||||||
msgid "validators must be a Calculation for \"{0}\""
|
msgid "validators must be a Calculation for \"{0}\""
|
||||||
msgstr "validators doit être un Calculation pour \"{0}\""
|
msgstr "validators doit être un Calculation pour \"{0}\""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:143
|
#: tiramisu/option/option.py:141
|
||||||
msgid "invalid default_multi value \"{0}\" for option {1}"
|
msgid "invalid default_multi value \"{0}\" for option {1}"
|
||||||
msgstr "la valeur default_multi est invalide {0} pour l'option {1}"
|
msgstr "la valeur default_multi est invalide {0} pour l'option {1}"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:151
|
#: tiramisu/option/option.py:149
|
||||||
msgid "invalid default_multi value \"{0}\" for option {1}, {2}"
|
msgid "invalid default_multi value \"{0}\" for option {1}, {2}"
|
||||||
msgstr "la valeur default_multi est invalide \"{0}\" pour l'option {1}, {2}"
|
msgstr "la valeur default_multi est invalide \"{0}\" pour l'option {1}, {2}"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:164
|
#: tiramisu/option/option.py:162
|
||||||
msgid ""
|
msgid ""
|
||||||
"invalid default_multi value \"{0}\" for option {1}, must be a list for a "
|
"invalid default_multi value \"{0}\" for option {1}, must be a list for a "
|
||||||
"submulti"
|
"submulti"
|
||||||
|
|
@ -912,19 +847,19 @@ msgstr ""
|
||||||
"valeur invalide pour default_multi \"{0}\" pour l'option {1}, doit être une "
|
"valeur invalide pour default_multi \"{0}\" pour l'option {1}, doit être une "
|
||||||
"liste pour une submulti"
|
"liste pour une submulti"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:298
|
#: tiramisu/option/option.py:294
|
||||||
msgid "the value \"{}\" is not unique"
|
msgid "the value \"{}\" is not unique"
|
||||||
msgstr "la valeur \"{}\" n'est pas unique"
|
msgstr "la valeur \"{}\" n'est pas unique"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:361
|
#: tiramisu/option/option.py:357
|
||||||
msgid "which must not be a list"
|
msgid "which must not be a list"
|
||||||
msgstr "qui ne doit pas être une liste"
|
msgstr "qui ne doit pas être une liste"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:416 tiramisu/option/option.py:454
|
#: tiramisu/option/option.py:412 tiramisu/option/option.py:450
|
||||||
msgid "which must be a list"
|
msgid "which must be a list"
|
||||||
msgstr "qui doit être une liste"
|
msgstr "qui doit être une liste"
|
||||||
|
|
||||||
#: tiramisu/option/option.py:444
|
#: tiramisu/option/option.py:440
|
||||||
msgid "which \"{}\" must be a list of list"
|
msgid "which \"{}\" must be a list of list"
|
||||||
msgstr "lequel \"{}\" doit être une liste de liste"
|
msgstr "lequel \"{}\" doit être une liste de liste"
|
||||||
|
|
||||||
|
|
@ -950,92 +885,76 @@ msgstr "les enfants d'une optiondescription \"{}\" doivent être une liste"
|
||||||
msgid "the option name \"{0}\" is duplicate in \"{1}\""
|
msgid "the option name \"{0}\" is duplicate in \"{1}\""
|
||||||
msgstr "le nom de l'option \"{0}\" est dupliqué dans \"{1}\""
|
msgstr "le nom de l'option \"{0}\" est dupliqué dans \"{1}\""
|
||||||
|
|
||||||
#: tiramisu/option/optiondescription.py:408
|
#: tiramisu/option/optiondescription.py:411
|
||||||
msgid "cannot change group_type if already set (old {0}, new {1})"
|
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})"
|
msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})"
|
||||||
|
|
||||||
#: tiramisu/option/optiondescription.py:413
|
#: tiramisu/option/optiondescription.py:416
|
||||||
msgid "group_type: {0} not allowed"
|
msgid "group_type: {0} not allowed"
|
||||||
msgstr "group_type : {0} non autorisé"
|
msgstr "group_type : {0} non autorisé"
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:34
|
#: tiramisu/option/passwordoption.py:49
|
||||||
msgid "password"
|
|
||||||
msgstr "mot de passe"
|
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:51
|
|
||||||
msgid "at least {0} characters are required"
|
msgid "at least {0} characters are required"
|
||||||
msgstr "au moins {0} caractères sont requis"
|
msgstr "au moins {0} caractères sont requis"
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:54
|
#: tiramisu/option/passwordoption.py:52
|
||||||
msgid "maximum {0} characters required"
|
msgid "maximum {0} characters required"
|
||||||
msgstr "un maximum de {0} caractères sont autorisés"
|
msgstr "un maximum de {0} caractères sont autorisés"
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:59
|
#: tiramisu/option/passwordoption.py:57
|
||||||
msgid "must not have the characters {0}"
|
msgid "must not have the characters {0}"
|
||||||
msgstr "ne doit pas contenir les caractères {0}"
|
msgstr "ne doit pas contenir les caractères {0}"
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:40
|
#: tiramisu/option/permissionsoption.py:52
|
||||||
msgid "unix file permissions"
|
|
||||||
msgstr "permissions de fichier Unix"
|
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:53
|
|
||||||
msgid "only 3 or 4 octal digits are allowed"
|
msgid "only 3 or 4 octal digits are allowed"
|
||||||
msgstr "seulement 3 ou 4 chiffres octal sont autorisées"
|
msgstr "seulement 3 ou 4 chiffres octal sont autorisées"
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:64
|
#: tiramisu/option/permissionsoption.py:63
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "nom d'utilisateur"
|
msgstr "nom d'utilisateur"
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:65
|
#: tiramisu/option/permissionsoption.py:64
|
||||||
#: tiramisu/option/permissionsoption.py:67
|
#: tiramisu/option/permissionsoption.py:66
|
||||||
msgid "group"
|
msgid "group"
|
||||||
msgstr "groupe"
|
msgstr "groupe"
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:68
|
#: tiramisu/option/permissionsoption.py:67
|
||||||
msgid "other"
|
msgid "other"
|
||||||
msgstr "autre"
|
msgstr "autre"
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:69
|
#: tiramisu/option/permissionsoption.py:68
|
||||||
msgid "{0} has more right than {1}"
|
msgid "{0} has more right than {1}"
|
||||||
msgstr "{0} a plus de droit que {1}"
|
msgstr "{0} a plus de droit que {1}"
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:72
|
#: tiramisu/option/permissionsoption.py:71
|
||||||
msgid "too weak"
|
msgid "too weak"
|
||||||
msgstr "trop simple"
|
msgstr "trop simple"
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:40
|
#: tiramisu/option/portoption.py:77
|
||||||
msgid "port"
|
|
||||||
msgstr "port"
|
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:78
|
|
||||||
msgid "inconsistency in allowed range"
|
msgid "inconsistency in allowed range"
|
||||||
msgstr "inconsistence dans la plage autorisée"
|
msgstr "inconsistence dans la plage autorisée"
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:83
|
#: tiramisu/option/portoption.py:82
|
||||||
msgid "max value is empty"
|
msgid "max value is empty"
|
||||||
msgstr "la valeur maximum est vide"
|
msgstr "la valeur maximum est vide"
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:96
|
#: tiramisu/option/portoption.py:95
|
||||||
msgid "range must have two values only"
|
msgid "range must have two values only"
|
||||||
msgstr "un rang doit avoir deux valeurs seulement"
|
msgstr "un rang doit avoir deux valeurs seulement"
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:99
|
#: tiramisu/option/portoption.py:98
|
||||||
msgid "first port in range must be smaller than the second one"
|
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"
|
msgstr "le premier port d'un rang doit être plus petit que le second"
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:125
|
#: tiramisu/option/portoption.py:124
|
||||||
msgid "should be between {0} and {1}"
|
msgid "should be between {0} and {1}"
|
||||||
msgstr "devrait être une nombre entre {0} et {1}"
|
msgstr "devrait être une nombre entre {0} et {1}"
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:127
|
#: tiramisu/option/portoption.py:126
|
||||||
msgid "must be between {0} and {1}"
|
msgid "must be between {0} and {1}"
|
||||||
msgstr "doit être une nombre entre {0} et {1}"
|
msgstr "doit être une nombre entre {0} et {1}"
|
||||||
|
|
||||||
#: tiramisu/option/stroption.py:34
|
#: tiramisu/option/stroption.py:41
|
||||||
msgid "string"
|
|
||||||
msgstr "texte"
|
|
||||||
|
|
||||||
#: tiramisu/option/stroption.py:42
|
|
||||||
msgid "which is not a string"
|
msgid "which is not a string"
|
||||||
msgstr "qui n'est pas une chaîne de caractères"
|
msgstr "qui n'est pas une chaîne de caractères"
|
||||||
|
|
||||||
|
|
@ -1046,34 +965,22 @@ msgstr ""
|
||||||
"symlink mal formé, le second paramètre doit être une option pour \"{0}\", "
|
"symlink mal formé, le second paramètre doit être une option pour \"{0}\", "
|
||||||
"not {1}"
|
"not {1}"
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:40
|
#: tiramisu/option/urloption.py:92
|
||||||
msgid "URL"
|
|
||||||
msgstr "URL"
|
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:93
|
|
||||||
msgid "must start with http:// or https://"
|
msgid "must start with http:// or https://"
|
||||||
msgstr "doit débuter par http:// ou https://"
|
msgstr "doit débuter par http:// ou https://"
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:118
|
#: tiramisu/option/urloption.py:117
|
||||||
msgid "the port \"{0}\" is invalid: {1}"
|
msgid "the port \"{0}\" is invalid: {1}"
|
||||||
msgstr "le port \"{0}\" est invalide : {1}"
|
msgstr "le port \"{0}\" est invalide : {1}"
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:125
|
#: tiramisu/option/urloption.py:124
|
||||||
msgid "the domain \"{0}\" is invalid: {1}"
|
msgid "the domain \"{0}\" is invalid: {1}"
|
||||||
msgstr "le domaine \"{0}\" est invalide : {1}"
|
msgstr "le domaine \"{0}\" est invalide : {1}"
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:129
|
#: tiramisu/option/urloption.py:128
|
||||||
msgid "must ends with a valid resource name"
|
msgid "must ends with a valid resource name"
|
||||||
msgstr "doit finir par un nom de ressource valide"
|
msgstr "doit finir par un nom de ressource valide"
|
||||||
|
|
||||||
#: tiramisu/option/usernameoption.py:36
|
|
||||||
msgid "unix username"
|
|
||||||
msgstr "nom d'utilisateur Unix"
|
|
||||||
|
|
||||||
#: tiramisu/option/usernameoption.py:44
|
|
||||||
msgid "unix groupname"
|
|
||||||
msgstr "nom de groupe Unix"
|
|
||||||
|
|
||||||
#: tiramisu/setting.py:258
|
#: tiramisu/setting.py:258
|
||||||
msgid "can't rebind {0}"
|
msgid "can't rebind {0}"
|
||||||
msgstr "ne peut redéfinir ({0})"
|
msgstr "ne peut redéfinir ({0})"
|
||||||
|
|
@ -1146,12 +1053,6 @@ msgstr ""
|
||||||
msgid "information's item not found \"{}\""
|
msgid "information's item not found \"{}\""
|
||||||
msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
||||||
|
|
||||||
#~ msgid "invalid string"
|
|
||||||
#~ msgstr "invalide caractère"
|
|
||||||
|
|
||||||
#~ msgid "must use CIDR notation"
|
|
||||||
#~ msgstr "doit utiliser la notation CIDR"
|
|
||||||
|
|
||||||
#~ msgid "no option found in config with these criteria"
|
#~ msgid "no option found in config with these criteria"
|
||||||
#~ msgstr "aucune option trouvée dans la config avec ces critères"
|
#~ msgstr "aucune option trouvée dans la config avec ces critères"
|
||||||
|
|
||||||
|
|
@ -1334,14 +1235,26 @@ msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
||||||
#~ "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
|
#~ "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
|
||||||
#~ "option, expected et action"
|
#~ "option, expected et action"
|
||||||
|
|
||||||
|
#~ msgid "boolean"
|
||||||
|
#~ msgstr "booléen"
|
||||||
|
|
||||||
#~ msgid "invalid broadcast consistency, a network and a netmask are needed"
|
#~ msgid "invalid broadcast consistency, a network and a netmask are needed"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "adresse de broadcast inconsistante, un réseau et un masque sont "
|
#~ "adresse de broadcast inconsistante, un réseau et un masque sont "
|
||||||
#~ "nécessaires."
|
#~ "nécessaires."
|
||||||
|
|
||||||
|
#~ msgid "choice"
|
||||||
|
#~ msgstr "choix"
|
||||||
|
|
||||||
#~ msgid "values is not a function, so values_params must be None"
|
#~ 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"
|
#~ msgstr "values n'est pas une fonction, donc values_params doit être None"
|
||||||
|
|
||||||
|
#~ msgid "date"
|
||||||
|
#~ msgstr "date"
|
||||||
|
|
||||||
|
#~ msgid "domain name"
|
||||||
|
#~ msgstr "nom de domaine"
|
||||||
|
|
||||||
#~ msgid "only lowercase, number and - are characters are allowed"
|
#~ msgid "only lowercase, number and - are characters are allowed"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "seuls les caractères en minuscule, les nombres et \"-\" sont autorisés"
|
#~ "seuls les caractères en minuscule, les nombres et \"-\" sont autorisés"
|
||||||
|
|
@ -1353,6 +1266,18 @@ msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
||||||
#~ msgid "callback is mandatory for the dynoptiondescription \"{}\""
|
#~ msgid "callback is mandatory for the dynoptiondescription \"{}\""
|
||||||
#~ msgstr "un callback est obligatoire pour le dynoptiondescription \"{}\""
|
#~ msgstr "un callback est obligatoire pour le dynoptiondescription \"{}\""
|
||||||
|
|
||||||
|
#~ msgid "email address"
|
||||||
|
#~ msgstr "adresse mail"
|
||||||
|
|
||||||
|
#~ msgid "float"
|
||||||
|
#~ msgstr "nombre flottant"
|
||||||
|
|
||||||
|
#~ msgid "integer"
|
||||||
|
#~ msgstr "nombre"
|
||||||
|
|
||||||
|
#~ msgid "IP"
|
||||||
|
#~ msgstr "IP"
|
||||||
|
|
||||||
#~ msgid "IP not in network \"{0}\" (\"{1}\")"
|
#~ msgid "IP not in network \"{0}\" (\"{1}\")"
|
||||||
#~ msgstr "l'IP n'est pas dans le réseau \"{0}\" (\"{1}\")"
|
#~ msgstr "l'IP n'est pas dans le réseau \"{0}\" (\"{1}\")"
|
||||||
|
|
||||||
|
|
@ -1392,6 +1317,9 @@ msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
||||||
#~ "requirement mal formé pour l'option \"{0}\" ne doit pas être dans une "
|
#~ "requirement mal formé pour l'option \"{0}\" ne doit pas être dans une "
|
||||||
#~ "suiveuse pour \"{1}\""
|
#~ "suiveuse pour \"{1}\""
|
||||||
|
|
||||||
|
#~ msgid "netmask address"
|
||||||
|
#~ msgstr "adresse netmask"
|
||||||
|
|
||||||
#~ msgid "network_netmask needs a network and a netmask"
|
#~ msgid "network_netmask needs a network and a netmask"
|
||||||
#~ msgstr "network_netmask nécessite un réseau et un masque de réseau"
|
#~ msgstr "network_netmask nécessite un réseau et un masque de réseau"
|
||||||
|
|
||||||
|
|
@ -1510,9 +1438,21 @@ msgstr "l'information de l'objet ne sont pas trouvé \"{}\""
|
||||||
#~ msgid "consistency with option {0} which is not in Config"
|
#~ msgid "consistency with option {0} which is not in Config"
|
||||||
#~ msgstr "consistency avec l'option {0} qui n'est pas dans une Config"
|
#~ msgstr "consistency avec l'option {0} qui n'est pas dans une Config"
|
||||||
|
|
||||||
|
#~ msgid "password"
|
||||||
|
#~ msgstr "mot de passe"
|
||||||
|
|
||||||
|
#~ msgid "port"
|
||||||
|
#~ msgstr "port"
|
||||||
|
|
||||||
|
#~ msgid "string"
|
||||||
|
#~ msgstr "texte"
|
||||||
|
|
||||||
#~ msgid "unknown option \"{0}\" in syndynoptiondescription \"{1}\""
|
#~ msgid "unknown option \"{0}\" in syndynoptiondescription \"{1}\""
|
||||||
#~ msgstr "l'option \"{0}\" inconnue dans la syndynoptiondescription \"{1}\""
|
#~ msgstr "l'option \"{0}\" inconnue dans la syndynoptiondescription \"{1}\""
|
||||||
|
|
||||||
|
#~ msgid "URL"
|
||||||
|
#~ msgstr "URL"
|
||||||
|
|
||||||
#~ msgid "port must be an between 0 and 65536"
|
#~ msgid "port must be an between 0 and 65536"
|
||||||
#~ msgstr "port doit être entre 0 et 65536"
|
#~ msgstr "port doit être entre 0 et 65536"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: 2025-10-04 15:46+0200\n"
|
"POT-Creation-Date: 2025-09-19 22:05+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -35,7 +35,7 @@ msgstr ""
|
||||||
msgid "Commands:"
|
msgid "Commands:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:118 tiramisu/api.py:1963
|
#: tiramisu/api.py:118 tiramisu/api.py:1955
|
||||||
msgid "please specify a valid sub function ({0}.{1})"
|
msgid "please specify a valid sub function ({0}.{1})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -43,7 +43,7 @@ msgstr ""
|
||||||
msgid "please do not specify index ({0}.{1})"
|
msgid "please do not specify index ({0}.{1})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:211 tiramisu/api.py:948
|
#: tiramisu/api.py:211 tiramisu/api.py:940
|
||||||
msgid "please specify index with a follower option ({0}.{1})"
|
msgid "please specify index with a follower option ({0}.{1})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -51,67 +51,59 @@ msgstr ""
|
||||||
msgid "please specify a valid sub function ({0}.{1}): {2}"
|
msgid "please specify a valid sub function ({0}.{1}): {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:447
|
#: tiramisu/api.py:525
|
||||||
msgid "optiondescription"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/api.py:452
|
|
||||||
msgid "symlink"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/api.py:533
|
|
||||||
msgid "the option {0} is not a dynamic option, cannot get identifiers with only_self parameter to True"
|
msgid "the option {0} is not a dynamic option, cannot get identifiers with only_self parameter to True"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:621
|
#: tiramisu/api.py:613
|
||||||
msgid "cannot get option from a follower symlink without index"
|
msgid "cannot get option from a follower symlink without index"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:699
|
#: tiramisu/api.py:691
|
||||||
msgid "cannot add this property: \"{0}\""
|
msgid "cannot add this property: \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:726
|
#: tiramisu/api.py:718
|
||||||
msgid "cannot remove option's property \"{0}\", use permissive instead in option \"{1}\""
|
msgid "cannot remove option's property \"{0}\", use permissive instead in option \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:730
|
#: tiramisu/api.py:722
|
||||||
msgid "cannot find \"{0}\" in option \"{1}\""
|
msgid "cannot find \"{0}\" in option \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:735
|
#: tiramisu/api.py:727
|
||||||
msgid "cannot remove option's property \"{0}\", use permissive instead in option \"{1}\" at index \"{2}\""
|
msgid "cannot remove option's property \"{0}\", use permissive instead in option \"{1}\" at index \"{2}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:739
|
#: tiramisu/api.py:731
|
||||||
msgid "cannot find \"{0}\" in option \"{1}\" at index \"{2}\""
|
msgid "cannot find \"{0}\" in option \"{1}\" at index \"{2}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:783
|
#: tiramisu/api.py:775
|
||||||
msgid "cannot find \"{0}\""
|
msgid "cannot find \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:965
|
#: tiramisu/api.py:957
|
||||||
msgid "only multi value has defaultmulti"
|
msgid "only multi value has defaultmulti"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:1129
|
#: tiramisu/api.py:1121
|
||||||
msgid "please specify a valid sub function ({0}.{1}) for {2}"
|
msgid "please specify a valid sub function ({0}.{1}) for {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:1528
|
#: tiramisu/api.py:1520
|
||||||
msgid "properties must be a frozenset"
|
msgid "properties must be a frozenset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:1532 tiramisu/api.py:1559
|
#: tiramisu/api.py:1524 tiramisu/api.py:1551
|
||||||
msgid "unknown when {} (must be in append or remove)"
|
msgid "unknown when {} (must be in append or remove)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:1545 tiramisu/api.py:1569 tiramisu/config.py:1712
|
#: tiramisu/api.py:1537 tiramisu/api.py:1561 tiramisu/config.py:1691
|
||||||
msgid "unknown type {}"
|
msgid "unknown type {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/api.py:1935
|
#: tiramisu/api.py:1927
|
||||||
msgid "do not use unrestraint, nowarnings or forcepermissive together"
|
msgid "do not use unrestraint, nowarnings or forcepermissive together"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -215,84 +207,83 @@ msgstr ""
|
||||||
msgid "unexpected error \"{1}\" in function \"{2}\" for option {0}"
|
msgid "unexpected error \"{1}\" in function \"{2}\" for option {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:392 tiramisu/config.py:414 tiramisu/config.py:745
|
#: tiramisu/config.py:391 tiramisu/config.py:413
|
||||||
#: tiramisu/config.py:754
|
msgid "option name {0} is not unique in {1}"
|
||||||
msgid "option name \"{0}\" is not unique in {1}"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:639
|
#: tiramisu/config.py:638
|
||||||
msgid "there is no option description for this config (may be GroupConfig)"
|
msgid "there is no option description for this config (may be GroupConfig)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1010 tiramisu/option/optiondescription.py:74
|
#: tiramisu/config.py:989 tiramisu/option/optiondescription.py:74
|
||||||
msgid "option description seems to be part of an other config"
|
msgid "option description seems to be part of an other config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1172
|
#: tiramisu/config.py:1151
|
||||||
msgid "parent of {0} not already exists"
|
msgid "parent of {0} not already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1219
|
#: tiramisu/config.py:1198
|
||||||
msgid "cannot set leadership object has root optiondescription"
|
msgid "cannot set leadership object has root optiondescription"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1222
|
#: tiramisu/config.py:1201
|
||||||
msgid "cannot set dynoptiondescription object has root optiondescription"
|
msgid "cannot set dynoptiondescription object has root optiondescription"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1269
|
#: tiramisu/config.py:1248
|
||||||
msgid "child must be a Config, GroupConfig, MixConfig or MetaConfig"
|
msgid "child must be a Config, GroupConfig, MixConfig or MetaConfig"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1278
|
#: tiramisu/config.py:1257
|
||||||
msgid "config name must be uniq in groupconfig for \"{0}\""
|
msgid "config name must be uniq in groupconfig for \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1487
|
#: tiramisu/config.py:1466
|
||||||
msgid "unknown config \"{}\""
|
msgid "unknown config \"{}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1512
|
#: tiramisu/config.py:1491
|
||||||
msgid "child must be a Config, MixConfig or MetaConfig"
|
msgid "child must be a Config, MixConfig or MetaConfig"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1547
|
#: tiramisu/config.py:1526
|
||||||
msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
|
msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1557
|
#: tiramisu/config.py:1536
|
||||||
msgid "force_default and force_dont_change_value cannot be set together"
|
msgid "force_default and force_dont_change_value cannot be set together"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1708
|
#: tiramisu/config.py:1687
|
||||||
msgid "config name must be uniq in groupconfig for {0}"
|
msgid "config name must be uniq in groupconfig for {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1753
|
#: tiramisu/config.py:1732
|
||||||
msgid "config added has no name, the name is mandatory"
|
msgid "config added has no name, the name is mandatory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1758
|
#: tiramisu/config.py:1737
|
||||||
msgid "config name \"{0}\" is not uniq in groupconfig \"{1}\""
|
msgid "config name \"{0}\" is not uniq in groupconfig \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1776 tiramisu/config.py:1782
|
#: tiramisu/config.py:1755 tiramisu/config.py:1761
|
||||||
msgid "cannot find the config {0}"
|
msgid "cannot find the config {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1808
|
#: tiramisu/config.py:1787
|
||||||
msgid "MetaConfig with optiondescription must have string has child, not {}"
|
msgid "MetaConfig with optiondescription must have string has child, not {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1820
|
#: tiramisu/config.py:1799
|
||||||
msgid "child must be a Config or MetaConfig"
|
msgid "child must be a Config or MetaConfig"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1825
|
#: tiramisu/config.py:1804
|
||||||
msgid "all config in metaconfig must have the same optiondescription"
|
msgid "all config in metaconfig must have the same optiondescription"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/config.py:1842
|
#: tiramisu/config.py:1821
|
||||||
msgid "metaconfig must have the same optiondescription"
|
msgid "metaconfig must have the same optiondescription"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -416,19 +407,11 @@ msgstr ""
|
||||||
msgid "attention, \"{0}\" could be an invalid {1} for {2} at index \"{3}\""
|
msgid "attention, \"{0}\" could be an invalid {1} for {2} at index \"{3}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/error.py:370
|
#: tiramisu/error.py:368 tiramisu/error.py:379
|
||||||
msgid "{2} has an invalid {1}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/error.py:372
|
|
||||||
msgid "{2} at index \"{3}\" has an invalid {1}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/error.py:375 tiramisu/error.py:386
|
|
||||||
msgid "\"{0}\" is an invalid {1} for {2}"
|
msgid "\"{0}\" is an invalid {1} for {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/error.py:377
|
#: tiramisu/error.py:370
|
||||||
msgid "\"{0}\" is an invalid {1} for {2} at index \"{3}\""
|
msgid "\"{0}\" is an invalid {1} for {2} at index \"{3}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -500,228 +483,192 @@ msgstr ""
|
||||||
msgid "invalid property type {0} for {1}, must be a string or a Calculation"
|
msgid "invalid property type {0} for {1}, must be a string or a Calculation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:254
|
#: tiramisu/option/baseoption.py:253
|
||||||
msgid "information's item for {0} not found: \"{1}\""
|
msgid "information's item for {0} not found: \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:272
|
#: tiramisu/option/baseoption.py:271
|
||||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:313
|
#: tiramisu/option/baseoption.py:312
|
||||||
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/baseoption.py:325
|
#: tiramisu/option/baseoption.py:324
|
||||||
msgid "{0} not part of any Config"
|
msgid "{0} not part of any Config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/booloption.py:33
|
#: tiramisu/option/broadcastoption.py:41
|
||||||
msgid "boolean"
|
msgid "invalid string"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/broadcastoption.py:34
|
#: tiramisu/option/choiceoption.py:52
|
||||||
msgid "broadcast address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:41
|
|
||||||
msgid "choice"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:53
|
|
||||||
msgid "values must be a tuple or a calculation for {0}"
|
msgid "values must be a tuple or a calculation for {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:76
|
#: tiramisu/option/choiceoption.py:75
|
||||||
msgid "the calculated values \"{0}\" for \"{1}\" is not a list"
|
msgid "the calculated values \"{0}\" for \"{1}\" is not a list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:107
|
#: tiramisu/option/choiceoption.py:106
|
||||||
msgid "only \"{0}\" is allowed"
|
msgid "only \"{0}\" is allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/choiceoption.py:109
|
#: tiramisu/option/choiceoption.py:108
|
||||||
msgid "only {0} are allowed"
|
msgid "only {0} are allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/dateoption.py:34
|
#: tiramisu/option/domainnameoption.py:67
|
||||||
msgid "date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:46
|
|
||||||
msgid "domain name"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:68
|
|
||||||
msgid "unknown type {0} for hostname"
|
msgid "unknown type {0} for hostname"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:71
|
#: tiramisu/option/domainnameoption.py:70
|
||||||
msgid "allow_ip must be a boolean"
|
msgid "allow_ip must be a boolean"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:73
|
#: tiramisu/option/domainnameoption.py:72
|
||||||
msgid "allow_cidr_network must be a boolean"
|
msgid "allow_cidr_network must be a boolean"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:75
|
#: tiramisu/option/domainnameoption.py:74
|
||||||
msgid "allow_without_dot must be a boolean"
|
msgid "allow_without_dot must be a boolean"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:77
|
#: tiramisu/option/domainnameoption.py:76
|
||||||
msgid "allow_startswith_dot must be a boolean"
|
msgid "allow_startswith_dot must be a boolean"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:88
|
#: tiramisu/option/domainnameoption.py:87
|
||||||
msgid "must start with lowercase characters followed by lowercase characters, number, \"-\" and \".\" characters are allowed"
|
msgid "must start with lowercase characters followed by lowercase characters, number, \"-\" and \".\" characters are allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:91
|
#: tiramisu/option/domainnameoption.py:90
|
||||||
msgid "must start with lowercase characters followed by lowercase characters, number, \"-\" and \".\" characters are recommanded"
|
msgid "must start with lowercase characters followed by lowercase characters, number, \"-\" and \".\" characters are recommanded"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:96
|
#: tiramisu/option/domainnameoption.py:95
|
||||||
msgid "must start with lowercase characters followed by lowercase characters, number and \"-\" characters are allowed"
|
msgid "must start with lowercase characters followed by lowercase characters, number and \"-\" characters are allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:99
|
#: tiramisu/option/domainnameoption.py:98
|
||||||
msgid "must start with lowercase characters followed by lowercase characters, number and \"-\" characters are recommanded"
|
msgid "must start with lowercase characters followed by lowercase characters, number and \"-\" characters are recommanded"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: tiramisu/option/domainnameoption.py:102
|
||||||
#: tiramisu/option/domainnameoption.py:103
|
#: tiramisu/option/domainnameoption.py:103
|
||||||
#: tiramisu/option/domainnameoption.py:104
|
|
||||||
msgid "could be a IP, otherwise {}"
|
msgid "could be a IP, otherwise {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:149
|
#: tiramisu/option/domainnameoption.py:148
|
||||||
msgid "invalid length (min 1)"
|
msgid "invalid length (min 1)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:152
|
#: tiramisu/option/domainnameoption.py:151
|
||||||
msgid "invalid length (max {0})"
|
msgid "invalid length (max {0})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:158
|
#: tiramisu/option/domainnameoption.py:157
|
||||||
msgid "must have dot"
|
msgid "must have dot"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:160
|
#: tiramisu/option/domainnameoption.py:159
|
||||||
msgid "invalid length (max 255)"
|
msgid "invalid length (max 255)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:180
|
#: tiramisu/option/domainnameoption.py:179
|
||||||
msgid "DNS resolution failed"
|
msgid "DNS resolution failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:183
|
#: tiramisu/option/domainnameoption.py:182
|
||||||
msgid "error resolving DNS: {1}"
|
msgid "error resolving DNS: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:190
|
#: tiramisu/option/domainnameoption.py:189
|
||||||
msgid "must not be an IP"
|
msgid "must not be an IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/domainnameoption.py:213
|
#: tiramisu/option/domainnameoption.py:212
|
||||||
msgid "some characters are uppercase"
|
msgid "some characters are uppercase"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/dynoptiondescription.py:138
|
#: tiramisu/option/dynoptiondescription.py:130
|
||||||
msgid "DynOptionDescription identifiers for option {0}, is not a list ({1})"
|
msgid "DynOptionDescription identifiers for option {0}, is not a list ({1})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/dynoptiondescription.py:150
|
#: tiramisu/option/dynoptiondescription.py:142
|
||||||
msgid "invalid identifier \"{}\" for option {}"
|
msgid "invalid identifier \"{}\" for option {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/dynoptiondescription.py:162
|
#: tiramisu/option/dynoptiondescription.py:154
|
||||||
msgid "DynOptionDescription \"{0}\" identifiers return a list with same values \"{1}\""
|
msgid "DynOptionDescription \"{0}\" identifiers return a list with same values \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/emailoption.py:37
|
#: tiramisu/option/filenameoption.py:47
|
||||||
msgid "email address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:35
|
|
||||||
msgid "file name"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:48
|
|
||||||
msgid "types parameter must be a list, not \"{0}\" for \"{1}\""
|
msgid "types parameter must be a list, not \"{0}\" for \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:68
|
#: tiramisu/option/filenameoption.py:67
|
||||||
msgid "must starts with \"/\""
|
msgid "must starts with \"/\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:79
|
#: tiramisu/option/filenameoption.py:78
|
||||||
msgid "directory"
|
msgid "directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:79
|
#: tiramisu/option/filenameoption.py:78
|
||||||
msgid "file"
|
msgid "file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/filenameoption.py:83
|
#: tiramisu/option/filenameoption.py:82
|
||||||
msgid "cannot find this {0}"
|
msgid "cannot find this {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/floatoption.py:33
|
#: tiramisu/option/intoption.py:46
|
||||||
msgid "float"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:32
|
|
||||||
msgid "integer"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:51
|
|
||||||
msgid "which is not an integer"
|
msgid "which is not an integer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:57
|
#: tiramisu/option/intoption.py:52
|
||||||
msgid "value should be equal or greater than \"{0}\""
|
msgid "value should be equal or greater than \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:59
|
#: tiramisu/option/intoption.py:54
|
||||||
msgid "value must be equal or greater than \"{0}\""
|
msgid "value must be equal or greater than \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:64
|
#: tiramisu/option/intoption.py:59
|
||||||
msgid "value should be less than \"{0}\""
|
msgid "value should be less than \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/intoption.py:66
|
#: tiramisu/option/intoption.py:61
|
||||||
msgid "value must be less than \"{0}\""
|
msgid "value must be less than \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:34
|
#: tiramisu/option/ipoption.py:57
|
||||||
msgid "IP"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:61
|
|
||||||
msgid "it's in fact a network address"
|
msgid "it's in fact a network address"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:63
|
#: tiramisu/option/ipoption.py:59
|
||||||
msgid "it's in fact a broacast address"
|
msgid "it's in fact a broacast address"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:75
|
#: tiramisu/option/ipoption.py:71
|
||||||
msgid "CIDR address must have a \"/\""
|
msgid "CIDR address must have a \"/\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:84
|
#: tiramisu/option/ipoption.py:80
|
||||||
msgid "shouldn't be reserved IP"
|
msgid "shouldn't be reserved IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:86
|
#: tiramisu/option/ipoption.py:82
|
||||||
msgid "mustn't be reserved IP"
|
msgid "mustn't be reserved IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:90
|
#: tiramisu/option/ipoption.py:86
|
||||||
msgid "should be private IP"
|
msgid "should be private IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/ipoption.py:92
|
#: tiramisu/option/ipoption.py:88
|
||||||
msgid "must be private IP"
|
msgid "must be private IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -745,71 +692,59 @@ msgstr ""
|
||||||
msgid "not allowed default value for follower option {0} in leadership {1}"
|
msgid "not allowed default value for follower option {0} in leadership {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/macoption.py:35
|
#: tiramisu/option/networkoption.py:45
|
||||||
msgid "mac address"
|
msgid "must use CIDR notation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/netmaskoption.py:33
|
#: tiramisu/option/networkoption.py:60
|
||||||
msgid "netmask address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:34
|
|
||||||
msgid "network address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:41
|
|
||||||
msgid "it's not a network address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:46
|
|
||||||
msgid "shouldn't be reserved network"
|
msgid "shouldn't be reserved network"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/networkoption.py:48
|
#: tiramisu/option/networkoption.py:62
|
||||||
msgid "mustn't be reserved network"
|
msgid "mustn't be reserved network"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:75
|
#: tiramisu/option/option.py:73
|
||||||
msgid "default_multi is set whereas multi is False in option: {0}"
|
msgid "default_multi is set whereas multi is False in option: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:95
|
#: tiramisu/option/option.py:93
|
||||||
msgid "invalid multi type \"{}\" for \"{}\""
|
msgid "invalid multi type \"{}\" for \"{}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:114
|
#: tiramisu/option/option.py:112
|
||||||
msgid "validators must be a list of Calculation for \"{0}\""
|
msgid "validators must be a list of Calculation for \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:119
|
#: tiramisu/option/option.py:117
|
||||||
msgid "validators must be a Calculation for \"{0}\""
|
msgid "validators must be a Calculation for \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:143
|
#: tiramisu/option/option.py:141
|
||||||
msgid "invalid default_multi value \"{0}\" for option {1}"
|
msgid "invalid default_multi value \"{0}\" for option {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:151
|
#: tiramisu/option/option.py:149
|
||||||
msgid "invalid default_multi value \"{0}\" for option {1}, {2}"
|
msgid "invalid default_multi value \"{0}\" for option {1}, {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:164
|
#: tiramisu/option/option.py:162
|
||||||
msgid "invalid default_multi value \"{0}\" for option {1}, must be a list for a submulti"
|
msgid "invalid default_multi value \"{0}\" for option {1}, must be a list for a submulti"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:298
|
#: tiramisu/option/option.py:294
|
||||||
msgid "the value \"{}\" is not unique"
|
msgid "the value \"{}\" is not unique"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:361
|
#: tiramisu/option/option.py:357
|
||||||
msgid "which must not be a list"
|
msgid "which must not be a list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:416 tiramisu/option/option.py:454
|
#: tiramisu/option/option.py:412 tiramisu/option/option.py:450
|
||||||
msgid "which must be a list"
|
msgid "which must be a list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/option.py:444
|
#: tiramisu/option/option.py:440
|
||||||
msgid "which \"{}\" must be a list of list"
|
msgid "which \"{}\" must be a list of list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -835,92 +770,76 @@ msgstr ""
|
||||||
msgid "the option name \"{0}\" is duplicate in \"{1}\""
|
msgid "the option name \"{0}\" is duplicate in \"{1}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/optiondescription.py:408
|
#: tiramisu/option/optiondescription.py:411
|
||||||
msgid "cannot change group_type if already set (old {0}, new {1})"
|
msgid "cannot change group_type if already set (old {0}, new {1})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/optiondescription.py:413
|
#: tiramisu/option/optiondescription.py:416
|
||||||
msgid "group_type: {0} not allowed"
|
msgid "group_type: {0} not allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:34
|
#: tiramisu/option/passwordoption.py:49
|
||||||
msgid "password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:51
|
|
||||||
msgid "at least {0} characters are required"
|
msgid "at least {0} characters are required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:54
|
#: tiramisu/option/passwordoption.py:52
|
||||||
msgid "maximum {0} characters required"
|
msgid "maximum {0} characters required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/passwordoption.py:59
|
#: tiramisu/option/passwordoption.py:57
|
||||||
msgid "must not have the characters {0}"
|
msgid "must not have the characters {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:40
|
#: tiramisu/option/permissionsoption.py:52
|
||||||
msgid "unix file permissions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:53
|
|
||||||
msgid "only 3 or 4 octal digits are allowed"
|
msgid "only 3 or 4 octal digits are allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:64
|
#: tiramisu/option/permissionsoption.py:63
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:65
|
#: tiramisu/option/permissionsoption.py:64
|
||||||
#: tiramisu/option/permissionsoption.py:67
|
#: tiramisu/option/permissionsoption.py:66
|
||||||
msgid "group"
|
msgid "group"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:68
|
#: tiramisu/option/permissionsoption.py:67
|
||||||
msgid "other"
|
msgid "other"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:69
|
#: tiramisu/option/permissionsoption.py:68
|
||||||
msgid "{0} has more right than {1}"
|
msgid "{0} has more right than {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/permissionsoption.py:72
|
#: tiramisu/option/permissionsoption.py:71
|
||||||
msgid "too weak"
|
msgid "too weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:40
|
#: tiramisu/option/portoption.py:77
|
||||||
msgid "port"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:78
|
|
||||||
msgid "inconsistency in allowed range"
|
msgid "inconsistency in allowed range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:83
|
#: tiramisu/option/portoption.py:82
|
||||||
msgid "max value is empty"
|
msgid "max value is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:96
|
#: tiramisu/option/portoption.py:95
|
||||||
msgid "range must have two values only"
|
msgid "range must have two values only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:99
|
#: tiramisu/option/portoption.py:98
|
||||||
msgid "first port in range must be smaller than the second one"
|
msgid "first port in range must be smaller than the second one"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:125
|
#: tiramisu/option/portoption.py:124
|
||||||
msgid "should be between {0} and {1}"
|
msgid "should be between {0} and {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/portoption.py:127
|
#: tiramisu/option/portoption.py:126
|
||||||
msgid "must be between {0} and {1}"
|
msgid "must be between {0} and {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/stroption.py:34
|
#: tiramisu/option/stroption.py:41
|
||||||
msgid "string"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/stroption.py:42
|
|
||||||
msgid "which is not a string"
|
msgid "which is not a string"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -928,34 +847,22 @@ msgstr ""
|
||||||
msgid "malformed symlink second parameters must be an option for \"{0}\", not {1}"
|
msgid "malformed symlink second parameters must be an option for \"{0}\", not {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:40
|
#: tiramisu/option/urloption.py:92
|
||||||
msgid "URL"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:93
|
|
||||||
msgid "must start with http:// or https://"
|
msgid "must start with http:// or https://"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:118
|
#: tiramisu/option/urloption.py:117
|
||||||
msgid "the port \"{0}\" is invalid: {1}"
|
msgid "the port \"{0}\" is invalid: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:125
|
#: tiramisu/option/urloption.py:124
|
||||||
msgid "the domain \"{0}\" is invalid: {1}"
|
msgid "the domain \"{0}\" is invalid: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/urloption.py:129
|
#: tiramisu/option/urloption.py:128
|
||||||
msgid "must ends with a valid resource name"
|
msgid "must ends with a valid resource name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tiramisu/option/usernameoption.py:36
|
|
||||||
msgid "unix username"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/option/usernameoption.py:44
|
|
||||||
msgid "unix groupname"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: tiramisu/setting.py:258
|
#: tiramisu/setting.py:258
|
||||||
msgid "can't rebind {0}"
|
msgid "can't rebind {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tiramisu"
|
name = "tiramisu"
|
||||||
version = "5.2.0a13"
|
version = "5.2.0a12"
|
||||||
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
|
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
description = "an options controller tool"
|
description = "an options controller tool"
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ def test_ip(config_type):
|
||||||
cfg.option('a').value.set('192.168.1.0')
|
cfg.option('a').value.set('192.168.1.0')
|
||||||
cfg.option('a').value.set('88.88.88.88')
|
cfg.option('a').value.set('88.88.88.88')
|
||||||
cfg.option('a').value.set('0.0.0.0')
|
cfg.option('a').value.set('0.0.0.0')
|
||||||
cfg.option('a').value.set('2001:db8::1')
|
|
||||||
if config_type != 'tiramisu-api':
|
if config_type != 'tiramisu-api':
|
||||||
# FIXME
|
# FIXME
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
|
|
@ -149,7 +148,8 @@ def test_network_cidr(config_type):
|
||||||
cfg.option('a').value.set('192.168.1.1')
|
cfg.option('a').value.set('192.168.1.1')
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
cfg.option('a').value.set('192.168.1.1/24')
|
cfg.option('a').value.set('192.168.1.1/24')
|
||||||
cfg.option('a').value.set('2001:db00::0/24')
|
with pytest.raises(ValueError):
|
||||||
|
cfg.option('a').value.set('2001:db00::0/24')
|
||||||
# assert not list_sessions()
|
# assert not list_sessions()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -197,7 +197,8 @@ def test_broadcast(config_type):
|
||||||
cfg.option('a').value.set(1)
|
cfg.option('a').value.set(1)
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
cfg.option('a').value.set(2)
|
cfg.option('a').value.set(2)
|
||||||
cfg.option('a').value.set('2001:db8::1')
|
with pytest.raises(ValueError):
|
||||||
|
cfg.option('a').value.set('2001:db8::1')
|
||||||
cfg.option('a').value.set('0.0.0.0')
|
cfg.option('a').value.set('0.0.0.0')
|
||||||
cfg.option('a').value.set('255.255.255.0')
|
cfg.option('a').value.set('255.255.255.0')
|
||||||
# assert not list_sessions()
|
# assert not list_sessions()
|
||||||
|
|
|
||||||
|
|
@ -22,16 +22,7 @@ def test_forcepermissive_and_unrestraint(config_type):
|
||||||
cfg_ori.property.read_write()
|
cfg_ori.property.read_write()
|
||||||
cfg = get_config(cfg_ori, config_type)
|
cfg = get_config(cfg_ori, config_type)
|
||||||
with pytest.raises(ConfigError):
|
with pytest.raises(ConfigError):
|
||||||
cfg_ori.unrestraint.forcepermissive
|
cfg_ori.forcepermissive.add('disabled')
|
||||||
|
|
||||||
|
|
||||||
def test_unrestraint_and_unrestraint(config_type):
|
|
||||||
od1 = make_description()
|
|
||||||
cfg_ori = Config(od1)
|
|
||||||
cfg_ori.property.read_write()
|
|
||||||
cfg_ori.property.read_write()
|
|
||||||
cfg = get_config(cfg_ori, config_type)
|
|
||||||
cfg_ori.unrestraint.unrestraint
|
|
||||||
|
|
||||||
|
|
||||||
def test_permissive(config_type):
|
def test_permissive(config_type):
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
__version__ = "5.2.0a13"
|
__version__ = "5.2.0a12"
|
||||||
|
|
|
||||||
|
|
@ -439,22 +439,14 @@ class _TiramisuOptionOptionDescription:
|
||||||
return options
|
return options
|
||||||
|
|
||||||
@option_type(["option", "optiondescription", "symlink", "with_or_without_index"])
|
@option_type(["option", "optiondescription", "symlink", "with_or_without_index"])
|
||||||
def type(self, only_self=False, translation=False):
|
def type(self, only_self=False):
|
||||||
"""Get de option type"""
|
"""Get de option type"""
|
||||||
option = self._subconfig.option
|
option = self._subconfig.option
|
||||||
if option.impl_is_optiondescription():
|
if option.impl_is_optiondescription():
|
||||||
if translation:
|
return "optiondescription"
|
||||||
type_ = _("optiondescription")
|
if only_self and option.impl_is_symlinkoption():
|
||||||
else:
|
return "symlink"
|
||||||
type_ = "optiondescription"
|
return option.get_type()
|
||||||
elif only_self and option.impl_is_symlinkoption():
|
|
||||||
if translation:
|
|
||||||
type_ = _("symlink")
|
|
||||||
else:
|
|
||||||
type_ = "symlink"
|
|
||||||
else:
|
|
||||||
type_ = option.get_type(translation=translation)
|
|
||||||
return type_
|
|
||||||
|
|
||||||
@option_type(["option", "symlink", "with_or_without_index"])
|
@option_type(["option", "symlink", "with_or_without_index"])
|
||||||
def extra(self, extra):
|
def extra(self, extra):
|
||||||
|
|
@ -1931,8 +1923,6 @@ class TiramisuAPI(TiramisuHelp):
|
||||||
|
|
||||||
def __getattr__(self, subfunc: str) -> Any:
|
def __getattr__(self, subfunc: str) -> Any:
|
||||||
if subfunc in ["forcepermissive", "unrestraint", "nowarnings"]:
|
if subfunc in ["forcepermissive", "unrestraint", "nowarnings"]:
|
||||||
if subfunc == "unrestraint" and self._config_bag.is_unrestraint:
|
|
||||||
return self
|
|
||||||
if self._orig_config_bags:
|
if self._orig_config_bags:
|
||||||
msg = _(
|
msg = _(
|
||||||
"do not use unrestraint, nowarnings or forcepermissive together"
|
"do not use unrestraint, nowarnings or forcepermissive together"
|
||||||
|
|
|
||||||
|
|
@ -364,17 +364,10 @@ class ValueOptionError(_CommonError, ValueError):
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
if ValueOptionError.tmpl is None:
|
if ValueOptionError.tmpl is None:
|
||||||
opt = kwargs.get('opt')
|
if kwargs.get("index") is None:
|
||||||
if opt and opt._do_not_display_value_in_error:
|
self.tmpl = _('"{0}" is an invalid {1} for {2}')
|
||||||
if kwargs.get("index") is None:
|
|
||||||
self.tmpl = _('{2} has an invalid {1}')
|
|
||||||
else:
|
|
||||||
self.tmpl = _('{2} at index "{3}" has an invalid {1}')
|
|
||||||
else:
|
else:
|
||||||
if kwargs.get("index") is None:
|
self.tmpl = _('"{0}" is an invalid {1} for {2} at index "{3}"')
|
||||||
self.tmpl = _('"{0}" is an invalid {1} for {2}')
|
|
||||||
else:
|
|
||||||
self.tmpl = _('"{0}" is an invalid {1} for {2} at index "{3}"')
|
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -30,7 +30,6 @@ class BoolOption(Option):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "boolean"
|
_type = "boolean"
|
||||||
_t_type = _("boolean")
|
|
||||||
|
|
||||||
def validate(
|
def validate(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -23,22 +23,27 @@
|
||||||
from ipaddress import ip_address
|
from ipaddress import ip_address
|
||||||
|
|
||||||
from ..i18n import _
|
from ..i18n import _
|
||||||
from .stroption import StrOption
|
from .option import Option
|
||||||
|
|
||||||
|
|
||||||
class BroadcastOption(StrOption):
|
class BroadcastOption(Option):
|
||||||
"""represents the choice of a broadcast"""
|
"""represents the choice of a broadcast"""
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "broadcast address"
|
_type = "broadcast address"
|
||||||
_t_type = _("broadcast address")
|
|
||||||
|
|
||||||
def validate(
|
def validate(
|
||||||
self,
|
self,
|
||||||
value: str,
|
value: str,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""validate"""
|
"""validate"""
|
||||||
super().validate(value)
|
if not isinstance(value, str):
|
||||||
|
raise ValueError(_("invalid string"))
|
||||||
|
if value.count(".") != 3:
|
||||||
|
raise ValueError()
|
||||||
|
for val in value.split("."):
|
||||||
|
if val.startswith("0") and len(val) > 1:
|
||||||
|
raise ValueError()
|
||||||
try:
|
try:
|
||||||
ip_address(value)
|
ip_address(value)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@ class ChoiceOption(Option):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "choice"
|
_type = "choice"
|
||||||
_t_type = _("choice")
|
|
||||||
|
|
||||||
def __init__(self, name, doc, values, *args, **kwargs):
|
def __init__(self, name, doc, values, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ class DateOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "date"
|
_type = "date"
|
||||||
_t_type = _("date")
|
|
||||||
|
|
||||||
def validate(self, value: str) -> None:
|
def validate(self, value: str) -> None:
|
||||||
super().validate(value)
|
super().validate(value)
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,6 @@ class DomainnameOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "domain name"
|
_type = "domain name"
|
||||||
_t_type = _("domain name")
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -34,4 +34,3 @@ class EmailOption(RegexpOption):
|
||||||
r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$"
|
r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$"
|
||||||
)
|
)
|
||||||
_type = "email address"
|
_type = "email address"
|
||||||
_t_type = _("email address")
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ class FilenameOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "file name"
|
_type = "file name"
|
||||||
_t_type = _("file name")
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ class FloatOption(Option):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "float"
|
_type = "float"
|
||||||
_t_type = _("float")
|
|
||||||
|
|
||||||
def validate(self, value: float) -> None:
|
def validate(self, value: float) -> None:
|
||||||
if not isinstance(value, float):
|
if not isinstance(value, float):
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ class IntOption(Option):
|
||||||
"represents a choice of an integer"
|
"represents a choice of an integer"
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "integer"
|
_type = "integer"
|
||||||
_t_type = _("integer")
|
|
||||||
|
|
||||||
def __init__(self, *args, min_number=None, max_number=None, min_integer=None, max_integer=None, **kwargs):
|
def __init__(self, *args, min_number=None, max_number=None, min_integer=None, max_integer=None, **kwargs):
|
||||||
extra = {}
|
extra = {}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ class IPOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "IP"
|
_type = "IP"
|
||||||
_t_type = _("IP")
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
@ -54,9 +53,6 @@ class IPOption(StrOption):
|
||||||
ip_obj = ip_interface(value)
|
ip_obj = ip_interface(value)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
raise ValueError() from err
|
raise ValueError() from err
|
||||||
self._second_level_cidr(ip_obj)
|
|
||||||
|
|
||||||
def _second_level_cidr(self, ip_obj):
|
|
||||||
if ip_obj.ip == ip_obj.network.network_address:
|
if ip_obj.ip == ip_obj.network.network_address:
|
||||||
raise ValueError(_("it's in fact a network address"))
|
raise ValueError(_("it's in fact a network address"))
|
||||||
if ip_obj.ip == ip_obj.network.broadcast_address:
|
if ip_obj.ip == ip_obj.network.broadcast_address:
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,3 @@ class MACOption(RegexpOption):
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_regexp = re.compile(r"^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$")
|
_regexp = re.compile(r"^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$")
|
||||||
_type = "mac address"
|
_type = "mac address"
|
||||||
_t_type = _("mac address")
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ class NetmaskOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "netmask address"
|
_type = "netmask address"
|
||||||
_t_type = _("netmask address")
|
|
||||||
|
|
||||||
def validate(self, value: str) -> None:
|
def validate(self, value: str) -> None:
|
||||||
super().validate(value)
|
super().validate(value)
|
||||||
|
|
|
||||||
|
|
@ -23,22 +23,36 @@
|
||||||
from ipaddress import ip_network
|
from ipaddress import ip_network
|
||||||
|
|
||||||
from ..i18n import _
|
from ..i18n import _
|
||||||
from .ipoption import IPOption
|
|
||||||
from .stroption import StrOption
|
from .stroption import StrOption
|
||||||
|
|
||||||
|
|
||||||
class NetworkOption(IPOption):
|
class NetworkOption(StrOption):
|
||||||
"represents the choice of a network"
|
"represents the choice of a network"
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "network address"
|
_type = "network address"
|
||||||
_t_type = _("network address")
|
|
||||||
|
|
||||||
def __init__(self, *args, cidr=False, **kwargs):
|
def __init__(self, *args, cidr=False, **kwargs):
|
||||||
super().__init__(*args, cidr=cidr, **kwargs)
|
extra = {"cidr": cidr}
|
||||||
|
super().__init__(*args, extra=extra, **kwargs)
|
||||||
|
|
||||||
def _second_level_cidr(self, ip_obj):
|
def validate(self, value: str) -> None:
|
||||||
if ip_obj.ip != ip_obj.network.network_address:
|
super().validate(value)
|
||||||
raise ValueError(_("it's not a network address"))
|
if value.count(".") != 3:
|
||||||
|
raise ValueError()
|
||||||
|
cidr = self.impl_get_extra("cidr")
|
||||||
|
if cidr:
|
||||||
|
if "/" not in value:
|
||||||
|
raise ValueError(_("must use CIDR notation"))
|
||||||
|
value_ = value.split("/")[0]
|
||||||
|
else:
|
||||||
|
value_ = value
|
||||||
|
for val in value_.split("."):
|
||||||
|
if val.startswith("0") and len(val) > 1:
|
||||||
|
raise ValueError()
|
||||||
|
try:
|
||||||
|
ip_network(value)
|
||||||
|
except ValueError as err:
|
||||||
|
raise ValueError() from err
|
||||||
|
|
||||||
def second_level_validation(self, value: str, warnings_only: bool) -> None:
|
def second_level_validation(self, value: str, warnings_only: bool) -> None:
|
||||||
if ip_network(value).network_address.is_reserved:
|
if ip_network(value).network_address.is_reserved:
|
||||||
|
|
|
||||||
|
|
@ -53,8 +53,6 @@ class Option(BaseOption):
|
||||||
"_choice_values_params",
|
"_choice_values_params",
|
||||||
)
|
)
|
||||||
_type = None
|
_type = None
|
||||||
_t_type = None
|
|
||||||
_do_not_display_value_in_error = False
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
@ -215,10 +213,8 @@ class Option(BaseOption):
|
||||||
"""is a dynsymlinkoption?"""
|
"""is a dynsymlinkoption?"""
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_type(self, translation=True) -> str:
|
def get_type(self) -> str:
|
||||||
"""get the type of option"""
|
"""get the type of option"""
|
||||||
if translation:
|
|
||||||
return self._t_type
|
|
||||||
return self._type
|
return self._type
|
||||||
|
|
||||||
def impl_getdefault(self) -> Any:
|
def impl_getdefault(self) -> Any:
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,6 @@ class PasswordOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "password"
|
_type = "password"
|
||||||
_t_type = _("password")
|
|
||||||
_do_not_display_value_in_error = True
|
|
||||||
|
|
||||||
def __init__(self, *args, min_len=None, max_len=None, forbidden_char=[], **kwargs):
|
def __init__(self, *args, min_len=None, max_len=None, forbidden_char=[], **kwargs):
|
||||||
extra = {}
|
extra = {}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ class PermissionsOption(IntOption):
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
perm_re = re.compile(r"^[0-7]{3,4}$")
|
perm_re = re.compile(r"^[0-7]{3,4}$")
|
||||||
_type = "unix file permissions"
|
_type = "unix file permissions"
|
||||||
_t_type = _("unix file permissions")
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ class PortOption(StrOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "port"
|
_type = "port"
|
||||||
_t_type = _("port")
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ class StrOption(Option):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "string"
|
_type = "string"
|
||||||
_t_type = _("string")
|
|
||||||
|
|
||||||
def validate(
|
def validate(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ class URLOption(StrOption):
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
path_re = re.compile(r"^[A-Za-z0-9\-\._~:/\?#\[\]@!%\$&\'\(\)\*\+,;=]+$")
|
path_re = re.compile(r"^[A-Za-z0-9\-\._~:/\?#\[\]@!%\$&\'\(\)\*\+,;=]+$")
|
||||||
_type = "URL"
|
_type = "URL"
|
||||||
_t_type = _("URL")
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,6 @@ class UsernameOption(RegexpOption):
|
||||||
# regexp build with 'man 8 adduser' informations
|
# regexp build with 'man 8 adduser' informations
|
||||||
_regexp = re.compile(r"^[a-z_][a-z0-9_-]{0,30}[$a-z0-9_-]{0,1}$")
|
_regexp = re.compile(r"^[a-z_][a-z0-9_-]{0,30}[$a-z0-9_-]{0,1}$")
|
||||||
_type = "unix username"
|
_type = "unix username"
|
||||||
_t_type = _("unix username")
|
|
||||||
|
|
||||||
|
|
||||||
class GroupnameOption(UsernameOption):
|
class GroupnameOption(UsernameOption):
|
||||||
|
|
@ -41,4 +40,3 @@ class GroupnameOption(UsernameOption):
|
||||||
|
|
||||||
__slots__ = tuple()
|
__slots__ = tuple()
|
||||||
_type = "unix groupname"
|
_type = "unix groupname"
|
||||||
_t_type = _("unix groupname")
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue