test uppercase character before valid domain name for better error message
This commit is contained in:
parent
bc65caa4dc
commit
85297d8c4d
5 changed files with 360 additions and 255 deletions
|
@ -1,5 +1,7 @@
|
|||
Sun Dec 7 14:37:32 2014 +0200 Emmanuel Garette <egarette@cadoles.com>
|
||||
* mandatory master/slave's consistency with default value as slave
|
||||
* test uppercase character before valid domain name for better error
|
||||
message
|
||||
|
||||
Mon Dec 1 22:58:13 2014 +0200 Emmanuel Garette <egarette@cadoles.com>
|
||||
* propertyerror are transitive in consistency, now it's possible to set
|
||||
|
|
|
@ -5,6 +5,7 @@ from py.test import raises
|
|||
from tiramisu.config import Config
|
||||
from tiramisu.option import DomainnameOption, EmailOption, URLOption, OptionDescription
|
||||
from tiramisu.error import ValueWarning
|
||||
from tiramisu.i18n import _
|
||||
|
||||
|
||||
def test_domainname():
|
||||
|
@ -36,6 +37,29 @@ def test_domainname():
|
|||
c.g = '192.168.1.29'
|
||||
|
||||
|
||||
def test_domainname_upper():
|
||||
d = DomainnameOption('d', '')
|
||||
od = OptionDescription('a', '', [d])
|
||||
c = Config(od)
|
||||
c.read_write()
|
||||
c.d = 'toto.com'
|
||||
msg = _('some characters are uppercase')
|
||||
has_error = False
|
||||
try:
|
||||
c.d = 'TOTO.COM'
|
||||
except ValueError, err:
|
||||
assert msg in unicode(err)
|
||||
has_error = True
|
||||
assert has_error is True
|
||||
has_error = False
|
||||
try:
|
||||
c.d = 'toTo.com'
|
||||
except ValueError, err:
|
||||
assert msg in unicode(err)
|
||||
has_error = True
|
||||
assert has_error is True
|
||||
|
||||
|
||||
def test_domainname_warning():
|
||||
d = DomainnameOption('d', '', warnings_only=True)
|
||||
f = DomainnameOption('f', '', allow_without_dot=True, warnings_only=True)
|
||||
|
|
|
@ -409,6 +409,7 @@ class DomainnameOption(Option):
|
|||
extra['_allow_ip'] = allow_ip
|
||||
extra['_allow_without_dot'] = allow_without_dot
|
||||
extra['_domain_re'] = re.compile(r'^[a-z\d][a-z\d\-]*$')
|
||||
extra['_has_upper'] = re.compile('[A-Z]')
|
||||
|
||||
super(DomainnameOption, self).__init__(name, doc, default=default,
|
||||
default_multi=default_multi,
|
||||
|
@ -452,9 +453,11 @@ class DomainnameOption(Option):
|
|||
|
||||
def _second_level_validation(self, value, warnings_only):
|
||||
def _valid_char(val):
|
||||
if self._get_extra('_has_upper').search(val):
|
||||
raise ValueError(_('some characters are uppercase'))
|
||||
if not self._get_extra('_domain_re').search(val):
|
||||
if warnings_only:
|
||||
raise ValueError(_('same characters may cause problems'))
|
||||
raise ValueError(_('some characters may cause problems'))
|
||||
else:
|
||||
raise ValueError(_('invalid domainname'))
|
||||
#not for IP
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Tiramisu\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-10-26 09:35+CET\n"
|
||||
"POT-Creation-Date: 2014-12-07 14:44+CET\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
|
||||
"Language-Team: Tiramisu's team <egarette@cadoles.com>\n"
|
||||
|
@ -21,73 +21,104 @@ msgstr ""
|
|||
"impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : "
|
||||
"{2}"
|
||||
|
||||
#: tiramisu/config.py:58
|
||||
#: tiramisu/config.py:59
|
||||
msgid "descr must be an optiondescription, not {0}"
|
||||
msgstr "descr doit être une optiondescription pas un {0}"
|
||||
|
||||
#: tiramisu/config.py:137
|
||||
#: tiramisu/config.py:139
|
||||
msgid "unknown group_type: {0}"
|
||||
msgstr "group_type inconnu: {0}"
|
||||
|
||||
#: tiramisu/config.py:176 tiramisu/setting.py:321 tiramisu/value.py:54
|
||||
#: tiramisu/value.py:555
|
||||
#: tiramisu/config.py:178 tiramisu/setting.py:320 tiramisu/value.py:54
|
||||
#: tiramisu/value.py:605
|
||||
msgid "the context does not exist anymore"
|
||||
msgstr "le context n'existe plus"
|
||||
|
||||
#: tiramisu/config.py:181
|
||||
#: tiramisu/config.py:183
|
||||
msgid "no option description found for this config (may be GroupConfig)"
|
||||
msgstr ""
|
||||
"pas d'option description trouvé pour cette config (peut être un GroupConfig)"
|
||||
|
||||
#: tiramisu/config.py:209
|
||||
#: tiramisu/config.py:211
|
||||
msgid "can't assign to an OptionDescription"
|
||||
msgstr "ne peut pas attribuer une valeur à une OptionDescription"
|
||||
|
||||
#: tiramisu/config.py:335
|
||||
#: tiramisu/config.py:340
|
||||
msgid "unknown type_ type {0}for _find"
|
||||
msgstr "type_ type {0} pour _find inconnu"
|
||||
|
||||
#: tiramisu/config.py:370
|
||||
#: tiramisu/config.py:380
|
||||
msgid "no option found in config with these criteria"
|
||||
msgstr "aucune option trouvée dans la config avec ces critères"
|
||||
|
||||
#: tiramisu/config.py:420
|
||||
#: tiramisu/config.py:430
|
||||
msgid "make_dict can't filtering with value without option"
|
||||
msgstr "make_dict ne peut filtrer sur une valeur mais sans option"
|
||||
|
||||
#: tiramisu/config.py:439
|
||||
#: tiramisu/config.py:449
|
||||
msgid "unexpected path {0}, should start with {1}"
|
||||
msgstr "chemin imprévu {0}, devrait commencer par {1}"
|
||||
|
||||
#: tiramisu/config.py:507
|
||||
#: tiramisu/config.py:519
|
||||
msgid "opt in getowner must be an option not {0}"
|
||||
msgstr "opt dans getowner doit être une option pas {0}"
|
||||
|
||||
#: tiramisu/config.py:552
|
||||
#: tiramisu/config.py:564
|
||||
msgid "cannot serialize Config with MetaConfig"
|
||||
msgstr "impossible de sérialiser une Config avec une MetaConfig"
|
||||
|
||||
#: tiramisu/config.py:566
|
||||
#: tiramisu/config.py:578
|
||||
msgid "this storage is not serialisable, could be a none persistent storage"
|
||||
msgstr "ce storage n'est sérialisable, devrait être une storage non persistant"
|
||||
|
||||
#: tiramisu/config.py:629
|
||||
msgid "metaconfig's children must be a list"
|
||||
msgstr "enfants d'une metaconfig doit être une liste"
|
||||
#: tiramisu/config.py:631
|
||||
msgid "invalid name: {0} for config"
|
||||
msgstr "nom invalide : {0} pour la config"
|
||||
|
||||
#: tiramisu/config.py:723
|
||||
#: tiramisu/config.py:655
|
||||
msgid "groupconfig's children must be a list"
|
||||
msgstr "enfants d'une groupconfig doit être une liste"
|
||||
|
||||
#: tiramisu/config.py:659
|
||||
msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
|
||||
msgstr ""
|
||||
"les enfants d'un groupconfig doivent être des Config, MetaConfig ou "
|
||||
"GroupConfig"
|
||||
|
||||
#: tiramisu/config.py:662
|
||||
msgid "name must be set to config before creating groupconfig"
|
||||
msgstr "un nom doit être donné à la config avant de créer un groupconfig"
|
||||
|
||||
#: tiramisu/config.py:670
|
||||
msgid "config name must be uniq in groupconfig for {0}"
|
||||
msgstr "le nom de la config doit être unique dans un groupconfig pour {0}"
|
||||
|
||||
#: tiramisu/config.py:785
|
||||
msgid "metaconfig's children should be config, not {0}"
|
||||
msgstr "enfants d'une metaconfig doit être une config, pas {0}"
|
||||
|
||||
#: tiramisu/config.py:727
|
||||
#: tiramisu/config.py:789
|
||||
msgid "child has already a metaconfig's"
|
||||
msgstr "enfant a déjà une metaconfig"
|
||||
|
||||
#: tiramisu/config.py:731
|
||||
#: tiramisu/config.py:793
|
||||
msgid "all config in metaconfig must have the same optiondescription"
|
||||
msgstr ""
|
||||
"toutes les configs d'une metaconfig doivent avoir la même optiondescription"
|
||||
|
||||
#: tiramisu/config.py:805
|
||||
msgid ""
|
||||
"force_default, force_default_if_same or force_dont_change_value cannot be "
|
||||
"set with only_config"
|
||||
msgstr ""
|
||||
"force_default, force_default_if_same ou force_dont_change_value ne peuvent "
|
||||
"pas être spécifié avec only_config"
|
||||
|
||||
#: tiramisu/config.py:811
|
||||
msgid "force_default and force_dont_change_value cannot be set together"
|
||||
msgstr ""
|
||||
"force_default et force_dont_change_value ne peuvent pas être mis ensemble"
|
||||
|
||||
#: tiramisu/option/baseoption.py:56
|
||||
msgid "{0} must be a function"
|
||||
msgstr "{0} doit être une fonction"
|
||||
|
@ -141,7 +172,7 @@ msgstr ""
|
|||
msgid "invalid properties type {0} for {1}, must be a tuple"
|
||||
msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
|
||||
|
||||
#: tiramisu/option/baseoption.py:144
|
||||
#: tiramisu/option/baseoption.py:145
|
||||
msgid ""
|
||||
"params defined for a callback function but no callback defined yet for "
|
||||
"option {0}"
|
||||
|
@ -149,112 +180,115 @@ msgstr ""
|
|||
"params définis pour une fonction callback mais par de callback encore "
|
||||
"définis pour l'option {0}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:149
|
||||
#: tiramisu/option/baseoption.py:150
|
||||
msgid "a callback is already set for option {0}, cannot set another one's"
|
||||
msgstr ""
|
||||
"un callback est en lecture seul pour l'option {0}, ne peut en placer une "
|
||||
"autre"
|
||||
|
||||
#: tiramisu/option/baseoption.py:276
|
||||
#: tiramisu/option/baseoption.py:277
|
||||
msgid "cannot serialize Option, only in OptionDescription"
|
||||
msgstr "ne peut serialiser une Option, seulement via une OptionDescription"
|
||||
|
||||
#: tiramisu/option/baseoption.py:354
|
||||
#: tiramisu/option/baseoption.py:363
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule"
|
||||
|
||||
#: tiramisu/option/baseoption.py:509 tiramisu/option/baseoption.py:552
|
||||
#: tiramisu/option/baseoption.py:528 tiramisu/option/baseoption.py:571
|
||||
msgid "invalid value for option {0}: {1}"
|
||||
msgstr "valeur invalide pour l'option {0} : {1}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:522
|
||||
#: tiramisu/option/baseoption.py:541
|
||||
msgid "do_validation for {0}: error in value"
|
||||
msgstr "do_validation for {0} : erreur dans un la valeur"
|
||||
|
||||
#: tiramisu/option/baseoption.py:528
|
||||
#: tiramisu/option/baseoption.py:547
|
||||
msgid "do_validation for {0}: warning in value"
|
||||
msgstr "do_validation for {0} : warning dans un la valeur"
|
||||
|
||||
#: tiramisu/option/baseoption.py:538
|
||||
#: tiramisu/option/baseoption.py:557
|
||||
msgid "do_validation for {0}: error in consistency"
|
||||
msgstr "do_validation for {0} : erreur dans un test de consistance"
|
||||
|
||||
#: tiramisu/option/baseoption.py:542
|
||||
#: tiramisu/option/baseoption.py:561
|
||||
msgid "do_validation for {0}: warning in consistency"
|
||||
msgstr "do_validation for {0} : warning dans un test de consistance"
|
||||
|
||||
#: tiramisu/option/baseoption.py:546
|
||||
#: tiramisu/option/baseoption.py:565
|
||||
msgid "warning on the value of the option {0}: {1}"
|
||||
msgstr "avertissement sur la valeur de l'option {0} : {1}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:564 tiramisu/option/baseoption.py:573
|
||||
#: tiramisu/option/baseoption.py:583 tiramisu/option/baseoption.py:592
|
||||
msgid "invalid value {0} for option {1} which must be a list"
|
||||
msgstr "valeur invalide pour l'option {0} : {1} laquelle doit être une liste"
|
||||
|
||||
#: tiramisu/option/baseoption.py:579
|
||||
#: tiramisu/option/baseoption.py:598
|
||||
msgid "invalid value {0} for option {1} which must be a list of list"
|
||||
msgstr ""
|
||||
"valeur invalide pour l'option {0} : {1} laquelle doit être une liste de liste"
|
||||
|
||||
#: tiramisu/option/baseoption.py:632
|
||||
#, fuzzy
|
||||
#: tiramisu/option/baseoption.py:651
|
||||
msgid "'{0}' ({1}) cannot add consistency, option is read-only"
|
||||
msgstr ""
|
||||
"'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul"
|
||||
|
||||
#: tiramisu/option/baseoption.py:643
|
||||
#: tiramisu/option/baseoption.py:663
|
||||
msgid "unknow parameter {0} in consistency"
|
||||
msgstr "paramètre inconnu {0} dans un test de consistance"
|
||||
|
||||
#: tiramisu/option/baseoption.py:670
|
||||
msgid "consistency must be set with an option"
|
||||
msgstr "consistency doit être configuré avec une option"
|
||||
|
||||
#: tiramisu/option/baseoption.py:646 tiramisu/option/baseoption.py:653
|
||||
#: tiramisu/option/baseoption.py:673 tiramisu/option/baseoption.py:680
|
||||
msgid ""
|
||||
"almost one option in consistency is in a dynoptiondescription but not all"
|
||||
msgstr ""
|
||||
"au moins une option dans le test de consistance est dans une "
|
||||
"dynoptiondescription mais pas toutes"
|
||||
|
||||
#: tiramisu/option/baseoption.py:649
|
||||
#: tiramisu/option/baseoption.py:676
|
||||
msgid "option in consistency must be in same dynoptiondescription"
|
||||
msgstr ""
|
||||
"option dans une consistency doit être dans le même dynoptiondescription"
|
||||
|
||||
#: tiramisu/option/baseoption.py:656
|
||||
#: tiramisu/option/baseoption.py:683
|
||||
msgid "cannot add consistency with itself"
|
||||
msgstr "ne peut ajouter une consistency avec lui même"
|
||||
|
||||
#: tiramisu/option/baseoption.py:658
|
||||
#: tiramisu/option/baseoption.py:685
|
||||
msgid "every options in consistency must be multi or none"
|
||||
msgstr ""
|
||||
"toutes les options d'une consistency doivent être multi ou ne pas l'être"
|
||||
|
||||
#: tiramisu/option/baseoption.py:662
|
||||
#: tiramisu/option/baseoption.py:689
|
||||
msgid "consistency {0} not available for this option"
|
||||
msgstr "consistency {0} non valable pour cette option"
|
||||
|
||||
#: tiramisu/option/baseoption.py:689
|
||||
#: tiramisu/option/baseoption.py:717
|
||||
msgid "same value for {0} and {1}, should be different"
|
||||
msgstr "même valeur pour {0} et {1}, devrait être différent"
|
||||
|
||||
#: tiramisu/option/baseoption.py:691
|
||||
#: tiramisu/option/baseoption.py:719
|
||||
msgid "same value for {0} and {1}, must be different"
|
||||
msgstr "même valeur pour {0} et {1}, doit être différent"
|
||||
|
||||
#: tiramisu/option/baseoption.py:748
|
||||
#: tiramisu/option/baseoption.py:776
|
||||
msgid "default value not allowed if option: {0} is calculated"
|
||||
msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée"
|
||||
|
||||
#: tiramisu/option/baseoption.py:770
|
||||
#: tiramisu/option/baseoption.py:798
|
||||
msgid "malformed requirements type for option: {0}, must be a dict"
|
||||
msgstr ""
|
||||
"type requirements malformé pour l'option : {0}, doit être un dictionnaire"
|
||||
|
||||
#: tiramisu/option/baseoption.py:776
|
||||
#: tiramisu/option/baseoption.py:804
|
||||
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
|
||||
msgstr ""
|
||||
"requirements mal formés pour l'option : {0} clefs inconnues {1}, doit "
|
||||
"seulement avoir {2}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:787
|
||||
#: tiramisu/option/baseoption.py:815
|
||||
msgid ""
|
||||
"malformed requirements for option: {0} require must have option, expected "
|
||||
"and action keys"
|
||||
|
@ -262,49 +296,49 @@ msgstr ""
|
|||
"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
|
||||
"option, expected et action"
|
||||
|
||||
#: tiramisu/option/baseoption.py:791
|
||||
#: tiramisu/option/baseoption.py:819
|
||||
msgid ""
|
||||
"malformed requirements for option: {0} action cannot be force_store_value"
|
||||
msgstr ""
|
||||
"requirements mal formés pour l'option : {0} action ne peut pas être "
|
||||
"force_store_value"
|
||||
|
||||
#: tiramisu/option/baseoption.py:796
|
||||
#: tiramisu/option/baseoption.py:824
|
||||
msgid "malformed requirements for option: {0} inverse must be boolean"
|
||||
msgstr ""
|
||||
"requirements mal formés pour l'option : {0} inverse doit être un booléen"
|
||||
|
||||
#: tiramisu/option/baseoption.py:800
|
||||
#: tiramisu/option/baseoption.py:828
|
||||
msgid "malformed requirements for option: {0} transitive must be boolean"
|
||||
msgstr ""
|
||||
"requirements mal formés pour l'option : {0} transitive doit être booléen"
|
||||
|
||||
#: tiramisu/option/baseoption.py:804
|
||||
#: tiramisu/option/baseoption.py:832
|
||||
msgid "malformed requirements for option: {0} same_action must be boolean"
|
||||
msgstr ""
|
||||
"requirements mal formés pour l'option : {0} same_action doit être un booléen"
|
||||
|
||||
#: tiramisu/option/baseoption.py:808
|
||||
#: tiramisu/option/baseoption.py:836
|
||||
msgid "malformed requirements must be an option in option {0}"
|
||||
msgstr "requirements mal formés doit être une option dans l'option {0}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:811
|
||||
#: tiramisu/option/baseoption.py:839
|
||||
msgid "malformed requirements option {0} must not be a multi for {1}"
|
||||
msgstr ""
|
||||
"requirements mal formés pour l'option {0} ne doit pas être une multi pour {1}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:818
|
||||
#: tiramisu/option/baseoption.py:846
|
||||
msgid ""
|
||||
"malformed requirements second argument must be valid for option {0}: {1}"
|
||||
msgstr ""
|
||||
"requirements mal formés deuxième argument doit être valide pour l'option "
|
||||
"{0} : {1}"
|
||||
|
||||
#: tiramisu/option/baseoption.py:823
|
||||
#: tiramisu/option/baseoption.py:851
|
||||
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:851
|
||||
#: tiramisu/option/baseoption.py:879
|
||||
msgid "malformed symlinkoption must be an option for symlink {0}"
|
||||
msgstr "symlinkoption mal formé, doit être une option pour symlink {0}"
|
||||
|
||||
|
@ -332,7 +366,7 @@ msgstr ""
|
|||
"callback d'une variable maitre ne devrait pas référencer des variables "
|
||||
"esclaves"
|
||||
|
||||
#: tiramisu/option/masterslave.py:198
|
||||
#: tiramisu/option/masterslave.py:258
|
||||
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"
|
||||
|
||||
|
@ -406,55 +440,59 @@ msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
|
|||
msgstr ""
|
||||
"IP invalide {0} ({1}) pas dans le réseau {2} ({3}) avec le masque {4} ({5})"
|
||||
|
||||
#: tiramisu/option/option.py:254
|
||||
#: tiramisu/option/option.py:256
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr "inconsistence dans la plage autorisée"
|
||||
|
||||
#: tiramisu/option/option.py:259
|
||||
#: tiramisu/option/option.py:261
|
||||
msgid "max value is empty"
|
||||
msgstr "la valeur maximum est vide"
|
||||
|
||||
#: tiramisu/option/option.py:277
|
||||
#: tiramisu/option/option.py:279
|
||||
msgid "invalid port, range must have two values only"
|
||||
msgstr "port invalide, une plage doit avoir deux valeurs seulement"
|
||||
|
||||
#: tiramisu/option/option.py:280
|
||||
#: tiramisu/option/option.py:282
|
||||
msgid "invalid port, first port in range must be smaller than the second one"
|
||||
msgstr ""
|
||||
"port invalide, le premier port d'une plage doit être plus petit que le second"
|
||||
|
||||
#: tiramisu/option/option.py:289
|
||||
#: tiramisu/option/option.py:291
|
||||
msgid "invalid port"
|
||||
msgstr "port invalide"
|
||||
|
||||
#: tiramisu/option/option.py:291
|
||||
#: tiramisu/option/option.py:293
|
||||
msgid "invalid port, must be an between {0} and {1}"
|
||||
msgstr "port invalide, port doit être entre {0} et {1}"
|
||||
|
||||
#: tiramisu/option/option.py:304
|
||||
#: tiramisu/option/option.py:306
|
||||
msgid "invalid network address"
|
||||
msgstr "adresse réseau invalide"
|
||||
|
||||
#: tiramisu/option/option.py:310
|
||||
#: tiramisu/option/option.py:312
|
||||
msgid "network address is in reserved class"
|
||||
msgstr "l'adresse réseau est pas dans une plage d'adresse réservée"
|
||||
|
||||
#: tiramisu/option/option.py:312
|
||||
#: tiramisu/option/option.py:314
|
||||
msgid "invalid network address, mustn't be in reserved class"
|
||||
msgstr "adresse réseau invalide, ne doit pas être dans la classe réservée"
|
||||
|
||||
#: tiramisu/option/option.py:324
|
||||
#: tiramisu/option/option.py:326
|
||||
msgid "invalid netmask address"
|
||||
msgstr "masque de sous-réseau invalide"
|
||||
|
||||
#: tiramisu/option/option.py:341
|
||||
#: tiramisu/option/option.py:343
|
||||
msgid "invalid len for opts"
|
||||
msgstr "longueur invalide pour opts"
|
||||
|
||||
#: tiramisu/option/option.py:355
|
||||
#: tiramisu/option/option.py:352
|
||||
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
|
||||
msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un réseau"
|
||||
|
||||
#: tiramisu/option/option.py:355
|
||||
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast"
|
||||
msgstr "IP invalide {0} ({1}) avec masque {2}, cette IP est un broadcast"
|
||||
|
||||
#: tiramisu/option/option.py:360
|
||||
msgid "invalid network {0} ({1}) with netmask {2}"
|
||||
msgstr "réseau invalide {0} ({1}) avec masque {2}"
|
||||
|
@ -481,55 +519,59 @@ msgstr "allow_ip doit être un booléen"
|
|||
msgid "allow_without_dot must be a boolean"
|
||||
msgstr "allow_without_dot doit être un booléen"
|
||||
|
||||
#: tiramisu/option/option.py:428
|
||||
#: tiramisu/option/option.py:429
|
||||
msgid "invalid domainname's length (min 2)"
|
||||
msgstr "longueur du nom de domaine invalide (minimum 2)"
|
||||
|
||||
#: tiramisu/option/option.py:430
|
||||
#: tiramisu/option/option.py:431
|
||||
msgid "invalid domainname's length (max {0})"
|
||||
msgstr "longueur du nom de domaine invalide (maximum {0})"
|
||||
|
||||
#: tiramisu/option/option.py:445
|
||||
#: tiramisu/option/option.py:446
|
||||
msgid "invalid domainname, must have dot"
|
||||
msgstr "nom de domaine invalide, doit avoir un point"
|
||||
|
||||
#: tiramisu/option/option.py:447
|
||||
#: tiramisu/option/option.py:448
|
||||
msgid "invalid domainname's length (max 255)"
|
||||
msgstr "longueur du nom de domaine invalide (maximum {1})"
|
||||
|
||||
#: tiramisu/option/option.py:457
|
||||
msgid "same characters may cause problems"
|
||||
msgid "some characters are uppercase"
|
||||
msgstr "des caractères sont en majuscule"
|
||||
|
||||
#: tiramisu/option/option.py:460
|
||||
msgid "some characters may cause problems"
|
||||
msgstr "des caractères peuvent poser problèmes"
|
||||
|
||||
#: tiramisu/option/option.py:459
|
||||
#: tiramisu/option/option.py:462
|
||||
msgid "invalid domainname"
|
||||
msgstr "nom de domaine invalide"
|
||||
|
||||
#: tiramisu/option/option.py:483
|
||||
#: tiramisu/option/option.py:486
|
||||
msgid "invalid email address, must contains one @"
|
||||
msgstr "adresse email invalide, doit contenir un @"
|
||||
|
||||
#: tiramisu/option/option.py:486
|
||||
#: tiramisu/option/option.py:489
|
||||
msgid "invalid username in email address"
|
||||
msgstr "nom d'utilisateur invalide dans une adresse email"
|
||||
|
||||
#: tiramisu/option/option.py:502
|
||||
#: tiramisu/option/option.py:505
|
||||
msgid "invalid url, must start with http:// or https://"
|
||||
msgstr "URL invalide, doit démarrer avec http:// ou https://"
|
||||
|
||||
#: tiramisu/option/option.py:521
|
||||
#: tiramisu/option/option.py:524
|
||||
msgid "invalid url, port must be an between 0 and 65536"
|
||||
msgstr "URL invalide, port doit être entre 0 et 65536"
|
||||
|
||||
#: tiramisu/option/option.py:528
|
||||
#: tiramisu/option/option.py:531
|
||||
msgid "invalid url, must ends with filename"
|
||||
msgstr "URL invalide, doit finir avec un nom de fichier"
|
||||
|
||||
#: tiramisu/option/option.py:542
|
||||
#: tiramisu/option/option.py:545
|
||||
msgid "invalid username"
|
||||
msgstr "utilisateur invalide"
|
||||
|
||||
#: tiramisu/option/option.py:552
|
||||
#: tiramisu/option/option.py:555
|
||||
msgid "invalid filename"
|
||||
msgstr "nom de fichier invalide"
|
||||
|
||||
|
@ -545,36 +587,36 @@ msgstr "option ne doit pas commencé pareil qu'un dynoptiondescription"
|
|||
msgid "consistency with option {0} which is not in Config"
|
||||
msgstr "consistency avec l'option {0} qui n'est pas dans une Config"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:139
|
||||
#: tiramisu/option/optiondescription.py:145
|
||||
msgid "duplicate option: {0}"
|
||||
msgstr "option dupliquée : {0}"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:155
|
||||
#: tiramisu/option/optiondescription.py:156
|
||||
msgid "cannot change group_type if already set (old {0}, new {1})"
|
||||
msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:163
|
||||
#: tiramisu/option/optiondescription.py:164
|
||||
msgid "group_type: {0} not allowed"
|
||||
msgstr "group_type : {0} non autorisé"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:260
|
||||
#: tiramisu/option/optiondescription.py:262
|
||||
msgid "DynOptionDescription callback return not uniq value"
|
||||
msgstr "callback d'une DynOptionDescription ne retourne pas une valeur unique"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:263
|
||||
#: tiramisu/option/optiondescription.py:265
|
||||
msgid "invalid suffix: {0} for option"
|
||||
msgstr "suffix invalide : {0} pour l'option"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:316
|
||||
#: tiramisu/option/optiondescription.py:318
|
||||
msgid "cannot set optiondescription in an dynoptiondescription"
|
||||
msgstr ""
|
||||
"impossible de mettre une optiondescription dans un dynoptiondescription"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:321
|
||||
#: tiramisu/option/optiondescription.py:323
|
||||
msgid "cannot set symlinkoption in an dynoptiondescription"
|
||||
msgstr "impossible de placer un symlinkoption dans un dynoptiondescription"
|
||||
|
||||
#: tiramisu/option/optiondescription.py:329
|
||||
#: tiramisu/option/optiondescription.py:331
|
||||
msgid "callback is mandatory for dynoptiondescription"
|
||||
msgstr "callback est obligatoire pour un dynoptiondescription"
|
||||
|
||||
|
@ -586,47 +628,47 @@ msgstr "ne peut redéfinir ({0})"
|
|||
msgid "can't unbind {0}"
|
||||
msgstr "ne peut supprimer ({0})"
|
||||
|
||||
#: tiramisu/setting.py:255
|
||||
#: tiramisu/setting.py:254
|
||||
msgid "cannot append {0} property for option {1}: this property is calculated"
|
||||
msgstr ""
|
||||
"ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est "
|
||||
"calculée"
|
||||
|
||||
#: tiramisu/setting.py:341
|
||||
#: tiramisu/setting.py:343
|
||||
msgid "you should only append/remove properties"
|
||||
msgstr "pour pouvait seulement ajouter/supprimer des propriétés"
|
||||
|
||||
#: tiramisu/setting.py:345
|
||||
#: tiramisu/setting.py:347
|
||||
msgid "opt and all_properties must not be set together in reset"
|
||||
msgstr "opt et all_properties ne doit pas être renseigné ensemble dans reset"
|
||||
|
||||
#: tiramisu/setting.py:363
|
||||
#: tiramisu/setting.py:368
|
||||
msgid "if opt is not None, path should not be None in _getproperties"
|
||||
msgstr ""
|
||||
"si opt n'est pas None, path devrait ne pas être à None dans _getproperties"
|
||||
|
||||
#: tiramisu/setting.py:407
|
||||
#: tiramisu/setting.py:412
|
||||
msgid "cannot add those properties: {0}"
|
||||
msgstr "ne peut pas ajouter ces propriétés : {0}"
|
||||
|
||||
#: tiramisu/setting.py:469
|
||||
#: tiramisu/setting.py:477
|
||||
msgid "cannot change the value for option {0} this option is frozen"
|
||||
msgstr ""
|
||||
"ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable"
|
||||
|
||||
#: tiramisu/setting.py:475
|
||||
#: tiramisu/setting.py:483
|
||||
msgid "trying to access to an option named: {0} with properties {1}"
|
||||
msgstr "tentative d'accès à une option nommée : {0} avec les propriétés {1}"
|
||||
|
||||
#: tiramisu/setting.py:493
|
||||
#: tiramisu/setting.py:501
|
||||
msgid "permissive must be a tuple"
|
||||
msgstr "permissive doit être un tuple"
|
||||
|
||||
#: tiramisu/setting.py:500 tiramisu/value.py:379
|
||||
#: tiramisu/setting.py:508 tiramisu/value.py:426
|
||||
msgid "invalid generic owner {0}"
|
||||
msgstr "invalide owner générique {0}"
|
||||
|
||||
#: tiramisu/setting.py:588
|
||||
#: tiramisu/setting.py:596
|
||||
msgid ""
|
||||
"malformed requirements imbrication detected for option: '{0}' with "
|
||||
"requirement on: '{1}'"
|
||||
|
@ -634,7 +676,7 @@ msgstr ""
|
|||
"imbrication de requirements mal formés detectée pour l'option : '{0}' avec "
|
||||
"requirement sur : '{1}'"
|
||||
|
||||
#: tiramisu/setting.py:599
|
||||
#: tiramisu/setting.py:607
|
||||
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}"
|
||||
|
||||
|
@ -650,108 +692,107 @@ msgstr "ne peut pas importer le stockage {0}"
|
|||
msgid "option {0} not already exists in storage {1}"
|
||||
msgstr "option {0} n'existe pas dans l'espace de stockage {1}"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:89
|
||||
#: tiramisu/storage/dictionary/option.py:99
|
||||
msgid "invalid default_multi value {0} for option {1}: {2}"
|
||||
msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:131 tiramisu/value.py:441
|
||||
#: tiramisu/storage/dictionary/option.py:141
|
||||
#: tiramisu/storage/sqlalchemy/option.py:434 tiramisu/value.py:490
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr "aucune config spécifiée alors que c'est nécessaire"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:336
|
||||
#: tiramisu/storage/sqlalchemy/option.py:348
|
||||
#: tiramisu/storage/dictionary/option.py:362
|
||||
#: tiramisu/storage/sqlalchemy/option.py:478
|
||||
msgid "no option for path {0}"
|
||||
msgstr "pas d'option pour le chemin {0}"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:342
|
||||
#: tiramisu/storage/sqlalchemy/option.py:355
|
||||
#: tiramisu/storage/dictionary/option.py:368
|
||||
#: tiramisu/storage/sqlalchemy/option.py:485
|
||||
msgid "no option {0} found"
|
||||
msgstr "pas d'option {0} trouvée"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:390
|
||||
#: tiramisu/storage/dictionary/option.py:417
|
||||
msgid "cannot find dynpath"
|
||||
msgstr "ne peut trouver le dynpath"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:480
|
||||
#: tiramisu/storage/sqlalchemy/option.py:465
|
||||
#: tiramisu/storage/dictionary/option.py:507
|
||||
#: tiramisu/storage/sqlalchemy/option.py:630
|
||||
msgid "suffix and context needed if it's a dyn option"
|
||||
msgstr "suffix et context obligatoire si c'est une option dynamique"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:493
|
||||
#: tiramisu/storage/dictionary/option.py:520
|
||||
msgid "{0} instance has no attribute '_readonly'"
|
||||
msgstr "{0} instance n'a pas l'attribut '_readonly'"
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:507
|
||||
#: tiramisu/storage/sqlalchemy/option.py:495
|
||||
#: tiramisu/storage/dictionary/option.py:534
|
||||
#: tiramisu/storage/sqlalchemy/option.py:660
|
||||
msgid "unknown Option {0} in OptionDescription {1}"
|
||||
msgstr "Option {0} inconnue pour l'OptionDescription {1}"
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:37
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:37
|
||||
msgid "dictionary storage cannot delete session"
|
||||
msgstr ""
|
||||
"impossible de supprimer une session dans un espace de stockage dictionary"
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:48
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:48
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:66
|
||||
msgid "session already used"
|
||||
msgstr "session déjà utilisée"
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:50
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:50
|
||||
msgid "a dictionary cannot be persistent"
|
||||
msgstr "un espace de stockage dictionary ne peut être persistant"
|
||||
|
||||
#: tiramisu/value.py:64
|
||||
#: tiramisu/value.py:65
|
||||
msgid "optiondescription has no value"
|
||||
msgstr "une optiondescription n'a pas de valeur"
|
||||
|
||||
#: tiramisu/value.py:303
|
||||
#: tiramisu/value.py:325
|
||||
msgid "you should only set value with config"
|
||||
msgstr "vous devez seul affecter une valeur avec un config"
|
||||
|
||||
#: tiramisu/value.py:356
|
||||
#: tiramisu/value.py:395
|
||||
msgid "owner only avalaible for an option"
|
||||
msgstr "owner seulement possible pour une option"
|
||||
|
||||
#: tiramisu/value.py:386
|
||||
#: tiramisu/value.py:433
|
||||
msgid "no value for {0} cannot change owner to {1}"
|
||||
msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}"
|
||||
|
||||
#: tiramisu/value.py:481
|
||||
#: tiramisu/value.py:531
|
||||
msgid "can force cache only if cache is actived in config"
|
||||
msgstr ""
|
||||
"peut force la mise en cache seulement si le cache est activé dans la config"
|
||||
|
||||
#: tiramisu/value.py:520
|
||||
#: tiramisu/value.py:570
|
||||
msgid "{0} is already a Multi "
|
||||
msgstr "{0} est déjà une Multi"
|
||||
|
||||
#: tiramisu/value.py:586
|
||||
#: tiramisu/value.py:636
|
||||
msgid "cannot append a value on a multi option {0} which is a slave"
|
||||
msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave"
|
||||
|
||||
#: tiramisu/value.py:605
|
||||
#: tiramisu/value.py:655
|
||||
msgid "cannot sort multi option {0} if master or slave"
|
||||
msgstr "ne peut trier une option multi {0} pour une maître ou une esclave"
|
||||
|
||||
#: tiramisu/value.py:609
|
||||
#: tiramisu/value.py:659
|
||||
msgid "cmp is not permitted in python v3 or greater"
|
||||
msgstr "cmp n'est pas permis en python v3 ou supérieure"
|
||||
|
||||
#: tiramisu/value.py:618
|
||||
#: tiramisu/value.py:668
|
||||
msgid "cannot reverse multi option {0} if master or slave"
|
||||
msgstr "ne peut inverser une option multi {0} pour une maître ou une esclave"
|
||||
|
||||
#: tiramisu/value.py:626
|
||||
#: tiramisu/value.py:676
|
||||
msgid "cannot insert multi option {0} if master or slave"
|
||||
msgstr "ne peut insérer une option multi {0} pour une maître ou une esclave"
|
||||
|
||||
#: tiramisu/value.py:634
|
||||
#: tiramisu/value.py:684
|
||||
msgid "cannot extend multi option {0} if master or slave"
|
||||
msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave"
|
||||
|
||||
#: tiramisu/value.py:662
|
||||
#: tiramisu/value.py:712
|
||||
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"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2014-10-26 09:42+CET\n"
|
||||
"POT-Creation-Date: 2014-12-07 14:44+CET\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -19,71 +19,95 @@ msgstr ""
|
|||
msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:58
|
||||
#: tiramisu/config.py:59
|
||||
msgid "descr must be an optiondescription, not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:137
|
||||
#: tiramisu/config.py:139
|
||||
msgid "unknown group_type: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:176 tiramisu/setting.py:321 tiramisu/value.py:54
|
||||
#: tiramisu/value.py:555
|
||||
#: tiramisu/config.py:178 tiramisu/setting.py:320 tiramisu/value.py:54
|
||||
#: tiramisu/value.py:605
|
||||
msgid "the context does not exist anymore"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:181
|
||||
#: tiramisu/config.py:183
|
||||
msgid "no option description found for this config (may be GroupConfig)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:209
|
||||
#: tiramisu/config.py:211
|
||||
msgid "can't assign to an OptionDescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:335
|
||||
#: tiramisu/config.py:340
|
||||
msgid "unknown type_ type {0}for _find"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:370
|
||||
#: tiramisu/config.py:380
|
||||
msgid "no option found in config with these criteria"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:420
|
||||
#: tiramisu/config.py:430
|
||||
msgid "make_dict can't filtering with value without option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:439
|
||||
#: tiramisu/config.py:449
|
||||
msgid "unexpected path {0}, should start with {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:507
|
||||
#: tiramisu/config.py:519
|
||||
msgid "opt in getowner must be an option not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:552
|
||||
#: tiramisu/config.py:564
|
||||
msgid "cannot serialize Config with MetaConfig"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:566
|
||||
#: tiramisu/config.py:578
|
||||
msgid "this storage is not serialisable, could be a none persistent storage"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:629
|
||||
msgid "metaconfig's children must be a list"
|
||||
#: tiramisu/config.py:631
|
||||
msgid "invalid name: {0} for config"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:723
|
||||
#: tiramisu/config.py:655
|
||||
msgid "groupconfig's children must be a list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:659
|
||||
msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:662
|
||||
msgid "name must be set to config before creating groupconfig"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:670
|
||||
msgid "config name must be uniq in groupconfig for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:785
|
||||
msgid "metaconfig's children should be config, not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:727
|
||||
#: tiramisu/config.py:789
|
||||
msgid "child has already a metaconfig's"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:731
|
||||
#: tiramisu/config.py:793
|
||||
msgid "all config in metaconfig must have the same optiondescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:805
|
||||
msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:811
|
||||
msgid "force_default and force_dont_change_value cannot be set together"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:56
|
||||
msgid "{0} must be a function"
|
||||
msgstr ""
|
||||
|
@ -132,139 +156,143 @@ msgstr ""
|
|||
msgid "invalid properties type {0} for {1}, must be a tuple"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:144
|
||||
#: tiramisu/option/baseoption.py:145
|
||||
msgid "params defined for a callback function but no callback defined yet for option {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:149
|
||||
#: tiramisu/option/baseoption.py:150
|
||||
msgid "a callback is already set for option {0}, cannot set another one's"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:276
|
||||
#: tiramisu/option/baseoption.py:277
|
||||
msgid "cannot serialize Option, only in OptionDescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:354
|
||||
#: tiramisu/option/baseoption.py:363
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:509 tiramisu/option/baseoption.py:552
|
||||
#: tiramisu/option/baseoption.py:528 tiramisu/option/baseoption.py:571
|
||||
msgid "invalid value for option {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:522
|
||||
#: tiramisu/option/baseoption.py:541
|
||||
msgid "do_validation for {0}: error in value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:528
|
||||
#: tiramisu/option/baseoption.py:547
|
||||
msgid "do_validation for {0}: warning in value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:538
|
||||
#: tiramisu/option/baseoption.py:557
|
||||
msgid "do_validation for {0}: error in consistency"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:542
|
||||
#: tiramisu/option/baseoption.py:561
|
||||
msgid "do_validation for {0}: warning in consistency"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:546
|
||||
#: tiramisu/option/baseoption.py:565
|
||||
msgid "warning on the value of the option {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:564 tiramisu/option/baseoption.py:573
|
||||
#: tiramisu/option/baseoption.py:583 tiramisu/option/baseoption.py:592
|
||||
msgid "invalid value {0} for option {1} which must be a list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:579
|
||||
#: tiramisu/option/baseoption.py:598
|
||||
msgid "invalid value {0} for option {1} which must be a list of list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:632
|
||||
#: tiramisu/option/baseoption.py:651
|
||||
msgid "'{0}' ({1}) cannot add consistency, option is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:643
|
||||
#: tiramisu/option/baseoption.py:663
|
||||
msgid "unknow parameter {0} in consistency"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:670
|
||||
msgid "consistency must be set with an option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:646 tiramisu/option/baseoption.py:653
|
||||
#: tiramisu/option/baseoption.py:673 tiramisu/option/baseoption.py:680
|
||||
msgid "almost one option in consistency is in a dynoptiondescription but not all"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:649
|
||||
#: tiramisu/option/baseoption.py:676
|
||||
msgid "option in consistency must be in same dynoptiondescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:656
|
||||
#: tiramisu/option/baseoption.py:683
|
||||
msgid "cannot add consistency with itself"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:658
|
||||
#: tiramisu/option/baseoption.py:685
|
||||
msgid "every options in consistency must be multi or none"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:662
|
||||
#: tiramisu/option/baseoption.py:689
|
||||
msgid "consistency {0} not available for this option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:689
|
||||
#: tiramisu/option/baseoption.py:717
|
||||
msgid "same value for {0} and {1}, should be different"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:691
|
||||
#: tiramisu/option/baseoption.py:719
|
||||
msgid "same value for {0} and {1}, must be different"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:748
|
||||
#: tiramisu/option/baseoption.py:776
|
||||
msgid "default value not allowed if option: {0} is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:770
|
||||
#: tiramisu/option/baseoption.py:798
|
||||
msgid "malformed requirements type for option: {0}, must be a dict"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:776
|
||||
#: tiramisu/option/baseoption.py:804
|
||||
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:787
|
||||
#: tiramisu/option/baseoption.py:815
|
||||
msgid "malformed requirements for option: {0} require must have option, expected and action keys"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:791
|
||||
#: tiramisu/option/baseoption.py:819
|
||||
msgid "malformed requirements for option: {0} action cannot be force_store_value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:796
|
||||
#: tiramisu/option/baseoption.py:824
|
||||
msgid "malformed requirements for option: {0} inverse must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:800
|
||||
#: tiramisu/option/baseoption.py:828
|
||||
msgid "malformed requirements for option: {0} transitive must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:804
|
||||
#: tiramisu/option/baseoption.py:832
|
||||
msgid "malformed requirements for option: {0} same_action must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:808
|
||||
#: tiramisu/option/baseoption.py:836
|
||||
msgid "malformed requirements must be an option in option {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:811
|
||||
#: tiramisu/option/baseoption.py:839
|
||||
msgid "malformed requirements option {0} must not be a multi for {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:818
|
||||
#: tiramisu/option/baseoption.py:846
|
||||
msgid "malformed requirements second argument must be valid for option {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:823
|
||||
#: tiramisu/option/baseoption.py:851
|
||||
msgid "inconsistency in action types for option: {0} action: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:851
|
||||
#: tiramisu/option/baseoption.py:879
|
||||
msgid "malformed symlinkoption must be an option for symlink {0}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -288,7 +316,7 @@ msgstr ""
|
|||
msgid "callback of master's option shall not refered a slave's ones"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/masterslave.py:198
|
||||
#: tiramisu/option/masterslave.py:258
|
||||
msgid "invalid len for the slave: {0} which has {1} as master"
|
||||
msgstr ""
|
||||
|
||||
|
@ -361,54 +389,58 @@ msgstr ""
|
|||
msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:254
|
||||
#: tiramisu/option/option.py:256
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:259
|
||||
#: tiramisu/option/option.py:261
|
||||
msgid "max value is empty"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:277
|
||||
#: tiramisu/option/option.py:279
|
||||
msgid "invalid port, range must have two values only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:280
|
||||
#: tiramisu/option/option.py:282
|
||||
msgid "invalid port, first port in range must be smaller than the second one"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:289
|
||||
#: tiramisu/option/option.py:291
|
||||
msgid "invalid port"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:291
|
||||
#: tiramisu/option/option.py:293
|
||||
msgid "invalid port, must be an between {0} and {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:304
|
||||
#: tiramisu/option/option.py:306
|
||||
msgid "invalid network address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:310
|
||||
#: tiramisu/option/option.py:312
|
||||
msgid "network address is in reserved class"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:312
|
||||
#: tiramisu/option/option.py:314
|
||||
msgid "invalid network address, mustn't be in reserved class"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:324
|
||||
#: tiramisu/option/option.py:326
|
||||
msgid "invalid netmask address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:341
|
||||
#: tiramisu/option/option.py:343
|
||||
msgid "invalid len for opts"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:355
|
||||
#: tiramisu/option/option.py:352
|
||||
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:355
|
||||
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:360
|
||||
msgid "invalid network {0} ({1}) with netmask {2}"
|
||||
msgstr ""
|
||||
|
@ -433,55 +465,59 @@ msgstr ""
|
|||
msgid "allow_without_dot must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:428
|
||||
#: tiramisu/option/option.py:429
|
||||
msgid "invalid domainname's length (min 2)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:430
|
||||
#: tiramisu/option/option.py:431
|
||||
msgid "invalid domainname's length (max {0})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:445
|
||||
#: tiramisu/option/option.py:446
|
||||
msgid "invalid domainname, must have dot"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:447
|
||||
#: tiramisu/option/option.py:448
|
||||
msgid "invalid domainname's length (max 255)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:457
|
||||
msgid "same characters may cause problems"
|
||||
msgid "some characters are uppercase"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:459
|
||||
#: tiramisu/option/option.py:460
|
||||
msgid "some characters may cause problems"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:462
|
||||
msgid "invalid domainname"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:483
|
||||
#: tiramisu/option/option.py:486
|
||||
msgid "invalid email address, must contains one @"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:486
|
||||
#: tiramisu/option/option.py:489
|
||||
msgid "invalid username in email address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:502
|
||||
#: tiramisu/option/option.py:505
|
||||
msgid "invalid url, must start with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:521
|
||||
#: tiramisu/option/option.py:524
|
||||
msgid "invalid url, port must be an between 0 and 65536"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:528
|
||||
#: tiramisu/option/option.py:531
|
||||
msgid "invalid url, must ends with filename"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:542
|
||||
#: tiramisu/option/option.py:545
|
||||
msgid "invalid username"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:552
|
||||
#: tiramisu/option/option.py:555
|
||||
msgid "invalid filename"
|
||||
msgstr ""
|
||||
|
||||
|
@ -497,35 +533,35 @@ msgstr ""
|
|||
msgid "consistency with option {0} which is not in Config"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:139
|
||||
#: tiramisu/option/optiondescription.py:145
|
||||
msgid "duplicate option: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:155
|
||||
#: tiramisu/option/optiondescription.py:156
|
||||
msgid "cannot change group_type if already set (old {0}, new {1})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:163
|
||||
#: tiramisu/option/optiondescription.py:164
|
||||
msgid "group_type: {0} not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:260
|
||||
#: tiramisu/option/optiondescription.py:262
|
||||
msgid "DynOptionDescription callback return not uniq value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:263
|
||||
#: tiramisu/option/optiondescription.py:265
|
||||
msgid "invalid suffix: {0} for option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:316
|
||||
#: tiramisu/option/optiondescription.py:318
|
||||
msgid "cannot set optiondescription in an dynoptiondescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:321
|
||||
#: tiramisu/option/optiondescription.py:323
|
||||
msgid "cannot set symlinkoption in an dynoptiondescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/optiondescription.py:329
|
||||
#: tiramisu/option/optiondescription.py:331
|
||||
msgid "callback is mandatory for dynoptiondescription"
|
||||
msgstr ""
|
||||
|
||||
|
@ -537,47 +573,47 @@ msgstr ""
|
|||
msgid "can't unbind {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:255
|
||||
#: tiramisu/setting.py:254
|
||||
msgid "cannot append {0} property for option {1}: this property is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:341
|
||||
#: tiramisu/setting.py:343
|
||||
msgid "you should only append/remove properties"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:345
|
||||
#: tiramisu/setting.py:347
|
||||
msgid "opt and all_properties must not be set together in reset"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:363
|
||||
#: tiramisu/setting.py:368
|
||||
msgid "if opt is not None, path should not be None in _getproperties"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:407
|
||||
#: tiramisu/setting.py:412
|
||||
msgid "cannot add those properties: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:469
|
||||
#: tiramisu/setting.py:477
|
||||
msgid "cannot change the value for option {0} this option is frozen"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:475
|
||||
#: tiramisu/setting.py:483
|
||||
msgid "trying to access to an option named: {0} with properties {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:493
|
||||
#: tiramisu/setting.py:501
|
||||
msgid "permissive must be a tuple"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:500 tiramisu/value.py:379
|
||||
#: tiramisu/setting.py:508 tiramisu/value.py:426
|
||||
msgid "invalid generic owner {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:588
|
||||
#: tiramisu/setting.py:596
|
||||
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:599
|
||||
#: tiramisu/setting.py:607
|
||||
msgid "option '{0}' has requirement's property error: {1} {2}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -593,106 +629,105 @@ msgstr ""
|
|||
msgid "option {0} not already exists in storage {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:89
|
||||
#: tiramisu/storage/dictionary/option.py:99
|
||||
msgid "invalid default_multi value {0} for option {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:131 tiramisu/value.py:441
|
||||
#: tiramisu/storage/dictionary/option.py:141
|
||||
#: tiramisu/storage/sqlalchemy/option.py:434 tiramisu/value.py:490
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:336
|
||||
#: tiramisu/storage/sqlalchemy/option.py:348
|
||||
#: tiramisu/storage/dictionary/option.py:362
|
||||
#: tiramisu/storage/sqlalchemy/option.py:478
|
||||
msgid "no option for path {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:342
|
||||
#: tiramisu/storage/sqlalchemy/option.py:355
|
||||
#: tiramisu/storage/dictionary/option.py:368
|
||||
#: tiramisu/storage/sqlalchemy/option.py:485
|
||||
msgid "no option {0} found"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:390
|
||||
#: tiramisu/storage/dictionary/option.py:417
|
||||
msgid "cannot find dynpath"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:480
|
||||
#: tiramisu/storage/sqlalchemy/option.py:465
|
||||
#: tiramisu/storage/dictionary/option.py:507
|
||||
#: tiramisu/storage/sqlalchemy/option.py:630
|
||||
msgid "suffix and context needed if it's a dyn option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:493
|
||||
#: tiramisu/storage/dictionary/option.py:520
|
||||
msgid "{0} instance has no attribute '_readonly'"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/option.py:507
|
||||
#: tiramisu/storage/sqlalchemy/option.py:495
|
||||
#: tiramisu/storage/dictionary/option.py:534
|
||||
#: tiramisu/storage/sqlalchemy/option.py:660
|
||||
msgid "unknown Option {0} in OptionDescription {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:37
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:37
|
||||
msgid "dictionary storage cannot delete session"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:48
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:48
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:66
|
||||
msgid "session already used"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:50
|
||||
#: tiramisu/storage/sqlalchemy/storage.py:50
|
||||
msgid "a dictionary cannot be persistent"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:64
|
||||
#: tiramisu/value.py:65
|
||||
msgid "optiondescription has no value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:303
|
||||
#: tiramisu/value.py:325
|
||||
msgid "you should only set value with config"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:356
|
||||
#: tiramisu/value.py:395
|
||||
msgid "owner only avalaible for an option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:386
|
||||
#: tiramisu/value.py:433
|
||||
msgid "no value for {0} cannot change owner to {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:481
|
||||
#: tiramisu/value.py:531
|
||||
msgid "can force cache only if cache is actived in config"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:520
|
||||
#: tiramisu/value.py:570
|
||||
msgid "{0} is already a Multi "
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:586
|
||||
#: tiramisu/value.py:636
|
||||
msgid "cannot append a value on a multi option {0} which is a slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:605
|
||||
#: tiramisu/value.py:655
|
||||
msgid "cannot sort multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:609
|
||||
#: tiramisu/value.py:659
|
||||
msgid "cmp is not permitted in python v3 or greater"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:618
|
||||
#: tiramisu/value.py:668
|
||||
msgid "cannot reverse multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:626
|
||||
#: tiramisu/value.py:676
|
||||
msgid "cannot insert multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:634
|
||||
#: tiramisu/value.py:684
|
||||
msgid "cannot extend multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:662
|
||||
#: tiramisu/value.py:712
|
||||
msgid "cannot pop a value on a multi option {0} which is a slave"
|
||||
msgstr ""
|
||||
|
||||
|
|
Loading…
Reference in a new issue