diff --git a/Makefile b/Makefile index fce5f8d..203a6b7 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,10 @@ clean: #test: clean # py.test +# Build or update Portable Object Base Translation for gettext +build-pot: + pygettext.py -p translations/ -o tiramisu.pot `find tiramisu/ -name "*.py"` + build-lang: $(call build_translation, $(TRADUC_DIR)) @@ -73,4 +77,4 @@ dist: version.in && tar --xform "s,\(.*\),$(PACKAGE)-$(VERSION)/\1," -f $(PACKAGE)-$(VERSION).tar -r version.in \ && gzip -9 $(PACKAGE)-$(VERSION).tar -.PHONY: all clean test install version.in dist +.PHONY: all clean test install version.in dist build-pot diff --git a/tiramisu/option.py b/tiramisu/option.py index 50625fb..d5c11a1 100644 --- a/tiramisu/option.py +++ b/tiramisu/option.py @@ -83,8 +83,8 @@ class BaseInformation(object): elif default is not None: return default else: - raise ValueError(_("Information's item" - "not found: {0}").format(key)) + raise ValueError(_("information's item" + " not found: {0}").format(key)) except AttributeError: raise AttributeError(_('{0} has no attribute ' 'impl_get_information').format( @@ -704,7 +704,7 @@ class DomainnameOption(Option): raise ValueError(_("invalid value for {0}, must have dot" "").format(self._name)) if len(value) > length: - raise ValueError(_("invalid domainname's length for " + raise ValueError(_("invalid domainname's length for" " {0} (max {1})").format(self._name, length)) if len(value) == 1: raise ValueError(_("invalid domainname's length for {0} (min 2)" @@ -728,7 +728,7 @@ class OptionDescription(_ReadOnlyOption): """ if not valid_name(name): - raise ValueError(_("invalid name: " + raise ValueError(_("invalid name:" " {0} for optiondescription").format(name)) self._name = name self._impl_informations = {} @@ -905,7 +905,7 @@ class OptionDescription(_ReadOnlyOption): raise ValueError(_("no child has same nom has master group" " for: {0}").format(self._name)) else: - raise ValueError(_('group_type : {0}' + raise ValueError(_('group_type: {0}' ' not allowed').format(group_type)) def impl_get_group_type(self): diff --git a/translations/fr/tiramisu.po b/translations/fr/tiramisu.po index 7f1c10d..fd00df1 100644 --- a/translations/fr/tiramisu.po +++ b/translations/fr/tiramisu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-07-18 15:20+CEST\n" +"POT-Creation-Date: 2013-08-31 09:52+CEST\n" "PO-Revision-Date: \n" "Last-Translator: Emmanuel Garette \n" "Language-Team: LANGUAGE \n" @@ -11,18 +11,18 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" -#: tiramisu/autolib.py:49 +#: tiramisu/autolib.py:58 msgid "no config specified but needed" msgstr "aucune config spécifié alors que c'est nécessaire" -#: tiramisu/autolib.py:56 +#: tiramisu/autolib.py:65 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:65 +#: tiramisu/autolib.py:74 msgid "" "unable to carry out a calculation, option value with multi types must have " "same length for: {0}" @@ -30,86 +30,79 @@ msgstr "" "impossible d'effectuer le calcul, valeur d'un option avec le type multi doit " "avoir la même longueur pour : {0}" -#: tiramisu/config.py:45 +#: tiramisu/config.py:47 msgid "descr must be an optiondescription, not {0}" msgstr "descr doit être une optiondescription pas un {0}" -#: tiramisu/config.py:118 +#: tiramisu/config.py:121 msgid "unknown group_type: {0}" msgstr "group_type inconnu: {0}" -#: tiramisu/config.py:154 -msgid "no optiondescription for this config (may be metaconfig without meta)" +#: tiramisu/config.py:157 +msgid "" +"no option description found for this config (may be metaconfig without meta)" msgstr "" -"pas d'optiondescription pour cette config (par exemple metaconfig sans meta)" +"pas d'option description pour cette config (peut être une metaconfig sans " +"meta)" -#: tiramisu/config.py:312 -msgid "unknown type_ type {0} for _find" +#: tiramisu/config.py:311 +msgid "unknown type_ type {0}for _find" msgstr "type_ type {0} pour _find inconnu" -#: tiramisu/config.py:351 +#: tiramisu/config.py:350 msgid "no option found in config with these criteria" msgstr "aucune option trouvée dans la config avec ces critères" -#: tiramisu/config.py:394 +#: tiramisu/config.py:400 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:414 +#: tiramisu/config.py:421 msgid "unexpected path {0}, should start with {1}" msgstr "chemin imprévu {0}, devrait commencer par {1}" -#: tiramisu/config.py:527 -msgid "metaconfig's children must be a list" -msgstr "enfants d'une metaconfig doit être une liste" +#: tiramisu/config.py:481 +msgid "opt in getowner must be an option not {0}" +msgstr "opt dans getowner doit être une option pas {0}" -#: tiramisu/config.py:532 -msgid "metaconfig's children must be config, not {0}" -msgstr "enfants d'une metaconfig doit être une config, pas {0}" - -#: tiramisu/config.py:537 -msgid "all config in metaconfig must have same optiondescription" -msgstr "" -"toutes les configs d'une metaconfig doivent avoir la même optiondescription" - -#: tiramisu/config.py:540 -msgid "child has already a metaconfig's" -msgstr "enfant a déjà une metaconfig" - -#: tiramisu/option.py:70 +#: tiramisu/option.py:71 msgid "{0} has no attribute impl_set_information" msgstr "{0} n'a pas d'attribut impl_set_information" -#: tiramisu/option.py:84 -msgid "Information's item not found: {0}" -msgstr "l'élément information non trouvé: {0}" - #: tiramisu/option.py:86 +msgid "information's item not found: {0}" +msgstr "aucune config spécifié alors que c'est nécessaire" + +#: tiramisu/option.py:89 msgid "{0} has no attribute impl_get_information" msgstr "{0} n'a pas d'attribut impl_get_information" -#: tiramisu/option.py:124 +#: tiramisu/option.py:117 +msgid "'{0}' ({1}) object attribute '{2}' is read-only" +msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seul" + +#: tiramisu/option.py:159 msgid "invalid name: {0} for option" msgstr "nom invalide : {0} pour l'option" -#: tiramisu/option.py:134 +#: tiramisu/option.py:169 msgid "validator must be a function" msgstr "validator doit être une fonction" -#: tiramisu/option.py:141 +#: tiramisu/option.py:176 msgid "a default_multi is set whereas multi is False in option: {0}" msgstr "" "une default_multi est renseigné alors que multi est False dans l'option : {0}" -#: tiramisu/option.py:147 +#: tiramisu/option.py:182 msgid "invalid default_multi value {0} for option {1}: {2}" msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}" -#: tiramisu/option.py:150 +#: tiramisu/option.py:187 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é" -#: tiramisu/option.py:153 +#: tiramisu/option.py:190 msgid "" "params defined for a callback function but no callback defined yet for " "option {0}" @@ -117,183 +110,183 @@ msgstr "" "params définit pour une fonction callback mais par de callback défini encore " "pour l'option {0}" -#: tiramisu/option.py:174 tiramisu/option.py:718 +#: tiramisu/option.py:212 tiramisu/option.py:753 msgid "invalid properties type {0} for {1}, must be a tuple" msgstr "type des properties invalide {0} pour {1}, doit être un tuple" -#: tiramisu/option.py:273 +#: tiramisu/option.py:285 msgid "invalid value {0} for option {1} for object {2}" msgstr "valeur invalide {0} pour l'option {1} pour l'objet {2}" -#: tiramisu/option.py:278 tiramisu/value.py:368 +#: tiramisu/option.py:293 tiramisu/value.py:468 msgid "invalid value {0} for option {1}: {2}" msgstr "valeur invalide {0} pour l'option {1} : {2}" -#: tiramisu/option.py:290 +#: tiramisu/option.py:305 msgid "invalid value {0} for option {1} which must be a list" msgstr "valeur invalide {0} pour l'option {1} qui doit être une liste" -#: tiramisu/option.py:354 +#: tiramisu/option.py:374 msgid "invalid value {0} for option {1} must be different as {2} option" msgstr "" "valeur invalide {0} pour l'option {1} doit être différent que l'option {2}" -#: tiramisu/option.py:376 +#: tiramisu/option.py:396 msgid "values must be a tuple for {0}" msgstr "values doit être un tuple pour {0}" -#: tiramisu/option.py:379 +#: tiramisu/option.py:399 msgid "open_values must be a boolean for {0}" msgstr "open_values doit être un booléen pour {0}" -#: tiramisu/option.py:400 +#: tiramisu/option.py:420 msgid "value {0} is not permitted, only {1} is allowed" msgstr "valeur {0} n'est pas permit, seules {1} sont autorisées" -#: tiramisu/option.py:411 +#: tiramisu/option.py:432 msgid "value must be a boolean" msgstr "valeur doit être un booléen" -#: tiramisu/option.py:421 +#: tiramisu/option.py:442 msgid "value must be an integer" msgstr "valeur doit être un numbre" -#: tiramisu/option.py:431 +#: tiramisu/option.py:452 msgid "value must be a float" msgstr "valeur doit être un nombre flottant" -#: tiramisu/option.py:441 -msgid "value must be a string" -msgstr "valeur doit être une chaîne" +#: tiramisu/option.py:462 +msgid "value must be a string, not {0}" +msgstr "valeur doit être une chaîne, pas {0}" -#: tiramisu/option.py:452 +#: tiramisu/option.py:480 msgid "value must be an unicode" msgstr "valeur doit être une valeur unicode" -#: tiramisu/option.py:463 +#: tiramisu/option.py:490 msgid "malformed symlinkoption must be an option for symlink {0}" msgstr "symlinkoption mal formé doit être une option pour symlink {0}" -#: tiramisu/option.py:497 +#: tiramisu/option.py:526 msgid "IP mustn't not be in reserved class" msgstr "IP ne doit pas être d'une classe reservée" -#: tiramisu/option.py:499 +#: tiramisu/option.py:528 msgid "IP must be in private class" msgstr "IP doit être dans la classe privée" -#: tiramisu/option.py:535 +#: tiramisu/option.py:566 msgid "inconsistency in allowed range" msgstr "inconsistence dans la plage autorisée" -#: tiramisu/option.py:540 +#: tiramisu/option.py:571 msgid "max value is empty" msgstr "valeur maximum est vide" -#: tiramisu/option.py:576 +#: tiramisu/option.py:608 msgid "network mustn't not be in reserved class" msgstr "réseau ne doit pas être dans la classe reservée" -#: tiramisu/option.py:608 +#: tiramisu/option.py:640 msgid "invalid network {0} ({1}) with netmask {2} ({3}), this network is an IP" msgstr "réseau invalide {0} ({1}) avec masque {2} ({3}), ce réseau est une IP" -#: tiramisu/option.py:612 +#: tiramisu/option.py:645 msgid "invalid IP {0} ({1}) with netmask {2} ({3}), this IP is a network" msgstr "IP invalide {0} ({1}) avec masque {2} ({3}), cette IP est un réseau" -#: tiramisu/option.py:617 +#: tiramisu/option.py:650 msgid "invalid IP {0} ({1}) with netmask {2} ({3})" msgstr "IP invalide {0} ({1}) avec masque {2} ({3})" -#: tiramisu/option.py:619 +#: tiramisu/option.py:652 msgid "invalid network {0} ({1}) with netmask {2} ({3})" msgstr "réseau invalide {0} ({1}) avec masque {2} ({3})" -#: tiramisu/option.py:639 +#: tiramisu/option.py:672 msgid "unknown type_ {0} for hostname" msgstr "type_ inconnu {0} pour le nom d'hôte" -#: tiramisu/option.py:642 +#: tiramisu/option.py:675 msgid "allow_ip must be a boolean" msgstr "allow_ip doit être un booléen" -#: tiramisu/option.py:671 +#: tiramisu/option.py:704 msgid "invalid value for {0}, must have dot" msgstr "valeur invalide pour {0}, doit avoir un point" -#: tiramisu/option.py:674 +#: tiramisu/option.py:707 msgid "invalid domainname's length for {0} (max {1})" msgstr "longueur du nom de domaine invalide pour {0} (maximum {1})" -#: tiramisu/option.py:676 +#: tiramisu/option.py:710 msgid "invalid domainname's length for {0} (min 2)" msgstr "longueur du nom de domaine invalide pour {0} (minimum 2)" -#: tiramisu/option.py:680 +#: tiramisu/option.py:714 msgid "invalid domainname" msgstr "nom de domaine invalide" -#: tiramisu/option.py:696 +#: tiramisu/option.py:731 msgid "invalid name: {0} for optiondescription" msgstr "nom invalide : {0} pour l'optiondescription" -#: tiramisu/option.py:707 +#: tiramisu/option.py:743 msgid "duplicate option name: {0}" msgstr "nom de l'option dupliqué : {0}" -#: tiramisu/option.py:731 +#: tiramisu/option.py:769 msgid "unknown Option {0} in OptionDescription {1}" msgstr "Option {} inconnue pour l'OptionDescription{}" -#: tiramisu/option.py:795 +#: tiramisu/option.py:820 msgid "duplicate option: {0}" msgstr "option dupliquée : {0}" -#: tiramisu/option.py:805 +#: tiramisu/option.py:850 msgid "no option for path {0}" msgstr "pas d'option pour le chemin {0}" -#: tiramisu/option.py:811 +#: tiramisu/option.py:856 msgid "no option {0} found" msgstr "pas d'option {0} trouvée" -#: tiramisu/option.py:821 +#: tiramisu/option.py:866 msgid "cannot change group_type if already set (old {0}, new {1})" msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})" -#: tiramisu/option.py:833 +#: tiramisu/option.py:879 msgid "master group {0} shall not have a subgroup" msgstr "groupe maître {0} ne doit pas avoir de sous-groupe" -#: tiramisu/option.py:836 +#: tiramisu/option.py:882 msgid "master group {0} shall not have a symlinkoption" msgstr "groupe maître {0} ne doit pas avoir de symlinkoption" -#: tiramisu/option.py:839 +#: tiramisu/option.py:885 msgid "not allowed option {0} in group {1}: this option is not a multi" msgstr "" "option non autorisée {0} dans le groupe {1} : cette option n'est pas une " "multi" -#: tiramisu/option.py:849 +#: tiramisu/option.py:896 msgid "master group with wrong master name for {0}" msgstr "le groupe maître avec un nom de maître éroné pour {0}" -#: tiramisu/option.py:857 +#: tiramisu/option.py:905 msgid "no child has same nom has master group for: {0}" msgstr "pas d'enfant avec le nom du groupe maître pour {0} " -#: tiramisu/option.py:860 -msgid "not allowed group_type : {0}" -msgstr "group_type non autorisé : {0}" +#: tiramisu/option.py:908 +msgid "group_type: {0} not allowed" +msgstr "group_type : {0} non autorisé" -#: tiramisu/option.py:889 +#: tiramisu/option.py:946 msgid "malformed requirements type for option: {0}, must be a dict" msgstr "" "type requirements malformé pour l'option : {0}, doit être un dictionnaire" -#: tiramisu/option.py:905 +#: tiramisu/option.py:962 msgid "" "malformed requirements for option: {0} require must have option, expected " "and action keys" @@ -301,68 +294,87 @@ msgstr "" "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs " "option, exptected et action" -#: tiramisu/option.py:910 +#: tiramisu/option.py:967 msgid "malformed requirements for option: {0} inverse must be boolean" msgstr "requirements malformé pour l'option : {0} inverse doit être un booléen" -#: tiramisu/option.py:914 +#: tiramisu/option.py:971 msgid "malformed requirements for option: {0} transitive must be boolean" msgstr "requirements malformé pour l'option : {0} transitive doit être booléen" -#: tiramisu/option.py:918 +#: tiramisu/option.py:975 msgid "malformed requirements for option: {0} same_action must be boolean" msgstr "" "requirements malformé pour l'option : {0} same_action doit être un booléen" -#: tiramisu/option.py:923 +#: tiramisu/option.py:979 msgid "malformed requirements must be an option in option {0}" msgstr "requirements malformé doit être une option dans l'option {0}" -#: tiramisu/option.py:926 +#: tiramisu/option.py:982 msgid "malformed requirements option {0} should not be a multi" msgstr "requirements malformé l'option {0} ne doit pas être une multi" -#: tiramisu/option.py:932 +#: tiramisu/option.py:988 msgid "" "malformed requirements second argument must be valid for option {0}: {1}" msgstr "" "requirements malformé deuxième argument doit être valide pour l'option {0} : " "{1}" -#: tiramisu/option.py:936 +#: tiramisu/option.py:993 msgid "inconsistency in action types for option: {0} action: {1}" msgstr "incohérence dans les types action pour l'option : {0} action {1}" -#: tiramisu/setting.py:45 -msgid "can't rebind group ({})" -msgstr "ne peut reconsolider un groupe ({0})" +#: tiramisu/setting.py:47 +msgid "storage_type is already set, cannot rebind it" +msgstr "storage_type est déjà défini, impossible de le redéfinir" -#: tiramisu/setting.py:50 -msgid "can't unbind group ({})" -msgstr "ne peut délier un groupe ({0})" +#: tiramisu/setting.py:67 +msgid "can't rebind {0}" +msgstr "ne peut redéfinir ({0})" -#: tiramisu/setting.py:210 +#: tiramisu/setting.py:72 +msgid "can't unbind {0}" +msgstr "ne peut supprimer ({0})" + +#: tiramisu/setting.py:185 +msgid "cannot append {0} property for option {1}: this property is calculated" +msgstr "" +"ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est " +"calculée" + +#: tiramisu/setting.py:215 +msgid "option {0} not already exists in storage {1}" +msgstr "option {0} n'existe pas dans l'espace de stockage {1}" + +#: tiramisu/setting.py:282 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:294 +#: tiramisu/setting.py:297 +msgid "if opt is not None, path should not be None in _getproperties" +msgstr "" +"si opt n'est pas None, path devrait ne pas être à None dans _getproperties" + +#: tiramisu/setting.py:391 msgid "cannot change the value for option {0} this option is frozen" msgstr "" "ne peut modifié la valeur de l'option {0} cette option n'est pas modifiable" -#: tiramisu/setting.py:298 +#: tiramisu/setting.py:397 msgid "trying to access to an option named: {0} with properties {1}" msgstr "tentative d'accès à une option nommée : {0} avec les propriétés {1}" -#: tiramisu/setting.py:307 +#: tiramisu/setting.py:415 msgid "permissive must be a tuple" msgstr "permissive doit être un tuple" -#: tiramisu/setting.py:314 tiramisu/value.py:208 +#: tiramisu/setting.py:422 tiramisu/value.py:277 msgid "invalid generic owner {0}" msgstr "invalide owner générique {0}" -#: tiramisu/setting.py:367 +#: tiramisu/setting.py:503 msgid "" "malformed requirements imbrication detected for option: '{0}' with " "requirement on: '{1}'" @@ -370,48 +382,81 @@ msgstr "" "imbrication de requirements malformé detectée pour l'option : '{0}' avec " "requirement sur : '{1}'" -#: tiramisu/setting.py:377 +#: tiramisu/setting.py:515 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:383 -msgid "required option not found: {0}" -msgstr "option requise non trouvée : {0}" +#: tiramisu/storage/dictionary/storage.py:37 +msgid "dictionary storage cannot delete session" +msgstr "" +"impossible de supprimer une session dans un espace de stockage dictionary" -#: tiramisu/value.py:206 +#: tiramisu/storage/dictionary/storage.py:46 +msgid "session already used" +msgstr "session déjà utilisée" + +#: tiramisu/storage/dictionary/storage.py:48 +msgid "a dictionary cannot be persistent" +msgstr "un espace de stockage dictionary ne peut être persistant" + +#: tiramisu/value.py:284 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:270 +#: tiramisu/value.py:356 msgid "invalid len for the slave: {0} which has {1} as master" msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître" -#: tiramisu/value.py:286 +#: tiramisu/value.py:373 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" -#: tiramisu/value.py:306 +#: tiramisu/value.py:394 msgid "cannot append a value on a multi option {0} which is a slave" msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave" -#: tiramisu/value.py:334 +#: tiramisu/value.py:429 msgid "cannot sort multi option {0} if master or slave" msgstr "ne peut trier une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:342 +#: tiramisu/value.py:433 +msgid "cmp is not permitted in python v3 or greater" +msgstr "cmp n'est pas permis en python v3 ou supérieure" + +#: tiramisu/value.py:442 msgid "cannot reverse multi option {0} if master or slave" msgstr "ne peut inverser une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:350 +#: tiramisu/value.py:450 msgid "cannot insert multi option {0} if master or slave" msgstr "ne peut insérer une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:358 +#: tiramisu/value.py:458 msgid "cannot extend multi option {0} if master or slave" msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:381 +#: tiramisu/value.py:482 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 "metaconfig's children must be a list" +#~ msgstr "enfants d'une metaconfig doit être une liste" + +#~ msgid "metaconfig's children must be config, not {0}" +#~ msgstr "enfants d'une metaconfig doit être une config, pas {0}" + +#~ msgid "all config in metaconfig must have same optiondescription" +#~ msgstr "" +#~ "toutes les configs d'une metaconfig doivent avoir la même " +#~ "optiondescription" + +#~ msgid "child has already a metaconfig's" +#~ msgstr "enfant a déjà une metaconfig" + +#~ msgid "not allowed group_type : {0}" +#~ msgstr "group_type non autorisé : {0}" + +#~ msgid "required option not found: {0}" +#~ msgstr "option requise non trouvée : {0}" diff --git a/translations/tiramisu.pot b/translations/tiramisu.pot index faed4f3..d5c4ff6 100644 --- a/translations/tiramisu.pot +++ b/translations/tiramisu.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2013-07-18 15:20+CEST\n" +"POT-Creation-Date: 2013-08-31 09:52+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,375 +15,395 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: tiramisu/autolib.py:49 +#: tiramisu/autolib.py:58 msgid "no config specified but needed" msgstr "" -#: tiramisu/autolib.py:56 +#: tiramisu/autolib.py:65 msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}" msgstr "" -#: tiramisu/autolib.py:65 +#: tiramisu/autolib.py:74 msgid "unable to carry out a calculation, option value with multi types must have same length for: {0}" msgstr "" -#: tiramisu/config.py:45 +#: tiramisu/config.py:47 msgid "descr must be an optiondescription, not {0}" msgstr "" -#: tiramisu/config.py:118 +#: tiramisu/config.py:121 msgid "unknown group_type: {0}" msgstr "" -#: tiramisu/config.py:154 -msgid "no optiondescription for this config (may be metaconfig without meta)" +#: tiramisu/config.py:157 +msgid "no option description found for this config (may be metaconfig without meta)" msgstr "" -#: tiramisu/config.py:312 -msgid "unknown type_ type {0} for _find" +#: tiramisu/config.py:311 +msgid "unknown type_ type {0}for _find" msgstr "" -#: tiramisu/config.py:351 +#: tiramisu/config.py:350 msgid "no option found in config with these criteria" msgstr "" -#: tiramisu/config.py:394 +#: tiramisu/config.py:400 msgid "make_dict can't filtering with value without option" msgstr "" -#: tiramisu/config.py:414 +#: tiramisu/config.py:421 msgid "unexpected path {0}, should start with {1}" msgstr "" -#: tiramisu/config.py:527 -msgid "metaconfig's children must be a list" +#: tiramisu/config.py:481 +msgid "opt in getowner must be an option not {0}" msgstr "" -#: tiramisu/config.py:532 -msgid "metaconfig's children must be config, not {0}" -msgstr "" - -#: tiramisu/config.py:537 -msgid "all config in metaconfig must have same optiondescription" -msgstr "" - -#: tiramisu/config.py:540 -msgid "child has already a metaconfig's" -msgstr "" - -#: tiramisu/option.py:70 +#: tiramisu/option.py:71 msgid "{0} has no attribute impl_set_information" msgstr "" -#: tiramisu/option.py:84 -msgid "Information's item not found: {0}" +#: tiramisu/option.py:86 +msgid "information's item not found: {0}" msgstr "" -#: tiramisu/option.py:86 +#: tiramisu/option.py:89 msgid "{0} has no attribute impl_get_information" msgstr "" -#: tiramisu/option.py:124 +#: tiramisu/option.py:117 +msgid "'{0}' ({1}) object attribute '{2}' is read-only" +msgstr "" + +#: tiramisu/option.py:159 msgid "invalid name: {0} for option" msgstr "" -#: tiramisu/option.py:134 +#: tiramisu/option.py:169 msgid "validator must be a function" msgstr "" -#: tiramisu/option.py:141 +#: tiramisu/option.py:176 msgid "a default_multi is set whereas multi is False in option: {0}" msgstr "" -#: tiramisu/option.py:147 +#: tiramisu/option.py:182 msgid "invalid default_multi value {0} for option {1}: {2}" msgstr "" -#: tiramisu/option.py:150 +#: tiramisu/option.py:187 msgid "default value not allowed if option: {0} is calculated" msgstr "" -#: tiramisu/option.py:153 +#: tiramisu/option.py:190 msgid "params defined for a callback function but no callback defined yet for option {0}" msgstr "" -#: tiramisu/option.py:174 tiramisu/option.py:718 +#: tiramisu/option.py:212 tiramisu/option.py:753 msgid "invalid properties type {0} for {1}, must be a tuple" msgstr "" -#: tiramisu/option.py:273 +#: tiramisu/option.py:285 msgid "invalid value {0} for option {1} for object {2}" msgstr "" -#: tiramisu/option.py:278 tiramisu/value.py:368 +#: tiramisu/option.py:293 tiramisu/value.py:468 msgid "invalid value {0} for option {1}: {2}" msgstr "" -#: tiramisu/option.py:290 +#: tiramisu/option.py:305 msgid "invalid value {0} for option {1} which must be a list" msgstr "" -#: tiramisu/option.py:354 +#: tiramisu/option.py:374 msgid "invalid value {0} for option {1} must be different as {2} option" msgstr "" -#: tiramisu/option.py:376 +#: tiramisu/option.py:396 msgid "values must be a tuple for {0}" msgstr "" -#: tiramisu/option.py:379 +#: tiramisu/option.py:399 msgid "open_values must be a boolean for {0}" msgstr "" -#: tiramisu/option.py:400 +#: tiramisu/option.py:420 msgid "value {0} is not permitted, only {1} is allowed" msgstr "" -#: tiramisu/option.py:411 +#: tiramisu/option.py:432 msgid "value must be a boolean" msgstr "" -#: tiramisu/option.py:421 +#: tiramisu/option.py:442 msgid "value must be an integer" msgstr "" -#: tiramisu/option.py:431 +#: tiramisu/option.py:452 msgid "value must be a float" msgstr "" -#: tiramisu/option.py:441 -msgid "value must be a string" +#: tiramisu/option.py:462 +msgid "value must be a string, not {0}" msgstr "" -#: tiramisu/option.py:452 +#: tiramisu/option.py:480 msgid "value must be an unicode" msgstr "" -#: tiramisu/option.py:463 +#: tiramisu/option.py:490 msgid "malformed symlinkoption must be an option for symlink {0}" msgstr "" -#: tiramisu/option.py:497 +#: tiramisu/option.py:526 msgid "IP mustn't not be in reserved class" msgstr "" -#: tiramisu/option.py:499 +#: tiramisu/option.py:528 msgid "IP must be in private class" msgstr "" -#: tiramisu/option.py:535 +#: tiramisu/option.py:566 msgid "inconsistency in allowed range" msgstr "" -#: tiramisu/option.py:540 +#: tiramisu/option.py:571 msgid "max value is empty" msgstr "" -#: tiramisu/option.py:576 +#: tiramisu/option.py:608 msgid "network mustn't not be in reserved class" msgstr "" -#: tiramisu/option.py:608 +#: tiramisu/option.py:640 msgid "invalid network {0} ({1}) with netmask {2} ({3}), this network is an IP" msgstr "" -#: tiramisu/option.py:612 +#: tiramisu/option.py:645 msgid "invalid IP {0} ({1}) with netmask {2} ({3}), this IP is a network" msgstr "" -#: tiramisu/option.py:617 +#: tiramisu/option.py:650 msgid "invalid IP {0} ({1}) with netmask {2} ({3})" msgstr "" -#: tiramisu/option.py:619 +#: tiramisu/option.py:652 msgid "invalid network {0} ({1}) with netmask {2} ({3})" msgstr "" -#: tiramisu/option.py:639 +#: tiramisu/option.py:672 msgid "unknown type_ {0} for hostname" msgstr "" -#: tiramisu/option.py:642 +#: tiramisu/option.py:675 msgid "allow_ip must be a boolean" msgstr "" -#: tiramisu/option.py:671 +#: tiramisu/option.py:704 msgid "invalid value for {0}, must have dot" msgstr "" -#: tiramisu/option.py:674 +#: tiramisu/option.py:707 msgid "invalid domainname's length for {0} (max {1})" msgstr "" -#: tiramisu/option.py:676 +#: tiramisu/option.py:710 msgid "invalid domainname's length for {0} (min 2)" msgstr "" -#: tiramisu/option.py:680 +#: tiramisu/option.py:714 msgid "invalid domainname" msgstr "" -#: tiramisu/option.py:696 +#: tiramisu/option.py:731 msgid "invalid name: {0} for optiondescription" msgstr "" -#: tiramisu/option.py:707 +#: tiramisu/option.py:743 msgid "duplicate option name: {0}" msgstr "" -#: tiramisu/option.py:731 +#: tiramisu/option.py:769 msgid "unknown Option {0} in OptionDescription {1}" msgstr "" -#: tiramisu/option.py:795 +#: tiramisu/option.py:820 msgid "duplicate option: {0}" msgstr "" -#: tiramisu/option.py:805 +#: tiramisu/option.py:850 msgid "no option for path {0}" msgstr "" -#: tiramisu/option.py:811 +#: tiramisu/option.py:856 msgid "no option {0} found" msgstr "" -#: tiramisu/option.py:821 +#: tiramisu/option.py:866 msgid "cannot change group_type if already set (old {0}, new {1})" msgstr "" -#: tiramisu/option.py:833 +#: tiramisu/option.py:879 msgid "master group {0} shall not have a subgroup" msgstr "" -#: tiramisu/option.py:836 +#: tiramisu/option.py:882 msgid "master group {0} shall not have a symlinkoption" msgstr "" -#: tiramisu/option.py:839 +#: tiramisu/option.py:885 msgid "not allowed option {0} in group {1}: this option is not a multi" msgstr "" -#: tiramisu/option.py:849 +#: tiramisu/option.py:896 msgid "master group with wrong master name for {0}" msgstr "" -#: tiramisu/option.py:857 +#: tiramisu/option.py:905 msgid "no child has same nom has master group for: {0}" msgstr "" -#: tiramisu/option.py:860 -msgid "not allowed group_type : {0}" +#: tiramisu/option.py:908 +msgid "group_type: {0} not allowed" msgstr "" -#: tiramisu/option.py:889 +#: tiramisu/option.py:946 msgid "malformed requirements type for option: {0}, must be a dict" msgstr "" -#: tiramisu/option.py:905 +#: tiramisu/option.py:962 msgid "malformed requirements for option: {0} require must have option, expected and action keys" msgstr "" -#: tiramisu/option.py:910 +#: tiramisu/option.py:967 msgid "malformed requirements for option: {0} inverse must be boolean" msgstr "" -#: tiramisu/option.py:914 +#: tiramisu/option.py:971 msgid "malformed requirements for option: {0} transitive must be boolean" msgstr "" -#: tiramisu/option.py:918 +#: tiramisu/option.py:975 msgid "malformed requirements for option: {0} same_action must be boolean" msgstr "" -#: tiramisu/option.py:923 +#: tiramisu/option.py:979 msgid "malformed requirements must be an option in option {0}" msgstr "" -#: tiramisu/option.py:926 +#: tiramisu/option.py:982 msgid "malformed requirements option {0} should not be a multi" msgstr "" -#: tiramisu/option.py:932 +#: tiramisu/option.py:988 msgid "malformed requirements second argument must be valid for option {0}: {1}" msgstr "" -#: tiramisu/option.py:936 +#: tiramisu/option.py:993 msgid "inconsistency in action types for option: {0} action: {1}" msgstr "" -#: tiramisu/setting.py:45 -msgid "can't rebind group ({})" +#: tiramisu/setting.py:47 +msgid "storage_type is already set, cannot rebind it" msgstr "" -#: tiramisu/setting.py:50 -msgid "can't unbind group ({})" +#: tiramisu/setting.py:67 +msgid "can't rebind {0}" msgstr "" -#: tiramisu/setting.py:210 +#: tiramisu/setting.py:72 +msgid "can't unbind {0}" +msgstr "" + +#: tiramisu/setting.py:185 +msgid "cannot append {0} property for option {1}: this property is calculated" +msgstr "" + +#: tiramisu/setting.py:215 +msgid "option {0} not already exists in storage {1}" +msgstr "" + +#: tiramisu/setting.py:282 msgid "opt and all_properties must not be set together in reset" msgstr "" -#: tiramisu/setting.py:294 +#: tiramisu/setting.py:297 +msgid "if opt is not None, path should not be None in _getproperties" +msgstr "" + +#: tiramisu/setting.py:391 msgid "cannot change the value for option {0} this option is frozen" msgstr "" -#: tiramisu/setting.py:298 +#: tiramisu/setting.py:397 msgid "trying to access to an option named: {0} with properties {1}" msgstr "" -#: tiramisu/setting.py:307 +#: tiramisu/setting.py:415 msgid "permissive must be a tuple" msgstr "" -#: tiramisu/setting.py:314 tiramisu/value.py:208 +#: tiramisu/setting.py:422 tiramisu/value.py:277 msgid "invalid generic owner {0}" msgstr "" -#: tiramisu/setting.py:367 +#: tiramisu/setting.py:503 msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'" msgstr "" -#: tiramisu/setting.py:377 +#: tiramisu/setting.py:515 msgid "option '{0}' has requirement's property error: {1} {2}" msgstr "" -#: tiramisu/setting.py:383 -msgid "required option not found: {0}" +#: tiramisu/storage/dictionary/storage.py:37 +msgid "dictionary storage cannot delete session" msgstr "" -#: tiramisu/value.py:206 +#: tiramisu/storage/dictionary/storage.py:46 +msgid "session already used" +msgstr "" + +#: tiramisu/storage/dictionary/storage.py:48 +msgid "a dictionary cannot be persistent" +msgstr "" + +#: tiramisu/value.py:284 msgid "no value for {0} cannot change owner to {1}" msgstr "" -#: tiramisu/value.py:270 +#: tiramisu/value.py:356 msgid "invalid len for the slave: {0} which has {1} as master" msgstr "" -#: tiramisu/value.py:286 +#: tiramisu/value.py:373 msgid "invalid len for the master: {0} which has {1} as slave with greater len" msgstr "" -#: tiramisu/value.py:306 +#: tiramisu/value.py:394 msgid "cannot append a value on a multi option {0} which is a slave" msgstr "" -#: tiramisu/value.py:334 +#: tiramisu/value.py:429 msgid "cannot sort multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:342 +#: tiramisu/value.py:433 +msgid "cmp is not permitted in python v3 or greater" +msgstr "" + +#: tiramisu/value.py:442 msgid "cannot reverse multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:350 +#: tiramisu/value.py:450 msgid "cannot insert multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:358 +#: tiramisu/value.py:458 msgid "cannot extend multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:381 +#: tiramisu/value.py:482 msgid "cannot pop a value on a multi option {0} which is a slave" msgstr ""