# HG changeset patch # User Thierry Florac # Date 1547815931 -3600 # Node ID 247c4f2948ef759235e586159e8e85268fd3dbff # Parent 8984904dc04096ea77618bb8924be83f0aa9b68c Added label to HTML renderers which can be selected by end-users diff -r 8984904dc040 -r 247c4f2948ef src/pyams_utils/interfaces/text.py --- a/src/pyams_utils/interfaces/text.py Fri Jan 18 10:24:20 2019 +0100 +++ b/src/pyams_utils/interfaces/text.py Fri Jan 18 13:52:11 2019 +0100 @@ -18,7 +18,7 @@ # import interfaces # import packages -from zope.interface import Interface, Attribute +from zope.interface import Attribute, Interface from pyams_utils import _ @@ -31,7 +31,7 @@ for any object and/or for any request layer. """ - title = Attribute(_("Renderer name")) + label = Attribute(_("Optional renderer label")) def render(self, **kwargs): """Render adapted text""" diff -r 8984904dc040 -r 247c4f2948ef src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.mo Binary file src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.mo has changed diff -r 8984904dc040 -r 247c4f2948ef src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po --- a/src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po Fri Jan 18 10:24:20 2019 +0100 +++ b/src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po Fri Jan 18 13:52:11 2019 +0100 @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-11-30 11:17+0100\n" +"POT-Creation-Date: 2019-01-18 13:52+0100\n" "PO-Revision-Date: 2015-01-18 01:01+0100\n" "Last-Translator: Thierry Florac \n" "Language-Team: French\n" @@ -15,6 +15,81 @@ "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: Lingua 3.7\n" +#: src/pyams_utils/pygments.py:106 +msgid "Selected lexer" +msgstr "Format du code" + +#: src/pyams_utils/pygments.py:107 +msgid "Lexer used to format source code" +msgstr "Lexeur utilisé pour analyser le code source" + +#: src/pyams_utils/pygments.py:112 +msgid "Display line numbers?" +msgstr "Numéros de lignes ?" + +#: src/pyams_utils/pygments.py:113 +msgid "If 'no', line numbers will be hidden" +msgstr "Si 'non', les numéros de lignes ne seront pas affichés" + +#: src/pyams_utils/pygments.py:117 +msgid "Lines wrap?" +msgstr "Sauts de lignes ?" + +#: src/pyams_utils/pygments.py:118 +msgid "" +"If 'yes', lines wraps will be enabled; line numbers will not be displayed if " +"lines wrap is enabled..." +msgstr "" +"Si 'oui', les sauts de lignes seront possibles ; dans ce mode, l'affichage " +"des numéros de lignes n'est pas possible..." + +#: src/pyams_utils/pygments.py:123 +msgid "Color style" +msgstr "Style de couleur" + +#: src/pyams_utils/pygments.py:124 +msgid "Selected color style" +msgstr "Style de mise en forme de la syntaxe" + +#: src/pyams_utils/pygments.py:75 +msgid "Automatic detection" +msgstr "Détection automatique" + +#: src/pyams_utils/size.py:69 +msgid "0.0## Gb" +msgstr "0.0## Go" + +#: src/pyams_utils/size.py:61 +msgid "0 bytes" +msgstr "0 octets" + +#: src/pyams_utils/size.py:64 +msgid "0.# Kb" +msgstr "0.# Ko" + +#: src/pyams_utils/size.py:67 +msgid "0.0# Mb" +msgstr "0.0# Mo" + +#: src/pyams_utils/schema.py:181 +msgid "" +"Email address must be entered as « name@domain.name », without '<' and '>' " +"characters" +msgstr "" +"L'adresse est incorrecte, la saisie ne respecte pas la forme « xxx@yyy.com »." + +#: src/pyams_utils/schema.py:115 +msgid "Color length must be 3 or 6 characters" +msgstr "La longueur d'une couleur doit être de 3 ou 6 caractères" + +#: src/pyams_utils/schema.py:118 +msgid "" +"Color value must contain only valid hexadecimal color codes (numbers or " +"letters between 'A' end 'F')" +msgstr "" +"Une couleur ne doit contenir que des valeurs hexadécimales correctes " +"(nombres ou lettres de 'A' à 'F')" + #: src/pyams_utils/date.py:94 msgid "%d/%m/%Y" msgstr "%d/%m/%Y" @@ -107,22 +182,6 @@ msgid "%d minutes ago" msgstr "Il y a %d minutes" -#: src/pyams_utils/size.py:69 -msgid "0.0## Gb" -msgstr "0.0## Go" - -#: src/pyams_utils/size.py:61 -msgid "0 bytes" -msgstr "0 octets" - -#: src/pyams_utils/size.py:64 -msgid "0.# Kb" -msgstr "0.# Ko" - -#: src/pyams_utils/size.py:67 -msgid "0.0# Mb" -msgstr "0.0# Mo" - #: src/pyams_utils/encoding.py:32 msgid "English (ASCII)" msgstr "Anglais (ASCII)" @@ -493,72 +552,17 @@ msgid "all languages (utf_8_sig)" msgstr "toutes les langues (utf-8-sig)" -#: src/pyams_utils/schema.py:181 -msgid "" -"Email address must be entered as « name@domain.name », without '<' and '>' " -"characters" -msgstr "" -"L'adresse est incorrecte, la saisie ne respecte pas la forme « xxx@yyy.com »." - -#: src/pyams_utils/schema.py:115 -msgid "Color length must be 3 or 6 characters" -msgstr "La longueur d'une couleur doit être de 3 ou 6 caractères" - -#: src/pyams_utils/schema.py:118 -msgid "" -"Color value must contain only valid hexadecimal color codes (numbers or " -"letters between 'A' end 'F')" -msgstr "" -"Une couleur ne doit contenir que des valeurs hexadécimales correctes " -"(nombres ou lettres de 'A' à 'F')" - -#: src/pyams_utils/pygments.py:106 -msgid "Selected lexer" -msgstr "Format du code" - -#: src/pyams_utils/pygments.py:107 -msgid "Lexer used to format source code" -msgstr "Lexeur utilisé pour analyser le code source" - -#: src/pyams_utils/pygments.py:112 -msgid "Display line numbers?" -msgstr "Numéros de lignes ?" +#: src/pyams_utils/text.py:94 +msgid "Simple text" +msgstr "Texte simple" -#: src/pyams_utils/pygments.py:113 -msgid "If 'no', line numbers will be hidden" -msgstr "Si 'non', les numéros de lignes ne seront pas affichés" - -#: src/pyams_utils/pygments.py:117 -msgid "Lines wrap?" -msgstr "Sauts de lignes ?" - -#: src/pyams_utils/pygments.py:118 -msgid "" -"If 'yes', lines wraps will be enabled; line numbers will not be displayed if " -"lines wrap is enabled..." -msgstr "" -"Si 'oui', les sauts de lignes seront possibles ; dans ce mode, l'affichage " -"des numéros de lignes n'est pas possible..." +#: src/pyams_utils/text.py:118 +msgid "ReStructured text" +msgstr "Texte structuré" -#: src/pyams_utils/pygments.py:123 -msgid "Color style" -msgstr "Style de couleur" - -#: src/pyams_utils/pygments.py:124 -msgid "Selected color style" -msgstr "Style de mise en forme de la syntaxe" - -#: src/pyams_utils/pygments.py:75 -msgid "Automatic detection" -msgstr "Détection automatique" - -#: src/pyams_utils/widget/decimal.py:31 -msgid "The entered value is not a valid decimal literal." -msgstr "La valeur saisie n'est pas une valeur décimale correcte." - -#: src/pyams_utils/interfaces/text.py:34 -msgid "Renderer name" -msgstr "Nom de l'outil de rendu" +#: src/pyams_utils/text.py:143 +msgid "Markdown text" +msgstr "Markdown" #: src/pyams_utils/interfaces/inherit.py:37 msgid "Inherit from parent?" @@ -568,6 +572,80 @@ msgid "Don't inherit from parent?" msgstr "Ne pas hériter du parent ?" +#: src/pyams_utils/interfaces/__init__.py:33 +msgid "Wrong contained type" +msgstr "Type de contenu incorrect" + +#: src/pyams_utils/interfaces/__init__.py:34 +msgid "One or more entries of sequence are not unique." +msgstr "Toutes les entrées de la séquence ne sont pas uniques" + +#: src/pyams_utils/interfaces/__init__.py:35 +msgid "Schema not fully implemented" +msgstr "Schéma non implémenté" + +#: src/pyams_utils/interfaces/__init__.py:36 +msgid "Schema not provided" +msgstr "Schéma non fourni" + +#: src/pyams_utils/interfaces/__init__.py:37 +msgid "The specified URI is not valid." +msgstr "" +"L'URL indiquée est invalide ; elle doit comprendre le protocole d'accès au " +"site, comme « http:// » ou « https:// »" + +#: src/pyams_utils/interfaces/__init__.py:38 +msgid "The specified id is not valid." +msgstr "L'ID indiqué est invalide" + +#: src/pyams_utils/interfaces/__init__.py:39 +msgid "The specified dotted name is not valid." +msgstr "Le nom indiqué est invalide" + +#: src/pyams_utils/interfaces/__init__.py:40 +msgid "The field is not bound." +msgstr "Le chanmp n'est pas lié" + +#: src/pyams_utils/interfaces/__init__.py:42 +msgid "Required input is missing." +msgstr "Ce champ est obligatoire" + +#: src/pyams_utils/interfaces/__init__.py:43 +msgid "Object is of wrong type." +msgstr "L'objet est d'un type incorrect" + +#: src/pyams_utils/interfaces/__init__.py:44 +msgid "Value is too big" +msgstr "Valeur trop grande" + +#: src/pyams_utils/interfaces/__init__.py:45 +msgid "Value is too small" +msgstr "Valeur trop petite" + +#: src/pyams_utils/interfaces/__init__.py:46 +msgid "Value is too long" +msgstr "Valeur trop longue" + +#: src/pyams_utils/interfaces/__init__.py:47 +msgid "Value is too short" +msgstr "Valeur trop courte" + +#: src/pyams_utils/interfaces/__init__.py:48 +msgid "Invalid value" +msgstr "Valeur incorrecte" + +#: src/pyams_utils/interfaces/__init__.py:49 +msgid "Constraint not satisfied" +msgstr "Contrainte non satisfaite" + +#: src/pyams_utils/interfaces/__init__.py:50 +msgid "Not a container" +msgstr "Ce n'est pas un conteneur" + +#: src/pyams_utils/interfaces/__init__.py:51 +msgid "Not an iterator" +msgstr "Ce n'est pas un itérateur" + #: src/pyams_utils/interfaces/zeo.py:71 msgid "Opened ZEO connection" msgstr "Connexion ZEO" @@ -655,6 +733,10 @@ "partagé avec le serveur ou non ; dans ce cas, les fichiers seront accédés " "directement au lieu d'être chargés via ZRPC" +#: src/pyams_utils/interfaces/text.py:34 +msgid "Optional renderer label" +msgstr "Libellé optionnel du mode de rendu" + #: src/pyams_utils/interfaces/timezone.py:47 msgid "Server timezone" msgstr "Fuseau horaire du serveur" @@ -663,79 +745,12 @@ msgid "Default server timezone" msgstr "Fuseau horaire par défaut" -#: src/pyams_utils/interfaces/__init__.py:33 -msgid "Wrong contained type" -msgstr "Type de contenu incorrect" - -#: src/pyams_utils/interfaces/__init__.py:34 -msgid "One or more entries of sequence are not unique." -msgstr "Toutes les entrées de la séquence ne sont pas uniques" - -#: src/pyams_utils/interfaces/__init__.py:35 -msgid "Schema not fully implemented" -msgstr "Schéma non implémenté" - -#: src/pyams_utils/interfaces/__init__.py:36 -msgid "Schema not provided" -msgstr "Schéma non fourni" - -#: src/pyams_utils/interfaces/__init__.py:37 -msgid "The specified URI is not valid." -msgstr "" -"L'URL indiquée est invalide ; elle doit comprendre le protocole d'accès au " -"site, comme « http:// » ou « https:// »" - -#: src/pyams_utils/interfaces/__init__.py:38 -msgid "The specified id is not valid." -msgstr "L'ID indiqué est invalide" - -#: src/pyams_utils/interfaces/__init__.py:39 -msgid "The specified dotted name is not valid." -msgstr "Le nom indiqué est invalide" - -#: src/pyams_utils/interfaces/__init__.py:40 -msgid "The field is not bound." -msgstr "Le chanmp n'est pas lié" +#: src/pyams_utils/widget/decimal.py:31 +msgid "The entered value is not a valid decimal literal." +msgstr "La valeur saisie n'est pas une valeur décimale correcte." -#: src/pyams_utils/interfaces/__init__.py:42 -msgid "Required input is missing." -msgstr "Ce champ est obligatoire" - -#: src/pyams_utils/interfaces/__init__.py:43 -msgid "Object is of wrong type." -msgstr "L'objet est d'un type incorrect" - -#: src/pyams_utils/interfaces/__init__.py:44 -msgid "Value is too big" -msgstr "Valeur trop grande" - -#: src/pyams_utils/interfaces/__init__.py:45 -msgid "Value is too small" -msgstr "Valeur trop petite" - -#: src/pyams_utils/interfaces/__init__.py:46 -msgid "Value is too long" -msgstr "Valeur trop longue" - -#: src/pyams_utils/interfaces/__init__.py:47 -msgid "Value is too short" -msgstr "Valeur trop courte" - -#: src/pyams_utils/interfaces/__init__.py:48 -msgid "Invalid value" -msgstr "Valeur incorrecte" - -#: src/pyams_utils/interfaces/__init__.py:49 -msgid "Constraint not satisfied" -msgstr "Contrainte non satisfaite" - -#: src/pyams_utils/interfaces/__init__.py:50 -msgid "Not a container" -msgstr "Ce n'est pas un conteneur" - -#: src/pyams_utils/interfaces/__init__.py:51 -msgid "Not an iterator" -msgstr "Ce n'est pas un itérateur" +#~ msgid "Renderer name" +#~ msgstr "Nom de l'outil de rendu" #~ msgid "Add ZEO connection..." #~ msgstr "Ajouter une connexion ZEO..." diff -r 8984904dc040 -r 247c4f2948ef src/pyams_utils/locales/pyams_utils.pot --- a/src/pyams_utils/locales/pyams_utils.pot Fri Jan 18 10:24:20 2019 +0100 +++ b/src/pyams_utils/locales/pyams_utils.pot Fri Jan 18 13:52:11 2019 +0100 @@ -1,12 +1,12 @@ # # SOME DESCRIPTIVE TITLE # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , 2018. +# FIRST AUTHOR , 2019. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-11-30 11:17+0100\n" +"POT-Creation-Date: 2019-01-18 13:52+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -16,6 +16,76 @@ "Content-Transfer-Encoding: 8bit\n" "Generated-By: Lingua 3.10.dev0\n" +#: ./src/pyams_utils/pygments.py:106 +msgid "Selected lexer" +msgstr "" + +#: ./src/pyams_utils/pygments.py:107 +msgid "Lexer used to format source code" +msgstr "" + +#: ./src/pyams_utils/pygments.py:112 +msgid "Display line numbers?" +msgstr "" + +#: ./src/pyams_utils/pygments.py:113 +msgid "If 'no', line numbers will be hidden" +msgstr "" + +#: ./src/pyams_utils/pygments.py:117 +msgid "Lines wrap?" +msgstr "" + +#: ./src/pyams_utils/pygments.py:118 +msgid "" +"If 'yes', lines wraps will be enabled; line numbers will not be displayed if " +"lines wrap is enabled..." +msgstr "" + +#: ./src/pyams_utils/pygments.py:123 +msgid "Color style" +msgstr "" + +#: ./src/pyams_utils/pygments.py:124 +msgid "Selected color style" +msgstr "" + +#: ./src/pyams_utils/pygments.py:75 +msgid "Automatic detection" +msgstr "" + +#: ./src/pyams_utils/size.py:69 +msgid "0.0## Gb" +msgstr "" + +#: ./src/pyams_utils/size.py:61 +msgid "0 bytes" +msgstr "" + +#: ./src/pyams_utils/size.py:64 +msgid "0.# Kb" +msgstr "" + +#: ./src/pyams_utils/size.py:67 +msgid "0.0# Mb" +msgstr "" + +#: ./src/pyams_utils/schema.py:181 +msgid "" +"Email address must be entered as « name@domain.name », without '<' and '>' " +"characters" +msgstr "" + +#: ./src/pyams_utils/schema.py:115 +msgid "Color length must be 3 or 6 characters" +msgstr "" + +#: ./src/pyams_utils/schema.py:118 +msgid "" +"Color value must contain only valid hexadecimal color codes (numbers or " +"letters between 'A' end 'F')" +msgstr "" + #: ./src/pyams_utils/date.py:94 msgid "%d/%m/%Y" msgstr "" @@ -108,22 +178,6 @@ msgid "%d minutes ago" msgstr "" -#: ./src/pyams_utils/size.py:69 -msgid "0.0## Gb" -msgstr "" - -#: ./src/pyams_utils/size.py:61 -msgid "0 bytes" -msgstr "" - -#: ./src/pyams_utils/size.py:64 -msgid "0.# Kb" -msgstr "" - -#: ./src/pyams_utils/size.py:67 -msgid "0.0# Mb" -msgstr "" - #: ./src/pyams_utils/encoding.py:32 msgid "English (ASCII)" msgstr "" @@ -493,66 +547,16 @@ msgid "all languages (utf_8_sig)" msgstr "" -#: ./src/pyams_utils/schema.py:181 -msgid "" -"Email address must be entered as « name@domain.name », without '<' and '>' " -"characters" -msgstr "" - -#: ./src/pyams_utils/schema.py:115 -msgid "Color length must be 3 or 6 characters" -msgstr "" - -#: ./src/pyams_utils/schema.py:118 -msgid "" -"Color value must contain only valid hexadecimal color codes (numbers or " -"letters between 'A' end 'F')" -msgstr "" - -#: ./src/pyams_utils/pygments.py:106 -msgid "Selected lexer" -msgstr "" - -#: ./src/pyams_utils/pygments.py:107 -msgid "Lexer used to format source code" -msgstr "" - -#: ./src/pyams_utils/pygments.py:112 -msgid "Display line numbers?" +#: ./src/pyams_utils/text.py:94 +msgid "Simple text" msgstr "" -#: ./src/pyams_utils/pygments.py:113 -msgid "If 'no', line numbers will be hidden" -msgstr "" - -#: ./src/pyams_utils/pygments.py:117 -msgid "Lines wrap?" -msgstr "" - -#: ./src/pyams_utils/pygments.py:118 -msgid "" -"If 'yes', lines wraps will be enabled; line numbers will not be displayed if " -"lines wrap is enabled..." +#: ./src/pyams_utils/text.py:118 +msgid "ReStructured text" msgstr "" -#: ./src/pyams_utils/pygments.py:123 -msgid "Color style" -msgstr "" - -#: ./src/pyams_utils/pygments.py:124 -msgid "Selected color style" -msgstr "" - -#: ./src/pyams_utils/pygments.py:75 -msgid "Automatic detection" -msgstr "" - -#: ./src/pyams_utils/widget/decimal.py:31 -msgid "The entered value is not a valid decimal literal." -msgstr "" - -#: ./src/pyams_utils/interfaces/text.py:34 -msgid "Renderer name" +#: ./src/pyams_utils/text.py:143 +msgid "Markdown text" msgstr "" #: ./src/pyams_utils/interfaces/inherit.py:37 @@ -563,6 +567,78 @@ msgid "Don't inherit from parent?" msgstr "" +#: ./src/pyams_utils/interfaces/__init__.py:33 +msgid "Wrong contained type" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:34 +msgid "One or more entries of sequence are not unique." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:35 +msgid "Schema not fully implemented" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:36 +msgid "Schema not provided" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:37 +msgid "The specified URI is not valid." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:38 +msgid "The specified id is not valid." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:39 +msgid "The specified dotted name is not valid." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:40 +msgid "The field is not bound." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:42 +msgid "Required input is missing." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:43 +msgid "Object is of wrong type." +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:44 +msgid "Value is too big" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:45 +msgid "Value is too small" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:46 +msgid "Value is too long" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:47 +msgid "Value is too short" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:48 +msgid "Invalid value" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:49 +msgid "Constraint not satisfied" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:50 +msgid "Not a container" +msgstr "" + +#: ./src/pyams_utils/interfaces/__init__.py:51 +msgid "Not an iterator" +msgstr "" + #: ./src/pyams_utils/interfaces/zeo.py:71 msgid "Opened ZEO connection" msgstr "" @@ -641,6 +717,10 @@ "instead of transferring blob data over zrpc." msgstr "" +#: ./src/pyams_utils/interfaces/text.py:34 +msgid "Optional renderer label" +msgstr "" + #: ./src/pyams_utils/interfaces/timezone.py:47 msgid "Server timezone" msgstr "" @@ -649,74 +729,6 @@ msgid "Default server timezone" msgstr "" -#: ./src/pyams_utils/interfaces/__init__.py:33 -msgid "Wrong contained type" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:34 -msgid "One or more entries of sequence are not unique." -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:35 -msgid "Schema not fully implemented" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:36 -msgid "Schema not provided" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:37 -msgid "The specified URI is not valid." -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:38 -msgid "The specified id is not valid." -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:39 -msgid "The specified dotted name is not valid." -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:40 -msgid "The field is not bound." -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:42 -msgid "Required input is missing." +#: ./src/pyams_utils/widget/decimal.py:31 +msgid "The entered value is not a valid decimal literal." msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:43 -msgid "Object is of wrong type." -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:44 -msgid "Value is too big" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:45 -msgid "Value is too small" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:46 -msgid "Value is too long" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:47 -msgid "Value is too short" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:48 -msgid "Invalid value" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:49 -msgid "Constraint not satisfied" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:50 -msgid "Not a container" -msgstr "" - -#: ./src/pyams_utils/interfaces/__init__.py:51 -msgid "Not an iterator" -msgstr "" diff -r 8984904dc040 -r 247c4f2948ef src/pyams_utils/text.py --- a/src/pyams_utils/text.py Fri Jan 18 10:24:20 2019 +0100 +++ b/src/pyams_utils/text.py Fri Jan 18 13:52:11 2019 +0100 @@ -20,6 +20,7 @@ from zope.interface import Interface from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary +from pyams_utils import _ from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config from pyams_utils.interfaces.tales import ITALESExtension from pyams_utils.interfaces.text import IHTMLRenderer @@ -90,6 +91,8 @@ This renderer only replace newlines with HTML breaks. """ + label = _("Simple text") + def render(self, **kwargs): return html.escape(self.context).replace('\n', '
\n') @@ -112,6 +115,8 @@ This renderer is using *docutils* to convert text to HTML output. """ + label = _("ReStructured text") + def render(self, **kwargs): """Render reStructuredText to HTML""" overrides = { @@ -135,6 +140,8 @@ This renderer is converting *Markdown* formatted text to HTML. """ + label = _("Markdown text") + def render(self, **kwargs): """Render Markdown code to HTML""" return markdown(self.context) @@ -190,16 +197,22 @@ return str(context) -@vocabulary_config(name='PyAMS HTML renderers') +PYAMS_HTML_RENDERERS_VOCABULARY = 'PyAMS HTML renderers' + + +@vocabulary_config(name=PYAMS_HTML_RENDERERS_VOCABULARY) class RenderersVocabulary(SimpleVocabulary): """Text renderers vocabulary""" - def __init__(self): + def __init__(self, context=None): request = check_request() registry = request.registry - translate = registry.localizer.translate - terms = [SimpleTerm(name, name, translate(adapt.title).label) - for name, adapt in registry.getAdapters(('', request), IHTMLRenderer)] + translate = request.localizer.translate + terms = [] + append = terms.append + for name, adapter in registry.getAdapters(('', request), IHTMLRenderer): + if hasattr(adapter, 'label'): + append(SimpleTerm(name, title=translate(adapter.label))) super(RenderersVocabulary, self).__init__(terms)