remove unicode decode error

This commit is contained in:
Emmanuel Garette 2017-01-19 21:38:16 +01:00
parent e2159fd307
commit f497e99002
8 changed files with 268 additions and 239 deletions

View file

@ -54,7 +54,7 @@ def test_domainname_upper():
if sys.version_info[0] >= 3: # pragma: optional cover if sys.version_info[0] >= 3: # pragma: optional cover
assert msg in str(err) assert msg in str(err)
else: else:
assert msg in unicode(err) assert msg in str(err)
has_error = True has_error = True
assert has_error is True assert has_error is True
has_error = False has_error = False
@ -64,7 +64,7 @@ def test_domainname_upper():
if sys.version_info[0] >= 3: # pragma: optional cover if sys.version_info[0] >= 3: # pragma: optional cover
assert msg in str(err) assert msg in str(err)
else: else:
assert msg in unicode(err) assert msg in str(err)
has_error = True has_error = True
assert has_error is True assert has_error is True

View file

@ -489,9 +489,11 @@ def test_reset_properties_force_store_value():
def test_pprint(): def test_pprint():
msg_error = _('cannot access to {} "{}" because has {} {}') msg_error = _("cannot access to {0} \"{1}\" because has {2} {3}")
msg_is = _('the value of "{0}" is "{1}"') msg_is = _('the value of "{0}" is "{1}"')
msg_is_not = _('the value of "{0}" is not "{1}"') msg_is_not = _('the value of "{0}" is not "{1}"')
properties = _('properties')
prop = _('property')
s = StrOption("string", "", default=["string"], default_multi="string", multi=True, properties=('hidden', 'disabled')) s = StrOption("string", "", default=["string"], default_multi="string", multi=True, properties=('hidden', 'disabled'))
s2 = StrOption("string2", "", default="string") s2 = StrOption("string2", "", default="string")
@ -522,10 +524,10 @@ def test_pprint():
list_disabled_1 = 'disabled (' + display_list([msg_is.format('string2', 'string'), msg_is.format('Test int option', '1')]) + ')' list_disabled_1 = 'disabled (' + display_list([msg_is.format('string2', 'string'), msg_is.format('Test int option', '1')]) + ')'
list_disabled_2 = 'disabled (' + display_list([msg_is.format('Test int option', '1'), msg_is.format('string2', 'string')]) + ')' list_disabled_2 = 'disabled (' + display_list([msg_is.format('Test int option', '1'), msg_is.format('string2', 'string')]) + ')'
list_hidden = 'hidden (' + msg_is_not.format('Test int option', display_list([2, 3, 4], 'or')) + ')' list_hidden = 'hidden (' + msg_is_not.format('Test int option', display_list([2, 3, 4], 'or')) + ')'
comp1 = str(err) == msg_error.format('option', 'Test string option', 'properties', display_list([list_disabled_1, list_hidden])) comp1 = str(err) == _(msg_error.format('option', 'Test string option', properties, display_list([list_disabled_1, list_hidden])))
comp2 = str(err) == msg_error.format('option', 'Test string option', 'properties', display_list([list_disabled_2, list_hidden])) comp2 = str(err) == _(msg_error.format('option', 'Test string option', properties, display_list([list_disabled_2, list_hidden])))
comp3 = str(err) == msg_error.format('option', 'Test string option', 'properties', display_list([list_hidden, list_disabled_1])) comp3 = str(err) == _(msg_error.format('option', 'Test string option', properties, display_list([list_hidden, list_disabled_1])))
comp4 = str(err) == msg_error.format('option', 'Test string option', 'properties', display_list([list_hidden, list_disabled_2])) comp4 = str(err) == _(msg_error.format('option', 'Test string option', properties, display_list([list_hidden, list_disabled_2])))
assert comp1 or comp2 or comp3 or comp4 assert comp1 or comp2 or comp3 or comp4
try: try:
@ -533,7 +535,7 @@ def test_pprint():
except Exception, err: except Exception, err:
pass pass
assert str(err) == msg_error.format('optiondescription', 'options', 'property', 'hidden (' + msg_is.format('Test int option', 1) + ')') assert str(err) == msg_error.format('optiondescription', 'options', prop, 'hidden (' + msg_is.format('Test int option', 1) + ')')
try: try:
config.val3 config.val3
@ -544,17 +546,17 @@ def test_pprint():
msg_3 = msg_is_not.format('Test int option', display_list([2, 3, 4], 'or')) msg_3 = msg_is_not.format('Test int option', display_list([2, 3, 4], 'or'))
list_hidden = 'hidden (' + display_list([msg_1, msg_2, msg_3]) + ')' list_hidden = 'hidden (' + display_list([msg_1, msg_2, msg_3]) + ')'
comp1 = str(err) == msg_error.format('option', 'val3', 'property', list_hidden) comp1 = str(err) == msg_error.format('option', 'val3', prop, list_hidden)
list_hidden = 'hidden (' + display_list([msg_1, msg_3, msg_2]) + ')' list_hidden = 'hidden (' + display_list([msg_1, msg_3, msg_2]) + ')'
comp2 = str(err) == msg_error.format('option', 'val3', 'property', list_hidden) comp2 = str(err) == msg_error.format('option', 'val3', prop, list_hidden)
list_hidden = 'hidden (' + display_list([msg_2, msg_1, msg_3]) + ')' list_hidden = 'hidden (' + display_list([msg_2, msg_1, msg_3]) + ')'
comp3 = str(err) == msg_error.format('option', 'val3', 'property', list_hidden) comp3 = str(err) == msg_error.format('option', 'val3', prop, list_hidden)
list_hidden = 'hidden (' + display_list([msg_2, msg_3, msg_1]) + ')' list_hidden = 'hidden (' + display_list([msg_2, msg_3, msg_1]) + ')'
comp4 = str(err) == msg_error.format('option', 'val3', 'property', list_hidden) comp4 = str(err) == msg_error.format('option', 'val3', prop, list_hidden)
list_hidden = 'hidden (' + display_list([msg_3, msg_1, msg_2]) + ')' list_hidden = 'hidden (' + display_list([msg_3, msg_1, msg_2]) + ')'
comp5 = str(err) == msg_error.format('option', 'val3', 'property', list_hidden) comp5 = str(err) == msg_error.format('option', 'val3', prop, list_hidden)
list_hidden = 'hidden (' + display_list([msg_3, msg_2, msg_1]) + ')' list_hidden = 'hidden (' + display_list([msg_3, msg_2, msg_1]) + ')'
comp6 = str(err) == msg_error.format('option', 'val3', 'property', list_hidden) comp6 = str(err) == msg_error.format('option', 'val3', prop, list_hidden)
assert comp1 or comp2 or comp3 or comp4 or comp5 or comp6 assert comp1 or comp2 or comp3 or comp4 or comp5 or comp6
try: try:
@ -562,11 +564,11 @@ def test_pprint():
except Exception, err: except Exception, err:
pass pass
assert str(err) == msg_error.format('option', 'string', 'properties', display_list(['disabled', 'hidden'])) assert str(err) == msg_error.format('option', 'string', properties, display_list(['disabled', 'hidden']))
try: try:
config.string3 config.string3
except Exception, err: except Exception, err:
pass pass
assert str(err) == msg_error.format('option', 'string3', 'property', 'hidden') assert str(err) == msg_error.format('option', 'string3', prop, 'hidden')

View file

@ -19,6 +19,10 @@ from .i18n import _
def display_list(lst, separator='and'): def display_list(lst, separator='and'):
if separator == 'and':
separator = _('and')
elif separator == 'or':
separator = _('or')
if len(lst) == 0: if len(lst) == 0:
return '' return ''
elif len(lst) == 1: elif len(lst) == 1:

View file

@ -45,8 +45,7 @@ mo_location = LOCALE_DIR
gettext.find(APP_NAME, mo_location) gettext.find(APP_NAME, mo_location)
gettext.textdomain(APP_NAME) gettext.textdomain(APP_NAME)
gettext.bind_textdomain_codeset(APP_NAME, "UTF-8") gettext.bind_textdomain_codeset(APP_NAME, "UTF-8")
gettext.translation(APP_NAME, fallback=True)
t = gettext.translation(APP_NAME, fallback=True) t = gettext.translation(APP_NAME, fallback=True)
_ = t.ugettext _ = t.gettext

View file

@ -585,7 +585,7 @@ class Option(OnlyOption):
'submulti_index: {2}'.format(_value, _index, 'submulti_index: {2}'.format(_value, _index,
submulti_index), submulti_index),
exc_info=True) exc_info=True)
err_msg = unicode('{0}') err_msg = '{0}'.format(err)
if err_msg: if err_msg:
msg = _('"{0}" is an invalid {1} for "{2}", {3}' msg = _('"{0}" is an invalid {1} for "{2}", {3}'
'').format(_value, self._display_name, '').format(_value, self._display_name,

View file

@ -511,13 +511,16 @@ class Settings(object):
props, self, datas, opt_type) props, self, datas, opt_type)
else: else:
if len(props) == 1: if len(props) == 1:
prop_msg = 'property' prop_msg = _('property')
else: else:
prop_msg = 'properties' prop_msg = _('properties')
name = opt_or_descr.impl_get_display_name()
if isinstance(name, unicode):
name = name.encode('utf8')
return PropertiesOptionError(_('cannot access to {0} "{1}" ' return PropertiesOptionError(_('cannot access to {0} "{1}" '
'because has {2} {3}' 'because has {2} {3}'
'').format(opt_type, '').format(opt_type,
opt_or_descr.impl_get_display_name(), name,
prop_msg, prop_msg,
display_list(props)), props, display_list(props)), props,
self, datas, opt_type) self, datas, opt_type)

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: 2016-11-20 17:58+0100\n" "POT-Creation-Date: 2017-01-19 21:26+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"
@ -10,18 +10,18 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.8\n" "X-Generator: Poedit 1.8.11\n"
"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:170 #: tiramisu/autolib.py:172
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:235 #: tiramisu/autolib.py:237
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})"
@ -30,88 +30,88 @@ msgstr ""
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}"
#: tiramisu/config.py:146 #: tiramisu/config.py:148
msgid "unknown group_type: {0}" msgid "unknown group_type: {0}"
msgstr "group_type inconnu: {0}" msgstr "group_type inconnu: {0}"
#: tiramisu/config.py:185 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:749
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"
#: tiramisu/config.py:190 #: tiramisu/config.py:195
msgid "no option description found for this config (may be GroupConfig)" msgid "no option description found for this config (may be GroupConfig)"
msgstr "" msgstr ""
"pas d'option description trouvé pour cette config (peut être un GroupConfig)" "pas d'option description trouvé pour cette config (peut être un GroupConfig)"
#: tiramisu/config.py:226 #: tiramisu/config.py:231
msgid "can't assign to an OptionDescription" msgid "can't assign to an OptionDescription"
msgstr "ne peut pas attribuer une valeur à une OptionDescription" msgstr "ne peut pas attribuer une valeur à une OptionDescription"
#: tiramisu/config.py:384 #: tiramisu/config.py:392
msgid "unknown type_ type {0}for _find" msgid "unknown type_ type {0}for _find"
msgstr "type_ type {0} pour _find inconnu" msgstr "type_ type {0} pour _find inconnu"
#: tiramisu/config.py:427 #: tiramisu/config.py:435
msgid "no option found in config with these criteria" msgid "no option found in config with these criteria"
msgstr "aucune option trouvée dans la config avec ces critères" msgstr "aucune option trouvée dans la config avec ces critères"
#: tiramisu/config.py:475 #: tiramisu/config.py:483
msgid "make_dict can't filtering with value without option" msgid "make_dict can't filtering with value without option"
msgstr "make_dict ne peut filtrer sur une valeur mais sans option" msgstr "make_dict ne peut filtrer sur une valeur mais sans option"
#: tiramisu/config.py:498 #: tiramisu/config.py:506
msgid "unexpected path {0}, should start with {1}" msgid "unexpected path {0}, should start with {1}"
msgstr "chemin imprévu {0}, devrait commencer par {1}" msgstr "chemin imprévu {0}, devrait commencer par {1}"
#: tiramisu/config.py:573 #: tiramisu/config.py:591
msgid "opt in getowner must be an option not {0}" msgid "opt in getowner must be an option not {0}"
msgstr "opt dans getowner doit être une option pas {0}" msgstr "opt dans getowner doit être une option pas {0}"
#: tiramisu/config.py:621 #: tiramisu/config.py:639
msgid "cannot serialize Config with MetaConfig" msgid "cannot serialize Config with MetaConfig"
msgstr "impossible de sérialiser une Config avec une MetaConfig" msgstr "impossible de sérialiser une Config avec une MetaConfig"
#: tiramisu/config.py:635 #: tiramisu/config.py:653
msgid "this storage is not serialisable, could be a none persistent storage" msgid "this storage is not serialisable, could be a none persistent storage"
msgstr "ce storage n'est sérialisable, devrait être une storage non persistant" msgstr "ce storage n'est sérialisable, devrait être une storage non persistant"
#: tiramisu/config.py:700 #: tiramisu/config.py:722
msgid "invalid name: {0} for config" msgid "invalid name: {0} for config"
msgstr "nom invalide : {0} pour la config" msgstr "nom invalide : {0} pour la config"
#: tiramisu/config.py:732 #: tiramisu/config.py:754
msgid "groupconfig's children must be a list" msgid "groupconfig's children must be a list"
msgstr "enfants d'une groupconfig doit être une liste" msgstr "enfants d'une groupconfig doit être une liste"
#: tiramisu/config.py:736 #: tiramisu/config.py:758
msgid "groupconfig's children must be Config, MetaConfig or GroupConfig" msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
msgstr "" msgstr ""
"les enfants d'un groupconfig doivent être des Config, MetaConfig ou " "les enfants d'un groupconfig doivent être des Config, MetaConfig ou "
"GroupConfig" "GroupConfig"
#: tiramisu/config.py:739 #: tiramisu/config.py:761
msgid "name must be set to config before creating groupconfig" msgid "name must be set to config before creating groupconfig"
msgstr "un nom doit être donné à la config avant de créer un groupconfig" msgstr "un nom doit être donné à la config avant de créer un groupconfig"
#: tiramisu/config.py:745 #: tiramisu/config.py:767
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:854 #: tiramisu/config.py:876
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:858 #: tiramisu/config.py:880
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:862 #: tiramisu/config.py:884
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:877 #: tiramisu/config.py:899
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,88 +119,96 @@ 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:883 #: tiramisu/config.py:905
msgid "force_default and force_dont_change_value cannot be set together" msgid "force_default and force_dont_change_value cannot be set together"
msgstr "" msgstr ""
"force_default et force_dont_change_value ne peuvent pas être mis ensemble" "force_default et force_dont_change_value ne peuvent pas être mis ensemble"
#: tiramisu/error.py:28 #: tiramisu/error.py:23
msgid "and"
msgstr "et"
#: tiramisu/error.py:25
msgid "or"
msgstr "ou"
#: tiramisu/error.py:34
msgid " {} " msgid " {} "
msgstr " {} " msgstr " {} "
#: tiramisu/error.py:52 #: tiramisu/error.py:58
msgid "property" msgid "property"
msgstr "propriété" msgstr "de la propriété"
#: tiramisu/error.py:54 #: tiramisu/error.py:60
msgid "properties" msgid "properties"
msgstr "propriétés" msgstr "des propriétés"
#: tiramisu/error.py:56 tiramisu/setting.py:517 #: tiramisu/error.py:62 tiramisu/setting.py:520
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 de {2} {3}" msgstr "ne peut accéder à l'{0} \"{1}\" a cause {2} {3}"
#: tiramisu/option/baseoption.py:62 #: tiramisu/option/baseoption.py:63
msgid "{0} must be a function" msgid "{0} must be a function"
msgstr "{0} doit être une fonction" msgstr "{0} doit être une fonction"
#: tiramisu/option/baseoption.py:65 #: tiramisu/option/baseoption.py:66
msgid "{0}_params must be a dict" msgid "{0}_params must be a dict"
msgstr "{0}_params doit être un dict" msgstr "{0}_params doit être un dict"
#: tiramisu/option/baseoption.py:68 #: tiramisu/option/baseoption.py:69
msgid "{0}_params with key {1} mustn't have length different to 1" msgid "{0}_params with key {1} mustn't have length different to 1"
msgstr "" msgstr ""
"{0}_params avec la clef {1} ne doit pas avoir une longueur différent de 1" "{0}_params avec la clef {1} ne doit pas avoir une longueur différent de 1"
#: tiramisu/option/baseoption.py:72 #: tiramisu/option/baseoption.py:73
msgid "{0}_params must be tuple for key \"{1}\"" msgid "{0}_params must be tuple for key \"{1}\""
msgstr "{0}_params doit être un tuple pour la clef \"{1}\"" msgstr "{0}_params doit être un tuple pour la clef \"{1}\""
#: tiramisu/option/baseoption.py:78 #: tiramisu/option/baseoption.py:79
msgid "{0}_params with length of tuple as 1 must only have None as first value" msgid "{0}_params with length of tuple as 1 must only have None as first value"
msgstr "" msgstr ""
"{0}_params avec un tuple de longueur 1 doit seulement avoir None comme " "{0}_params avec un tuple de longueur 1 doit seulement avoir None comme "
"première valeur" "première valeur"
#: tiramisu/option/baseoption.py:82 #: tiramisu/option/baseoption.py:83
msgid "{0}_params must only have 1 or 2 as length" msgid "{0}_params must only have 1 or 2 as length"
msgstr "{0}_params doit seulement avoir une longueur de 1 ou 2" msgstr "{0}_params doit seulement avoir une longueur de 1 ou 2"
#: tiramisu/option/baseoption.py:88 #: tiramisu/option/baseoption.py:89
msgid "{0}_params must have an option not a {0} for first argument" msgid "{}_params must have an option not a {} for first argument"
msgstr "{0}_params doit avoir une option pas un {0} pour premier argument" msgstr "{}_params doit avoir une option pas un {} pour premier argument"
#: tiramisu/option/baseoption.py:92 #: tiramisu/option/baseoption.py:93
msgid "{0}_params must have a boolean not a {0} for second argument" msgid "{}_params must have a boolean not a {} for second argument"
msgstr "{0}_params doit avoir un booléen pas un {0} pour second argument" msgstr "{}_params doit avoir un booléan pas un {} pour second argument"
#: tiramisu/option/baseoption.py:109 #: tiramisu/option/baseoption.py:110
msgid "invalid name: {0} for option" msgid "invalid name: {0} for option"
msgstr "nom invalide : {0} pour l'option" msgstr "nom invalide : {0} pour l'option"
#: tiramisu/option/baseoption.py:111 #: tiramisu/option/baseoption.py:112
msgid "default_multi is set whereas multi is False in option: {0}" msgid "default_multi is set whereas multi is False in option: {0}"
msgstr "" msgstr ""
"default_multi est spécifié alors que multi est à False pour l'option : {0}" "default_multi est spécifié alors que multi est à False pour l'option : {0}"
#: tiramisu/option/baseoption.py:123 #: tiramisu/option/baseoption.py:124
msgid "invalid multi value" msgid "invalid multi value"
msgstr "valeur multiple invalide" msgstr "valeur multiple invalide"
#: tiramisu/option/baseoption.py:125 #: tiramisu/option/baseoption.py:126
msgid "unique must be a boolean" msgid "unique must be a boolean"
msgstr "unique doit être un booléan" msgstr "unique doit être un booléan"
#: tiramisu/option/baseoption.py:127 #: tiramisu/option/baseoption.py:128
msgid "unique must be set only with multi value" msgid "unique must be set only with multi value"
msgstr "unique doit être activé uniquement avec une valeur multiple" msgstr "unique doit être activé uniquement avec une valeur multiple"
#: tiramisu/option/baseoption.py:137 #: tiramisu/option/baseoption.py:138
msgid "invalid properties type {0} for {1}, must be a tuple" msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr "type des properties invalide {0} pour {1}, doit être un tuple" msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
#: tiramisu/option/baseoption.py:176 #: tiramisu/option/baseoption.py:211
msgid "" msgid ""
"params defined for a callback function but no callback defined yet for " "params defined for a callback function but no callback defined yet for "
"option {0}" "option {0}"
@ -208,138 +216,138 @@ msgstr ""
"params définis pour une fonction callback mais par de callback encore " "params définis pour une fonction callback mais par de callback encore "
"définis pour l'option {0}" "définis pour l'option {0}"
#: tiramisu/option/baseoption.py:181 #: tiramisu/option/baseoption.py:216
msgid "a callback is already set for {0}, cannot set another one's" msgid "a callback is already set for {0}, cannot set another one's"
msgstr "un calback a déjà été définit pour {0}, ne peut en définir un autre" msgstr "un calback a déjà été définit pour {0}, ne peut en définir un autre"
#: tiramisu/option/baseoption.py:265 #: tiramisu/option/baseoption.py:300
msgid "cannot serialize Option, only in OptionDescription" msgid "cannot serialize Option, only in OptionDescription"
msgstr "ne peut serialiser une Option, seulement via une OptionDescription" msgstr "ne peut serialiser une Option, seulement via une OptionDescription"
#: tiramisu/option/baseoption.py:346 tiramisu/storage/dictionary/option.py:123 #: tiramisu/option/baseoption.py:381 tiramisu/storage/dictionary/option.py:125
msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule" msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
#: tiramisu/option/baseoption.py:367 #: tiramisu/option/baseoption.py:402
msgid "invalid string" msgid "invalid string"
msgstr "invalide caractère" msgstr "invalide caractère"
#: tiramisu/option/baseoption.py:370 #: tiramisu/option/baseoption.py:405
msgid "invalid unicode or string" msgid "invalid unicode or string"
msgstr "invalide unicode ou string" msgstr "invalide unicode ou string"
#: tiramisu/option/baseoption.py:475 tiramisu/option/baseoption.py:572 #: tiramisu/option/baseoption.py:510 tiramisu/option/baseoption.py:609
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:513 tiramisu/option/baseoption.py:624 #: tiramisu/option/baseoption.py:548 tiramisu/option/baseoption.py:661
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:554 tiramisu/option/baseoption.py:591 #: tiramisu/option/baseoption.py:590 tiramisu/option/baseoption.py:628
msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}" msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}"
msgstr "\"{0}\" est une option de type {1} invalide pour \"{2}\", {3}" msgstr "\"{0}\" est une option de type {1} invalide pour \"{2}\", {3}"
#: tiramisu/option/baseoption.py:558 tiramisu/option/baseoption.py:595 #: tiramisu/option/baseoption.py:594 tiramisu/option/baseoption.py:632
msgid "\"{0}\" is an invalid {1} for \"{2}\"" msgid "\"{0}\" is an invalid {1} for \"{2}\""
msgstr "\"{0}\" est une option de type {1} invalide pour \"{2}\"" msgstr "\"{0}\" est une option de type {1} invalide pour \"{2}\""
#: tiramisu/option/baseoption.py:569 #: tiramisu/option/baseoption.py:606
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:611 tiramisu/option/baseoption.py:629 #: tiramisu/option/baseoption.py:648 tiramisu/option/baseoption.py:666
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:616 #: tiramisu/option/baseoption.py:653
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:638 #: tiramisu/option/baseoption.py:675
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:691 tiramisu/option/baseoption.py:695 #: tiramisu/option/baseoption.py:728 tiramisu/option/baseoption.py:732
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:697 #: tiramisu/option/baseoption.py:734
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:700 tiramisu/option/baseoption.py:707 #: tiramisu/option/baseoption.py:737 tiramisu/option/baseoption.py:744
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:703 #: tiramisu/option/baseoption.py:740
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:710 #: tiramisu/option/baseoption.py:747
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:712 #: tiramisu/option/baseoption.py:749
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:729 #: tiramisu/option/baseoption.py:766
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:736 #: tiramisu/option/baseoption.py:773
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:740 #: tiramisu/option/baseoption.py:777
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:803 #: tiramisu/option/baseoption.py:841
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:807 #: tiramisu/option/baseoption.py:844
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:809 #: tiramisu/option/baseoption.py:846
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:813 #: tiramisu/option/baseoption.py:849
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:815 #: tiramisu/option/baseoption.py:851
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:871 #: tiramisu/option/baseoption.py:910
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:891 #: tiramisu/option/baseoption.py:930
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:897 #: tiramisu/option/baseoption.py:936
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:905 #: tiramisu/option/baseoption.py:944
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"
@ -347,33 +355,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:912 #: tiramisu/option/baseoption.py:951
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:917 #: tiramisu/option/baseoption.py:956
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:921 #: tiramisu/option/baseoption.py:960
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:925 #: tiramisu/option/baseoption.py:964
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:929 #: tiramisu/option/baseoption.py:968
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:932 #: tiramisu/option/baseoption.py:971
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}"
@ -381,18 +389,12 @@ 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:938 #: tiramisu/option/baseoption.py:977
msgid "" msgid "malformed requirements expected value must be valid for option {0}: {1}"
"malformed requirements second argument must be valid for option {0}: {1}"
msgstr "" msgstr ""
"requirements mal formés deuxième argument doit être valide pour l'option " "valeur de \"expected\" malformé, doit être valide pour l'option {0} : {1}"
"{0} : {1}"
#: tiramisu/option/baseoption.py:943 #: tiramisu/option/baseoption.py:1007
msgid "inconsistency in action types for option: {0} action: {1}"
msgstr "incohérence dans les types action pour l'option : {0} action {1}"
#: tiramisu/option/baseoption.py:971
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}"
@ -764,15 +766,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:538 #: tiramisu/setting.py:541
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:545 tiramisu/value.py:539 #: tiramisu/setting.py:548 tiramisu/value.py:539
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:646 #: tiramisu/setting.py:649
msgid "" msgid ""
"malformed requirements imbrication detected for option: '{0}' with " "malformed requirements imbrication detected for option: '{0}' with "
"requirement on: '{1}'" "requirement on: '{1}'"
@ -780,15 +782,15 @@ msgstr ""
"imbrication de requirements mal formés detectée pour l'option : '{0}' avec " "imbrication de requirements mal formés detectée pour l'option : '{0}' avec "
"requirement sur : '{1}'" "requirement sur : '{1}'"
#: tiramisu/setting.py:669 #: tiramisu/setting.py:672
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:692 #: tiramisu/setting.py:695
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:694 #: tiramisu/setting.py:697
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}\""
@ -804,46 +806,46 @@ msgstr "ne peut pas importer le stockage {0}"
msgid "option {0} not already exists in storage {1}" msgid "option {0} not already exists in storage {1}"
msgstr "option {0} n'existe pas dans l'espace de stockage {1}" msgstr "option {0} n'existe pas dans l'espace de stockage {1}"
#: tiramisu/storage/dictionary/option.py:108 #: tiramisu/storage/dictionary/option.py:110
msgid "invalid default_multi value {0} for option {1}: {2}" msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}" msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
#: tiramisu/storage/dictionary/option.py:148 #: tiramisu/storage/dictionary/option.py:150
#: tiramisu/storage/dictionary/value.py:234 #: tiramisu/storage/dictionary/value.py:234
#: 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"
#: tiramisu/storage/dictionary/option.py:413 #: tiramisu/storage/dictionary/option.py:415
msgid "use impl_get_opt_by_path only with root OptionDescription" msgid "use impl_get_opt_by_path only with root OptionDescription"
msgstr "utiliser impl_get_opt_by_path seulement sur l'OptionDescription racine" msgstr "utiliser impl_get_opt_by_path seulement sur l'OptionDescription racine"
#: tiramisu/storage/dictionary/option.py:415 #: tiramisu/storage/dictionary/option.py:417
#: tiramisu/storage/sqlalchemy/option.py:730 #: tiramisu/storage/sqlalchemy/option.py:730
msgid "no option for path {0}" msgid "no option for path {0}"
msgstr "pas d'option pour le chemin {0}" msgstr "pas d'option pour le chemin {0}"
#: tiramisu/storage/dictionary/option.py:420 #: tiramisu/storage/dictionary/option.py:422
#: tiramisu/storage/sqlalchemy/option.py:740 #: tiramisu/storage/sqlalchemy/option.py:740
msgid "use impl_get_path_by_opt only with root OptionDescription" msgid "use impl_get_path_by_opt only with root OptionDescription"
msgstr "" msgstr ""
"utiliser impl_get_path_by_opt seulement avec une OptionDescription racine" "utiliser impl_get_path_by_opt seulement avec une OptionDescription racine"
#: tiramisu/storage/dictionary/option.py:422 #: tiramisu/storage/dictionary/option.py:424
#: tiramisu/storage/sqlalchemy/option.py:741 #: tiramisu/storage/sqlalchemy/option.py:741
msgid "no option {0} found" msgid "no option {0} found"
msgstr "pas d'option {0} trouvée" msgstr "pas d'option {0} trouvée"
#: tiramisu/storage/dictionary/option.py:469 #: tiramisu/storage/dictionary/option.py:471
msgid "cannot find dynpath" msgid "cannot find dynpath"
msgstr "ne peut trouver le dynpath" msgstr "ne peut trouver le dynpath"
#: tiramisu/storage/dictionary/option.py:558 #: tiramisu/storage/dictionary/option.py:560
#: tiramisu/storage/sqlalchemy/option.py:894 #: tiramisu/storage/sqlalchemy/option.py:894
msgid "suffix and context needed if it's a dyn option" msgid "suffix and context needed if it's a dyn option"
msgstr "suffix et context obligatoire si c'est une option dynamique" msgstr "suffix et context obligatoire si c'est une option dynamique"
#: tiramisu/storage/dictionary/option.py:579 #: tiramisu/storage/dictionary/option.py:581
#: tiramisu/storage/sqlalchemy/option.py:926 #: tiramisu/storage/sqlalchemy/option.py:926
msgid "unknown Option {0} in OptionDescription {1}" msgid "unknown Option {0} in OptionDescription {1}"
msgstr "Option {0} inconnue pour l'OptionDescription {1}" msgstr "Option {0} inconnue pour l'OptionDescription {1}"
@ -915,6 +917,21 @@ msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave"
msgid "cannot pop a value on a multi option {0} which is a slave" 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 "{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"
#~ msgid "{0}_params must have a boolean not a {0} for second argument"
#~ msgstr "{0}_params doit avoir un booléen pas un {0} pour second argument"
#~ msgid ""
#~ "malformed requirements second argument must be valid for option {0}: {1}"
#~ msgstr ""
#~ "requirements mal formés deuxième argument doit être valide pour l'option "
#~ "{0} : {1}"
#~ msgid "inconsistency in action types for option: {0} action: {1}"
#~ msgstr "incohérence dans les types action pour l'option : {0} action {1}"
#~ msgid "a callback is already set for option {0}, cannot set another one's" #~ msgid "a callback is already set for option {0}, cannot set another one's"
#~ msgstr "" #~ msgstr ""
#~ "un callback est en lecture seul pour l'option {0}, ne peut en placer une " #~ "un callback est en lecture seul pour l'option {0}, ne peut en placer une "

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: 2016-11-20 17:57+CET\n" "POT-Creation-Date: 2017-01-19 21:24+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,11 +15,11 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: tiramisu/autolib.py:170 #: tiramisu/autolib.py:172
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:235 #: tiramisu/autolib.py:237
msgid "callback cannot return a list for a slave option ({0})" msgid "callback cannot return a list for a slave option ({0})"
msgstr "" msgstr ""
@ -27,324 +27,328 @@ msgstr ""
msgid "descr must be an optiondescription, not {0}" msgid "descr must be an optiondescription, not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:146 #: tiramisu/config.py:148
msgid "unknown group_type: {0}" msgid "unknown group_type: {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:185 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:749
msgid "the context does not exist anymore" msgid "the context does not exist anymore"
msgstr "" msgstr ""
#: tiramisu/config.py:190 #: tiramisu/config.py:195
msgid "no option description found for this config (may be GroupConfig)" msgid "no option description found for this config (may be GroupConfig)"
msgstr "" msgstr ""
#: tiramisu/config.py:226 #: tiramisu/config.py:231
msgid "can't assign to an OptionDescription" msgid "can't assign to an OptionDescription"
msgstr "" msgstr ""
#: tiramisu/config.py:384 #: tiramisu/config.py:392
msgid "unknown type_ type {0}for _find" msgid "unknown type_ type {0}for _find"
msgstr "" msgstr ""
#: tiramisu/config.py:427 #: tiramisu/config.py:435
msgid "no option found in config with these criteria" msgid "no option found in config with these criteria"
msgstr "" msgstr ""
#: tiramisu/config.py:475 #: tiramisu/config.py:483
msgid "make_dict can't filtering with value without option" msgid "make_dict can't filtering with value without option"
msgstr "" msgstr ""
#: tiramisu/config.py:498 #: tiramisu/config.py:506
msgid "unexpected path {0}, should start with {1}" msgid "unexpected path {0}, should start with {1}"
msgstr "" msgstr ""
#: tiramisu/config.py:573 #: tiramisu/config.py:591
msgid "opt in getowner must be an option not {0}" msgid "opt in getowner must be an option not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:621 #: tiramisu/config.py:639
msgid "cannot serialize Config with MetaConfig" msgid "cannot serialize Config with MetaConfig"
msgstr "" msgstr ""
#: tiramisu/config.py:635 #: tiramisu/config.py:653
msgid "this storage is not serialisable, could be a none persistent storage" msgid "this storage is not serialisable, could be a none persistent storage"
msgstr "" msgstr ""
#: tiramisu/config.py:700 #: tiramisu/config.py:722
msgid "invalid name: {0} for config" msgid "invalid name: {0} for config"
msgstr "" msgstr ""
#: tiramisu/config.py:732 #: tiramisu/config.py:754
msgid "groupconfig's children must be a list" msgid "groupconfig's children must be a list"
msgstr "" msgstr ""
#: tiramisu/config.py:736 #: tiramisu/config.py:758
msgid "groupconfig's children must be Config, MetaConfig or GroupConfig" msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
msgstr "" msgstr ""
#: tiramisu/config.py:739 #: tiramisu/config.py:761
msgid "name must be set to config before creating groupconfig" msgid "name must be set to config before creating groupconfig"
msgstr "" msgstr ""
#: tiramisu/config.py:745 #: tiramisu/config.py:767
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:854 #: tiramisu/config.py:876
msgid "metaconfig's children should be config, not {0}" msgid "metaconfig's children should be config, not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:858 #: tiramisu/config.py:880
msgid "child has already a metaconfig's" msgid "child has already a metaconfig's"
msgstr "" msgstr ""
#: tiramisu/config.py:862 #: tiramisu/config.py:884
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:877 #: tiramisu/config.py:899
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:883 #: tiramisu/config.py:905
msgid "force_default and force_dont_change_value cannot be set together" msgid "force_default and force_dont_change_value cannot be set together"
msgstr "" msgstr ""
#: tiramisu/error.py:28 #: tiramisu/error.py:23
msgid "and"
msgstr ""
#: tiramisu/error.py:25
msgid "or"
msgstr ""
#: tiramisu/error.py:34
msgid " {} " msgid " {} "
msgstr "" msgstr ""
#: tiramisu/error.py:52 #: tiramisu/error.py:58
msgid "property" msgid "property"
msgstr "" msgstr ""
#: tiramisu/error.py:54 #: tiramisu/error.py:60
msgid "properties" msgid "properties"
msgstr "" msgstr ""
#: tiramisu/error.py:56 tiramisu/setting.py:517 #: tiramisu/error.py:62 tiramisu/setting.py:520
msgid "cannot access to {0} \"{1}\" because has {2} {3}" msgid "cannot access to {0} \"{1}\" because has {2} {3}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:62 #: tiramisu/option/baseoption.py:63
msgid "{0} must be a function" msgid "{0} must be a function"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:65 #: tiramisu/option/baseoption.py:66
msgid "{0}_params must be a dict" msgid "{0}_params must be a dict"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:68 #: tiramisu/option/baseoption.py:69
msgid "{0}_params with key {1} mustn't have length different to 1" msgid "{0}_params with key {1} mustn't have length different to 1"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:72 #: tiramisu/option/baseoption.py:73
msgid "{0}_params must be tuple for key \"{1}\"" msgid "{0}_params must be tuple for key \"{1}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:78 #: tiramisu/option/baseoption.py:79
msgid "{0}_params with length of tuple as 1 must only have None as first value" msgid "{0}_params with length of tuple as 1 must only have None as first value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:82 #: tiramisu/option/baseoption.py:83
msgid "{0}_params must only have 1 or 2 as length" msgid "{0}_params must only have 1 or 2 as length"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:88 #: tiramisu/option/baseoption.py:89
msgid "{0}_params must have an option not a {0} for first argument" msgid "{}_params must have an option not a {} for first argument"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:92 #: tiramisu/option/baseoption.py:93
msgid "{0}_params must have a boolean not a {0} for second argument" msgid "{}_params must have a boolean not a {} for second argument"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:109 #: tiramisu/option/baseoption.py:110
msgid "invalid name: {0} for option" msgid "invalid name: {0} for option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:111 #: tiramisu/option/baseoption.py:112
msgid "default_multi is set whereas multi is False in option: {0}" msgid "default_multi is set whereas multi is False in option: {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:123 #: tiramisu/option/baseoption.py:124
msgid "invalid multi value" msgid "invalid multi value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:125 #: tiramisu/option/baseoption.py:126
msgid "unique must be a boolean" msgid "unique must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:127 #: tiramisu/option/baseoption.py:128
msgid "unique must be set only with multi value" msgid "unique must be set only with multi value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:137 #: tiramisu/option/baseoption.py:138
msgid "invalid properties type {0} for {1}, must be a tuple" msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:176 #: tiramisu/option/baseoption.py:211
msgid "params defined for a callback function but no callback defined yet for option {0}" msgid "params defined for a callback function but no callback defined yet for option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:181 #: tiramisu/option/baseoption.py:216
msgid "a callback is already set for {0}, cannot set another one's" msgid "a callback is already set for {0}, cannot set another one's"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:265 #: tiramisu/option/baseoption.py:300
msgid "cannot serialize Option, only in OptionDescription" msgid "cannot serialize Option, only in OptionDescription"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:346 tiramisu/storage/dictionary/option.py:123 #: tiramisu/option/baseoption.py:381 tiramisu/storage/dictionary/option.py:125
msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:367 #: tiramisu/option/baseoption.py:402
msgid "invalid string" msgid "invalid string"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:370 #: tiramisu/option/baseoption.py:405
msgid "invalid unicode or string" msgid "invalid unicode or string"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:475 tiramisu/option/baseoption.py:572 #: tiramisu/option/baseoption.py:510 tiramisu/option/baseoption.py:609
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:513 tiramisu/option/baseoption.py:624 #: tiramisu/option/baseoption.py:548 tiramisu/option/baseoption.py:661
msgid "invalid value \"{}\", this value is already in \"{}\"" msgid "invalid value \"{}\", this value is already in \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:554 tiramisu/option/baseoption.py:591 #: tiramisu/option/baseoption.py:590 tiramisu/option/baseoption.py:628
msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}" msgid "\"{0}\" is an invalid {1} for \"{2}\", {3}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:558 tiramisu/option/baseoption.py:595 #: tiramisu/option/baseoption.py:594 tiramisu/option/baseoption.py:632
msgid "\"{0}\" is an invalid {1} for \"{2}\"" msgid "\"{0}\" is an invalid {1} for \"{2}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:569 #: tiramisu/option/baseoption.py:606
msgid "do_validation for {0}: error in value" msgid "do_validation for {0}: error in value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:611 tiramisu/option/baseoption.py:629 #: tiramisu/option/baseoption.py:648 tiramisu/option/baseoption.py:666
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:616 #: tiramisu/option/baseoption.py:653
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:638 #: tiramisu/option/baseoption.py:675
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:691 tiramisu/option/baseoption.py:695 #: tiramisu/option/baseoption.py:728 tiramisu/option/baseoption.py:732
msgid "cannot add consistency with submulti option" msgid "cannot add consistency with submulti option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:697 #: tiramisu/option/baseoption.py:734
msgid "consistency must be set with an option" msgid "consistency must be set with an option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:700 tiramisu/option/baseoption.py:707 #: tiramisu/option/baseoption.py:737 tiramisu/option/baseoption.py:744
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:703 #: tiramisu/option/baseoption.py:740
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:710 #: tiramisu/option/baseoption.py:747
msgid "cannot add consistency with itself" msgid "cannot add consistency with itself"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:712 #: tiramisu/option/baseoption.py:749
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:729 #: tiramisu/option/baseoption.py:766
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:736 #: tiramisu/option/baseoption.py:773
msgid "consistency {0} not available for this option" msgid "consistency {0} not available for this option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:740 #: tiramisu/option/baseoption.py:777
msgid "unknow parameter {0} in consistency" msgid "unknow parameter {0} in consistency"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:803 #: tiramisu/option/baseoption.py:841
msgid "_cons_not_equal: {} are not different" msgid "_cons_not_equal: {} are not different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:807 #: tiramisu/option/baseoption.py:844
msgid "should be different from the value of {}" msgid "should be different from the value of {}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:809 #: tiramisu/option/baseoption.py:846
msgid "must be different from the value of {}" msgid "must be different from the value of {}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:813 #: tiramisu/option/baseoption.py:849
msgid "value for {} should be different" msgid "value for {} should be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:815 #: tiramisu/option/baseoption.py:851
msgid "value for {} must be different" msgid "value for {} must be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:871 #: tiramisu/option/baseoption.py:910
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:891 #: tiramisu/option/baseoption.py:930
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:897 #: tiramisu/option/baseoption.py:936
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:905 #: tiramisu/option/baseoption.py:944
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:912 #: tiramisu/option/baseoption.py:951
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:917 #: tiramisu/option/baseoption.py:956
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:921 #: tiramisu/option/baseoption.py:960
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:925 #: tiramisu/option/baseoption.py:964
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:929 #: tiramisu/option/baseoption.py:968
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:932 #: tiramisu/option/baseoption.py:971
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:938 #: tiramisu/option/baseoption.py:977
msgid "malformed requirements second argument 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:943 #: tiramisu/option/baseoption.py:1007
msgid "inconsistency in action types for option: {0} action: {1}"
msgstr ""
#: tiramisu/option/baseoption.py:971
msgid "malformed symlinkoption must be an option for symlink {0}" msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "" msgstr ""
@ -697,27 +701,27 @@ 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:538 #: tiramisu/setting.py:541
msgid "permissive must be a tuple" msgid "permissive must be a tuple"
msgstr "" msgstr ""
#: tiramisu/setting.py:545 tiramisu/value.py:539 #: tiramisu/setting.py:548 tiramisu/value.py:539
msgid "invalid generic owner {0}" msgid "invalid generic owner {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:646 #: tiramisu/setting.py:649
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 ""
#: tiramisu/setting.py:669 #: tiramisu/setting.py:672
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:692 #: tiramisu/setting.py:695
msgid "the value of \"{0}\" is \"{1}\"" msgid "the value of \"{0}\" is \"{1}\""
msgstr "" msgstr ""
#: tiramisu/setting.py:694 #: tiramisu/setting.py:697
msgid "the value of \"{0}\" is not \"{1}\"" msgid "the value of \"{0}\" is not \"{1}\""
msgstr "" msgstr ""
@ -733,45 +737,45 @@ msgstr ""
msgid "option {0} not already exists in storage {1}" msgid "option {0} not already exists in storage {1}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:108 #: tiramisu/storage/dictionary/option.py:110
msgid "invalid default_multi value {0} for option {1}: {2}" msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:148 #: tiramisu/storage/dictionary/option.py:150
#: tiramisu/storage/dictionary/value.py:234 #: tiramisu/storage/dictionary/value.py:234
#: 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 ""
#: tiramisu/storage/dictionary/option.py:413 #: tiramisu/storage/dictionary/option.py:415
msgid "use impl_get_opt_by_path only with root OptionDescription" msgid "use impl_get_opt_by_path only with root OptionDescription"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:415 #: tiramisu/storage/dictionary/option.py:417
#: tiramisu/storage/sqlalchemy/option.py:730 #: tiramisu/storage/sqlalchemy/option.py:730
msgid "no option for path {0}" msgid "no option for path {0}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:420 #: tiramisu/storage/dictionary/option.py:422
#: tiramisu/storage/sqlalchemy/option.py:740 #: tiramisu/storage/sqlalchemy/option.py:740
msgid "use impl_get_path_by_opt only with root OptionDescription" msgid "use impl_get_path_by_opt only with root OptionDescription"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:422 #: tiramisu/storage/dictionary/option.py:424
#: tiramisu/storage/sqlalchemy/option.py:741 #: tiramisu/storage/sqlalchemy/option.py:741
msgid "no option {0} found" msgid "no option {0} found"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:469 #: tiramisu/storage/dictionary/option.py:471
msgid "cannot find dynpath" msgid "cannot find dynpath"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:558 #: tiramisu/storage/dictionary/option.py:560
#: tiramisu/storage/sqlalchemy/option.py:894 #: tiramisu/storage/sqlalchemy/option.py:894
msgid "suffix and context needed if it's a dyn option" msgid "suffix and context needed if it's a dyn option"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:579 #: tiramisu/storage/dictionary/option.py:581
#: tiramisu/storage/sqlalchemy/option.py:926 #: tiramisu/storage/sqlalchemy/option.py:926
msgid "unknown Option {0} in OptionDescription {1}" msgid "unknown Option {0} in OptionDescription {1}"
msgstr "" msgstr ""