420a2f063b68b787f51c0e091b41e1c1bdf5ee36
- Phase 0: Fix language detection for dashboard/billing routes — use
_detect_lang() fallback in inject_globals() so g.lang is always set;
use g.get("lang") or "en" in route handlers before template render
- Phase 1: Dashboard templates (~29 keys, dash_* prefix)
index.html, settings.html, flash messages in routes.py
- Phase 2: Billing templates (~31 keys, billing_* prefix)
pricing.html, success.html, flash message in routes.py
- Phase 3: Supplier dashboard (~171 keys, sd_* prefix)
dashboard shell + overview + boosts, lead feed tab + lead cards,
listing tab; BOOST_OPTIONS now use name_key/desc_key; _compute_order()
accepts t dict for translated billing labels; all flash messages
replaced with get_translations(g.lang)
- Phase 4: Business plan PDF (~64 keys, bp_* prefix)
_fmt_months() accepts t dict; get_plan_sections() translates
venue_type/own_type/courts_desc/loan_term; adds sections["labels"]
sub-dict with all template-level strings; plan.html uses s.labels.*
and s.lang for the html[lang] attribute
- Update test_i18n_parity.py allowlist for new identical-value keys
(financial abbreviations, brand names, terms same in both languages)
Locale files: 1469 → 1533 keys (en.json and de.json)
All 1018 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
HTML
46.4%
Python
43.3%
JavaScript
4.6%
Jinja
2.3%
CSS
2.2%
Other
1.2%