diff --git a/padelnomics/src/padelnomics/app.py b/padelnomics/src/padelnomics/app.py index 8397540..ec69728 100644 --- a/padelnomics/src/padelnomics/app.py +++ b/padelnomics/src/padelnomics/app.py @@ -54,6 +54,15 @@ def _fmt_n(n) -> str: return f"{round(float(n)):,}".replace(",", ".") +def _tformat(s: str, **kwargs) -> str: + """Format a translation string with named placeholders. + + Usage: {{ t.some_key | tformat(count=total, name=supplier.name) }} + JSON value: "Browse {count}+ suppliers from {name}" + """ + return s.format_map(kwargs) + + def create_app() -> Quart: """Create and configure the Quart application.""" @@ -67,12 +76,13 @@ def create_app() -> Quart: app.secret_key = config.SECRET_KEY - # Jinja2 filters for financial formatting (used in planner templates) + # Jinja2 filters app.jinja_env.filters["fmt_currency"] = _fmt_currency app.jinja_env.filters["fmt_k"] = _fmt_k app.jinja_env.filters["fmt_pct"] = _fmt_pct app.jinja_env.filters["fmt_x"] = _fmt_x app.jinja_env.filters["fmt_n"] = _fmt_n + app.jinja_env.filters["tformat"] = _tformat # translate with placeholders: {{ t.key | tformat(count=n) }} # Session config app.config["SESSION_COOKIE_SECURE"] = not config.DEBUG