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