translate option type

This commit is contained in:
egarette@silique.fr 2025-10-05 20:43:42 +02:00
parent 5e0bf84e50
commit d44a5ebe32
21 changed files with 483 additions and 300 deletions

View file

@ -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-09-19 22:03+0200\n" "POT-Creation-Date: 2025-10-04 15:43+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:1955 #: tiramisu/api.py:118 tiramisu/api.py:1963
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:940 #: tiramisu/api.py:211 tiramisu/api.py:948
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,7 +50,15 @@ 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:525 #: tiramisu/api.py:447
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"
@ -58,15 +66,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:613 #: tiramisu/api.py:621
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:691 #: tiramisu/api.py:699
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:718 #: tiramisu/api.py:726
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}\""
@ -74,11 +82,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:722 #: tiramisu/api.py:730
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:727 #: tiramisu/api.py:735
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}\""
@ -86,35 +94,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:731 #: tiramisu/api.py:739
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:775 #: tiramisu/api.py:783
msgid "cannot find \"{0}\"" msgid "cannot find \"{0}\""
msgstr "ne peut trouver \"{0}\"" msgstr "ne peut trouver \"{0}\""
#: tiramisu/api.py:957 #: tiramisu/api.py:965
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:1121 #: tiramisu/api.py:1129
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:1520 #: tiramisu/api.py:1528
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:1524 tiramisu/api.py:1551 #: tiramisu/api.py:1532 tiramisu/api.py:1559
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:1537 tiramisu/api.py:1561 tiramisu/config.py:1691 #: tiramisu/api.py:1545 tiramisu/api.py:1569 tiramisu/config.py:1712
msgid "unknown type {}" msgid "unknown type {}"
msgstr "type inconnu {}" msgstr "type inconnu {}"
#: tiramisu/api.py:1927 #: tiramisu/api.py:1935
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"
@ -238,50 +246,51 @@ 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:391 tiramisu/config.py:413 #: tiramisu/config.py:392 tiramisu/config.py:414 tiramisu/config.py:745
msgid "option name {0} is not unique in {1}" #: tiramisu/config.py:754
msgstr "le nom de l'option {0} n'est pas unique dans {1}" msgid "option name \"{0}\" is not unique in {1}"
msgstr "le nom de l'option \"{0}\" n'est pas unique dans {1}"
#: tiramisu/config.py:638 #: tiramisu/config.py:639
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:989 tiramisu/option/optiondescription.py:74 #: tiramisu/config.py:1010 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:1151 #: tiramisu/config.py:1172
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:1198 #: tiramisu/config.py:1219
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:1201 #: tiramisu/config.py:1222
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:1248 #: tiramisu/config.py:1269
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:1257 #: tiramisu/config.py:1278
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:1466 #: tiramisu/config.py:1487
msgid "unknown config \"{}\"" msgid "unknown config \"{}\""
msgstr "config \"{}\" inconnue" msgstr "config \"{}\" inconnue"
#: tiramisu/config.py:1491 #: tiramisu/config.py:1512
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:1526 #: tiramisu/config.py:1547
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"
@ -289,43 +298,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:1536 #: tiramisu/config.py:1557
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:1687 #: tiramisu/config.py:1708
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:1732 #: tiramisu/config.py:1753
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:1737 #: tiramisu/config.py:1758
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:1755 tiramisu/config.py:1761 #: tiramisu/config.py:1776 tiramisu/config.py:1782
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:1787 #: tiramisu/config.py:1808
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:1799 #: tiramisu/config.py:1820
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:1804 #: tiramisu/config.py:1825
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:1821 #: tiramisu/config.py:1842
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"
@ -470,11 +479,19 @@ 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:368 tiramisu/error.py:379 #: tiramisu/error.py:370
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:370 #: tiramisu/error.py:377
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}\""
@ -563,63 +580,79 @@ 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:253 #: tiramisu/option/baseoption.py:254
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:271 #: tiramisu/option/baseoption.py:272
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:312 #: tiramisu/option/baseoption.py:313
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:324 #: tiramisu/option/baseoption.py:325
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/broadcastoption.py:41 #: tiramisu/option/booloption.py:33
msgid "invalid string" msgid "boolean"
msgstr "invalide caractère" msgstr "booléen"
#: tiramisu/option/choiceoption.py:52 #: tiramisu/option/broadcastoption.py:34
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:75 #: tiramisu/option/choiceoption.py:76
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:106 #: tiramisu/option/choiceoption.py:107
msgid "only \"{0}\" is allowed" msgid "only \"{0}\" is allowed"
msgstr "seul \"{0}\" est autorisé" msgstr "seul \"{0}\" est autorisé"
#: tiramisu/option/choiceoption.py:108 #: tiramisu/option/choiceoption.py:109
msgid "only {0} are allowed" msgid "only {0} are allowed"
msgstr "seul {0} sont autorisées" msgstr "seul {0} sont autorisées"
#: tiramisu/option/domainnameoption.py:67 #: tiramisu/option/dateoption.py:34
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:70 #: tiramisu/option/domainnameoption.py:71
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:72 #: tiramisu/option/domainnameoption.py:73
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:74 #: tiramisu/option/domainnameoption.py:75
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:76 #: tiramisu/option/domainnameoption.py:77
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:87 #: tiramisu/option/domainnameoption.py:88
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"
@ -627,7 +660,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:90 #: tiramisu/option/domainnameoption.py:91
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"
@ -635,7 +668,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:95 #: tiramisu/option/domainnameoption.py:96
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"
@ -643,7 +676,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:98 #: tiramisu/option/domainnameoption.py:99
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"
@ -651,54 +684,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:148 #: tiramisu/option/domainnameoption.py:149
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "longueur invalide (min 1)" msgstr "longueur invalide (min 1)"
#: tiramisu/option/domainnameoption.py:151 #: tiramisu/option/domainnameoption.py:152
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "longueur invalide (max {0})" msgstr "longueur invalide (max {0})"
#: tiramisu/option/domainnameoption.py:157 #: tiramisu/option/domainnameoption.py:158
msgid "must have dot" msgid "must have dot"
msgstr "doit avoir un point" msgstr "doit avoir un point"
#: tiramisu/option/domainnameoption.py:159 #: tiramisu/option/domainnameoption.py:160
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "longueur invalide (max 255)" msgstr "longueur invalide (max 255)"
#: tiramisu/option/domainnameoption.py:179 #: tiramisu/option/domainnameoption.py:180
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:182 #: tiramisu/option/domainnameoption.py:183
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:189 #: tiramisu/option/domainnameoption.py:190
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:212 #: tiramisu/option/domainnameoption.py:213
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:130 #: tiramisu/option/dynoptiondescription.py:138
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:142 #: tiramisu/option/dynoptiondescription.py:150
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:154 #: tiramisu/option/dynoptiondescription.py:162
msgid "" msgid ""
"DynOptionDescription \"{0}\" identifiers return a list with same values " "DynOptionDescription \"{0}\" identifiers return a list with same values "
"\"{1}\"" "\"{1}\""
@ -706,72 +739,92 @@ 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/filenameoption.py:47 #: tiramisu/option/emailoption.py:37
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:67 #: tiramisu/option/filenameoption.py:68
msgid "must starts with \"/\"" msgid "must starts with \"/\""
msgstr "doit débuter par \"/\"" msgstr "doit débuter par \"/\""
#: tiramisu/option/filenameoption.py:78 #: tiramisu/option/filenameoption.py:79
msgid "directory" msgid "directory"
msgstr "répertoire" msgstr "répertoire"
#: tiramisu/option/filenameoption.py:78 #: tiramisu/option/filenameoption.py:79
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
#: tiramisu/option/filenameoption.py:82 #: tiramisu/option/filenameoption.py:83
msgid "cannot find this {0}" msgid "cannot find this {0}"
msgstr "ce {0} est introuvable" msgstr "ce {0} est introuvable"
#: tiramisu/option/intoption.py:46 #: tiramisu/option/floatoption.py:33
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:52 #: tiramisu/option/intoption.py:57
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:54 #: tiramisu/option/intoption.py:59
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:59 #: tiramisu/option/intoption.py:64
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:61 #: tiramisu/option/intoption.py:66
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:57 #: tiramisu/option/ipoption.py:34
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:59 #: tiramisu/option/ipoption.py:63
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:71 #: tiramisu/option/ipoption.py:75
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:80 #: tiramisu/option/ipoption.py:84
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:82 #: tiramisu/option/ipoption.py:86
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:86 #: tiramisu/option/ipoption.py:90
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:88 #: tiramisu/option/ipoption.py:92
msgid "must be private IP" msgid "must be private IP"
msgstr "doit être une IP privée" msgstr "doit être une IP privée"
@ -802,44 +855,56 @@ 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/networkoption.py:45 #: tiramisu/option/macoption.py:35
msgid "must use CIDR notation" msgid "mac address"
msgstr "doit utiliser la notation CIDR" msgstr "adresse MAC"
#: tiramisu/option/networkoption.py:60 #: tiramisu/option/netmaskoption.py:33
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:62 #: tiramisu/option/networkoption.py:48
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:73 #: tiramisu/option/option.py:75
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:93 #: tiramisu/option/option.py:95
msgid "invalid multi type \"{}\" for \"{}\"" msgid "invalid multi type \"{}\" for \"{}\""
msgstr "type multiple \"{}\" invalide pour \"{}\"" msgstr "type multiple \"{}\" invalide pour \"{}\""
#: tiramisu/option/option.py:112 #: tiramisu/option/option.py:114
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:117 #: tiramisu/option/option.py:119
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:141 #: tiramisu/option/option.py:143
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:149 #: tiramisu/option/option.py:151
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:162 #: tiramisu/option/option.py:164
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"
@ -847,19 +912,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:294 #: tiramisu/option/option.py:298
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:357 #: tiramisu/option/option.py:361
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:412 tiramisu/option/option.py:450 #: tiramisu/option/option.py:416 tiramisu/option/option.py:454
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:440 #: tiramisu/option/option.py:444
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"
@ -885,76 +950,92 @@ 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:411 #: tiramisu/option/optiondescription.py:408
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:416 #: tiramisu/option/optiondescription.py:413
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:49 #: tiramisu/option/passwordoption.py:34
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:52 #: tiramisu/option/passwordoption.py:54
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:57 #: tiramisu/option/passwordoption.py:59
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:52 #: tiramisu/option/permissionsoption.py:40
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:63 #: tiramisu/option/permissionsoption.py:64
msgid "user" msgid "user"
msgstr "nom d'utilisateur" msgstr "nom d'utilisateur"
#: tiramisu/option/permissionsoption.py:64 #: tiramisu/option/permissionsoption.py:65
#: tiramisu/option/permissionsoption.py:66 #: tiramisu/option/permissionsoption.py:67
msgid "group" msgid "group"
msgstr "groupe" msgstr "groupe"
#: tiramisu/option/permissionsoption.py:67 #: tiramisu/option/permissionsoption.py:68
msgid "other" msgid "other"
msgstr "autre" msgstr "autre"
#: tiramisu/option/permissionsoption.py:68 #: tiramisu/option/permissionsoption.py:69
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:71 #: tiramisu/option/permissionsoption.py:72
msgid "too weak" msgid "too weak"
msgstr "trop simple" msgstr "trop simple"
#: tiramisu/option/portoption.py:77 #: tiramisu/option/portoption.py:40
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:82 #: tiramisu/option/portoption.py:83
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:95 #: tiramisu/option/portoption.py:96
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:98 #: tiramisu/option/portoption.py:99
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:124 #: tiramisu/option/portoption.py:125
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:126 #: tiramisu/option/portoption.py:127
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:41 #: tiramisu/option/stroption.py:34
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"
@ -965,22 +1046,34 @@ 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:92 #: tiramisu/option/urloption.py:40
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:117 #: tiramisu/option/urloption.py:118
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:124 #: tiramisu/option/urloption.py:125
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:128 #: tiramisu/option/urloption.py:129
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})"
@ -1053,6 +1146,12 @@ 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"
@ -1235,26 +1334,14 @@ 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"
@ -1266,18 +1353,6 @@ 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}\")"
@ -1317,9 +1392,6 @@ 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"
@ -1438,21 +1510,9 @@ 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"

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-09-19 22:05+0200\n" "POT-Creation-Date: 2025-10-04 15:46+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:1955 #: tiramisu/api.py:118 tiramisu/api.py:1963
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:940 #: tiramisu/api.py:211 tiramisu/api.py:948
msgid "please specify index with a follower option ({0}.{1})" msgid "please specify index with a follower option ({0}.{1})"
msgstr "" msgstr ""
@ -51,59 +51,67 @@ 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:525 #: tiramisu/api.py:447
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:613 #: tiramisu/api.py:621
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:691 #: tiramisu/api.py:699
msgid "cannot add this property: \"{0}\"" msgid "cannot add this property: \"{0}\""
msgstr "" msgstr ""
#: tiramisu/api.py:718 #: tiramisu/api.py:726
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:722 #: tiramisu/api.py:730
msgid "cannot find \"{0}\" in option \"{1}\"" msgid "cannot find \"{0}\" in option \"{1}\""
msgstr "" msgstr ""
#: tiramisu/api.py:727 #: tiramisu/api.py:735
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:731 #: tiramisu/api.py:739
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:775 #: tiramisu/api.py:783
msgid "cannot find \"{0}\"" msgid "cannot find \"{0}\""
msgstr "" msgstr ""
#: tiramisu/api.py:957 #: tiramisu/api.py:965
msgid "only multi value has defaultmulti" msgid "only multi value has defaultmulti"
msgstr "" msgstr ""
#: tiramisu/api.py:1121 #: tiramisu/api.py:1129
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:1520 #: tiramisu/api.py:1528
msgid "properties must be a frozenset" msgid "properties must be a frozenset"
msgstr "" msgstr ""
#: tiramisu/api.py:1524 tiramisu/api.py:1551 #: tiramisu/api.py:1532 tiramisu/api.py:1559
msgid "unknown when {} (must be in append or remove)" msgid "unknown when {} (must be in append or remove)"
msgstr "" msgstr ""
#: tiramisu/api.py:1537 tiramisu/api.py:1561 tiramisu/config.py:1691 #: tiramisu/api.py:1545 tiramisu/api.py:1569 tiramisu/config.py:1712
msgid "unknown type {}" msgid "unknown type {}"
msgstr "" msgstr ""
#: tiramisu/api.py:1927 #: tiramisu/api.py:1935
msgid "do not use unrestraint, nowarnings or forcepermissive together" msgid "do not use unrestraint, nowarnings or forcepermissive together"
msgstr "" msgstr ""
@ -207,83 +215,84 @@ 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:391 tiramisu/config.py:413 #: tiramisu/config.py:392 tiramisu/config.py:414 tiramisu/config.py:745
msgid "option name {0} is not unique in {1}" #: tiramisu/config.py:754
msgid "option name \"{0}\" is not unique in {1}"
msgstr "" msgstr ""
#: tiramisu/config.py:638 #: tiramisu/config.py:639
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:989 tiramisu/option/optiondescription.py:74 #: tiramisu/config.py:1010 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:1151 #: tiramisu/config.py:1172
msgid "parent of {0} not already exists" msgid "parent of {0} not already exists"
msgstr "" msgstr ""
#: tiramisu/config.py:1198 #: tiramisu/config.py:1219
msgid "cannot set leadership object has root optiondescription" msgid "cannot set leadership object has root optiondescription"
msgstr "" msgstr ""
#: tiramisu/config.py:1201 #: tiramisu/config.py:1222
msgid "cannot set dynoptiondescription object has root optiondescription" msgid "cannot set dynoptiondescription object has root optiondescription"
msgstr "" msgstr ""
#: tiramisu/config.py:1248 #: tiramisu/config.py:1269
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:1257 #: tiramisu/config.py:1278
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:1466 #: tiramisu/config.py:1487
msgid "unknown config \"{}\"" msgid "unknown config \"{}\""
msgstr "" msgstr ""
#: tiramisu/config.py:1491 #: tiramisu/config.py:1512
msgid "child must be a Config, MixConfig or MetaConfig" msgid "child must be a Config, MixConfig or MetaConfig"
msgstr "" msgstr ""
#: tiramisu/config.py:1526 #: tiramisu/config.py:1547
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:1536 #: tiramisu/config.py:1557
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:1687 #: tiramisu/config.py:1708
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:1732 #: tiramisu/config.py:1753
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:1737 #: tiramisu/config.py:1758
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:1755 tiramisu/config.py:1761 #: tiramisu/config.py:1776 tiramisu/config.py:1782
msgid "cannot find the config {0}" msgid "cannot find the config {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:1787 #: tiramisu/config.py:1808
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:1799 #: tiramisu/config.py:1820
msgid "child must be a Config or MetaConfig" msgid "child must be a Config or MetaConfig"
msgstr "" msgstr ""
#: tiramisu/config.py:1804 #: tiramisu/config.py:1825
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:1821 #: tiramisu/config.py:1842
msgid "metaconfig must have the same optiondescription" msgid "metaconfig must have the same optiondescription"
msgstr "" msgstr ""
@ -407,11 +416,19 @@ 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:368 tiramisu/error.py:379 #: tiramisu/error.py:370
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:370 #: tiramisu/error.py:377
msgid "\"{0}\" is an invalid {1} for {2} at index \"{3}\"" msgid "\"{0}\" is an invalid {1} for {2} at index \"{3}\""
msgstr "" msgstr ""
@ -483,192 +500,228 @@ 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:253 #: tiramisu/option/baseoption.py:254
msgid "information's item for {0} not found: \"{1}\"" msgid "information's item for {0} not found: \"{1}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:271 #: tiramisu/option/baseoption.py:272
msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:312 #: tiramisu/option/baseoption.py:313
msgid "\"{}\" ({}) object attribute \"{}\" is read-only" msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:324 #: tiramisu/option/baseoption.py:325
msgid "{0} not part of any Config" msgid "{0} not part of any Config"
msgstr "" msgstr ""
#: tiramisu/option/broadcastoption.py:41 #: tiramisu/option/booloption.py:33
msgid "invalid string" msgid "boolean"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:52 #: tiramisu/option/broadcastoption.py:34
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:75 #: tiramisu/option/choiceoption.py:76
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:106 #: tiramisu/option/choiceoption.py:107
msgid "only \"{0}\" is allowed" msgid "only \"{0}\" is allowed"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:108 #: tiramisu/option/choiceoption.py:109
msgid "only {0} are allowed" msgid "only {0} are allowed"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:67 #: tiramisu/option/dateoption.py:34
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:70 #: tiramisu/option/domainnameoption.py:71
msgid "allow_ip must be a boolean" msgid "allow_ip must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:72 #: tiramisu/option/domainnameoption.py:73
msgid "allow_cidr_network must be a boolean" msgid "allow_cidr_network must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:74 #: tiramisu/option/domainnameoption.py:75
msgid "allow_without_dot must be a boolean" msgid "allow_without_dot must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:76 #: tiramisu/option/domainnameoption.py:77
msgid "allow_startswith_dot must be a boolean" msgid "allow_startswith_dot must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:87 #: tiramisu/option/domainnameoption.py:88
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:90 #: tiramisu/option/domainnameoption.py:91
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:95 #: tiramisu/option/domainnameoption.py:96
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:98 #: tiramisu/option/domainnameoption.py:99
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:148 #: tiramisu/option/domainnameoption.py:149
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:151 #: tiramisu/option/domainnameoption.py:152
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:157 #: tiramisu/option/domainnameoption.py:158
msgid "must have dot" msgid "must have dot"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:159 #: tiramisu/option/domainnameoption.py:160
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:179 #: tiramisu/option/domainnameoption.py:180
msgid "DNS resolution failed" msgid "DNS resolution failed"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:182 #: tiramisu/option/domainnameoption.py:183
msgid "error resolving DNS: {1}" msgid "error resolving DNS: {1}"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:189 #: tiramisu/option/domainnameoption.py:190
msgid "must not be an IP" msgid "must not be an IP"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:212 #: tiramisu/option/domainnameoption.py:213
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "" msgstr ""
#: tiramisu/option/dynoptiondescription.py:130 #: tiramisu/option/dynoptiondescription.py:138
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:142 #: tiramisu/option/dynoptiondescription.py:150
msgid "invalid identifier \"{}\" for option {}" msgid "invalid identifier \"{}\" for option {}"
msgstr "" msgstr ""
#: tiramisu/option/dynoptiondescription.py:154 #: tiramisu/option/dynoptiondescription.py:162
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/filenameoption.py:47 #: tiramisu/option/emailoption.py:37
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:67 #: tiramisu/option/filenameoption.py:68
msgid "must starts with \"/\"" msgid "must starts with \"/\""
msgstr "" msgstr ""
#: tiramisu/option/filenameoption.py:78 #: tiramisu/option/filenameoption.py:79
msgid "directory" msgid "directory"
msgstr "" msgstr ""
#: tiramisu/option/filenameoption.py:78 #: tiramisu/option/filenameoption.py:79
msgid "file" msgid "file"
msgstr "" msgstr ""
#: tiramisu/option/filenameoption.py:82 #: tiramisu/option/filenameoption.py:83
msgid "cannot find this {0}" msgid "cannot find this {0}"
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:46 #: tiramisu/option/floatoption.py:33
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:52 #: tiramisu/option/intoption.py:57
msgid "value should be equal or greater than \"{0}\"" msgid "value should be equal or greater than \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:54 #: tiramisu/option/intoption.py:59
msgid "value must be equal or greater than \"{0}\"" msgid "value must be equal or greater than \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:59 #: tiramisu/option/intoption.py:64
msgid "value should be less than \"{0}\"" msgid "value should be less than \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:61 #: tiramisu/option/intoption.py:66
msgid "value must be less than \"{0}\"" msgid "value must be less than \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:57 #: tiramisu/option/ipoption.py:34
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:59 #: tiramisu/option/ipoption.py:63
msgid "it's in fact a broacast address" msgid "it's in fact a broacast address"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:71 #: tiramisu/option/ipoption.py:75
msgid "CIDR address must have a \"/\"" msgid "CIDR address must have a \"/\""
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:80 #: tiramisu/option/ipoption.py:84
msgid "shouldn't be reserved IP" msgid "shouldn't be reserved IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:82 #: tiramisu/option/ipoption.py:86
msgid "mustn't be reserved IP" msgid "mustn't be reserved IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:86 #: tiramisu/option/ipoption.py:90
msgid "should be private IP" msgid "should be private IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:88 #: tiramisu/option/ipoption.py:92
msgid "must be private IP" msgid "must be private IP"
msgstr "" msgstr ""
@ -692,59 +745,71 @@ 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/networkoption.py:45 #: tiramisu/option/macoption.py:35
msgid "must use CIDR notation" msgid "mac address"
msgstr "" msgstr ""
#: tiramisu/option/networkoption.py:60 #: tiramisu/option/netmaskoption.py:33
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:62 #: tiramisu/option/networkoption.py:48
msgid "mustn't be reserved network" msgid "mustn't be reserved network"
msgstr "" msgstr ""
#: tiramisu/option/option.py:73 #: tiramisu/option/option.py:75
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:93 #: tiramisu/option/option.py:95
msgid "invalid multi type \"{}\" for \"{}\"" msgid "invalid multi type \"{}\" for \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/option.py:112 #: tiramisu/option/option.py:114
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:117 #: tiramisu/option/option.py:119
msgid "validators must be a Calculation for \"{0}\"" msgid "validators must be a Calculation for \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/option.py:141 #: tiramisu/option/option.py:143
msgid "invalid default_multi value \"{0}\" for option {1}" msgid "invalid default_multi value \"{0}\" for option {1}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:149 #: tiramisu/option/option.py:151
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:162 #: tiramisu/option/option.py:164
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:294 #: tiramisu/option/option.py:298
msgid "the value \"{}\" is not unique" msgid "the value \"{}\" is not unique"
msgstr "" msgstr ""
#: tiramisu/option/option.py:357 #: tiramisu/option/option.py:361
msgid "which must not be a list" msgid "which must not be a list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:412 tiramisu/option/option.py:450 #: tiramisu/option/option.py:416 tiramisu/option/option.py:454
msgid "which must be a list" msgid "which must be a list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:440 #: tiramisu/option/option.py:444
msgid "which \"{}\" must be a list of list" msgid "which \"{}\" must be a list of list"
msgstr "" msgstr ""
@ -770,76 +835,92 @@ 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:411 #: tiramisu/option/optiondescription.py:408
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:416 #: tiramisu/option/optiondescription.py:413
msgid "group_type: {0} not allowed" msgid "group_type: {0} not allowed"
msgstr "" msgstr ""
#: tiramisu/option/passwordoption.py:49 #: tiramisu/option/passwordoption.py:34
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:52 #: tiramisu/option/passwordoption.py:54
msgid "maximum {0} characters required" msgid "maximum {0} characters required"
msgstr "" msgstr ""
#: tiramisu/option/passwordoption.py:57 #: tiramisu/option/passwordoption.py:59
msgid "must not have the characters {0}" msgid "must not have the characters {0}"
msgstr "" msgstr ""
#: tiramisu/option/permissionsoption.py:52 #: tiramisu/option/permissionsoption.py:40
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:63 #: tiramisu/option/permissionsoption.py:64
msgid "user" msgid "user"
msgstr "" msgstr ""
#: tiramisu/option/permissionsoption.py:64 #: tiramisu/option/permissionsoption.py:65
#: tiramisu/option/permissionsoption.py:66 #: tiramisu/option/permissionsoption.py:67
msgid "group" msgid "group"
msgstr "" msgstr ""
#: tiramisu/option/permissionsoption.py:67 #: tiramisu/option/permissionsoption.py:68
msgid "other" msgid "other"
msgstr "" msgstr ""
#: tiramisu/option/permissionsoption.py:68 #: tiramisu/option/permissionsoption.py:69
msgid "{0} has more right than {1}" msgid "{0} has more right than {1}"
msgstr "" msgstr ""
#: tiramisu/option/permissionsoption.py:71 #: tiramisu/option/permissionsoption.py:72
msgid "too weak" msgid "too weak"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:77 #: tiramisu/option/portoption.py:40
msgid "port"
msgstr ""
#: tiramisu/option/portoption.py:78
msgid "inconsistency in allowed range" msgid "inconsistency in allowed range"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:82 #: tiramisu/option/portoption.py:83
msgid "max value is empty" msgid "max value is empty"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:95 #: tiramisu/option/portoption.py:96
msgid "range must have two values only" msgid "range must have two values only"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:98 #: tiramisu/option/portoption.py:99
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:124 #: tiramisu/option/portoption.py:125
msgid "should be between {0} and {1}" msgid "should be between {0} and {1}"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:126 #: tiramisu/option/portoption.py:127
msgid "must be between {0} and {1}" msgid "must be between {0} and {1}"
msgstr "" msgstr ""
#: tiramisu/option/stroption.py:41 #: tiramisu/option/stroption.py:34
msgid "string"
msgstr ""
#: tiramisu/option/stroption.py:42
msgid "which is not a string" msgid "which is not a string"
msgstr "" msgstr ""
@ -847,22 +928,34 @@ 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:92 #: tiramisu/option/urloption.py:40
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:117 #: tiramisu/option/urloption.py:118
msgid "the port \"{0}\" is invalid: {1}" msgid "the port \"{0}\" is invalid: {1}"
msgstr "" msgstr ""
#: tiramisu/option/urloption.py:124 #: tiramisu/option/urloption.py:125
msgid "the domain \"{0}\" is invalid: {1}" msgid "the domain \"{0}\" is invalid: {1}"
msgstr "" msgstr ""
#: tiramisu/option/urloption.py:128 #: tiramisu/option/urloption.py:129
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 ""

View file

@ -439,14 +439,22 @@ 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): def type(self, only_self=False, translation=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():
return "optiondescription" if translation:
if only_self and option.impl_is_symlinkoption(): type_ = _("optiondescription")
return "symlink" else:
return option.get_type() type_ = "optiondescription"
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):

View file

@ -30,6 +30,7 @@ class BoolOption(Option):
__slots__ = tuple() __slots__ = tuple()
_type = "boolean" _type = "boolean"
_t_type = _("boolean")
def validate( def validate(
self, self,

View file

@ -38,6 +38,7 @@ 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):
""" """

View file

@ -31,6 +31,7 @@ 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)

View file

@ -43,6 +43,7 @@ class DomainnameOption(StrOption):
__slots__ = tuple() __slots__ = tuple()
_type = "domain name" _type = "domain name"
_t_type = _("domain name")
def __init__( def __init__(
self, self,

View file

@ -34,3 +34,4 @@ 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")

View file

@ -32,6 +32,7 @@ class FilenameOption(StrOption):
__slots__ = tuple() __slots__ = tuple()
_type = "file name" _type = "file name"
_t_type = _("file name")
def __init__( def __init__(
self, self,

View file

@ -30,6 +30,7 @@ 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):

View file

@ -29,6 +29,7 @@ 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 = {}

View file

@ -32,3 +32,4 @@ 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")

View file

@ -30,6 +30,7 @@ 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)

View file

@ -53,6 +53,8 @@ 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,
@ -213,8 +215,10 @@ class Option(BaseOption):
"""is a dynsymlinkoption?""" """is a dynsymlinkoption?"""
return False return False
def get_type(self) -> str: def get_type(self, translation=True) -> 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:

View file

@ -31,6 +31,8 @@ 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 = {}

View file

@ -37,6 +37,7 @@ 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,

View file

@ -37,6 +37,7 @@ class PortOption(StrOption):
__slots__ = tuple() __slots__ = tuple()
_type = "port" _type = "port"
_t_type = _("port")
def __init__( def __init__(
self, self,

View file

@ -31,6 +31,7 @@ class StrOption(Option):
__slots__ = tuple() __slots__ = tuple()
_type = "string" _type = "string"
_t_type = _("string")
def validate( def validate(
self, self,

View file

@ -37,6 +37,7 @@ 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,

View file

@ -33,6 +33,7 @@ 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):
@ -40,3 +41,4 @@ class GroupnameOption(UsernameOption):
__slots__ = tuple() __slots__ = tuple()
_type = "unix groupname" _type = "unix groupname"
_t_type = _("unix groupname")