After enabling dummy `_` function that forwards calls to `gettext` is added
to the environment globals. An internationalized application then has to
-provide at least an `gettext` and optoinally a `ngettext` function into the
+provide at least an `gettext` and optionally a `ngettext` function into the
namespace. Either globally or for each rendering.
Environment Methods
of import paths as `extensions` value. The i18n extension is added
automatically.
+.. versionchanged:: 2.7
+
+ Until 2.7 template syntax errors were always ignored. This was done
+ since many people are dropping non template html files into the
+ templates folder and it would randomly fail. The assumption was that
+ testsuites will catch syntax errors in templates anyways. If you don't
+ want that behavior you can add ``silent=false`` to the settings and
+ exceptions are propagated.
+
.. _mapping file: http://babel.edgewall.org/wiki/Documentation/messages.html#extraction-method-mapping-and-configuration
Pylons
The `newstyle_gettext` flag can be set to `True` to enable newstyle
gettext calls.
+ .. versionchanged:: 2.7
+ A `silent` option can now be provided. If set to `False` template
+ syntax errors are propagated instead of being ignored.
+
:param fileobj: the file-like object the messages should be extracted from
:param keywords: a list of keywords (i.e. function names) that should be
recognized as translation functions
extensions.add(InternationalizationExtension)
def getbool(options, key, default=False):
- options.get(key, str(default)).lower() in ('1', 'on', 'yes', 'true')
+ return options.get(key, str(default)).lower() in \
+ ('1', 'on', 'yes', 'true')
+ silent = getbool(options, 'silent', True)
environment = Environment(
options.get('block_start_string', BLOCK_START_STRING),
options.get('block_end_string', BLOCK_END_STRING),
node = environment.parse(source)
tokens = list(environment.lex(environment.preprocess(source)))
except TemplateSyntaxError, e:
+ if not silent:
+ raise
# skip templates with syntax errors
return