Files
edx-platform/common/djangoapps/util/markup.py
2015-12-15 16:21:14 -05:00

52 lines
1.4 KiB
Python

"""
Utilities for use in Mako markup.
"""
from django.utils.translation import ugettext as django_ugettext
from django.utils.translation import ungettext as django_ungettext
import markupsafe
# So that we can use escape() imported from here.
escape = markupsafe.escape # pylint: disable=invalid-name
def ugettext(text):
"""Translate a string, and escape it as plain text.
Use like this in Mako::
<% from util.markup import ugettext as _ %>
<p>${_("Hello, world!")}</p>
Or with formatting::
<% from util.markup import HTML, ugettext as _ %>
${_("Write & send {start}email{end}").format(
start=HTML("<a href='mailto:ned@edx.org'>"),
end=HTML("</a>"),
)}
"""
return markupsafe.escape(django_ugettext(text))
def ungettext(text1, text2, num):
"""Translate a number-sensitive string, and escape it as plain text."""
return markupsafe.escape(django_ungettext(text1, text2, num))
def HTML(html): # pylint: disable=invalid-name
"""Mark a string as already HTML, so that it won't be escaped before output.
Use this when formatting HTML into other strings::
<% from util.markup import HTML, ugettext as _ %>
${_("Write & send {start}email{end}").format(
start=HTML("<a href='mailto:ned@edx.org'>"),
end=HTML("</a>"),
)}
"""
return markupsafe.Markup(html)