update french translation
authorEmmanuel Garette <egarette@cadoles.com>
Mon, 14 Nov 2016 21:11:59 +0000 (22:11 +0100)
committerEmmanuel Garette <egarette@cadoles.com>
Mon, 14 Nov 2016 21:11:59 +0000 (22:11 +0100)
translations/fr/tiramisu.po
translations/tiramisu.pot

index 8f34f11..8d890a1 100644 (file)
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Tiramisu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-31 15:39+0200\n"
+"POT-Creation-Date: 2016-11-14 21:31+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
 "Language-Team: Tiramisu's team <egarette@cadoles.com>\n"
@@ -14,13 +14,17 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
-#: tiramisu/autolib.py:171
-msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
-msgstr "impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : {2}"
+#: tiramisu/autolib.py:170
+msgid ""
+"unable to carry out a calculation, option {0} has properties: {1} for: {2}"
+msgstr ""
+"impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : "
+"{2}"
 
-#: tiramisu/autolib.py:239
+#: tiramisu/autolib.py:235
 msgid "callback cannot return a list for a slave option ({0})"
-msgstr "un calcul ne peut pas retourner une liste pour une option esclave ({0})"
+msgstr ""
+"un calcul ne peut pas retourner une liste pour une option esclave ({0})"
 
 #: tiramisu/config.py:64
 msgid "descr must be an optiondescription, not {0}"
@@ -30,508 +34,582 @@ msgstr "descr doit être une optiondescription pas un {0}"
 msgid "unknown group_type: {0}"
 msgstr "group_type inconnu: {0}"
 
-#: tiramisu/config.py:187 tiramisu/setting.py:334 tiramisu/value.py:54 tiramisu/value.py:742
+#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54
+#: tiramisu/value.py:738
 msgid "the context does not exist anymore"
 msgstr "le context n'existe plus"
 
 #: tiramisu/config.py:192
 msgid "no option description found for this config (may be GroupConfig)"
-msgstr "pas d'option description trouvé pour cette config (peut être un GroupConfig)"
+msgstr ""
+"pas d'option description trouvé pour cette config (peut être un GroupConfig)"
 
 #: tiramisu/config.py:228
 msgid "can't assign to an OptionDescription"
 msgstr "ne peut pas attribuer une valeur à une OptionDescription"
 
-#: tiramisu/config.py:379
+#: tiramisu/config.py:389
 msgid "unknown type_ type {0}for _find"
 msgstr "type_ type {0} pour _find inconnu"
 
-#: tiramisu/config.py:422
+#: tiramisu/config.py:432
 msgid "no option found in config with these criteria"
 msgstr "aucune option trouvée dans la config avec ces critères"
 
-#: tiramisu/config.py:470
+#: tiramisu/config.py:480
 msgid "make_dict can't filtering with value without option"
 msgstr "make_dict ne peut filtrer sur une valeur mais sans option"
 
-#: tiramisu/config.py:493
+#: tiramisu/config.py:503
 msgid "unexpected path {0}, should start with {1}"
 msgstr "chemin imprévu {0}, devrait commencer par {1}"
 
-#: tiramisu/config.py:567
+#: tiramisu/config.py:578
 msgid "opt in getowner must be an option not {0}"
 msgstr "opt dans getowner doit être une option pas {0}"
 
-#: tiramisu/config.py:615
+#: tiramisu/config.py:626
 msgid "cannot serialize Config with MetaConfig"
 msgstr "impossible de sérialiser une Config avec une MetaConfig"
 
-#: tiramisu/config.py:629
+#: tiramisu/config.py:640
 msgid "this storage is not serialisable, could be a none persistent storage"
 msgstr "ce storage n'est sérialisable, devrait être une storage non persistant"
 
-#: tiramisu/config.py:693
+#: tiramisu/config.py:705
 msgid "invalid name: {0} for config"
 msgstr "nom invalide : {0} pour la config"
 
-#: tiramisu/config.py:724
+#: tiramisu/config.py:737
 msgid "groupconfig's children must be a list"
 msgstr "enfants d'une groupconfig doit être une liste"
 
-#: tiramisu/config.py:728
+#: tiramisu/config.py:741
 msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
-msgstr "les enfants d'un groupconfig doivent être des Config, MetaConfig ou GroupConfig"
+msgstr ""
+"les enfants d'un groupconfig doivent être des Config, MetaConfig ou "
+"GroupConfig"
 
-#: tiramisu/config.py:731
+#: tiramisu/config.py:744
 msgid "name must be set to config before creating groupconfig"
 msgstr "un nom doit être donné à la config avant de créer un groupconfig"
 
-#: tiramisu/config.py:737
+#: tiramisu/config.py:750
 msgid "config name must be uniq in groupconfig for {0}"
 msgstr "le nom de la config doit être unique dans un groupconfig pour {0}"
 
-#: tiramisu/config.py:846
+#: tiramisu/config.py:859
 msgid "metaconfig's children should be config, not {0}"
 msgstr "enfants d'une metaconfig doit être une config, pas {0}"
 
-#: tiramisu/config.py:850
+#: tiramisu/config.py:863
 msgid "child has already a metaconfig's"
 msgstr "enfant a déjà une metaconfig"
 
-#: tiramisu/config.py:854
+#: tiramisu/config.py:867
 msgid "all config in metaconfig must have the same optiondescription"
-msgstr "toutes les configs d'une metaconfig doivent avoir la même optiondescription"
+msgstr ""
+"toutes les configs d'une metaconfig doivent avoir la même optiondescription"
 
-#: tiramisu/config.py:869
-msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
+#: tiramisu/config.py:882
+msgid ""
+"force_default, force_default_if_same or force_dont_change_value cannot be "
+"set with only_config"
 msgstr ""
-"force_default, force_default_if_same ou force_dont_change_value ne peuvent pas être spécifié avec "
-"only_config"
+"force_default, force_default_if_same ou force_dont_change_value ne peuvent "
+"pas être spécifié avec only_config"
 
-#: tiramisu/config.py:875
+#: tiramisu/config.py:888
 msgid "force_default and force_dont_change_value cannot be set together"
-msgstr "force_default et force_dont_change_value ne peuvent pas être mis ensemble"
+msgstr ""
+"force_default et force_dont_change_value ne peuvent pas être mis ensemble"
 
-#: tiramisu/option/baseoption.py:56
+#: tiramisu/error.py:28
+msgid " {} "
+msgstr " {} "
+
+#: tiramisu/error.py:49
+msgid "property"
+msgstr "propriété"
+
+#: tiramisu/error.py:51
+msgid "properties"
+msgstr "propriétés"
+
+#: tiramisu/error.py:53 tiramisu/setting.py:517
+msgid "cannot access to {0} \"{1}\" because has {2} {3}"
+msgstr "ne peut accéder à l'{0} \"{1}\" a cause de {2} {3}"
+
+#: tiramisu/option/baseoption.py:58
 msgid "{0} must be a function"
 msgstr "{0} doit être une fonction"
 
-#: tiramisu/option/baseoption.py:59
+#: tiramisu/option/baseoption.py:61
 msgid "{0}_params must be a dict"
 msgstr "{0}_params doit être un dict"
 
-#: tiramisu/option/baseoption.py:62
+#: tiramisu/option/baseoption.py:64
 msgid "{0}_params with key {1} mustn't have length different to 1"
-msgstr "{0}_params avec la clef {1} ne doit pas avoir une longueur différent de 1"
+msgstr ""
+"{0}_params avec la clef {1} ne doit pas avoir une longueur différent de 1"
 
-#: tiramisu/option/baseoption.py:66
+#: tiramisu/option/baseoption.py:68
 msgid "{0}_params must be tuple for key \"{1}\""
 msgstr "{0}_params doit être un tuple pour la clef \"{1}\""
 
-#: tiramisu/option/baseoption.py:72
+#: tiramisu/option/baseoption.py:74
 msgid "{0}_params with length of tuple as 1 must only have None as first value"
-msgstr "{0}_params avec un tuple de longueur 1 doit seulement avoir None comme première valeur"
+msgstr ""
+"{0}_params avec un tuple de longueur 1 doit seulement avoir None comme "
+"première valeur"
 
-#: tiramisu/option/baseoption.py:76
+#: tiramisu/option/baseoption.py:78
 msgid "{0}_params must only have 1 or 2 as length"
 msgstr "{0}_params doit seulement avoir une longueur de 1 ou 2"
 
-#: tiramisu/option/baseoption.py:82
+#: tiramisu/option/baseoption.py:84
 msgid "{0}_params must have an option not a {0} for first argument"
 msgstr "{0}_params doit avoir une option pas un {0} pour premier argument"
 
-#: tiramisu/option/baseoption.py:86
+#: tiramisu/option/baseoption.py:88
 msgid "{0}_params must have a boolean not a {0} for second argument"
 msgstr "{0}_params doit avoir un booléen pas un {0} pour second argument"
 
-#: tiramisu/option/baseoption.py:103
+#: tiramisu/option/baseoption.py:105
 msgid "invalid name: {0} for option"
 msgstr "nom invalide : {0} pour l'option"
 
-#: tiramisu/option/baseoption.py:105
+#: tiramisu/option/baseoption.py:107
 msgid "default_multi is set whereas multi is False in option: {0}"
-msgstr "default_multi est spécifié alors que multi est à False pour l'option : {0}"
+msgstr ""
+"default_multi est spécifié alors que multi est à False pour l'option : {0}"
 
-#: tiramisu/option/baseoption.py:117
+#: tiramisu/option/baseoption.py:119
 msgid "invalid multi value"
 msgstr "valeur multiple invalide"
 
-#: tiramisu/option/baseoption.py:127
+#: tiramisu/option/baseoption.py:129
 msgid "invalid properties type {0} for {1}, must be a tuple"
 msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
 
-#: tiramisu/option/baseoption.py:156
-msgid "params defined for a callback function but no callback defined yet for option {0}"
+#: tiramisu/option/baseoption.py:168
+msgid ""
+"params defined for a callback function but no callback defined yet for "
+"option {0}"
 msgstr ""
-"params définis pour une fonction callback mais par de callback encore définis pour l'option {0}"
+"params définis pour une fonction callback mais par de callback encore "
+"définis pour l'option {0}"
 
-#: tiramisu/option/baseoption.py:161
+#: tiramisu/option/baseoption.py:173
 msgid "a callback is already set for option {0}, cannot set another one's"
-msgstr "un callback est en lecture seul pour l'option {0}, ne peut en placer une autre"
+msgstr ""
+"un callback est en lecture seul pour l'option {0}, ne peut en placer une "
+"autre"
 
-#: tiramisu/option/baseoption.py:245
+#: tiramisu/option/baseoption.py:257
 msgid "cannot serialize Option, only in OptionDescription"
 msgstr "ne peut serialiser une Option, seulement via une OptionDescription"
 
-#: tiramisu/option/baseoption.py:326 tiramisu/storage/dictionary/option.py:117
+#: tiramisu/option/baseoption.py:338 tiramisu/storage/dictionary/option.py:119
 msgid "'{0}' ({1}) object attribute '{2}' is read-only"
 msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
 
-#: tiramisu/option/baseoption.py:350 tiramisu/option/option.py:145
+#: tiramisu/option/baseoption.py:359
 msgid "invalid string"
 msgstr "invalide caractère"
 
-#: tiramisu/option/baseoption.py:353
+#: tiramisu/option/baseoption.py:362
 msgid "invalid unicode or string"
 msgstr "invalide unicode ou string"
 
-#: tiramisu/option/baseoption.py:493 tiramisu/option/baseoption.py:526
-msgid "invalid value for option {0}: {1}"
-msgstr "valeur invalide pour l'option {0} : {1}"
+#: tiramisu/option/baseoption.py:515 tiramisu/option/baseoption.py:560
+msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}"
+msgstr "\"{0}\" est une {1} invalide pour \"{2}\", {3}"
+
+#: tiramisu/option/baseoption.py:519 tiramisu/option/baseoption.py:564
+msgid "\"{0}\" is an invalid {1} for \"{2}\""
+msgstr "\"{0}\" est une {1} invalide pour \"{2}\""
 
-#: tiramisu/option/baseoption.py:500
+#: tiramisu/option/baseoption.py:531
 msgid "do_validation for {0}: error in value"
 msgstr "do_validation for {0} : erreur dans un la valeur"
 
-#: tiramisu/option/baseoption.py:518
-msgid "warning on the value of the option {0}: {1}"
-msgstr "avertissement sur la valeur de l'option {0} : {1}"
+#: tiramisu/option/baseoption.py:550
+msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}"
+msgstr "attention, \"{0}\" peut être une {1} invalide pour \"{2}\", {3}"
 
-#: tiramisu/option/baseoption.py:540 tiramisu/option/baseoption.py:550
+#: tiramisu/option/baseoption.py:580 tiramisu/option/baseoption.py:590
 msgid "invalid value {0} for option {1} which must be a list"
 msgstr "valeur invalide pour l'option {0} : {1} laquelle doit être une liste"
 
-#: tiramisu/option/baseoption.py:556
+#: tiramisu/option/baseoption.py:596
 msgid "invalid value {0} for option {1} which must be a list of list"
-msgstr "valeur invalide pour l'option {0} : {1} laquelle doit être une liste de liste"
+msgstr ""
+"valeur invalide pour l'option {0} : {1} laquelle doit être une liste de liste"
 
-#: tiramisu/option/baseoption.py:599 tiramisu/option/baseoption.py:603
+#: tiramisu/option/baseoption.py:647 tiramisu/option/baseoption.py:651
 msgid "cannot add consistency with submulti option"
 msgstr "ne peut ajouter de test de consistence a une option submulti"
 
-#: tiramisu/option/baseoption.py:605
+#: tiramisu/option/baseoption.py:653
 msgid "consistency must be set with an option"
 msgstr "consistency doit être configuré avec une option"
 
-#: tiramisu/option/baseoption.py:608 tiramisu/option/baseoption.py:615
-msgid "almost one option in consistency is in a dynoptiondescription but not all"
+#: tiramisu/option/baseoption.py:656 tiramisu/option/baseoption.py:663
+msgid ""
+"almost one option in consistency is in a dynoptiondescription but not all"
 msgstr ""
-"au moins une option dans le test de consistance est dans une dynoptiondescription mais pas toutes"
+"au moins une option dans le test de consistance est dans une "
+"dynoptiondescription mais pas toutes"
 
-#: tiramisu/option/baseoption.py:611
+#: tiramisu/option/baseoption.py:659
 msgid "option in consistency must be in same dynoptiondescription"
-msgstr "option dans une consistency doit être dans le même dynoptiondescription"
+msgstr ""
+"option dans une consistency doit être dans le même dynoptiondescription"
 
-#: tiramisu/option/baseoption.py:618
+#: tiramisu/option/baseoption.py:666
 msgid "cannot add consistency with itself"
 msgstr "ne peut ajouter une consistency avec lui même"
 
-#: tiramisu/option/baseoption.py:620
+#: tiramisu/option/baseoption.py:668
 msgid "every options in consistency must be multi or none"
-msgstr "toutes les options d'une consistency doivent être multi ou ne pas l'être"
+msgstr ""
+"toutes les options d'une consistency doivent être multi ou ne pas l'être"
 
-#: tiramisu/option/baseoption.py:634
+#: tiramisu/option/baseoption.py:685
 msgid "'{0}' ({1}) cannot add consistency, option is read-only"
-msgstr "'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul"
+msgstr ""
+"'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul"
 
-#: tiramisu/option/baseoption.py:641
+#: tiramisu/option/baseoption.py:692
 msgid "consistency {0} not available for this option"
 msgstr "consistency {0} non valable pour cette option"
 
-#: tiramisu/option/baseoption.py:645
+#: tiramisu/option/baseoption.py:696
 msgid "unknow parameter {0} in consistency"
 msgstr "paramètre inconnu {0} dans un test de consistance"
 
-#: tiramisu/option/baseoption.py:695
-msgid "same value for {0} and {1}, should be different"
-msgstr "même valeur pour {0} et {1}, devrait être différent"
+#: tiramisu/option/baseoption.py:757
+msgid "_cons_not_equal: {} are not different"
+msgstr "_cons_not_equal: {} sont différents"
+
+#: tiramisu/option/baseoption.py:760
+msgid "should be different from the value of {}"
+msgstr "devrait être différent de la valeur de {}"
+
+#: tiramisu/option/baseoption.py:762
+msgid "must be different from the value of {}"
+msgstr "doit être différent de la valeur de {}"
 
-#: tiramisu/option/baseoption.py:697
-msgid "same value for {0} and {1}, must be different"
-msgstr "même valeur pour {0} et {1}, doit être différent"
+#: tiramisu/option/baseoption.py:766
+msgid "value for {} should be different"
+msgstr "valeur pour {} devrait être différent"
 
-#: tiramisu/option/baseoption.py:755
+#: tiramisu/option/baseoption.py:768
+msgid "value for {} must be different"
+msgstr "valeur pour {} doit être différent"
+
+#: tiramisu/option/baseoption.py:824
 msgid "default value not allowed if option: {0} is calculated"
 msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée"
 
-#: tiramisu/option/baseoption.py:775
+#: tiramisu/option/baseoption.py:844
 msgid "malformed requirements type for option: {0}, must be a dict"
-msgstr "type requirements malformé pour l'option : {0}, doit être un dictionnaire"
+msgstr ""
+"type requirements malformé pour l'option : {0}, doit être un dictionnaire"
 
-#: tiramisu/option/baseoption.py:781
+#: tiramisu/option/baseoption.py:850
 msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
-msgstr "requirements mal formés pour l'option : {0} clefs inconnues {1}, doit seulement avoir {2}"
+msgstr ""
+"requirements mal formés pour l'option : {0} clefs inconnues {1}, doit "
+"seulement avoir {2}"
 
-#: tiramisu/option/baseoption.py:789
-msgid "malformed requirements for option: {0} require must have option, expected and action keys"
+#: tiramisu/option/baseoption.py:858
+msgid ""
+"malformed requirements for option: {0} require must have option, expected "
+"and action keys"
 msgstr ""
-"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs option, expected et action"
+"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
+"option, expected et action"
 
-#: tiramisu/option/baseoption.py:796
-msgid "malformed requirements for option: {0} action cannot be force_store_value"
-msgstr "requirements mal formés pour l'option : {0} action ne peut pas être force_store_value"
+#: tiramisu/option/baseoption.py:865
+msgid ""
+"malformed requirements for option: {0} action cannot be force_store_value"
+msgstr ""
+"requirements mal formés pour l'option : {0} action ne peut pas être "
+"force_store_value"
 
-#: tiramisu/option/baseoption.py:801
+#: tiramisu/option/baseoption.py:870
 msgid "malformed requirements for option: {0} inverse must be boolean"
-msgstr "requirements mal formés pour l'option : {0} inverse doit être un booléen"
+msgstr ""
+"requirements mal formés pour l'option : {0} inverse doit être un booléen"
 
-#: tiramisu/option/baseoption.py:805
+#: tiramisu/option/baseoption.py:874
 msgid "malformed requirements for option: {0} transitive must be boolean"
-msgstr "requirements mal formés pour l'option : {0} transitive doit être booléen"
+msgstr ""
+"requirements mal formés pour l'option : {0} transitive doit être booléen"
 
-#: tiramisu/option/baseoption.py:809
+#: tiramisu/option/baseoption.py:878
 msgid "malformed requirements for option: {0} same_action must be boolean"
-msgstr "requirements mal formés pour l'option : {0} same_action doit être un booléen"
+msgstr ""
+"requirements mal formés pour l'option : {0} same_action doit être un booléen"
 
-#: tiramisu/option/baseoption.py:813
+#: tiramisu/option/baseoption.py:882
 msgid "malformed requirements must be an option in option {0}"
 msgstr "requirements mal formés doit être une option dans l'option {0}"
 
-#: tiramisu/option/baseoption.py:816
-msgid "malformed requirements multi option must not set as requires of non multi option {0}"
+#: tiramisu/option/baseoption.py:885
+msgid ""
+"malformed requirements multi option must not set as requires of non multi "
+"option {0}"
 msgstr ""
-"requirements mal formés une option multiple ne doit pas être spécifié comme pré-requis à l'option "
-"non multiple {0}"
+"requirements mal formés une option multiple ne doit pas être spécifié comme "
+"pré-requis à l'option non multiple {0}"
 
-#: tiramisu/option/baseoption.py:822
-msgid "malformed requirements second argument must be valid for option {0}: {1}"
-msgstr "requirements mal formés deuxième argument doit être valide pour l'option {0} : {1}"
+#: tiramisu/option/baseoption.py:891
+msgid ""
+"malformed requirements second argument must be valid for option {0}: {1}"
+msgstr ""
+"requirements mal formés deuxième argument doit être valide pour l'option "
+"{0} : {1}"
 
-#: tiramisu/option/baseoption.py:827
+#: tiramisu/option/baseoption.py:896
 msgid "inconsistency in action types for option: {0} action: {1}"
 msgstr "incohérence dans les types action pour l'option : {0} action {1}"
 
-#: tiramisu/option/baseoption.py:855
+#: tiramisu/option/baseoption.py:924
 msgid "malformed symlinkoption must be an option for symlink {0}"
 msgstr "symlinkoption mal formé, doit être une option pour symlink {0}"
 
-#: tiramisu/option/masterslave.py:38
-msgid "master group {0} shall not have a symlinkoption"
-msgstr "groupe maître {0} ne doit pas avoir de symlinkoption"
-
-#: tiramisu/option/masterslave.py:41
-msgid "master group {0} shall not have a subgroup"
-msgstr "groupe maître {0} ne doit pas avoir de sous-groupe"
-
 #: tiramisu/option/masterslave.py:44
-msgid "not allowed option {0} in group {1}: this option is not a multi"
-msgstr "option non autorisée {0} dans le groupe {1} : cette option n'est pas une multi"
+msgid "master group with wrong master name for {0}"
+msgstr "le groupe maître avec un nom de maître érroné pour {0}"
 
-#: tiramisu/option/masterslave.py:52
+#: tiramisu/option/masterslave.py:49
 msgid "not allowed default value for option {0} in group {1}"
 msgstr "valeur de défaut non autorisée pour l'option {0} du groupe {1}"
 
-#: tiramisu/option/masterslave.py:57
-msgid "master group with wrong master name for {0}"
-msgstr "le groupe maître avec un nom de maître érroné pour {0}"
-
-#: tiramisu/option/masterslave.py:67
+#: tiramisu/option/masterslave.py:60
 msgid "callback of master's option shall not refered a slave's ones"
-msgstr "callback d'une variable maitre ne devrait pas référencer des variables esclaves"
+msgstr ""
+"callback d'une variable maitre ne devrait pas référencer des variables "
+"esclaves"
 
-#: tiramisu/option/masterslave.py:283
+#: tiramisu/option/masterslave.py:271
 msgid "invalid len for the slave: {0} which has {1} as master"
 msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître"
 
-#: tiramisu/option/option.py:53
+#: tiramisu/option/option.py:40
+msgid "choice"
+msgstr "choix"
+
+#: tiramisu/option/option.py:54
 msgid "values is not a function, so values_params must be None"
 msgstr "values n'est pas une fonction, donc values_params doit être None"
 
-#: tiramisu/option/option.py:55
+#: tiramisu/option/option.py:56
 msgid "values must be a tuple or a function for {0}"
 msgstr "values doit être un tuple ou une fonction pour {0}"
 
-#: tiramisu/option/option.py:91
+#: tiramisu/option/option.py:93
 msgid "calculated values for {0} is not a list"
 msgstr "valeurs calculées for {0} n'est pas une liste"
 
-#: tiramisu/option/option.py:102
-msgid "value {0} is not permitted, only {1} is allowed"
-msgstr "valeur {0} n'est pas permis, seules {1} sont autorisées"
+#: tiramisu/option/option.py:104
+msgid "only {0} is allowed"
+msgstr "seulement {0} est autorisé"
+
+#: tiramisu/option/option.py:107
+msgid "only {0} are allowed"
+msgstr "seulement {0} sont autorisés"
+
+#: tiramisu/option/option.py:114
+msgid "boolean"
+msgstr "booléen"
 
-#: tiramisu/option/option.py:115
-msgid "invalid boolean"
-msgstr "booléen invalide"
+#: tiramisu/option/option.py:124
+msgid "integer"
+msgstr "nombre"
 
-#: tiramisu/option/option.py:125
-msgid "invalid integer"
-msgstr "nombre invalide"
+#: tiramisu/option/option.py:134
+msgid "float"
+msgstr "nombre flottant"
 
-#: tiramisu/option/option.py:135
-msgid "invalid float"
-msgstr "invalide nombre flottan"
+#: tiramisu/option/option.py:144
+msgid "string"
+msgstr "texte"
 
-#: tiramisu/option/option.py:162
-msgid "invalid unicode"
-msgstr "invalide unicode"
+#: tiramisu/option/option.py:161
+msgid "unicode string"
+msgstr "texte unicode"
 
-#: tiramisu/option/option.py:207 tiramisu/option/option.py:210 tiramisu/option/option.py:215
-msgid "invalid IP"
-msgstr "adresse IP invalide"
+#: tiramisu/option/option.py:171
+msgid "password"
+msgstr "mot de passe"
 
-#: tiramisu/option/option.py:221
-msgid "IP is in reserved class"
-msgstr "l'adresse IP est dans une plage d'adresse réservée"
+#: tiramisu/option/option.py:182
+msgid "IP"
+msgstr "IP"
 
-#: tiramisu/option/option.py:223
-msgid "invalid IP, mustn't be in reserved class"
-msgstr "adresse IP invalide, ne doit pas être dans une classe réservée"
+#: tiramisu/option/option.py:224
+msgid "shouldn't in reserved class"
+msgstr "ne devrait pas être dans une classe réservée"
 
-#: tiramisu/option/option.py:227
-msgid "IP is not in private class"
-msgstr "l'adresse IP n'est pas dans une plage d'adressage privée"
+#: tiramisu/option/option.py:226 tiramisu/option/option.py:361
+msgid "mustn't be in reserved class"
+msgstr "ne doit pas être dans une classe réservée"
 
-#: tiramisu/option/option.py:229
-msgid "invalid IP, must be in private class"
-msgstr "adresse IP invalide, doit être dans la classe privée"
+#: tiramisu/option/option.py:230
+msgid "should be in private class"
+msgstr "devrait être dans une classe privée"
 
-#: tiramisu/option/option.py:234 tiramisu/option/option.py:438
+#: tiramisu/option/option.py:232
+msgid "must be in private class"
+msgstr "doit être dans une classe privée"
+
+#: tiramisu/option/option.py:237 tiramisu/option/option.py:434
 msgid "invalid len for vals"
 msgstr "longueur invalide pour vals"
 
-#: tiramisu/option/option.py:240
-msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
-msgstr "IP {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
-
 #: tiramisu/option/option.py:243
-msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
-msgstr "IP invalide {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
+msgid "should be in network {0}/{1} ({2}/{3})"
+msgstr "devrait être dans le réseau {0}/{1} ({2}/{3})"
+
+#: tiramisu/option/option.py:245
+msgid "must be in network {0}/{1} ({2}/{3})"
+msgstr "doit être dans le réseau {0}/{1} ({2}/{3})"
 
-#: tiramisu/option/option.py:286
+#: tiramisu/option/option.py:264
+msgid "port"
+msgstr "port"
+
+#: tiramisu/option/option.py:288
 msgid "inconsistency in allowed range"
 msgstr "inconsistence dans la plage autorisée"
 
-#: tiramisu/option/option.py:291
+#: tiramisu/option/option.py:293
 msgid "max value is empty"
 msgstr "la valeur maximum est vide"
 
 #: tiramisu/option/option.py:319
-msgid "invalid port, range must have two values only"
-msgstr "port invalide, une plage doit avoir deux valeurs seulement"
-
-#: tiramisu/option/option.py:322
-msgid "invalid port, first port in range must be smaller than the second one"
-msgstr "port invalide, le premier port d'une plage doit être plus petit que le second"
+msgid "range must have two values only"
+msgstr "un rang doit avoir deux valeurs seulement"
 
-#: tiramisu/option/option.py:329
-msgid "invalid port"
-msgstr "port invalide"
+#: tiramisu/option/option.py:321
+msgid "first port in range must be smaller than the second one"
+msgstr "le premier port d'un rang doit être plus petit que le second"
 
-#: tiramisu/option/option.py:332
-msgid "invalid port, must be an integer between {0} and {1}"
-msgstr "port invalide, port doit être nombre entre {0} et {1}"
+#: tiramisu/option/option.py:331
+msgid "must be an integer between {0} and {1}"
+msgstr "doit être une nombre entre {0} et {1}"
 
-#: tiramisu/option/option.py:347 tiramisu/option/option.py:350 tiramisu/option/option.py:354
-msgid "invalid network address"
-msgstr "adresse réseau invalide"
+#: tiramisu/option/option.py:339
+msgid "network address"
+msgstr "adresse réseau"
 
-#: tiramisu/option/option.py:360
-msgid "network address is in reserved class"
-msgstr "l'adresse réseau est pas dans une plage d'adresse réservée"
+#: tiramisu/option/option.py:359
+msgid "shouldn't be in reserved class"
+msgstr "ne devrait pas être dans une classe réservée"
 
-#: tiramisu/option/option.py:362
-msgid "invalid network address, mustn't be in reserved class"
-msgstr "adresse réseau invalide, ne doit pas être dans la classe réservée"
+#: tiramisu/option/option.py:368
+msgid "netmask address"
+msgstr "adresse netmask"
 
-#: tiramisu/option/option.py:376 tiramisu/option/option.py:379 tiramisu/option/option.py:383
-msgid "invalid netmask address"
-msgstr "masque de sous-réseau invalide"
-
-#: tiramisu/option/option.py:400
+#: tiramisu/option/option.py:399
 msgid "invalid len for opts"
 msgstr "longueur invalide pour opts"
 
-#: tiramisu/option/option.py:409
-msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
-msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un réseau"
+#: tiramisu/option/option.py:408
+msgid "this is a network with netmask {0} ({1})"
+msgstr "c'est une adresse réseau avec le masque {0} ({1})"
 
-#: tiramisu/option/option.py:412
-msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast"
-msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un broadcast"
+#: tiramisu/option/option.py:410
+msgid "this is a broadcast with netmask {0} ({1})"
+msgstr "c'est une adresse broadcast avec le masque {0} ({1})"
 
-#: tiramisu/option/option.py:417
-msgid "invalid network {0} ({1}) with netmask {2}"
-msgstr "réseau invalide {0} ({1}) avec masque {2}"
+#: tiramisu/option/option.py:414
+msgid "with netmask {0} ({1})"
+msgstr "avec le masque {0} ({1})"
 
-#: tiramisu/option/option.py:434
-msgid "invalid broadcast address"
-msgstr "adresse de broadcast invalide"
+#: tiramisu/option/option.py:421
+msgid "broadcast address"
+msgstr "adresse broadcast"
 
-#: tiramisu/option/option.py:443
-msgid "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
-msgstr "Broadcast invalide {0} ({1}) avec le réseau {2} ({3}) et le masque {4} ({5})"
+#: tiramisu/option/option.py:439
+msgid "with network {0}/{1} ({2}/{3})"
+msgstr "avec le réseau {0}/{1} ({2}/{3})"
 
-#: tiramisu/option/option.py:464
+#: tiramisu/option/option.py:451
+msgid "domain name"
+msgstr "nom de domaine"
+
+#: tiramisu/option/option.py:459
 msgid "unknown type_ {0} for hostname"
 msgstr "type_ inconnu {0} pour le nom d'hôte"
 
-#: tiramisu/option/option.py:467
+#: tiramisu/option/option.py:462
 msgid "allow_ip must be a boolean"
 msgstr "allow_ip doit être un booléen"
 
-#: tiramisu/option/option.py:469
+#: tiramisu/option/option.py:464
 msgid "allow_without_dot must be a boolean"
 msgstr "allow_without_dot doit être un booléen"
 
-#: tiramisu/option/option.py:495
-msgid "invalid domainname's length (min 1)"
-msgstr "longueur du nom de domaine invalide (minimum 1)"
+#: tiramisu/option/option.py:489
+msgid "invalid length (min 1)"
+msgstr "longueur invalide (min 1)"
 
-#: tiramisu/option/option.py:497
-msgid "invalid domainname's length (max {0})"
-msgstr "longueur du nom de domaine invalide (maximum {0})"
+#: tiramisu/option/option.py:491
+msgid "invalid length (max {0})"
+msgstr "longueur invalide (max {0})"
 
-#: tiramisu/option/option.py:512
-msgid "invalid domainname, must not be an IP"
-msgstr "nom de domaine invalide, ne doit pas être une IP"
+#: tiramisu/option/option.py:506
+msgid "must not be an IP"
+msgstr "ne doit pas être une IP"
 
-#: tiramisu/option/option.py:519
-msgid "invalid domainname, must have dot"
-msgstr "nom de domaine invalide, doit avoir un point"
+#: tiramisu/option/option.py:513
+msgid "must have dot"
+msgstr "doit avec un point"
 
-#: tiramisu/option/option.py:521
-msgid "invalid domainname's length (max 255)"
-msgstr "longueur du nom de domaine invalide (maximum {1})"
+#: tiramisu/option/option.py:515
+msgid "invalid length (max 255)"
+msgstr "longueur invalide (max 255)"
 
-#: tiramisu/option/option.py:532
+#: tiramisu/option/option.py:526
 msgid "some characters are uppercase"
 msgstr "des caractères sont en majuscule"
 
-#: tiramisu/option/option.py:535
+#: tiramisu/option/option.py:529
 msgid "some characters may cause problems"
 msgstr "des caractères peuvent poser problèmes"
 
-#: tiramisu/option/option.py:537
-msgid "invalid domainname"
-msgstr "nom de domaine invalide"
-
-#: tiramisu/option/option.py:563
-msgid "invalid email address, must contains one @"
-msgstr "adresse email invalide, doit contenir un @"
+#: tiramisu/option/option.py:550
+msgid "URL"
+msgstr "URL"
 
-#: tiramisu/option/option.py:566
-msgid "invalid username in email address"
-msgstr "nom d'utilisateur invalide dans une adresse email"
+#: tiramisu/option/option.py:558
+msgid "must start with http:// or https://"
+msgstr "doit démarré avec http:// ou https://"
 
-#: tiramisu/option/option.py:588
-msgid "invalid url, must start with http:// or https://"
-msgstr "URL invalide, doit démarrer avec http:// ou https://"
+#: tiramisu/option/option.py:576
+msgid "port must be an between 0 and 65536"
+msgstr "port doit être entre 0 et 65536"
 
-#: tiramisu/option/option.py:606
-msgid "invalid url, port must be an between 0 and 65536"
-msgstr "URL invalide, port doit être entre 0 et 65536"
+#: tiramisu/option/option.py:587
+msgid "must ends with a valid resource name"
+msgstr "doit finir par un nom de ressource valide"
 
-#: tiramisu/option/option.py:617
-msgid "invalid url, must ends with a valid resource name"
-msgstr "URL invalide, doit finir par un nom de ressource valide"
+#: tiramisu/option/option.py:608
+msgid "email address"
+msgstr "adresse mail"
 
-#: tiramisu/option/option.py:635
-msgid "invalid username"
-msgstr "utilisateur invalide"
+#: tiramisu/option/option.py:615
+msgid "username"
+msgstr "nom d'utilisateur"
 
-#: tiramisu/option/option.py:649
-msgid "invalid filename"
-msgstr "nom de fichier invalide"
+#: tiramisu/option/option.py:621
+msgid "file name"
+msgstr "nom de fichier"
 
 #: tiramisu/option/optiondescription.py:73
 msgid "duplicate option name: {0}"
@@ -541,123 +619,161 @@ msgstr "nom de l'option dupliqué : {0}"
 msgid "option must not start as dynoptiondescription"
 msgstr "option ne doit pas commencé pareil qu'un dynoptiondescription"
 
-#: tiramisu/option/optiondescription.py:134
+#: tiramisu/option/optiondescription.py:106
+msgid "option description seems to be part of an other config"
+msgstr "l'option description semble faire parti d'une autre config"
+
+#: tiramisu/option/optiondescription.py:137
 msgid "malformed consistency option {0} must be a master/slaves"
-msgstr "test de consistence mal formé pour l'option {0} doit être une maître/esclave"
+msgstr ""
+"test de consistence mal formé pour l'option {0} doit être une maître/esclave"
 
-#: tiramisu/option/optiondescription.py:141
+#: tiramisu/option/optiondescription.py:144
 msgid "malformed consistency option {0} must not be a multi for {1}"
-msgstr "test de consistence mal formé pour l'option {0} ne doit doit pas être une liste pour {1}"
+msgstr ""
+"test de consistence mal formé pour l'option {0} ne doit doit pas être une "
+"liste pour {1}"
 
-#: tiramisu/option/optiondescription.py:145
+#: tiramisu/option/optiondescription.py:148
 msgid "malformed consistency option {0} must be in same master/slaves for {1}"
-msgstr "test de consistence mal formé pour l'option {0} doit être dans la même maître/esclave pour {1}"
+msgstr ""
+"test de consistence mal formé pour l'option {0} doit être dans la même "
+"maître/esclave pour {1}"
 
-#: tiramisu/option/optiondescription.py:170
+#: tiramisu/option/optiondescription.py:173
 msgid "malformed requirements option {0} must be in same master/slaves for {1}"
-msgstr "requirements mal formé pour l'option {0} doit être dans la même maître/esclave pour {1}"
+msgstr ""
+"requirements mal formé pour l'option {0} doit être dans la même maître/"
+"esclave pour {1}"
 
-#: tiramisu/option/optiondescription.py:174
+#: tiramisu/option/optiondescription.py:177
 msgid "malformed requirements option {0} must not be a multi for {1}"
-msgstr "requirements mal formés pour l'option {0} ne doit pas être une multi pour {1}"
+msgstr ""
+"requirements mal formés pour l'option {0} ne doit pas être une multi pour {1}"
 
-#: tiramisu/option/optiondescription.py:183
+#: tiramisu/option/optiondescription.py:186
 msgid "duplicate option: {0}"
 msgstr "option dupliquée : {0}"
 
-#: tiramisu/option/optiondescription.py:188
+#: tiramisu/option/optiondescription.py:191
 msgid "consistency with option {0} which is not in Config"
 msgstr "consistency avec l'option {0} qui n'est pas dans une Config"
 
-#: tiramisu/option/optiondescription.py:201
+#: tiramisu/option/optiondescription.py:210
 msgid "a slave ({0}) cannot have force_store_value property"
 msgstr "une slave ({0}) ne doit pas avoir la propriété force_store_value"
 
-#: tiramisu/option/optiondescription.py:204
+#: tiramisu/option/optiondescription.py:213
 msgid "a dynoption ({0}) cannot have force_store_value property"
-msgstr ""
+msgstr "une dynoption ({0}) ne peut avoir la propriété force_store_value"
 
-#: tiramisu/option/optiondescription.py:218
+#: tiramisu/option/optiondescription.py:226
 msgid "cannot change group_type if already set (old {0}, new {1})"
 msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})"
 
-#: tiramisu/option/optiondescription.py:226
+#: tiramisu/option/optiondescription.py:235
+msgid "master group {0} shall not have a symlinkoption"
+msgstr "groupe maître {0} ne doit pas avoir de symlinkoption"
+
+#: tiramisu/option/optiondescription.py:238
+msgid "master group {0} shall not have a subgroup"
+msgstr "groupe maître {0} ne doit pas avoir de sous-groupe"
+
+#: tiramisu/option/optiondescription.py:241
+msgid "not allowed option {0} in group {1}: this option is not a multi"
+msgstr ""
+"option non autorisée {0} dans le groupe {1} : cette option n'est pas une "
+"multi"
+
+#: tiramisu/option/optiondescription.py:249
 msgid "group_type: {0} not allowed"
 msgstr "group_type : {0} non autorisé"
 
-#: tiramisu/option/optiondescription.py:288
+#: tiramisu/option/optiondescription.py:313
 msgid "DynOptionDescription callback return not uniq value"
 msgstr "callback d'une DynOptionDescription ne retourne pas une valeur unique"
 
-#: tiramisu/option/optiondescription.py:291
+#: tiramisu/option/optiondescription.py:316
 msgid "invalid suffix: {0} for option"
 msgstr "suffix invalide : {0} pour l'option"
 
-#: tiramisu/option/optiondescription.py:348
+#: tiramisu/option/optiondescription.py:373
 msgid "cannot set optiondescription in a dynoptiondescription"
-msgstr ""
+msgstr "ne peut mettre une optiondescription dans une dynoptiondescription"
 
-#: tiramisu/option/optiondescription.py:353 tiramisu/option/optiondescription.py:356
+#: tiramisu/option/optiondescription.py:378
+#: tiramisu/option/optiondescription.py:381
 msgid "cannot set symlinkoption in a dynoptiondescription"
-msgstr ""
+msgstr "ne peut mettre une symlinkoption dans une dynoptiondescription"
 
-#: tiramisu/option/optiondescription.py:364
+#: tiramisu/option/optiondescription.py:388
 msgid "callback is mandatory for dynoptiondescription"
 msgstr "callback est obligatoire pour un dynoptiondescription"
 
-#: tiramisu/setting.py:127
+#: tiramisu/setting.py:128
 msgid "can't rebind {0}"
 msgstr "ne peut redéfinir ({0})"
 
-#: tiramisu/setting.py:132
+#: tiramisu/setting.py:133
 msgid "can't unbind {0}"
 msgstr "ne peut supprimer ({0})"
 
-#: tiramisu/setting.py:264
+#: tiramisu/setting.py:265
 msgid "cannot append {0} property for option {1}: this property is calculated"
-msgstr "ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est calculée"
+msgstr ""
+"ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est "
+"calculée"
 
-#: tiramisu/setting.py:268 tiramisu/setting.py:434
+#: tiramisu/setting.py:269 tiramisu/setting.py:435
 msgid "cannot add those properties: {0}"
 msgstr "ne peut pas ajouter ces propriétés : {0}"
 
-#: tiramisu/setting.py:357
+#: tiramisu/setting.py:358
 msgid "you should only append/remove properties"
 msgstr "pour pouvait seulement ajouter/supprimer des propriétés"
 
-#: tiramisu/setting.py:361
+#: tiramisu/setting.py:362
 msgid "opt and all_properties must not be set together in reset"
 msgstr "opt et all_properties ne doit pas être renseigné ensemble dans reset"
 
-#: tiramisu/setting.py:382
+#: tiramisu/setting.py:383
 msgid "if opt is not None, path should not be None in _getproperties"
-msgstr "si opt n'est pas None, path devrait ne pas être à None dans _getproperties"
+msgstr ""
+"si opt n'est pas None, path devrait ne pas être à None dans _getproperties"
 
-#: tiramisu/setting.py:500
+#: tiramisu/setting.py:507
 msgid "cannot change the value for option {0} this option is frozen"
-msgstr "ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable"
-
-#: tiramisu/setting.py:510
-msgid "trying to access to an {0} named: {1} with properties {2}"
-msgstr "tentative d'accès à une {0} nommée : {1} avec les propriétés {2}"
+msgstr ""
+"ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable"
 
-#: tiramisu/setting.py:529
+#: tiramisu/setting.py:538
 msgid "permissive must be a tuple"
 msgstr "permissive doit être un tuple"
 
-#: tiramisu/setting.py:536 tiramisu/value.py:536
+#: tiramisu/setting.py:545 tiramisu/value.py:528
 msgid "invalid generic owner {0}"
 msgstr "invalide owner générique {0}"
 
-#: tiramisu/setting.py:630
-msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
+#: tiramisu/setting.py:646
+msgid ""
+"malformed requirements imbrication detected for option: '{0}' with "
+"requirement on: '{1}'"
 msgstr ""
-"imbrication de requirements mal formés detectée pour l'option : '{0}' avec requirement sur : '{1}'"
+"imbrication de requirements mal formés detectée pour l'option : '{0}' avec "
+"requirement sur : '{1}'"
 
-#: tiramisu/setting.py:647
+#: tiramisu/setting.py:669
 msgid "option '{0}' has requirement's property error: {1} {2}"
 msgstr "l'option '{0}' a une erreur de propriété pour le requirement : {1} {2}"
 
+#: tiramisu/setting.py:692
+msgid "the value of \"{0}\" is \"{1}\""
+msgstr "la valeur de \"{0}\" est \"{1}\""
+
+#: tiramisu/setting.py:694
+msgid "the value of \"{0}\" is not \"{1}\""
+msgstr "la valeur de \"{0}\" n'est pas \"{1}\""
+
 #: tiramisu/storage/__init__.py:52
 msgid "storage_type is already set, cannot rebind it"
 msgstr "storage_type est déjà défini, impossible de le redéfinir"
@@ -670,52 +786,61 @@ msgstr "ne peut pas importer le stockage {0}"
 msgid "option {0} not already exists in storage {1}"
 msgstr "option {0} n'existe pas dans l'espace de stockage {1}"
 
-#: tiramisu/storage/dictionary/option.py:102
+#: tiramisu/storage/dictionary/option.py:104
 msgid "invalid default_multi value {0} for option {1}: {2}"
 msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
 
-#: tiramisu/storage/dictionary/option.py:142 tiramisu/storage/dictionary/value.py:234
-#: tiramisu/storage/sqlalchemy/option.py:441
+#: tiramisu/storage/dictionary/option.py:144
+#: tiramisu/storage/dictionary/value.py:234
+#: tiramisu/storage/sqlalchemy/option.py:666
 msgid "information's item not found: {0}"
 msgstr "aucune config spécifiée alors que c'est nécessaire"
 
-#: tiramisu/storage/dictionary/option.py:383
+#: tiramisu/storage/dictionary/option.py:406
 msgid "use impl_get_opt_by_path only with root OptionDescription"
-msgstr ""
+msgstr "utiliser impl_get_opt_by_path seulement sur l'OptionDescription racine"
 
-#: tiramisu/storage/dictionary/option.py:385 tiramisu/storage/sqlalchemy/option.py:485
+#: tiramisu/storage/dictionary/option.py:408
+#: tiramisu/storage/sqlalchemy/option.py:730
 msgid "no option for path {0}"
 msgstr "pas d'option pour le chemin {0}"
 
-#: tiramisu/storage/dictionary/option.py:390 tiramisu/storage/sqlalchemy/option.py:494
+#: tiramisu/storage/dictionary/option.py:413
+#: tiramisu/storage/sqlalchemy/option.py:740
 msgid "use impl_get_path_by_opt only with root OptionDescription"
-msgstr "utiliser impl_get_path_by_opt seulement avec une OptionDescription racine"
+msgstr ""
+"utiliser impl_get_path_by_opt seulement avec une OptionDescription racine"
 
-#: tiramisu/storage/dictionary/option.py:392 tiramisu/storage/sqlalchemy/option.py:495
+#: tiramisu/storage/dictionary/option.py:415
+#: tiramisu/storage/sqlalchemy/option.py:741
 msgid "no option {0} found"
 msgstr "pas d'option {0} trouvée"
 
-#: tiramisu/storage/dictionary/option.py:439
+#: tiramisu/storage/dictionary/option.py:462
 msgid "cannot find dynpath"
 msgstr "ne peut trouver le dynpath"
 
-#: tiramisu/storage/dictionary/option.py:528 tiramisu/storage/sqlalchemy/option.py:640
+#: tiramisu/storage/dictionary/option.py:551
+#: tiramisu/storage/sqlalchemy/option.py:894
 msgid "suffix and context needed if it's a dyn option"
 msgstr "suffix et context obligatoire si c'est une option dynamique"
 
-#: tiramisu/storage/dictionary/option.py:549 tiramisu/storage/sqlalchemy/option.py:670
+#: tiramisu/storage/dictionary/option.py:572
+#: tiramisu/storage/sqlalchemy/option.py:926
 msgid "unknown Option {0} in OptionDescription {1}"
 msgstr "Option {0} inconnue pour l'OptionDescription {1}"
 
 #: tiramisu/storage/dictionary/storage.py:37
 msgid "dictionary storage cannot delete session"
-msgstr "impossible de supprimer une session dans un espace de stockage dictionary"
+msgstr ""
+"impossible de supprimer une session dans un espace de stockage dictionary"
 
 #: tiramisu/storage/dictionary/storage.py:48
 msgid "session already used"
 msgstr "session déjà utilisée"
 
-#: tiramisu/storage/dictionary/storage.py:50 tiramisu/storage/dictionary/value.py:252
+#: tiramisu/storage/dictionary/storage.py:50
+#: tiramisu/storage/dictionary/value.py:252
 msgid "a dictionary cannot be persistent"
 msgstr "un espace de stockage dictionary ne peut être persistant"
 
@@ -723,27 +848,28 @@ msgstr "un espace de stockage dictionary ne peut être persistant"
 msgid "information's item not found {0}"
 msgstr "l'information de l'objet ne sont pas trouvé {0}"
 
-#: tiramisu/value.py:391
+#: tiramisu/value.py:378
 msgid "you should only set value with config"
 msgstr "vous devez seul affecter une valeur avec un config"
 
-#: tiramisu/value.py:500
+#: tiramisu/value.py:489
 msgid "owner only avalaible for an option"
 msgstr "owner seulement possible pour une option"
 
-#: tiramisu/value.py:541
+#: tiramisu/value.py:533
 msgid "no value for {0} cannot change owner to {1}"
 msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}"
 
-#: tiramisu/value.py:671
+#: tiramisu/value.py:667
 msgid "can force cache only if cache is actived in config"
-msgstr "peut force la mise en cache seulement si le cache est activé dans la config"
+msgstr ""
+"peut force la mise en cache seulement si le cache est activé dans la config"
 
-#: tiramisu/value.py:708
+#: tiramisu/value.py:704
 msgid "{0} is already a Multi "
 msgstr "{0} est déjà une Multi"
 
-#: tiramisu/value.py:786
+#: tiramisu/value.py:784
 msgid "cannot append a value on a multi option {0} which is a slave"
 msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave"
 
@@ -771,8 +897,147 @@ msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave"
 msgid "cannot pop a value on a multi option {0} which is a slave"
 msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
 
+#~ msgid "invalid value for option {0}: {1}"
+#~ msgstr "valeur invalide pour l'option {0} : {1}"
+
+#~ msgid "warning on the value of the option {0}: {1}"
+#~ msgstr "avertissement sur la valeur de l'option {0} : {1}"
+
+#~ msgid "same value for {0} and {1}, should be different"
+#~ msgstr "même valeur pour {0} et {1}, devrait être différent"
+
+#~ msgid "same value for {0} and {1}, must be different"
+#~ msgstr "même valeur pour {0} et {1}, doit être différent"
+
+#~ msgid "value {0} is not permitted, only {1} is allowed"
+#~ msgstr "valeur {0} n'est pas permis, seules {1} sont autorisées"
+
+#~ msgid "invalid boolean"
+#~ msgstr "booléen invalide"
+
+#~ msgid "invalid integer"
+#~ msgstr "nombre invalide"
+
+#~ msgid "invalid float"
+#~ msgstr "invalide nombre flottan"
+
+#~ msgid "invalid unicode"
+#~ msgstr "invalide unicode"
+
+#~ msgid "invalid IP"
+#~ msgstr "adresse IP invalide"
+
+#~ msgid "IP is in reserved class"
+#~ msgstr "l'adresse IP est dans une plage d'adresse réservée"
+
+#~ msgid "invalid IP, mustn't be in reserved class"
+#~ msgstr "adresse IP invalide, ne doit pas être dans une classe réservée"
+
+#~ msgid "IP is not in private class"
+#~ msgstr "l'adresse IP n'est pas dans une plage d'adressage privée"
+
+#~ msgid "invalid IP, must be in private class"
+#~ msgstr "adresse IP invalide, doit être dans la classe privée"
+
+#~ msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
+#~ msgstr "IP {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
+
+#~ msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
+#~ msgstr ""
+#~ "IP invalide {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} "
+#~ "({5})"
+
+#~ msgid "invalid port, range must have two values only"
+#~ msgstr "port invalide, une plage doit avoir deux valeurs seulement"
+
+#~ msgid ""
+#~ "invalid port, first port in range must be smaller than the second one"
+#~ msgstr ""
+#~ "port invalide, le premier port d'une plage doit être plus petit que le "
+#~ "second"
+
+#~ msgid "invalid port"
+#~ msgstr "port invalide"
+
+#~ msgid "invalid port, must be an integer between {0} and {1}"
+#~ msgstr "port invalide, port doit être nombre entre {0} et {1}"
+
+#~ msgid "invalid network address"
+#~ msgstr "adresse réseau invalide"
+
+#~ msgid "network address is in reserved class"
+#~ msgstr "l'adresse réseau est pas dans une plage d'adresse réservée"
+
+#~ msgid "invalid network address, mustn't be in reserved class"
+#~ msgstr "adresse réseau invalide, ne doit pas être dans la classe réservée"
+
+#~ msgid "invalid netmask address"
+#~ msgstr "masque de sous-réseau invalide"
+
+#~ msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
+#~ msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un réseau"
+
+#~ msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast"
+#~ msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un broadcast"
+
+#~ msgid "invalid network {0} ({1}) with netmask {2}"
+#~ msgstr "réseau invalide {0} ({1}) avec masque {2}"
+
+#~ msgid "invalid broadcast address"
+#~ msgstr "adresse de broadcast invalide"
+
+#~ msgid ""
+#~ "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
+#~ msgstr ""
+#~ "Broadcast invalide {0} ({1}) avec le réseau {2} ({3}) et le masque {4} "
+#~ "({5})"
+
+#~ msgid "invalid domainname's length (min 1)"
+#~ msgstr "longueur du nom de domaine invalide (minimum 1)"
+
+#~ msgid "invalid domainname's length (max {0})"
+#~ msgstr "longueur du nom de domaine invalide (maximum {0})"
+
+#~ msgid "invalid domainname, must not be an IP"
+#~ msgstr "nom de domaine invalide, ne doit pas être une IP"
+
+#~ msgid "invalid domainname, must have dot"
+#~ msgstr "nom de domaine invalide, doit avoir un point"
+
+#~ msgid "invalid domainname's length (max 255)"
+#~ msgstr "longueur du nom de domaine invalide (maximum {1})"
+
+#~ msgid "invalid domainname"
+#~ msgstr "nom de domaine invalide"
+
+#~ msgid "invalid email address, must contains one @"
+#~ msgstr "adresse email invalide, doit contenir un @"
+
+#~ msgid "invalid username in email address"
+#~ msgstr "nom d'utilisateur invalide dans une adresse email"
+
+#~ msgid "invalid url, must start with http:// or https://"
+#~ msgstr "URL invalide, doit démarrer avec http:// ou https://"
+
+#~ msgid "invalid url, port must be an between 0 and 65536"
+#~ msgstr "URL invalide, port doit être entre 0 et 65536"
+
+#~ msgid "invalid url, must ends with a valid resource name"
+#~ msgstr "URL invalide, doit finir par un nom de ressource valide"
+
+#~ msgid "invalid username"
+#~ msgstr "utilisateur invalide"
+
+#~ msgid "invalid filename"
+#~ msgstr "nom de fichier invalide"
+
+#~ msgid "trying to access to an {0} named: {1} with properties {2}"
+#~ msgstr "tentative d'accès à une {0} nommée : {1} avec les propriétés {2}"
+
 #~ msgid "a default_multi is set whereas multi is False in option: {0}"
-#~ msgstr "une default_multi est renseignée alors que multi est False dans l'option : {0}"
+#~ msgstr ""
+#~ "une default_multi est renseignée alors que multi est False dans "
+#~ "l'option : {0}"
 
 #~ msgid "do_validation for {0}: warning in value"
 #~ msgstr "do_validation for {0} : warning dans un la valeur"
@@ -784,7 +1049,8 @@ msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
 #~ msgstr "do_validation for {0} : warning dans un test de consistance"
 
 #~ msgid "cannot set optiondescription in an dynoptiondescription"
-#~ msgstr "impossible de mettre une optiondescription dans un dynoptiondescription"
+#~ msgstr ""
+#~ "impossible de mettre une optiondescription dans un dynoptiondescription"
 
 #~ msgid "cannot set symlinkoption in an dynoptiondescription"
 #~ msgstr "impossible de placer un symlinkoption dans un dynoptiondescription"
@@ -816,14 +1082,18 @@ msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
 #~ msgid "invalid IP {0} ({1}) with netmask {2}"
 #~ msgstr "IP invalide {0} ({1}) avec masque {2}"
 
-#~ msgid "invalid len for the master: {0} which has {1} as slave with greater len"
-#~ msgstr "longueur invalide pour un maître : {0} qui a {1} une esclave avec une plus grande longueur"
+#~ msgid ""
+#~ "invalid len for the master: {0} which has {1} as slave with greater len"
+#~ msgstr ""
+#~ "longueur invalide pour un maître : {0} qui a {1} une esclave avec une "
+#~ "plus grande longueur"
 
 #~ msgid ""
-#~ "unable to carry out a calculation, option value with multi types must have same length for: {0}"
+#~ "unable to carry out a calculation, option value with multi types must "
+#~ "have same length for: {0}"
 #~ msgstr ""
-#~ "impossible d'effectuer le calcul, la valeur d'une option avec le type multi doit avoir la même "
-#~ "longueur pour : {0}"
+#~ "impossible d'effectuer le calcul, la valeur d'une option avec le type "
+#~ "multi doit avoir la même longueur pour : {0}"
 
 #~ msgid "no child has same nom has master group for: {0}"
 #~ msgstr "pas d'enfant avec le nom du groupe maître pour {0} "
@@ -844,7 +1114,8 @@ msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
 #~ msgstr "valeur doit être une valeur unicode"
 
 #~ msgid "invalid value {0} for option {1} must be different as {2} option"
-#~ msgstr "valeur invalide {0} pour l'option {1} doit être différente de l'option {2}"
+#~ msgstr ""
+#~ "valeur invalide {0} pour l'option {1} doit être différente de l'option {2}"
 
 #~ msgid "validator should return a boolean, not {0}"
 #~ msgstr "le validator devrait retourner un boolean, pas un {0}"
index 332a366..3187966 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2016-08-31 15:38+CEST\n"
+"POT-Creation-Date: 2016-11-14 21:31+CET\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,11 +15,11 @@ msgstr ""
 "Generated-By: pygettext.py 1.5\n"
 
 
-#: tiramisu/autolib.py:171
+#: tiramisu/autolib.py:170
 msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
 msgstr ""
 
-#: tiramisu/autolib.py:239
+#: tiramisu/autolib.py:235
 msgid "callback cannot return a list for a slave option ({0})"
 msgstr ""
 
@@ -31,8 +31,8 @@ msgstr ""
 msgid "unknown group_type: {0}"
 msgstr ""
 
-#: tiramisu/config.py:187 tiramisu/setting.py:334 tiramisu/value.py:54
-#: tiramisu/value.py:742
+#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54
+#: tiramisu/value.py:738
 msgid "the context does not exist anymore"
 msgstr ""
 
@@ -44,491 +44,520 @@ msgstr ""
 msgid "can't assign to an OptionDescription"
 msgstr ""
 
-#: tiramisu/config.py:379
+#: tiramisu/config.py:389
 msgid "unknown type_ type {0}for _find"
 msgstr ""
 
-#: tiramisu/config.py:422
+#: tiramisu/config.py:432
 msgid "no option found in config with these criteria"
 msgstr ""
 
-#: tiramisu/config.py:470
+#: tiramisu/config.py:480
 msgid "make_dict can't filtering with value without option"
 msgstr ""
 
-#: tiramisu/config.py:493
+#: tiramisu/config.py:503
 msgid "unexpected path {0}, should start with {1}"
 msgstr ""
 
-#: tiramisu/config.py:567
+#: tiramisu/config.py:578
 msgid "opt in getowner must be an option not {0}"
 msgstr ""
 
-#: tiramisu/config.py:615
+#: tiramisu/config.py:626
 msgid "cannot serialize Config with MetaConfig"
 msgstr ""
 
-#: tiramisu/config.py:629
+#: tiramisu/config.py:640
 msgid "this storage is not serialisable, could be a none persistent storage"
 msgstr ""
 
-#: tiramisu/config.py:693
+#: tiramisu/config.py:705
 msgid "invalid name: {0} for config"
 msgstr ""
 
-#: tiramisu/config.py:724
+#: tiramisu/config.py:737
 msgid "groupconfig's children must be a list"
 msgstr ""
 
-#: tiramisu/config.py:728
+#: tiramisu/config.py:741
 msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
 msgstr ""
 
-#: tiramisu/config.py:731
+#: tiramisu/config.py:744
 msgid "name must be set to config before creating groupconfig"
 msgstr ""
 
-#: tiramisu/config.py:737
+#: tiramisu/config.py:750
 msgid "config name must be uniq in groupconfig for {0}"
 msgstr ""
 
-#: tiramisu/config.py:846
+#: tiramisu/config.py:859
 msgid "metaconfig's children should be config, not {0}"
 msgstr ""
 
-#: tiramisu/config.py:850
+#: tiramisu/config.py:863
 msgid "child has already a metaconfig's"
 msgstr ""
 
-#: tiramisu/config.py:854
+#: tiramisu/config.py:867
 msgid "all config in metaconfig must have the same optiondescription"
 msgstr ""
 
-#: tiramisu/config.py:869
+#: tiramisu/config.py:882
 msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
 msgstr ""
 
-#: tiramisu/config.py:875
+#: tiramisu/config.py:888
 msgid "force_default and force_dont_change_value cannot be set together"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:56
+#: tiramisu/error.py:28
+msgid " {} "
+msgstr ""
+
+#: tiramisu/error.py:49
+msgid "property"
+msgstr ""
+
+#: tiramisu/error.py:51
+msgid "properties"
+msgstr ""
+
+#: tiramisu/error.py:53 tiramisu/setting.py:517
+msgid "cannot access to {0} \"{1}\" because has {2} {3}"
+msgstr ""
+
+#: tiramisu/option/baseoption.py:58
 msgid "{0} must be a function"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:59
+#: tiramisu/option/baseoption.py:61
 msgid "{0}_params must be a dict"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:62
+#: tiramisu/option/baseoption.py:64
 msgid "{0}_params with key {1} mustn't have length different to 1"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:66
+#: tiramisu/option/baseoption.py:68
 msgid "{0}_params must be tuple for key \"{1}\""
 msgstr ""
 
-#: tiramisu/option/baseoption.py:72
+#: tiramisu/option/baseoption.py:74
 msgid "{0}_params with length of tuple as 1 must only have None as first value"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:76
+#: tiramisu/option/baseoption.py:78
 msgid "{0}_params must only have 1 or 2 as length"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:82
+#: tiramisu/option/baseoption.py:84
 msgid "{0}_params must have an option not a {0} for first argument"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:86
+#: tiramisu/option/baseoption.py:88
 msgid "{0}_params must have a boolean not a {0} for second argument"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:103
+#: tiramisu/option/baseoption.py:105
 msgid "invalid name: {0} for option"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:105
+#: tiramisu/option/baseoption.py:107
 msgid "default_multi is set whereas multi is False in option: {0}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:117
+#: tiramisu/option/baseoption.py:119
 msgid "invalid multi value"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:127
+#: tiramisu/option/baseoption.py:129
 msgid "invalid properties type {0} for {1}, must be a tuple"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:156
+#: tiramisu/option/baseoption.py:168
 msgid "params defined for a callback function but no callback defined yet for option {0}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:161
+#: tiramisu/option/baseoption.py:173
 msgid "a callback is already set for option {0}, cannot set another one's"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:245
+#: tiramisu/option/baseoption.py:257
 msgid "cannot serialize Option, only in OptionDescription"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:326 tiramisu/storage/dictionary/option.py:117
+#: tiramisu/option/baseoption.py:338 tiramisu/storage/dictionary/option.py:119
 msgid "'{0}' ({1}) object attribute '{2}' is read-only"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:350 tiramisu/option/option.py:145
+#: tiramisu/option/baseoption.py:359
 msgid "invalid string"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:353
+#: tiramisu/option/baseoption.py:362
 msgid "invalid unicode or string"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:493 tiramisu/option/baseoption.py:526
-msgid "invalid value for option {0}: {1}"
+#: tiramisu/option/baseoption.py:515 tiramisu/option/baseoption.py:560
+msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}"
+msgstr ""
+
+#: tiramisu/option/baseoption.py:519 tiramisu/option/baseoption.py:564
+msgid "\"{0}\" is an invalid {1} for \"{2}\""
 msgstr ""
 
-#: tiramisu/option/baseoption.py:500
+#: tiramisu/option/baseoption.py:531
 msgid "do_validation for {0}: error in value"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:518
-msgid "warning on the value of the option {0}: {1}"
+#: tiramisu/option/baseoption.py:550
+msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:540 tiramisu/option/baseoption.py:550
+#: tiramisu/option/baseoption.py:580 tiramisu/option/baseoption.py:590
 msgid "invalid value {0} for option {1} which must be a list"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:556
+#: tiramisu/option/baseoption.py:596
 msgid "invalid value {0} for option {1} which must be a list of list"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:599 tiramisu/option/baseoption.py:603
+#: tiramisu/option/baseoption.py:647 tiramisu/option/baseoption.py:651
 msgid "cannot add consistency with submulti option"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:605
+#: tiramisu/option/baseoption.py:653
 msgid "consistency must be set with an option"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:608 tiramisu/option/baseoption.py:615
+#: tiramisu/option/baseoption.py:656 tiramisu/option/baseoption.py:663
 msgid "almost one option in consistency is in a dynoptiondescription but not all"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:611
+#: tiramisu/option/baseoption.py:659
 msgid "option in consistency must be in same dynoptiondescription"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:618
+#: tiramisu/option/baseoption.py:666
 msgid "cannot add consistency with itself"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:620
+#: tiramisu/option/baseoption.py:668
 msgid "every options in consistency must be multi or none"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:634
+#: tiramisu/option/baseoption.py:685
 msgid "'{0}' ({1}) cannot add consistency, option is read-only"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:641
+#: tiramisu/option/baseoption.py:692
 msgid "consistency {0} not available for this option"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:645
+#: tiramisu/option/baseoption.py:696
 msgid "unknow parameter {0} in consistency"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:695
-msgid "same value for {0} and {1}, should be different"
+#: tiramisu/option/baseoption.py:757
+msgid "_cons_not_equal: {} are not different"
+msgstr ""
+
+#: tiramisu/option/baseoption.py:760
+msgid "should be different from the value of {}"
+msgstr ""
+
+#: tiramisu/option/baseoption.py:762
+msgid "must be different from the value of {}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:697
-msgid "same value for {0} and {1}, must be different"
+#: tiramisu/option/baseoption.py:766
+msgid "value for {} should be different"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:755
+#: tiramisu/option/baseoption.py:768
+msgid "value for {} must be different"
+msgstr ""
+
+#: tiramisu/option/baseoption.py:824
 msgid "default value not allowed if option: {0} is calculated"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:775
+#: tiramisu/option/baseoption.py:844
 msgid "malformed requirements type for option: {0}, must be a dict"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:781
+#: tiramisu/option/baseoption.py:850
 msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:789
+#: tiramisu/option/baseoption.py:858
 msgid "malformed requirements for option: {0} require must have option, expected and action keys"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:796
+#: tiramisu/option/baseoption.py:865
 msgid "malformed requirements for option: {0} action cannot be force_store_value"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:801
+#: tiramisu/option/baseoption.py:870
 msgid "malformed requirements for option: {0} inverse must be boolean"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:805
+#: tiramisu/option/baseoption.py:874
 msgid "malformed requirements for option: {0} transitive must be boolean"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:809
+#: tiramisu/option/baseoption.py:878
 msgid "malformed requirements for option: {0} same_action must be boolean"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:813
+#: tiramisu/option/baseoption.py:882
 msgid "malformed requirements must be an option in option {0}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:816
+#: tiramisu/option/baseoption.py:885
 msgid "malformed requirements multi option must not set as requires of non multi option {0}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:822
+#: tiramisu/option/baseoption.py:891
 msgid "malformed requirements second argument must be valid for option {0}: {1}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:827
+#: tiramisu/option/baseoption.py:896
 msgid "inconsistency in action types for option: {0} action: {1}"
 msgstr ""
 
-#: tiramisu/option/baseoption.py:855
+#: tiramisu/option/baseoption.py:924
 msgid "malformed symlinkoption must be an option for symlink {0}"
 msgstr ""
 
-#: tiramisu/option/masterslave.py:38
-msgid "master group {0} shall not have a symlinkoption"
-msgstr ""
-
-#: tiramisu/option/masterslave.py:41
-msgid "master group {0} shall not have a subgroup"
-msgstr ""
-
 #: tiramisu/option/masterslave.py:44
-msgid "not allowed option {0} in group {1}: this option is not a multi"
+msgid "master group with wrong master name for {0}"
 msgstr ""
 
-#: tiramisu/option/masterslave.py:52
+#: tiramisu/option/masterslave.py:49
 msgid "not allowed default value for option {0} in group {1}"
 msgstr ""
 
-#: tiramisu/option/masterslave.py:57
-msgid "master group with wrong master name for {0}"
-msgstr ""
-
-#: tiramisu/option/masterslave.py:67
+#: tiramisu/option/masterslave.py:60
 msgid "callback of master's option shall not refered a slave's ones"
 msgstr ""
 
-#: tiramisu/option/masterslave.py:283
+#: tiramisu/option/masterslave.py:271
 msgid "invalid len for the slave: {0} which has {1} as master"
 msgstr ""
 
-#: tiramisu/option/option.py:53
+#: tiramisu/option/option.py:40
+msgid "choice"
+msgstr ""
+
+#: tiramisu/option/option.py:54
 msgid "values is not a function, so values_params must be None"
 msgstr ""
 
-#: tiramisu/option/option.py:55
+#: tiramisu/option/option.py:56
 msgid "values must be a tuple or a function for {0}"
 msgstr ""
 
-#: tiramisu/option/option.py:91
+#: tiramisu/option/option.py:93
 msgid "calculated values for {0} is not a list"
 msgstr ""
 
-#: tiramisu/option/option.py:102
-msgid "value {0} is not permitted, only {1} is allowed"
+#: tiramisu/option/option.py:104
+msgid "only {0} is allowed"
 msgstr ""
 
-#: tiramisu/option/option.py:115
-msgid "invalid boolean"
+#: tiramisu/option/option.py:107
+msgid "only {0} are allowed"
 msgstr ""
 
-#: tiramisu/option/option.py:125
-msgid "invalid integer"
+#: tiramisu/option/option.py:114
+msgid "boolean"
 msgstr ""
 
-#: tiramisu/option/option.py:135
-msgid "invalid float"
+#: tiramisu/option/option.py:124
+msgid "integer"
 msgstr ""
 
-#: tiramisu/option/option.py:162
-msgid "invalid unicode"
+#: tiramisu/option/option.py:134
+msgid "float"
 msgstr ""
 
-#: tiramisu/option/option.py:207 tiramisu/option/option.py:210
-#: tiramisu/option/option.py:215
-msgid "invalid IP"
+#: tiramisu/option/option.py:144
+msgid "string"
 msgstr ""
 
-#: tiramisu/option/option.py:221
-msgid "IP is in reserved class"
+#: tiramisu/option/option.py:161
+msgid "unicode string"
 msgstr ""
 
-#: tiramisu/option/option.py:223
-msgid "invalid IP, mustn't be in reserved class"
+#: tiramisu/option/option.py:171
+msgid "password"
 msgstr ""
 
-#: tiramisu/option/option.py:227
-msgid "IP is not in private class"
+#: tiramisu/option/option.py:182
+msgid "IP"
 msgstr ""
 
-#: tiramisu/option/option.py:229
-msgid "invalid IP, must be in private class"
+#: tiramisu/option/option.py:224
+msgid "shouldn't in reserved class"
 msgstr ""
 
-#: tiramisu/option/option.py:234 tiramisu/option/option.py:438
-msgid "invalid len for vals"
+#: tiramisu/option/option.py:226 tiramisu/option/option.py:361
+msgid "mustn't be in reserved class"
+msgstr ""
+
+#: tiramisu/option/option.py:230
+msgid "should be in private class"
 msgstr ""
 
-#: tiramisu/option/option.py:240
-msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
+#: tiramisu/option/option.py:232
+msgid "must be in private class"
+msgstr ""
+
+#: tiramisu/option/option.py:237 tiramisu/option/option.py:434
+msgid "invalid len for vals"
 msgstr ""
 
 #: tiramisu/option/option.py:243
-msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
+msgid "should be in network {0}/{1} ({2}/{3})"
 msgstr ""
 
-#: tiramisu/option/option.py:286
-msgid "inconsistency in allowed range"
+#: tiramisu/option/option.py:245
+msgid "must be in network {0}/{1} ({2}/{3})"
 msgstr ""
 
-#: tiramisu/option/option.py:291
-msgid "max value is empty"
+#: tiramisu/option/option.py:264
+msgid "port"
 msgstr ""
 
-#: tiramisu/option/option.py:319
-msgid "invalid port, range must have two values only"
+#: tiramisu/option/option.py:288
+msgid "inconsistency in allowed range"
 msgstr ""
 
-#: tiramisu/option/option.py:322
-msgid "invalid port, first port in range must be smaller than the second one"
+#: tiramisu/option/option.py:293
+msgid "max value is empty"
 msgstr ""
 
-#: tiramisu/option/option.py:329
-msgid "invalid port"
+#: tiramisu/option/option.py:319
+msgid "range must have two values only"
 msgstr ""
 
-#: tiramisu/option/option.py:332
-msgid "invalid port, must be an integer between {0} and {1}"
+#: tiramisu/option/option.py:321
+msgid "first port in range must be smaller than the second one"
 msgstr ""
 
-#: tiramisu/option/option.py:347 tiramisu/option/option.py:350
-#: tiramisu/option/option.py:354
-msgid "invalid network address"
+#: tiramisu/option/option.py:331
+msgid "must be an integer between {0} and {1}"
 msgstr ""
 
-#: tiramisu/option/option.py:360
-msgid "network address is in reserved class"
+#: tiramisu/option/option.py:339
+msgid "network address"
 msgstr ""
 
-#: tiramisu/option/option.py:362
-msgid "invalid network address, mustn't be in reserved class"
+#: tiramisu/option/option.py:359
+msgid "shouldn't be in reserved class"
 msgstr ""
 
-#: tiramisu/option/option.py:376 tiramisu/option/option.py:379
-#: tiramisu/option/option.py:383
-msgid "invalid netmask address"
+#: tiramisu/option/option.py:368
+msgid "netmask address"
 msgstr ""
 
-#: tiramisu/option/option.py:400
+#: tiramisu/option/option.py:399
 msgid "invalid len for opts"
 msgstr ""
 
-#: tiramisu/option/option.py:409
-msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
+#: tiramisu/option/option.py:408
+msgid "this is a network with netmask {0} ({1})"
 msgstr ""
 
-#: tiramisu/option/option.py:412
-msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast"
+#: tiramisu/option/option.py:410
+msgid "this is a broadcast with netmask {0} ({1})"
 msgstr ""
 
-#: tiramisu/option/option.py:417
-msgid "invalid network {0} ({1}) with netmask {2}"
+#: tiramisu/option/option.py:414
+msgid "with netmask {0} ({1})"
 msgstr ""
 
-#: tiramisu/option/option.py:434
-msgid "invalid broadcast address"
+#: tiramisu/option/option.py:421
+msgid "broadcast address"
 msgstr ""
 
-#: tiramisu/option/option.py:443
-msgid "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
+#: tiramisu/option/option.py:439
+msgid "with network {0}/{1} ({2}/{3})"
 msgstr ""
 
-#: tiramisu/option/option.py:464
+#: tiramisu/option/option.py:451
+msgid "domain name"
+msgstr ""
+
+#: tiramisu/option/option.py:459
 msgid "unknown type_ {0} for hostname"
 msgstr ""
 
-#: tiramisu/option/option.py:467
+#: tiramisu/option/option.py:462
 msgid "allow_ip must be a boolean"
 msgstr ""
 
-#: tiramisu/option/option.py:469
+#: tiramisu/option/option.py:464
 msgid "allow_without_dot must be a boolean"
 msgstr ""
 
-#: tiramisu/option/option.py:495
-msgid "invalid domainname's length (min 1)"
+#: tiramisu/option/option.py:489
+msgid "invalid length (min 1)"
 msgstr ""
 
-#: tiramisu/option/option.py:497
-msgid "invalid domainname's length (max {0})"
+#: tiramisu/option/option.py:491
+msgid "invalid length (max {0})"
 msgstr ""
 
-#: tiramisu/option/option.py:512
-msgid "invalid domainname, must not be an IP"
+#: tiramisu/option/option.py:506
+msgid "must not be an IP"
 msgstr ""
 
-#: tiramisu/option/option.py:519
-msgid "invalid domainname, must have dot"
+#: tiramisu/option/option.py:513
+msgid "must have dot"
 msgstr ""
 
-#: tiramisu/option/option.py:521
-msgid "invalid domainname's length (max 255)"
+#: tiramisu/option/option.py:515
+msgid "invalid length (max 255)"
 msgstr ""
 
-#: tiramisu/option/option.py:532
+#: tiramisu/option/option.py:526
 msgid "some characters are uppercase"
 msgstr ""
 
-#: tiramisu/option/option.py:535
+#: tiramisu/option/option.py:529
 msgid "some characters may cause problems"
 msgstr ""
 
-#: tiramisu/option/option.py:537
-msgid "invalid domainname"
+#: tiramisu/option/option.py:550
+msgid "URL"
 msgstr ""
 
-#: tiramisu/option/option.py:563
-msgid "invalid email address, must contains one @"
+#: tiramisu/option/option.py:558
+msgid "must start with http:// or https://"
 msgstr ""
 
-#: tiramisu/option/option.py:566
-msgid "invalid username in email address"
+#: tiramisu/option/option.py:576
+msgid "port must be an between 0 and 65536"
 msgstr ""
 
-#: tiramisu/option/option.py:588
-msgid "invalid url, must start with http:// or https://"
+#: tiramisu/option/option.py:587
+msgid "must ends with a valid resource name"
 msgstr ""
 
-#: tiramisu/option/option.py:606
-msgid "invalid url, port must be an between 0 and 65536"
+#: tiramisu/option/option.py:608
+msgid "email address"
 msgstr ""
 
-#: tiramisu/option/option.py:617
-msgid "invalid url, must ends with a valid resource name"
+#: tiramisu/option/option.py:615
+msgid "username"
 msgstr ""
 
-#: tiramisu/option/option.py:635
-msgid "invalid username"
-msgstr ""
-
-#: tiramisu/option/option.py:649
-msgid "invalid filename"
+#: tiramisu/option/option.py:621
+msgid "file name"
 msgstr ""
 
 #: tiramisu/option/optiondescription.py:73
@@ -539,123 +568,143 @@ msgstr ""
 msgid "option must not start as dynoptiondescription"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:134
+#: tiramisu/option/optiondescription.py:106
+msgid "option description seems to be part of an other config"
+msgstr ""
+
+#: tiramisu/option/optiondescription.py:137
 msgid "malformed consistency option {0} must be a master/slaves"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:141
+#: tiramisu/option/optiondescription.py:144
 msgid "malformed consistency option {0} must not be a multi for {1}"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:145
+#: tiramisu/option/optiondescription.py:148
 msgid "malformed consistency option {0} must be in same master/slaves for {1}"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:170
+#: tiramisu/option/optiondescription.py:173
 msgid "malformed requirements option {0} must be in same master/slaves for {1}"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:174
+#: tiramisu/option/optiondescription.py:177
 msgid "malformed requirements option {0} must not be a multi for {1}"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:183
+#: tiramisu/option/optiondescription.py:186
 msgid "duplicate option: {0}"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:188
+#: tiramisu/option/optiondescription.py:191
 msgid "consistency with option {0} which is not in Config"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:201
+#: tiramisu/option/optiondescription.py:210
 msgid "a slave ({0}) cannot have force_store_value property"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:204
+#: tiramisu/option/optiondescription.py:213
 msgid "a dynoption ({0}) cannot have force_store_value property"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:218
+#: tiramisu/option/optiondescription.py:226
 msgid "cannot change group_type if already set (old {0}, new {1})"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:226
+#: tiramisu/option/optiondescription.py:235
+msgid "master group {0} shall not have a symlinkoption"
+msgstr ""
+
+#: tiramisu/option/optiondescription.py:238
+msgid "master group {0} shall not have a subgroup"
+msgstr ""
+
+#: tiramisu/option/optiondescription.py:241
+msgid "not allowed option {0} in group {1}: this option is not a multi"
+msgstr ""
+
+#: tiramisu/option/optiondescription.py:249
 msgid "group_type: {0} not allowed"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:288
+#: tiramisu/option/optiondescription.py:313
 msgid "DynOptionDescription callback return not uniq value"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:291
+#: tiramisu/option/optiondescription.py:316
 msgid "invalid suffix: {0} for option"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:348
+#: tiramisu/option/optiondescription.py:373
 msgid "cannot set optiondescription in a dynoptiondescription"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:353
-#: tiramisu/option/optiondescription.py:356
+#: tiramisu/option/optiondescription.py:378
+#: tiramisu/option/optiondescription.py:381
 msgid "cannot set symlinkoption in a dynoptiondescription"
 msgstr ""
 
-#: tiramisu/option/optiondescription.py:364
+#: tiramisu/option/optiondescription.py:388
 msgid "callback is mandatory for dynoptiondescription"
 msgstr ""
 
-#: tiramisu/setting.py:127
+#: tiramisu/setting.py:128
 msgid "can't rebind {0}"
 msgstr ""
 
-#: tiramisu/setting.py:132
+#: tiramisu/setting.py:133
 msgid "can't unbind {0}"
 msgstr ""
 
-#: tiramisu/setting.py:264
+#: tiramisu/setting.py:265
 msgid "cannot append {0} property for option {1}: this property is calculated"
 msgstr ""
 
-#: tiramisu/setting.py:268 tiramisu/setting.py:434
+#: tiramisu/setting.py:269 tiramisu/setting.py:435
 msgid "cannot add those properties: {0}"
 msgstr ""
 
-#: tiramisu/setting.py:357
+#: tiramisu/setting.py:358
 msgid "you should only append/remove properties"
 msgstr ""
 
-#: tiramisu/setting.py:361
+#: tiramisu/setting.py:362
 msgid "opt and all_properties must not be set together in reset"
 msgstr ""
 
-#: tiramisu/setting.py:382
+#: tiramisu/setting.py:383
 msgid "if opt is not None, path should not be None in _getproperties"
 msgstr ""
 
-#: tiramisu/setting.py:500
+#: tiramisu/setting.py:507
 msgid "cannot change the value for option {0} this option is frozen"
 msgstr ""
 
-#: tiramisu/setting.py:510
-msgid "trying to access to an {0} named: {1} with properties {2}"
-msgstr ""
-
-#: tiramisu/setting.py:529
+#: tiramisu/setting.py:538
 msgid "permissive must be a tuple"
 msgstr ""
 
-#: tiramisu/setting.py:536 tiramisu/value.py:536
+#: tiramisu/setting.py:545 tiramisu/value.py:528
 msgid "invalid generic owner {0}"
 msgstr ""
 
-#: tiramisu/setting.py:630
+#: tiramisu/setting.py:646
 msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
 msgstr ""
 
-#: tiramisu/setting.py:647
+#: tiramisu/setting.py:669
 msgid "option '{0}' has requirement's property error: {1} {2}"
 msgstr ""
 
+#: tiramisu/setting.py:692
+msgid "the value of \"{0}\" is \"{1}\""
+msgstr ""
+
+#: tiramisu/setting.py:694
+msgid "the value of \"{0}\" is not \"{1}\""
+msgstr ""
+
 #: tiramisu/storage/__init__.py:52
 msgid "storage_type is already set, cannot rebind it"
 msgstr ""
@@ -668,46 +717,46 @@ msgstr ""
 msgid "option {0} not already exists in storage {1}"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:102
+#: tiramisu/storage/dictionary/option.py:104
 msgid "invalid default_multi value {0} for option {1}: {2}"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:142
+#: tiramisu/storage/dictionary/option.py:144
 #: tiramisu/storage/dictionary/value.py:234
-#: tiramisu/storage/sqlalchemy/option.py:441
+#: tiramisu/storage/sqlalchemy/option.py:666
 msgid "information's item not found: {0}"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:383
+#: tiramisu/storage/dictionary/option.py:406
 msgid "use impl_get_opt_by_path only with root OptionDescription"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:385
-#: tiramisu/storage/sqlalchemy/option.py:485
+#: tiramisu/storage/dictionary/option.py:408
+#: tiramisu/storage/sqlalchemy/option.py:730
 msgid "no option for path {0}"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:390
-#: tiramisu/storage/sqlalchemy/option.py:494
+#: tiramisu/storage/dictionary/option.py:413
+#: tiramisu/storage/sqlalchemy/option.py:740
 msgid "use impl_get_path_by_opt only with root OptionDescription"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:392
-#: tiramisu/storage/sqlalchemy/option.py:495
+#: tiramisu/storage/dictionary/option.py:415
+#: tiramisu/storage/sqlalchemy/option.py:741
 msgid "no option {0} found"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:439
+#: tiramisu/storage/dictionary/option.py:462
 msgid "cannot find dynpath"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:528
-#: tiramisu/storage/sqlalchemy/option.py:640
+#: tiramisu/storage/dictionary/option.py:551
+#: tiramisu/storage/sqlalchemy/option.py:894
 msgid "suffix and context needed if it's a dyn option"
 msgstr ""
 
-#: tiramisu/storage/dictionary/option.py:549
-#: tiramisu/storage/sqlalchemy/option.py:670
+#: tiramisu/storage/dictionary/option.py:572
+#: tiramisu/storage/sqlalchemy/option.py:926
 msgid "unknown Option {0} in OptionDescription {1}"
 msgstr ""
 
@@ -728,27 +777,27 @@ msgstr ""
 msgid "information's item not found {0}"
 msgstr ""
 
-#: tiramisu/value.py:391
+#: tiramisu/value.py:378
 msgid "you should only set value with config"
 msgstr ""
 
-#: tiramisu/value.py:500
+#: tiramisu/value.py:489
 msgid "owner only avalaible for an option"
 msgstr ""
 
-#: tiramisu/value.py:541
+#: tiramisu/value.py:533
 msgid "no value for {0} cannot change owner to {1}"
 msgstr ""
 
-#: tiramisu/value.py:671
+#: tiramisu/value.py:667
 msgid "can force cache only if cache is actived in config"
 msgstr ""
 
-#: tiramisu/value.py:708
+#: tiramisu/value.py:704
 msgid "{0} is already a Multi "
 msgstr ""
 
-#: tiramisu/value.py:786
+#: tiramisu/value.py:784
 msgid "cannot append a value on a multi option {0} which is a slave"
 msgstr ""