error in external function should returns explicit error message

This commit is contained in:
Emmanuel Garette 2017-02-11 18:11:05 +01:00
parent 695de030ef
commit 80f6f4ba03
6 changed files with 329 additions and 260 deletions

View File

@ -53,6 +53,14 @@ def is_config(config, **kwargs):
return 'no' return 'no'
def return_raise(*arg):
raise Exception('test')
def return_valueerror(*arg):
raise ValueError('test')
def make_description_duplicates(): def make_description_duplicates():
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref') gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
## dummy 1 ## dummy 1
@ -973,3 +981,21 @@ def test_re_set_callback():
st2 = StrOption('st2', "", multi=True) st2 = StrOption('st2', "", multi=True)
st2.impl_set_callback(return_value, {'': ((st1, False),)}) st2.impl_set_callback(return_value, {'': ((st1, False),)})
raises(ConfigError, "st2.impl_set_callback(return_value, {'': ((st1, False),)})") raises(ConfigError, "st2.impl_set_callback(return_value, {'': ((st1, False),)})")
def test_callback_raise():
opt1 = BoolOption('opt1', 'Option 1', callback=return_raise)
opt2 = BoolOption('opt2', 'Option 2', callback=return_valueerror)
od1 = OptionDescription('od1', '', [opt1])
od2 = OptionDescription('od2', '', [opt2])
maconfig = OptionDescription('rootconfig', '', [od1, od2])
cfg = Config(maconfig)
cfg.read_write()
try:
cfg.od1.opt1
except Exception, err:
assert '"Option 1"' in str(err)
try:
cfg.od2.opt2
except ValueError, err:
assert '"Option 2"' in str(err)

View File

@ -17,12 +17,12 @@ msg_err = _('attention, "{0}" could be an invalid {1} for "{2}", {3}')
def return_true(value, param=None): def return_true(value, param=None):
if value == 'val' and param in [None, 'yes']: if value == 'val' and param in [None, 'yes']:
return True return True
return ValueError('test error') raise ValueError('test error')
def return_false(value, param=None): def return_false(value, param=None):
if value == 'val' and param in [None, 'yes']: if value == 'val' and param in [None, 'yes']:
return ValueError('test error') raise ValueError('test error')
def return_val(value, param=None): def return_val(value, param=None):
@ -31,7 +31,7 @@ def return_val(value, param=None):
def return_if_val(value): def return_if_val(value):
if value != 'val': if value != 'val':
return ValueError('test error') raise ValueError('test error')
def is_context(value, context): def is_context(value, context):
@ -95,6 +95,11 @@ def test_validator():
cfg = Config(root) cfg = Config(root)
assert cfg.opt1 == 'val' assert cfg.opt1 == 'val'
raises(ValueError, "cfg.opt2 = 'val'") raises(ValueError, "cfg.opt2 = 'val'")
try:
cfg.opt2 = 'val'
except ValueError, err:
msg = _('"{0}" is an invalid {1} for "{2}", {3}').format('val', _('string'), 'opt2', 'test error')
assert str(err) == msg
def test_validator_params(): def test_validator_params():

View File

@ -25,7 +25,7 @@ from .setting import undefined
def carry_out_calculation(option, context, callback, callback_params, def carry_out_calculation(option, context, callback, callback_params,
index=undefined, validate=True): index=undefined, validate=True, is_validator=False):
"""a function that carries out a calculation for an option's value """a function that carries out a calculation for an option's value
:param option: the option :param option: the option
@ -38,6 +38,7 @@ def carry_out_calculation(option, context, callback, callback_params,
:type callback_params: dict :type callback_params: dict
:param index: if an option is multi, only calculates the nth value :param index: if an option is multi, only calculates the nth value
:type index: int :type index: int
:param is_validator: to know if carry_out_calculation is used to validate a value
The callback_params is a dict. Key is used to build args (if key is '') The callback_params is a dict. Key is used to build args (if key is '')
and kwargs (otherwise). Values are tuple of: and kwargs (otherwise). Values are tuple of:
@ -216,7 +217,7 @@ def carry_out_calculation(option, context, callback, callback_params,
args.append(val) args.append(val)
else: else:
kwargs[key] = val kwargs[key] = val
return calculate(callback, args, kwargs) return calculate(option, callback, is_validator, args, kwargs)
else: else:
# no value is multi # no value is multi
# return a single value # return a single value
@ -229,7 +230,7 @@ def carry_out_calculation(option, context, callback, callback_params,
args.append(couple[0]) args.append(couple[0])
else: else:
kwargs[key] = couple[0] kwargs[key] = couple[0]
ret = calculate(callback, args, kwargs) ret = calculate(option, callback, is_validator, args, kwargs)
if not option.impl_is_optiondescription() and callback_params != {} and isinstance(ret, list) and \ if not option.impl_is_optiondescription() and callback_params != {} and isinstance(ret, list) and \
option.impl_is_master_slaves('slave'): option.impl_is_master_slaves('slave'):
if not has_option and index not in [None, undefined]: if not has_option and index not in [None, undefined]:
@ -243,7 +244,7 @@ def carry_out_calculation(option, context, callback, callback_params,
return ret return ret
def calculate(callback, args, kwargs): def calculate(option, callback, is_validator, args, kwargs):
"""wrapper that launches the 'callback' """wrapper that launches the 'callback'
:param callback: callback function :param callback: callback function
@ -254,4 +255,11 @@ def calculate(callback, args, kwargs):
try: try:
return callback(*args, **kwargs) return callback(*args, **kwargs)
except ValueError as err: except ValueError as err:
return err if is_validator:
return err
error = err
except Exception as err:
error = err
raise error.__class__(_('function "{0}" returns "{1}" for option "{2}"').format(callback.func_name,
option.impl_get_display_name(),
str(err)))

View File

@ -571,7 +571,8 @@ class Option(OnlyOption):
value = carry_out_calculation(current_opt, context=context, value = carry_out_calculation(current_opt, context=context,
callback=validator, callback=validator,
callback_params=validator_params_, callback_params=validator_params_,
index=_index) index=_index,
is_validator=True)
if isinstance(value, Exception): if isinstance(value, Exception):
return value return value

View File

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Tiramisu\n" "Project-Id-Version: Tiramisu\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-19 21:26+0100\n" "POT-Creation-Date: 2017-02-11 18:05+0100\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n" "Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
"Language-Team: Tiramisu's team <egarette@cadoles.com>\n" "Language-Team: Tiramisu's team <egarette@cadoles.com>\n"
@ -14,18 +14,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: tiramisu/autolib.py:172 #: tiramisu/autolib.py:178
msgid "" msgid ""
"unable to carry out a calculation, option {0} has properties: {1} for: {2}" "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
msgstr "" msgstr ""
"impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : " "impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : "
"{2}" "{2}"
#: tiramisu/autolib.py:237 #: tiramisu/autolib.py:242
msgid "callback cannot return a list for a slave option ({0})" msgid "callback cannot return a list for a slave option ({0})"
msgstr "" msgstr ""
"un calcul ne peut pas retourner une liste pour une option esclave ({0})" "un calcul ne peut pas retourner une liste pour une option esclave ({0})"
#: tiramisu/autolib.py:263
msgid "function \"{0}\" returns \"{1}\" for option \"{2}\""
msgstr "la fonction \"{0}\" retourne \"{1}\" pour l'option \"{2}\""
#: tiramisu/config.py:64 #: tiramisu/config.py:64
msgid "descr must be an optiondescription, not {0}" msgid "descr must be an optiondescription, not {0}"
msgstr "descr doit être une optiondescription pas un {0}" msgstr "descr doit être une optiondescription pas un {0}"
@ -35,7 +39,7 @@ msgid "unknown group_type: {0}"
msgstr "group_type inconnu: {0}" msgstr "group_type inconnu: {0}"
#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54 #: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54
#: tiramisu/value.py:749 #: tiramisu/value.py:756
msgid "the context does not exist anymore" msgid "the context does not exist anymore"
msgstr "le context n'existe plus" msgstr "le context n'existe plus"
@ -98,20 +102,20 @@ msgstr "un nom doit être donné à la config avant de créer un groupconfig"
msgid "config name must be uniq in groupconfig for {0}" msgid "config name must be uniq in groupconfig for {0}"
msgstr "le nom de la config doit être unique dans un groupconfig pour {0}" msgstr "le nom de la config doit être unique dans un groupconfig pour {0}"
#: tiramisu/config.py:876 #: tiramisu/config.py:878
msgid "metaconfig's children should be config, not {0}" msgid "metaconfig's children should be config, not {0}"
msgstr "enfants d'une metaconfig doit être une config, pas {0}" msgstr "enfants d'une metaconfig doit être une config, pas {0}"
#: tiramisu/config.py:880 #: tiramisu/config.py:882
msgid "child has already a metaconfig's" msgid "child has already a metaconfig's"
msgstr "enfant a déjà une metaconfig" msgstr "enfant a déjà une metaconfig"
#: tiramisu/config.py:884 #: tiramisu/config.py:886
msgid "all config in metaconfig must have the same optiondescription" msgid "all config in metaconfig must have the same optiondescription"
msgstr "" msgstr ""
"toutes les configs d'une metaconfig doivent avoir la même optiondescription" "toutes les configs d'une metaconfig doivent avoir la même optiondescription"
#: tiramisu/config.py:899 #: tiramisu/config.py:901
msgid "" msgid ""
"force_default, force_default_if_same or force_dont_change_value cannot be " "force_default, force_default_if_same or force_dont_change_value cannot be "
"set with only_config" "set with only_config"
@ -119,7 +123,7 @@ msgstr ""
"force_default, force_default_if_same ou force_dont_change_value ne peuvent " "force_default, force_default_if_same ou force_dont_change_value ne peuvent "
"pas être spécifié avec only_config" "pas être spécifié avec only_config"
#: tiramisu/config.py:905 #: tiramisu/config.py:907
msgid "force_default and force_dont_change_value cannot be set together" msgid "force_default and force_dont_change_value cannot be set together"
msgstr "" msgstr ""
"force_default et force_dont_change_value ne peuvent pas être mis ensemble" "force_default et force_dont_change_value ne peuvent pas être mis ensemble"
@ -132,19 +136,23 @@ msgstr "et"
msgid "or" msgid "or"
msgstr "ou" msgstr "ou"
#: tiramisu/error.py:34 #: tiramisu/error.py:48
msgid " {} " msgid " {} "
msgstr " {} " msgstr " {} "
#: tiramisu/error.py:58 #: tiramisu/error.py:81 tiramisu/setting.py:514
msgid "property" msgid "property"
msgstr "de la propriété" msgstr "de la propriété"
#: tiramisu/error.py:60 #: tiramisu/error.py:83 tiramisu/setting.py:516
msgid "properties" msgid "properties"
msgstr "des propriétés" msgstr "des propriétés"
#: tiramisu/error.py:62 tiramisu/setting.py:520 #: tiramisu/error.py:86
msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}"
msgstr "ne peut accéder à {0} \"{1}\" parce que \"{2}\" a {3} {4}"
#: tiramisu/error.py:92 tiramisu/setting.py:517
msgid "cannot access to {0} \"{1}\" because has {2} {3}" msgid "cannot access to {0} \"{1}\" because has {2} {3}"
msgstr "ne peut accéder à l'{0} \"{1}\" a cause {2} {3}" msgstr "ne peut accéder à l'{0} \"{1}\" a cause {2} {3}"
@ -236,118 +244,118 @@ msgstr "invalide caractère"
msgid "invalid unicode or string" msgid "invalid unicode or string"
msgstr "invalide unicode ou string" msgstr "invalide unicode ou string"
#: tiramisu/option/baseoption.py:510 tiramisu/option/baseoption.py:609 #: tiramisu/option/baseoption.py:515 tiramisu/option/baseoption.py:613
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}" msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}"
msgstr "" msgstr ""
"attention, \"{0}\" peut être une option de type {1} invalide pour \"{2}\", " "attention, \"{0}\" peut être une option de type {1} invalide pour \"{2}\", "
"{3}" "{3}"
#: tiramisu/option/baseoption.py:548 tiramisu/option/baseoption.py:661 #: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:665
msgid "invalid value \"{}\", this value is already in \"{}\"" msgid "invalid value \"{}\", this value is already in \"{}\""
msgstr "valeur invalide \"{}\", cette valeur est déjà dans \"{}\"" msgstr "valeur invalide \"{}\", cette valeur est déjà dans \"{}\""
#: tiramisu/option/baseoption.py:590 tiramisu/option/baseoption.py:628 #: tiramisu/option/baseoption.py:594 tiramisu/option/baseoption.py:632
msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}" msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}"
msgstr "\"{0}\" est une valeur invalide pour l'option \"{2}\" de type {1}, {3}" msgstr "\"{0}\" est une valeur invalide pour l'option \"{2}\" de type {1}, {3}"
#: tiramisu/option/baseoption.py:594 tiramisu/option/baseoption.py:632 #: tiramisu/option/baseoption.py:598 tiramisu/option/baseoption.py:636
msgid "\"{0}\" is an invalid {1} for \"{2}\"" msgid "\"{0}\" is an invalid {1} for \"{2}\""
msgstr "\"{0}\" est une valeur invalide pour l'option \"{2}\" de type {1}" msgstr "\"{0}\" est une valeur invalide pour l'option \"{2}\" de type {1}"
#: tiramisu/option/baseoption.py:606 #: tiramisu/option/baseoption.py:610
msgid "do_validation for {0}: error in value" msgid "do_validation for {0}: error in value"
msgstr "do_validation for {0} : erreur dans un la valeur" msgstr "do_validation for {0} : erreur dans un la valeur"
#: tiramisu/option/baseoption.py:648 tiramisu/option/baseoption.py:666 #: tiramisu/option/baseoption.py:652 tiramisu/option/baseoption.py:670
msgid "invalid value \"{0}\" for \"{1}\" which must be a list" msgid "invalid value \"{0}\" for \"{1}\" which must be a list"
msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste" msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste"
#: tiramisu/option/baseoption.py:653 #: tiramisu/option/baseoption.py:657
msgid "invalid value \"{}\" for \"{}\" which must not be a list" msgid "invalid value \"{}\" for \"{}\" which must not be a list"
msgstr "valeur invalide \"{0}\" pour \"{1}\" qui ne doit pas être une liste" msgstr "valeur invalide \"{0}\" pour \"{1}\" qui ne doit pas être une liste"
#: tiramisu/option/baseoption.py:675 #: tiramisu/option/baseoption.py:679
msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list" msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list"
msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste de liste" msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste de liste"
#: tiramisu/option/baseoption.py:728 tiramisu/option/baseoption.py:732 #: tiramisu/option/baseoption.py:732 tiramisu/option/baseoption.py:736
msgid "cannot add consistency with submulti option" msgid "cannot add consistency with submulti option"
msgstr "ne peut ajouter de test de consistence a une option submulti" msgstr "ne peut ajouter de test de consistence a une option submulti"
#: tiramisu/option/baseoption.py:734 #: tiramisu/option/baseoption.py:738
msgid "consistency must be set with an option" msgid "consistency must be set with an option"
msgstr "consistency doit être configuré avec une option" msgstr "consistency doit être configuré avec une option"
#: tiramisu/option/baseoption.py:737 tiramisu/option/baseoption.py:744 #: tiramisu/option/baseoption.py:741 tiramisu/option/baseoption.py:748
msgid "" msgid ""
"almost one option in consistency is in a dynoptiondescription but not all" "almost one option in consistency is in a dynoptiondescription but not all"
msgstr "" msgstr ""
"au moins une option dans le test de consistance est dans une " "au moins une option dans le test de consistance est dans une "
"dynoptiondescription mais pas toutes" "dynoptiondescription mais pas toutes"
#: tiramisu/option/baseoption.py:740 #: tiramisu/option/baseoption.py:744
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
"option dans une consistency doit être dans le même dynoptiondescription" "option dans une consistency doit être dans le même dynoptiondescription"
#: tiramisu/option/baseoption.py:747 #: tiramisu/option/baseoption.py:751
msgid "cannot add consistency with itself" msgid "cannot add consistency with itself"
msgstr "ne peut ajouter une consistency avec lui même" msgstr "ne peut ajouter une consistency avec lui même"
#: tiramisu/option/baseoption.py:749 #: tiramisu/option/baseoption.py:753
msgid "every options in consistency must be multi or none" msgid "every options in consistency must be multi or none"
msgstr "" msgstr ""
"toutes les options d'une consistency doivent être multi ou ne pas l'être" "toutes les options d'une consistency doivent être multi ou ne pas l'être"
#: tiramisu/option/baseoption.py:766 #: tiramisu/option/baseoption.py:770
msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr "" msgstr ""
"'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul" "'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul"
#: tiramisu/option/baseoption.py:773 #: tiramisu/option/baseoption.py:777
msgid "consistency {0} not available for this option" msgid "consistency {0} not available for this option"
msgstr "consistency {0} non valable pour cette option" msgstr "consistency {0} non valable pour cette option"
#: tiramisu/option/baseoption.py:777 #: tiramisu/option/baseoption.py:781
msgid "unknow parameter {0} in consistency" msgid "unknow parameter {0} in consistency"
msgstr "paramètre inconnu {0} dans un test de consistance" msgstr "paramètre inconnu {0} dans un test de consistance"
#: tiramisu/option/baseoption.py:841 #: tiramisu/option/baseoption.py:845
msgid "_cons_not_equal: {} are not different" msgid "_cons_not_equal: {} are not different"
msgstr "_cons_not_equal: {} sont différents" msgstr "_cons_not_equal: {} sont différents"
#: tiramisu/option/baseoption.py:844 #: tiramisu/option/baseoption.py:848
msgid "should be different from the value of {}" msgid "should be different from the value of {}"
msgstr "devrait être différent de la valeur de {}" msgstr "devrait être différent de la valeur de {}"
#: tiramisu/option/baseoption.py:846 #: tiramisu/option/baseoption.py:850
msgid "must be different from the value of {}" msgid "must be different from the value of {}"
msgstr "doit être différent de la valeur de {}" msgstr "doit être différent de la valeur de {}"
#: tiramisu/option/baseoption.py:849 #: tiramisu/option/baseoption.py:853
msgid "value for {} should be different" msgid "value for {} should be different"
msgstr "valeur pour {} devrait être différent" msgstr "valeur pour {} devrait être différent"
#: tiramisu/option/baseoption.py:851 #: tiramisu/option/baseoption.py:855
msgid "value for {} must be different" msgid "value for {} must be different"
msgstr "valeur pour {} doit être différent" msgstr "valeur pour {} doit être différent"
#: tiramisu/option/baseoption.py:910 #: tiramisu/option/baseoption.py:914
msgid "default value not allowed if option: {0} is calculated" 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" msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée"
#: tiramisu/option/baseoption.py:930 #: tiramisu/option/baseoption.py:934
msgid "malformed requirements type for option: {0}, must be a dict" msgid "malformed requirements type for option: {0}, must be a dict"
msgstr "" msgstr ""
"type requirements malformé pour l'option : {0}, doit être un dictionnaire" "type requirements malformé pour l'option : {0}, doit être un dictionnaire"
#: tiramisu/option/baseoption.py:936 #: tiramisu/option/baseoption.py:940
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}" msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} clefs inconnues {1}, doit " "requirements mal formés pour l'option : {0} clefs inconnues {1}, doit "
"seulement avoir {2}" "seulement avoir {2}"
#: tiramisu/option/baseoption.py:944 #: tiramisu/option/baseoption.py:948
msgid "" msgid ""
"malformed requirements for option: {0} require must have option, expected " "malformed requirements for option: {0} require must have option, expected "
"and action keys" "and action keys"
@ -355,33 +363,33 @@ msgstr ""
"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs " "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
"option, expected et action" "option, expected et action"
#: tiramisu/option/baseoption.py:951 #: tiramisu/option/baseoption.py:955
msgid "" msgid ""
"malformed requirements for option: {0} action cannot be force_store_value" "malformed requirements for option: {0} action cannot be force_store_value"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} action ne peut pas être " "requirements mal formés pour l'option : {0} action ne peut pas être "
"force_store_value" "force_store_value"
#: tiramisu/option/baseoption.py:956 #: tiramisu/option/baseoption.py:960
msgid "malformed requirements for option: {0} inverse must be boolean" msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} inverse doit être un booléen" "requirements mal formés pour l'option : {0} inverse doit être un booléen"
#: tiramisu/option/baseoption.py:960 #: tiramisu/option/baseoption.py:964
msgid "malformed requirements for option: {0} transitive must be boolean" msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} transitive doit être booléen" "requirements mal formés pour l'option : {0} transitive doit être booléen"
#: tiramisu/option/baseoption.py:964 #: tiramisu/option/baseoption.py:968
msgid "malformed requirements for option: {0} same_action must be boolean" msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} same_action doit être un booléen" "requirements mal formés pour l'option : {0} same_action doit être un booléen"
#: tiramisu/option/baseoption.py:968 #: tiramisu/option/baseoption.py:972
msgid "malformed requirements must be an option in option {0}" msgid "malformed requirements must be an option in option {0}"
msgstr "requirements mal formés doit être une option dans l'option {0}" msgstr "requirements mal formés doit être une option dans l'option {0}"
#: tiramisu/option/baseoption.py:971 #: tiramisu/option/baseoption.py:975
msgid "" msgid ""
"malformed requirements multi option must not set as requires of non multi " "malformed requirements multi option must not set as requires of non multi "
"option {0}" "option {0}"
@ -389,245 +397,251 @@ msgstr ""
"requirements mal formés une option multiple ne doit pas être spécifié comme " "requirements mal formés une option multiple ne doit pas être spécifié comme "
"pré-requis à l'option non multiple {0}" "pré-requis à l'option non multiple {0}"
#: tiramisu/option/baseoption.py:977 #: tiramisu/option/baseoption.py:981
msgid "malformed requirements expected value must be valid for option {0}: {1}" msgid "malformed requirements expected value must be valid for option {0}: {1}"
msgstr "" msgstr ""
"valeur de \"expected\" malformé, doit être valide pour l'option {0} : {1}" "valeur de \"expected\" malformé, doit être valide pour l'option {0} : {1}"
#: tiramisu/option/baseoption.py:1007 #: tiramisu/option/baseoption.py:1011
msgid "malformed symlinkoption must be an option for symlink {0}" msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "symlinkoption mal formé, doit être une option pour symlink {0}" msgstr "symlinkoption mal formé, doit être une option pour symlink {0}"
#: tiramisu/option/masterslave.py:44 #: tiramisu/option/masterslave.py:45
msgid "master group with wrong master name for {0}" msgid "master group with wrong master name for {0}"
msgstr "le groupe maître avec un nom de maître érroné pour {0}" msgstr "le groupe maître avec un nom de maître érroné pour {0}"
#: tiramisu/option/masterslave.py:49 #: tiramisu/option/masterslave.py:50
msgid "not allowed default value for option {0} in group {1}" msgid "not allowed default value for option {0} in master/slave object {1}"
msgstr "valeur de défaut non autorisée pour l'option {0} du groupe {1}" msgstr ""
"valeur par défaut non autorisée pour l'option {0} dans l'objet master/slave "
"{1}"
#: tiramisu/option/masterslave.py:60 #: tiramisu/option/masterslave.py:61
msgid "callback of master's option shall not refered a slave's ones" msgid "callback of master's option shall not refered a slave's ones"
msgstr "" msgstr ""
"callback d'une variable maitre ne devrait pas référencer des variables " "callback d'une variable maitre ne devrait pas référencer des variables "
"esclaves" "esclaves"
#: tiramisu/option/masterslave.py:271 #: tiramisu/option/masterslave.py:274
msgid "invalid len for the slave: {0} which has {1} as master" 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" msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître"
#: tiramisu/option/option.py:40 #: tiramisu/option/option.py:41
msgid "choice" msgid "choice"
msgstr "choix" msgstr "choix"
#: tiramisu/option/option.py:54 #: tiramisu/option/option.py:55
msgid "values is not a function, so values_params must be None" msgid "values is not a function, so values_params must be None"
msgstr "values n'est pas une fonction, donc values_params doit être None" msgstr "values n'est pas une fonction, donc values_params doit être None"
#: tiramisu/option/option.py:56 #: tiramisu/option/option.py:57
msgid "values must be a tuple or a function for {0}" msgid "values must be a tuple or a function for {0}"
msgstr "values doit être un tuple ou une fonction pour {0}" msgstr "values doit être un tuple ou une fonction pour {0}"
#: tiramisu/option/option.py:93 #: tiramisu/option/option.py:89
msgid "calculated values for {0} is not a list" msgid "calculated values for {0} is not a list"
msgstr "valeurs calculées for {0} n'est pas une liste" msgstr "valeurs calculées for {0} n'est pas une liste"
#: tiramisu/option/option.py:104 #: tiramisu/option/option.py:100
msgid "only {0} is allowed" msgid "only {0} is allowed"
msgstr "seulement {0} est autorisé" msgstr "seulement {0} est autorisé"
#: tiramisu/option/option.py:107 #: tiramisu/option/option.py:103
msgid "only {0} are allowed" msgid "only {0} are allowed"
msgstr "seulement {0} sont autorisés" msgstr "seulement {0} sont autorisés"
#: tiramisu/option/option.py:114 #: tiramisu/option/option.py:110
msgid "boolean" msgid "boolean"
msgstr "booléen" msgstr "booléen"
#: tiramisu/option/option.py:124 #: tiramisu/option/option.py:120
msgid "integer" msgid "integer"
msgstr "nombre" msgstr "nombre"
#: tiramisu/option/option.py:134 #: tiramisu/option/option.py:130
msgid "float" msgid "float"
msgstr "nombre flottant" msgstr "nombre flottant"
#: tiramisu/option/option.py:144 #: tiramisu/option/option.py:140
msgid "string" msgid "string"
msgstr "texte" msgstr "texte"
#: tiramisu/option/option.py:161 #: tiramisu/option/option.py:157
msgid "unicode string" msgid "unicode string"
msgstr "texte unicode" msgstr "texte unicode"
#: tiramisu/option/option.py:171 #: tiramisu/option/option.py:167
msgid "password" msgid "password"
msgstr "mot de passe" msgstr "mot de passe"
#: tiramisu/option/option.py:182 #: tiramisu/option/option.py:178
msgid "IP" msgid "IP"
msgstr "IP" msgstr "IP"
#: tiramisu/option/option.py:224 #: tiramisu/option/option.py:220
msgid "shouldn't in reserved class" msgid "shouldn't in reserved class"
msgstr "ne devrait pas être dans une classe réservée" msgstr "ne devrait pas être dans une classe réservée"
#: tiramisu/option/option.py:226 tiramisu/option/option.py:361 #: tiramisu/option/option.py:222 tiramisu/option/option.py:357
msgid "mustn't be in reserved class" msgid "mustn't be in reserved class"
msgstr "ne doit pas être dans une classe réservée" msgstr "ne doit pas être dans une classe réservée"
#: tiramisu/option/option.py:230 #: tiramisu/option/option.py:226
msgid "should be in private class" msgid "should be in private class"
msgstr "devrait être dans une classe privée" msgstr "devrait être dans une classe privée"
#: tiramisu/option/option.py:232 #: tiramisu/option/option.py:228
msgid "must be in private class" msgid "must be in private class"
msgstr "doit être dans une classe privée" msgstr "doit être dans une classe privée"
#: tiramisu/option/option.py:237 tiramisu/option/option.py:434 #: tiramisu/option/option.py:233 tiramisu/option/option.py:435
msgid "invalid len for vals" msgid "invalid len for vals"
msgstr "longueur invalide pour vals" msgstr "longueur invalide pour vals"
#: tiramisu/option/option.py:243 #: tiramisu/option/option.py:239
msgid "should be in network {0}/{1} ({2}/{3})" msgid "should be in network {0}/{1} ({2}/{3})"
msgstr "devrait être dans le réseau {0}/{1} ({2}/{3})" msgstr "devrait être dans le réseau {0}/{1} ({2}/{3})"
#: tiramisu/option/option.py:245 #: tiramisu/option/option.py:241
msgid "must be in network {0}/{1} ({2}/{3})" msgid "must be in network {0}/{1} ({2}/{3})"
msgstr "doit être dans le réseau {0}/{1} ({2}/{3})" msgstr "doit être dans le réseau {0}/{1} ({2}/{3})"
#: tiramisu/option/option.py:264 #: tiramisu/option/option.py:260
msgid "port" msgid "port"
msgstr "port" msgstr "port"
#: tiramisu/option/option.py:288 #: tiramisu/option/option.py:284
msgid "inconsistency in allowed range" msgid "inconsistency in allowed range"
msgstr "inconsistence dans la plage autorisée" msgstr "inconsistence dans la plage autorisée"
#: tiramisu/option/option.py:293 #: tiramisu/option/option.py:289
msgid "max value is empty" msgid "max value is empty"
msgstr "la valeur maximum est vide" msgstr "la valeur maximum est vide"
#: tiramisu/option/option.py:319 #: tiramisu/option/option.py:315
msgid "range must have two values only" msgid "range must have two values only"
msgstr "un rang doit avoir deux valeurs seulement" msgstr "un rang doit avoir deux valeurs seulement"
#: tiramisu/option/option.py:321 #: tiramisu/option/option.py:317
msgid "first port in range must be smaller than the second one" msgid "first port in range must be smaller than the second one"
msgstr "le premier port d'un rang doit être plus petit que le second" msgstr "le premier port d'un rang doit être plus petit que le second"
#: tiramisu/option/option.py:331 #: tiramisu/option/option.py:327
msgid "must be an integer between {0} and {1}" msgid "must be an integer between {0} and {1}"
msgstr "doit être une nombre entre {0} et {1}" msgstr "doit être une nombre entre {0} et {1}"
#: tiramisu/option/option.py:339 #: tiramisu/option/option.py:335
msgid "network address" msgid "network address"
msgstr "adresse réseau" msgstr "adresse réseau"
#: tiramisu/option/option.py:359 #: tiramisu/option/option.py:355
msgid "shouldn't be in reserved class" msgid "shouldn't be in reserved class"
msgstr "ne devrait pas être dans une classe réservée" msgstr "ne devrait pas être dans une classe réservée"
#: tiramisu/option/option.py:368 #: tiramisu/option/option.py:364
msgid "netmask address" msgid "netmask address"
msgstr "adresse netmask" msgstr "adresse netmask"
#: tiramisu/option/option.py:399 #: tiramisu/option/option.py:395
msgid "invalid len for opts" msgid "invalid len for opts"
msgstr "longueur invalide pour opts" msgstr "longueur invalide pour opts"
#: tiramisu/option/option.py:408 #: tiramisu/option/option.py:404
msgid "this is a network with netmask {0} ({1})" msgid "this is a network with netmask {0} ({1})"
msgstr "c'est une adresse réseau avec le masque {0} ({1})" msgstr "c'est une adresse réseau avec le masque {0} ({1})"
#: tiramisu/option/option.py:410 #: tiramisu/option/option.py:406
msgid "this is a broadcast with netmask {0} ({1})" msgid "this is a broadcast with netmask {0} ({1})"
msgstr "c'est une adresse broadcast avec le masque {0} ({1})" msgstr "c'est une adresse broadcast avec le masque {0} ({1})"
#: tiramisu/option/option.py:414 #: tiramisu/option/option.py:410
msgid "with netmask {0} ({1})" msgid "with netmask {0} ({1})"
msgstr "avec le masque {0} ({1})" msgstr "avec le masque {0} ({1})"
#: tiramisu/option/option.py:421 #: tiramisu/option/option.py:417
msgid "broadcast address" msgid "broadcast address"
msgstr "adresse broadcast" msgstr "adresse broadcast"
#: tiramisu/option/option.py:439 #: tiramisu/option/option.py:440
msgid "with network {0}/{1} ({2}/{3})" msgid "with network {0}/{1} ({2}/{3})"
msgstr "avec le réseau {0}/{1} ({2}/{3})" msgstr "avec le réseau {0}/{1} ({2}/{3})"
#: tiramisu/option/option.py:451 #: tiramisu/option/option.py:452
msgid "domain name" msgid "domain name"
msgstr "nom de domaine" msgstr "nom de domaine"
#: tiramisu/option/option.py:459 #: tiramisu/option/option.py:460
msgid "unknown type_ {0} for hostname" msgid "unknown type_ {0} for hostname"
msgstr "type_ inconnu {0} pour le nom d'hôte" msgstr "type_ inconnu {0} pour le nom d'hôte"
#: tiramisu/option/option.py:462 #: tiramisu/option/option.py:463
msgid "allow_ip must be a boolean" msgid "allow_ip must be a boolean"
msgstr "allow_ip doit être un booléen" msgstr "allow_ip doit être un booléen"
#: tiramisu/option/option.py:464 #: tiramisu/option/option.py:465
msgid "allow_without_dot must be a boolean" msgid "allow_without_dot must be a boolean"
msgstr "allow_without_dot doit être un booléen" msgstr "allow_without_dot doit être un booléen"
#: tiramisu/option/option.py:489 #: tiramisu/option/option.py:490
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "longueur invalide (min 1)" msgstr "longueur invalide (min 1)"
#: tiramisu/option/option.py:491 #: tiramisu/option/option.py:492
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "longueur invalide (max {0})" msgstr "longueur invalide (max {0})"
#: tiramisu/option/option.py:506 #: tiramisu/option/option.py:507
msgid "must not be an IP" msgid "must not be an IP"
msgstr "ne doit pas être une IP" msgstr "ne doit pas être une IP"
#: tiramisu/option/option.py:513 #: tiramisu/option/option.py:514
msgid "must have dot" msgid "must have dot"
msgstr "doit avec un point" msgstr "doit avec un point"
#: tiramisu/option/option.py:515 #: tiramisu/option/option.py:516
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "longueur invalide (max 255)" msgstr "longueur invalide (max 255)"
#: tiramisu/option/option.py:526 #: tiramisu/option/option.py:527
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "des caractères sont en majuscule" msgstr "des caractères sont en majuscule"
#: tiramisu/option/option.py:529 #: tiramisu/option/option.py:530
msgid "some characters may cause problems" msgid "some characters may cause problems"
msgstr "des caractères peuvent poser problèmes" msgstr "des caractères peuvent poser problèmes"
#: tiramisu/option/option.py:550 #: tiramisu/option/option.py:551
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: tiramisu/option/option.py:558 #: tiramisu/option/option.py:559
msgid "must start with http:// or https://" msgid "must start with http:// or https://"
msgstr "doit démarré avec http:// ou https://" msgstr "doit démarré avec http:// ou https://"
#: tiramisu/option/option.py:576 #: tiramisu/option/option.py:577
msgid "port must be an between 0 and 65536" msgid "port must be an between 0 and 65536"
msgstr "port doit être entre 0 et 65536" msgstr "port doit être entre 0 et 65536"
#: tiramisu/option/option.py:587 #: tiramisu/option/option.py:588
msgid "must ends with a valid resource name" msgid "must ends with a valid resource name"
msgstr "doit finir par un nom de ressource valide" msgstr "doit finir par un nom de ressource valide"
#: tiramisu/option/option.py:608 #: tiramisu/option/option.py:609
msgid "email address" msgid "email address"
msgstr "adresse mail" msgstr "adresse mail"
#: tiramisu/option/option.py:615 #: tiramisu/option/option.py:616
msgid "username" msgid "username"
msgstr "nom d'utilisateur" msgstr "nom d'utilisateur"
#: tiramisu/option/option.py:621 #: tiramisu/option/option.py:622
msgid "file name" msgid "file name"
msgstr "nom de fichier" msgstr "nom de fichier"
#: tiramisu/option/option.py:627
msgid "date"
msgstr "date"
#: tiramisu/option/optiondescription.py:73 #: tiramisu/option/optiondescription.py:73
msgid "duplicate option name: {0}" msgid "duplicate option name: {0}"
msgstr "nom de l'option dupliqué : {0}" msgstr "nom de l'option dupliqué : {0}"
@ -766,15 +780,15 @@ msgid "cannot change the value for option {0} this option is frozen"
msgstr "" msgstr ""
"ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable" "ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable"
#: tiramisu/setting.py:541 #: tiramisu/setting.py:539
msgid "permissive must be a tuple" msgid "permissive must be a tuple"
msgstr "permissive doit être un tuple" msgstr "permissive doit être un tuple"
#: tiramisu/setting.py:548 tiramisu/value.py:539 #: tiramisu/setting.py:546 tiramisu/value.py:546
msgid "invalid generic owner {0}" msgid "invalid generic owner {0}"
msgstr "invalide owner générique {0}" msgstr "invalide owner générique {0}"
#: tiramisu/setting.py:649 #: tiramisu/setting.py:647
msgid "" msgid ""
"malformed requirements imbrication detected for option: '{0}' with " "malformed requirements imbrication detected for option: '{0}' with "
"requirement on: '{1}'" "requirement on: '{1}'"
@ -786,11 +800,11 @@ msgstr ""
msgid "option '{0}' has requirement's property error: {1} {2}" 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}" msgstr "l'option '{0}' a une erreur de propriété pour le requirement : {1} {2}"
#: tiramisu/setting.py:695 #: tiramisu/setting.py:694
msgid "the value of \"{0}\" is \"{1}\"" msgid "the value of \"{0}\" is \"{1}\""
msgstr "la valeur de \"{0}\" est \"{1}\"" msgstr "la valeur de \"{0}\" est \"{1}\""
#: tiramisu/setting.py:697 #: tiramisu/setting.py:696
msgid "the value of \"{0}\" is not \"{1}\"" msgid "the value of \"{0}\" is not \"{1}\""
msgstr "la valeur de \"{0}\" n'est pas \"{1}\"" msgstr "la valeur de \"{0}\" n'est pas \"{1}\""
@ -811,7 +825,7 @@ msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}" msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
#: tiramisu/storage/dictionary/option.py:150 #: tiramisu/storage/dictionary/option.py:150
#: tiramisu/storage/dictionary/value.py:234 #: tiramisu/storage/dictionary/value.py:217
#: tiramisu/storage/sqlalchemy/option.py:666 #: tiramisu/storage/sqlalchemy/option.py:666
msgid "information's item not found: {0}" msgid "information's item not found: {0}"
msgstr "item '{0}' dans les informations non trouvée" msgstr "item '{0}' dans les informations non trouvée"
@ -860,63 +874,66 @@ msgid "session already used"
msgstr "session déjà utilisée" msgstr "session déjà utilisée"
#: tiramisu/storage/dictionary/storage.py:50 #: tiramisu/storage/dictionary/storage.py:50
#: tiramisu/storage/dictionary/value.py:252 #: tiramisu/storage/dictionary/value.py:235
msgid "a dictionary cannot be persistent" msgid "a dictionary cannot be persistent"
msgstr "un espace de stockage dictionary ne peut être persistant" msgstr "un espace de stockage dictionary ne peut être persistant"
#: tiramisu/storage/dictionary/value.py:243 #: tiramisu/storage/dictionary/value.py:226
msgid "information's item not found {0}" msgid "information's item not found {0}"
msgstr "l'information de l'objet ne sont pas trouvé {0}" msgstr "l'information de l'objet ne sont pas trouvé {0}"
#: tiramisu/value.py:388 #: tiramisu/value.py:395
msgid "you should only set value with config" msgid "you should only set value with config"
msgstr "vous devez seul affecter une valeur avec un config" msgstr "vous devez seul affecter une valeur avec un config"
#: tiramisu/value.py:500 #: tiramisu/value.py:507
msgid "owner only avalaible for an option" msgid "owner only avalaible for an option"
msgstr "owner seulement possible pour une option" msgstr "owner seulement possible pour une option"
#: tiramisu/value.py:544 #: tiramisu/value.py:551
msgid "no value for {0} cannot change owner to {1}" msgid "no value for {0} cannot change owner to {1}"
msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}" msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}"
#: tiramisu/value.py:678 #: tiramisu/value.py:685
msgid "can force cache only if cache is actived in config" msgid "can force cache only if cache is actived in config"
msgstr "" msgstr ""
"peut force la mise en cache seulement si le cache est activé dans la config" "peut force la mise en cache seulement si le cache est activé dans la config"
#: tiramisu/value.py:715 #: tiramisu/value.py:722
msgid "{0} is already a Multi " msgid "{0} is already a Multi "
msgstr "{0} est déjà une Multi" msgstr "{0} est déjà une Multi"
#: tiramisu/value.py:795 #: tiramisu/value.py:802
msgid "cannot append a value on a multi option {0} which is a slave" 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" msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave"
#: tiramisu/value.py:828 #: tiramisu/value.py:835
msgid "cannot sort multi option {0} if master or slave" 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" msgstr "ne peut trier une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:832 #: tiramisu/value.py:839
msgid "cmp is not permitted in python v3 or greater" msgid "cmp is not permitted in python v3 or greater"
msgstr "cmp n'est pas permis en python v3 ou supérieure" msgstr "cmp n'est pas permis en python v3 ou supérieure"
#: tiramisu/value.py:841 #: tiramisu/value.py:848
msgid "cannot reverse multi option {0} if master or slave" 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" msgstr "ne peut inverser une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:848 #: tiramisu/value.py:855
msgid "cannot insert multi option {0} if master or slave" 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" msgstr "ne peut insérer une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:865 #: tiramisu/value.py:872
msgid "cannot extend multi option {0} if master or slave" 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" msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave"
#: tiramisu/value.py:905 #: tiramisu/value.py:912
msgid "cannot pop a value on a multi option {0} which is a slave" 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" msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave"
#~ 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}"
#~ msgid "{0}_params must have an option not a {0} for first argument" #~ 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" #~ msgstr "{0}_params doit avoir une option pas un {0} pour premier argument"

View File

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2017-01-19 21:24+CET\n" "POT-Creation-Date: 2017-02-11 18:04+CET\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,14 +15,18 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: tiramisu/autolib.py:172 #: tiramisu/autolib.py:178
msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}" msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
msgstr "" msgstr ""
#: tiramisu/autolib.py:237 #: tiramisu/autolib.py:242
msgid "callback cannot return a list for a slave option ({0})" msgid "callback cannot return a list for a slave option ({0})"
msgstr "" msgstr ""
#: tiramisu/autolib.py:263
msgid "function \"{0}\" returns \"{1}\" for option \"{2}\""
msgstr ""
#: tiramisu/config.py:64 #: tiramisu/config.py:64
msgid "descr must be an optiondescription, not {0}" msgid "descr must be an optiondescription, not {0}"
msgstr "" msgstr ""
@ -32,7 +36,7 @@ msgid "unknown group_type: {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54 #: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54
#: tiramisu/value.py:749 #: tiramisu/value.py:756
msgid "the context does not exist anymore" msgid "the context does not exist anymore"
msgstr "" msgstr ""
@ -92,23 +96,23 @@ msgstr ""
msgid "config name must be uniq in groupconfig for {0}" msgid "config name must be uniq in groupconfig for {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:876 #: tiramisu/config.py:878
msgid "metaconfig's children should be config, not {0}" msgid "metaconfig's children should be config, not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:880 #: tiramisu/config.py:882
msgid "child has already a metaconfig's" msgid "child has already a metaconfig's"
msgstr "" msgstr ""
#: tiramisu/config.py:884 #: tiramisu/config.py:886
msgid "all config in metaconfig must have the same optiondescription" msgid "all config in metaconfig must have the same optiondescription"
msgstr "" msgstr ""
#: tiramisu/config.py:899 #: tiramisu/config.py:901
msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config" msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
msgstr "" msgstr ""
#: tiramisu/config.py:905 #: tiramisu/config.py:907
msgid "force_default and force_dont_change_value cannot be set together" msgid "force_default and force_dont_change_value cannot be set together"
msgstr "" msgstr ""
@ -120,19 +124,23 @@ msgstr ""
msgid "or" msgid "or"
msgstr "" msgstr ""
#: tiramisu/error.py:34 #: tiramisu/error.py:48
msgid " {} " msgid " {} "
msgstr "" msgstr ""
#: tiramisu/error.py:58 #: tiramisu/error.py:81 tiramisu/setting.py:514
msgid "property" msgid "property"
msgstr "" msgstr ""
#: tiramisu/error.py:60 #: tiramisu/error.py:83 tiramisu/setting.py:516
msgid "properties" msgid "properties"
msgstr "" msgstr ""
#: tiramisu/error.py:62 tiramisu/setting.py:520 #: tiramisu/error.py:86
msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}"
msgstr ""
#: tiramisu/error.py:92 tiramisu/setting.py:517
msgid "cannot access to {0} \"{1}\" because has {2} {3}" msgid "cannot access to {0} \"{1}\" because has {2} {3}"
msgstr "" msgstr ""
@ -216,370 +224,374 @@ msgstr ""
msgid "invalid unicode or string" msgid "invalid unicode or string"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:510 tiramisu/option/baseoption.py:609 #: tiramisu/option/baseoption.py:515 tiramisu/option/baseoption.py:613
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}" msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:548 tiramisu/option/baseoption.py:661 #: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:665
msgid "invalid value \"{}\", this value is already in \"{}\"" msgid "invalid value \"{}\", this value is already in \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:590 tiramisu/option/baseoption.py:628 #: tiramisu/option/baseoption.py:594 tiramisu/option/baseoption.py:632
msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}" msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:594 tiramisu/option/baseoption.py:632 #: tiramisu/option/baseoption.py:598 tiramisu/option/baseoption.py:636
msgid "\"{0}\" is an invalid {1} for \"{2}\"" msgid "\"{0}\" is an invalid {1} for \"{2}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:606 #: tiramisu/option/baseoption.py:610
msgid "do_validation for {0}: error in value" msgid "do_validation for {0}: error in value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:648 tiramisu/option/baseoption.py:666 #: tiramisu/option/baseoption.py:652 tiramisu/option/baseoption.py:670
msgid "invalid value \"{0}\" for \"{1}\" which must be a list" msgid "invalid value \"{0}\" for \"{1}\" which must be a list"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:653 #: tiramisu/option/baseoption.py:657
msgid "invalid value \"{}\" for \"{}\" which must not be a list" msgid "invalid value \"{}\" for \"{}\" which must not be a list"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:675 #: tiramisu/option/baseoption.py:679
msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list" msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:728 tiramisu/option/baseoption.py:732 #: tiramisu/option/baseoption.py:732 tiramisu/option/baseoption.py:736
msgid "cannot add consistency with submulti option" msgid "cannot add consistency with submulti option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:734 #: tiramisu/option/baseoption.py:738
msgid "consistency must be set with an option" msgid "consistency must be set with an option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:737 tiramisu/option/baseoption.py:744 #: tiramisu/option/baseoption.py:741 tiramisu/option/baseoption.py:748
msgid "almost one option in consistency is in a dynoptiondescription but not all" msgid "almost one option in consistency is in a dynoptiondescription but not all"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:740 #: tiramisu/option/baseoption.py:744
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:747 #: tiramisu/option/baseoption.py:751
msgid "cannot add consistency with itself" msgid "cannot add consistency with itself"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:749 #: tiramisu/option/baseoption.py:753
msgid "every options in consistency must be multi or none" msgid "every options in consistency must be multi or none"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:766 #: tiramisu/option/baseoption.py:770
msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:773 #: tiramisu/option/baseoption.py:777
msgid "consistency {0} not available for this option" msgid "consistency {0} not available for this option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:777 #: tiramisu/option/baseoption.py:781
msgid "unknow parameter {0} in consistency" msgid "unknow parameter {0} in consistency"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:841 #: tiramisu/option/baseoption.py:845
msgid "_cons_not_equal: {} are not different" msgid "_cons_not_equal: {} are not different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:844 #: tiramisu/option/baseoption.py:848
msgid "should be different from the value of {}" msgid "should be different from the value of {}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:846 #: tiramisu/option/baseoption.py:850
msgid "must be different from the value of {}" msgid "must be different from the value of {}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:849 #: tiramisu/option/baseoption.py:853
msgid "value for {} should be different" msgid "value for {} should be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:851 #: tiramisu/option/baseoption.py:855
msgid "value for {} must be different" msgid "value for {} must be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:910 #: tiramisu/option/baseoption.py:914
msgid "default value not allowed if option: {0} is calculated" msgid "default value not allowed if option: {0} is calculated"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:930 #: tiramisu/option/baseoption.py:934
msgid "malformed requirements type for option: {0}, must be a dict" msgid "malformed requirements type for option: {0}, must be a dict"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:936 #: tiramisu/option/baseoption.py:940
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}" msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:944 #: tiramisu/option/baseoption.py:948
msgid "malformed requirements for option: {0} require must have option, expected and action keys" msgid "malformed requirements for option: {0} require must have option, expected and action keys"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:951 #: tiramisu/option/baseoption.py:955
msgid "malformed requirements for option: {0} action cannot be force_store_value" msgid "malformed requirements for option: {0} action cannot be force_store_value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:956 #: tiramisu/option/baseoption.py:960
msgid "malformed requirements for option: {0} inverse must be boolean" msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:960 #: tiramisu/option/baseoption.py:964
msgid "malformed requirements for option: {0} transitive must be boolean" msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:964 #: tiramisu/option/baseoption.py:968
msgid "malformed requirements for option: {0} same_action must be boolean" msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:968 #: tiramisu/option/baseoption.py:972
msgid "malformed requirements must be an option in option {0}" msgid "malformed requirements must be an option in option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:971 #: tiramisu/option/baseoption.py:975
msgid "malformed requirements multi option must not set as requires of non multi option {0}" msgid "malformed requirements multi option must not set as requires of non multi option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:977 #: tiramisu/option/baseoption.py:981
msgid "malformed requirements expected value must be valid for option {0}: {1}" msgid "malformed requirements expected value must be valid for option {0}: {1}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:1007 #: tiramisu/option/baseoption.py:1011
msgid "malformed symlinkoption must be an option for symlink {0}" msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:44 #: tiramisu/option/masterslave.py:45
msgid "master group with wrong master name for {0}" msgid "master group with wrong master name for {0}"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:49 #: tiramisu/option/masterslave.py:50
msgid "not allowed default value for option {0} in group {1}" msgid "not allowed default value for option {0} in master/slave object {1}"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:60 #: tiramisu/option/masterslave.py:61
msgid "callback of master's option shall not refered a slave's ones" msgid "callback of master's option shall not refered a slave's ones"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:271 #: tiramisu/option/masterslave.py:274
msgid "invalid len for the slave: {0} which has {1} as master" msgid "invalid len for the slave: {0} which has {1} as master"
msgstr "" msgstr ""
#: tiramisu/option/option.py:40 #: tiramisu/option/option.py:41
msgid "choice" msgid "choice"
msgstr "" msgstr ""
#: tiramisu/option/option.py:54 #: tiramisu/option/option.py:55
msgid "values is not a function, so values_params must be None" msgid "values is not a function, so values_params must be None"
msgstr "" msgstr ""
#: tiramisu/option/option.py:56 #: tiramisu/option/option.py:57
msgid "values must be a tuple or a function for {0}" msgid "values must be a tuple or a function for {0}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:93 #: tiramisu/option/option.py:89
msgid "calculated values for {0} is not a list" msgid "calculated values for {0} is not a list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:104 #: tiramisu/option/option.py:100
msgid "only {0} is allowed" msgid "only {0} is allowed"
msgstr "" msgstr ""
#: tiramisu/option/option.py:107 #: tiramisu/option/option.py:103
msgid "only {0} are allowed" msgid "only {0} are allowed"
msgstr "" msgstr ""
#: tiramisu/option/option.py:114 #: tiramisu/option/option.py:110
msgid "boolean" msgid "boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:124 #: tiramisu/option/option.py:120
msgid "integer" msgid "integer"
msgstr "" msgstr ""
#: tiramisu/option/option.py:134 #: tiramisu/option/option.py:130
msgid "float" msgid "float"
msgstr "" msgstr ""
#: tiramisu/option/option.py:144 #: tiramisu/option/option.py:140
msgid "string" msgid "string"
msgstr "" msgstr ""
#: tiramisu/option/option.py:161 #: tiramisu/option/option.py:157
msgid "unicode string" msgid "unicode string"
msgstr "" msgstr ""
#: tiramisu/option/option.py:171 #: tiramisu/option/option.py:167
msgid "password" msgid "password"
msgstr "" msgstr ""
#: tiramisu/option/option.py:182 #: tiramisu/option/option.py:178
msgid "IP" msgid "IP"
msgstr "" msgstr ""
#: tiramisu/option/option.py:224 #: tiramisu/option/option.py:220
msgid "shouldn't in reserved class" msgid "shouldn't in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:226 tiramisu/option/option.py:361 #: tiramisu/option/option.py:222 tiramisu/option/option.py:357
msgid "mustn't be in reserved class" msgid "mustn't be in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:230 #: tiramisu/option/option.py:226
msgid "should be in private class" msgid "should be in private class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:232 #: tiramisu/option/option.py:228
msgid "must be in private class" msgid "must be in private class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:237 tiramisu/option/option.py:434 #: tiramisu/option/option.py:233 tiramisu/option/option.py:435
msgid "invalid len for vals" msgid "invalid len for vals"
msgstr "" msgstr ""
#: tiramisu/option/option.py:243 #: tiramisu/option/option.py:239
msgid "should be in network {0}/{1} ({2}/{3})" msgid "should be in network {0}/{1} ({2}/{3})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:245 #: tiramisu/option/option.py:241
msgid "must be in network {0}/{1} ({2}/{3})" msgid "must be in network {0}/{1} ({2}/{3})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:264 #: tiramisu/option/option.py:260
msgid "port" msgid "port"
msgstr "" msgstr ""
#: tiramisu/option/option.py:288 #: tiramisu/option/option.py:284
msgid "inconsistency in allowed range" msgid "inconsistency in allowed range"
msgstr "" msgstr ""
#: tiramisu/option/option.py:293 #: tiramisu/option/option.py:289
msgid "max value is empty" msgid "max value is empty"
msgstr "" msgstr ""
#: tiramisu/option/option.py:319 #: tiramisu/option/option.py:315
msgid "range must have two values only" msgid "range must have two values only"
msgstr "" msgstr ""
#: tiramisu/option/option.py:321 #: tiramisu/option/option.py:317
msgid "first port in range must be smaller than the second one" msgid "first port in range must be smaller than the second one"
msgstr "" msgstr ""
#: tiramisu/option/option.py:331 #: tiramisu/option/option.py:327
msgid "must be an integer between {0} and {1}" msgid "must be an integer between {0} and {1}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:339 #: tiramisu/option/option.py:335
msgid "network address" msgid "network address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:359 #: tiramisu/option/option.py:355
msgid "shouldn't be in reserved class" msgid "shouldn't be in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:368 #: tiramisu/option/option.py:364
msgid "netmask address" msgid "netmask address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:399 #: tiramisu/option/option.py:395
msgid "invalid len for opts" msgid "invalid len for opts"
msgstr "" msgstr ""
#: tiramisu/option/option.py:408 #: tiramisu/option/option.py:404
msgid "this is a network with netmask {0} ({1})" msgid "this is a network with netmask {0} ({1})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:410 #: tiramisu/option/option.py:406
msgid "this is a broadcast with netmask {0} ({1})" msgid "this is a broadcast with netmask {0} ({1})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:414 #: tiramisu/option/option.py:410
msgid "with netmask {0} ({1})" msgid "with netmask {0} ({1})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:421 #: tiramisu/option/option.py:417
msgid "broadcast address" msgid "broadcast address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:439 #: tiramisu/option/option.py:440
msgid "with network {0}/{1} ({2}/{3})" msgid "with network {0}/{1} ({2}/{3})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:451 #: tiramisu/option/option.py:452
msgid "domain name" msgid "domain name"
msgstr "" msgstr ""
#: tiramisu/option/option.py:459 #: tiramisu/option/option.py:460
msgid "unknown type_ {0} for hostname" msgid "unknown type_ {0} for hostname"
msgstr "" msgstr ""
#: tiramisu/option/option.py:462 #: tiramisu/option/option.py:463
msgid "allow_ip must be a boolean" msgid "allow_ip must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:464 #: tiramisu/option/option.py:465
msgid "allow_without_dot must be a boolean" msgid "allow_without_dot must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:489 #: tiramisu/option/option.py:490
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "" msgstr ""
#: tiramisu/option/option.py:491 #: tiramisu/option/option.py:492
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:506 #: tiramisu/option/option.py:507
msgid "must not be an IP" msgid "must not be an IP"
msgstr "" msgstr ""
#: tiramisu/option/option.py:513 #: tiramisu/option/option.py:514
msgid "must have dot" msgid "must have dot"
msgstr "" msgstr ""
#: tiramisu/option/option.py:515 #: tiramisu/option/option.py:516
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "" msgstr ""
#: tiramisu/option/option.py:526 #: tiramisu/option/option.py:527
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "" msgstr ""
#: tiramisu/option/option.py:529 #: tiramisu/option/option.py:530
msgid "some characters may cause problems" msgid "some characters may cause problems"
msgstr "" msgstr ""
#: tiramisu/option/option.py:550 #: tiramisu/option/option.py:551
msgid "URL" msgid "URL"
msgstr "" msgstr ""
#: tiramisu/option/option.py:558 #: tiramisu/option/option.py:559
msgid "must start with http:// or https://" msgid "must start with http:// or https://"
msgstr "" msgstr ""
#: tiramisu/option/option.py:576 #: tiramisu/option/option.py:577
msgid "port must be an between 0 and 65536" msgid "port must be an between 0 and 65536"
msgstr "" msgstr ""
#: tiramisu/option/option.py:587 #: tiramisu/option/option.py:588
msgid "must ends with a valid resource name" msgid "must ends with a valid resource name"
msgstr "" msgstr ""
#: tiramisu/option/option.py:608 #: tiramisu/option/option.py:609
msgid "email address" msgid "email address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:615 #: tiramisu/option/option.py:616
msgid "username" msgid "username"
msgstr "" msgstr ""
#: tiramisu/option/option.py:621 #: tiramisu/option/option.py:622
msgid "file name" msgid "file name"
msgstr "" msgstr ""
#: tiramisu/option/option.py:627
msgid "date"
msgstr ""
#: tiramisu/option/optiondescription.py:73 #: tiramisu/option/optiondescription.py:73
msgid "duplicate option name: {0}" msgid "duplicate option name: {0}"
msgstr "" msgstr ""
@ -701,15 +713,15 @@ msgstr ""
msgid "cannot change the value for option {0} this option is frozen" msgid "cannot change the value for option {0} this option is frozen"
msgstr "" msgstr ""
#: tiramisu/setting.py:541 #: tiramisu/setting.py:539
msgid "permissive must be a tuple" msgid "permissive must be a tuple"
msgstr "" msgstr ""
#: tiramisu/setting.py:548 tiramisu/value.py:539 #: tiramisu/setting.py:546 tiramisu/value.py:546
msgid "invalid generic owner {0}" msgid "invalid generic owner {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:649 #: tiramisu/setting.py:647
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'" msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
msgstr "" msgstr ""
@ -717,11 +729,11 @@ msgstr ""
msgid "option '{0}' has requirement's property error: {1} {2}" msgid "option '{0}' has requirement's property error: {1} {2}"
msgstr "" msgstr ""
#: tiramisu/setting.py:695 #: tiramisu/setting.py:694
msgid "the value of \"{0}\" is \"{1}\"" msgid "the value of \"{0}\" is \"{1}\""
msgstr "" msgstr ""
#: tiramisu/setting.py:697 #: tiramisu/setting.py:696
msgid "the value of \"{0}\" is not \"{1}\"" msgid "the value of \"{0}\" is not \"{1}\""
msgstr "" msgstr ""
@ -742,7 +754,7 @@ msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:150 #: tiramisu/storage/dictionary/option.py:150
#: tiramisu/storage/dictionary/value.py:234 #: tiramisu/storage/dictionary/value.py:217
#: tiramisu/storage/sqlalchemy/option.py:666 #: tiramisu/storage/sqlalchemy/option.py:666
msgid "information's item not found: {0}" msgid "information's item not found: {0}"
msgstr "" msgstr ""
@ -789,59 +801,59 @@ msgid "session already used"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/storage.py:50 #: tiramisu/storage/dictionary/storage.py:50
#: tiramisu/storage/dictionary/value.py:252 #: tiramisu/storage/dictionary/value.py:235
msgid "a dictionary cannot be persistent" msgid "a dictionary cannot be persistent"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/value.py:243 #: tiramisu/storage/dictionary/value.py:226
msgid "information's item not found {0}" msgid "information's item not found {0}"
msgstr "" msgstr ""
#: tiramisu/value.py:388 #: tiramisu/value.py:395
msgid "you should only set value with config" msgid "you should only set value with config"
msgstr "" msgstr ""
#: tiramisu/value.py:500 #: tiramisu/value.py:507
msgid "owner only avalaible for an option" msgid "owner only avalaible for an option"
msgstr "" msgstr ""
#: tiramisu/value.py:544 #: tiramisu/value.py:551
msgid "no value for {0} cannot change owner to {1}" msgid "no value for {0} cannot change owner to {1}"
msgstr "" msgstr ""
#: tiramisu/value.py:678 #: tiramisu/value.py:685
msgid "can force cache only if cache is actived in config" msgid "can force cache only if cache is actived in config"
msgstr "" msgstr ""
#: tiramisu/value.py:715 #: tiramisu/value.py:722
msgid "{0} is already a Multi " msgid "{0} is already a Multi "
msgstr "" msgstr ""
#: tiramisu/value.py:795 #: tiramisu/value.py:802
msgid "cannot append a value on a multi option {0} which is a slave" msgid "cannot append a value on a multi option {0} which is a slave"
msgstr "" msgstr ""
#: tiramisu/value.py:828 #: tiramisu/value.py:835
msgid "cannot sort multi option {0} if master or slave" msgid "cannot sort multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:832 #: tiramisu/value.py:839
msgid "cmp is not permitted in python v3 or greater" msgid "cmp is not permitted in python v3 or greater"
msgstr "" msgstr ""
#: tiramisu/value.py:841 #: tiramisu/value.py:848
msgid "cannot reverse multi option {0} if master or slave" msgid "cannot reverse multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:848 #: tiramisu/value.py:855
msgid "cannot insert multi option {0} if master or slave" msgid "cannot insert multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:865 #: tiramisu/value.py:872
msgid "cannot extend multi option {0} if master or slave" msgid "cannot extend multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:905 #: tiramisu/value.py:912
msgid "cannot pop a value on a multi option {0} which is a slave" msgid "cannot pop a value on a multi option {0} which is a slave"
msgstr "" msgstr ""