Added an else clause to l10n blocks.

This commit is contained in:
Fred Wenzel 2011-08-31 15:37:52 -07:00
Родитель 0f5015ccd2
Коммит c660832f75
2 изменённых файлов: 14 добавлений и 5 удалений

Просмотреть файл

@ -3,16 +3,18 @@
{% block content %}
<h1>Hello world!</h1>
{% l10n foo, 1 %}
{% l10n foo, 20110630 %}
<p>Localizable, unversioned.</p>
{% endl10n %}
{% l10n bar, 3 %}
{% l10n bar, 20110715 %}
<p>Localizable, versioned.</p>
{% else %}
<p>This should always be shown.</p>
{% endl10n %}
{#
{% l10n baz, 7 %}
{% l10n baz, 20110703 %}
<p>Commented out localized block.</p>
{% endl10n %}
#}

Просмотреть файл

@ -28,7 +28,14 @@ class L10nBlockExtension(Extension):
else:
version = 0 # Default version for unversioned block.
# Parse content, drop closing tag.
# Parse content.
body = parser.parse_statements(['name:else', 'name:endl10n'],
drop_needle=False)
# Translation fallback: If this is followed by an "else" tag, render
# that block instead.
end_tag = parser.stream.expect('name') # Either else or endl10n.
if end_tag.value == 'else':
body = parser.parse_statements(['name:endl10n'], drop_needle=True)
# Build regular block node with special node name and remember version.