feat(i18n): add multilingual platform descriptions and HostWizard demo data
Some checks failed
CI / ruff (push) Successful in 11s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled

- Add description_translations JSON column to Platform model + migration
- Add language tabs to platform admin edit form for multilingual descriptions
- Update API schemas to include description_translations in request/response
- Translate pricing section UI labels via _t() macro (monthly/annual/CTA/etc.)
- Add Luxembourgish (lb) support to all platforms (OMS, Main, Loyalty, Hosting)
- Seed description_translations, contact emails, and social links for all platforms
- Add LuxWeb Agency demo merchant with hosting stores, team, and content pages
- Fix language code typo: lu → lb in platform-edit.js availableLanguages
- Fix store content pages to use correct primary platform instead of hardcoded OMS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 23:38:52 +01:00
parent 2268f32f51
commit 820ab1aaa4
8 changed files with 327 additions and 32 deletions

View File

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