From 30c8ffb600bf5976479d2b9f735cc7c7d2b7fcfe Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Sun, 15 Oct 2023 20:25:58 +0200 Subject: [PATCH] feat: jinja2 extractor --- frappe/gettext/extractors/jinja2.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 frappe/gettext/extractors/jinja2.py diff --git a/frappe/gettext/extractors/jinja2.py b/frappe/gettext/extractors/jinja2.py new file mode 100644 index 0000000000..ee07ac6cee --- /dev/null +++ b/frappe/gettext/extractors/jinja2.py @@ -0,0 +1,11 @@ +from jinja2.ext import babel_extract + + +def extract(*args, **kwargs): + """Reuse the babel_extract function from jinja2.ext, but handle our own implementation of `_()`""" + for lineno, funcname, messages, comments in babel_extract(*args, **kwargs): + if funcname == "_" and isinstance(messages, tuple) and len(messages) > 1: + funcname = "pgettext" + messages = (messages[-1], messages[0]) # (context, message) + + yield lineno, funcname, messages, comments