Deeman 420a2f063b feat(i18n): translate all auth-gated pages (Iteration 5)
- 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>
2026-02-21 01:24:22 +01:00
2026-02-11 22:52:06 +01:00
2026-02-19 19:16:23 +01:00
Description
No description provided
32 MiB
Languages
HTML 46.4%
Python 43.3%
JavaScript 4.6%
Jinja 2.3%
CSS 2.2%
Other 1.2%