fix(i18n): translate pricing tiers, features, and content pages
Some checks failed
CI / ruff (push) Successful in 11s
CI / pytest (push) Failing after 49m22s
CI / validate (push) Successful in 26s
CI / dependency-scanning (push) Successful in 28s
CI / docs (push) Has been skipped
CI / deploy (push) Has been skipped

Add name_translations JSON column to SubscriptionTier for multi-language
tier names. Pre-resolve tier names and build dynamic feature lists from
module providers in route handlers. Fix Jinja2 macro scoping by importing
pricing partial with context. Backfill content_translations for all 43
content pages across 4 platforms (en/fr/de/lb).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 07:48:15 +01:00
parent 8b147f53c6
commit 3c7e4458af
9 changed files with 1544 additions and 33 deletions

View File

@@ -0,0 +1,31 @@
"""add name_translations to subscription_tiers
Revision ID: billing_002
Revises: hosting_001
Create Date: 2026-03-03
"""
import sqlalchemy as sa
from alembic import op
revision = "billing_002"
down_revision = "hosting_001"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.add_column(
"subscription_tiers",
sa.Column(
"name_translations",
sa.JSON(),
nullable=True,
comment="Language-keyed name dict for multi-language support",
),
)
def downgrade() -> None:
op.drop_column("subscription_tiers", "name_translations")