feat: jinja2 extractor

This commit is contained in:
barredterra 2023-10-15 20:25:58 +02:00
parent 353a6c8d6e
commit 30c8ffb600

View file

@ -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