diff --git a/main.py b/main.py index 35cceff1..4435a7d7 100644 --- a/main.py +++ b/main.py @@ -38,6 +38,7 @@ from app.exceptions.handler import setup_exception_handlers # Import page routers from app.routes import admin_pages, platform_pages, shop_pages, vendor_pages +from app.utils.i18n import get_jinja2_globals from middleware.context import ContextMiddleware from middleware.language import LanguageMiddleware from middleware.logging import LoggingMiddleware @@ -360,6 +361,10 @@ async def platform_homepage(request: Request, db: Session = Depends(get_db)): db, vendor_id=None, footer_only=True, include_unpublished=False ) + # Get language from request state and build i18n context + language = getattr(request.state, "language", "fr") + i18n_globals = get_jinja2_globals(language) + if homepage: # Use template selection from CMS template_name = homepage.template or "default" @@ -367,26 +372,27 @@ async def platform_homepage(request: Request, db: Session = Depends(get_db)): logger.info(f"[PLATFORM] Rendering CMS homepage with template: {template_path}") - return templates.TemplateResponse( - template_path, - { - "request": request, - "page": homepage, - "header_pages": header_pages, - "footer_pages": footer_pages, - }, - ) + context = { + "request": request, + "page": homepage, + "header_pages": header_pages, + "footer_pages": footer_pages, + } + context.update(i18n_globals) + + return templates.TemplateResponse(template_path, context) + # Fallback to default static template logger.info("[PLATFORM] No CMS homepage found, using default template") - return templates.TemplateResponse( - "platform/homepage-default.html", - { - "request": request, - "header_pages": header_pages, - "footer_pages": footer_pages, - }, - ) + context = { + "request": request, + "header_pages": header_pages, + "footer_pages": footer_pages, + } + context.update(i18n_globals) + + return templates.TemplateResponse("platform/homepage-default.html", context) @app.get("/{slug}", response_class=HTMLResponse, include_in_schema=False) @@ -428,15 +434,19 @@ async def platform_content_page( logger.info(f"[PLATFORM] Rendering content page: {page.title} (/{slug})") - return templates.TemplateResponse( - "platform/content-page.html", - { - "request": request, - "page": page, - "header_pages": header_pages, - "footer_pages": footer_pages, - }, - ) + # Get language from request state and build i18n context + language = getattr(request.state, "language", "fr") + i18n_globals = get_jinja2_globals(language) + + context = { + "request": request, + "page": page, + "header_pages": header_pages, + "footer_pages": footer_pages, + } + context.update(i18n_globals) + + return templates.TemplateResponse("platform/content-page.html", context) logger.info("=" * 80)