From 6c4184afc27939d74e59abfa91e8fe5f5135a102 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Sun, 15 Oct 2023 20:25:01 +0200 Subject: [PATCH] feat: python extractor --- frappe/gettext/__init__.py | 0 frappe/gettext/extractors/__init__.py | 0 frappe/gettext/extractors/python.py | 13 +++++++++++++ 3 files changed, 13 insertions(+) create mode 100644 frappe/gettext/__init__.py create mode 100644 frappe/gettext/extractors/__init__.py create mode 100644 frappe/gettext/extractors/python.py diff --git a/frappe/gettext/__init__.py b/frappe/gettext/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/gettext/extractors/__init__.py b/frappe/gettext/extractors/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/gettext/extractors/python.py b/frappe/gettext/extractors/python.py new file mode 100644 index 0000000000..9a6475b749 --- /dev/null +++ b/frappe/gettext/extractors/python.py @@ -0,0 +1,13 @@ +from babel.messages.extract import extract_python + + +def extract(*args, **kwargs): + """ + Wrapper around babel's `extract_python`, handling our own implementation of `_()` + """ + for lineno, funcname, messages, comments in extract_python(*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