Refactor translation handling and remove unused language support in templates

This commit is contained in:
Christian Krakau-Louis
2025-04-14 03:27:24 +02:00
parent d595b468e9
commit 2af9cd17ea
6 changed files with 98 additions and 194 deletions
+2 -27
View File
@@ -12,7 +12,6 @@ from . import models
from .templates_config import templates
from .views import qr, redeem, teams, admin, leaderboard, dashboard, static, pages
from .db_init import seed_db
from app.i18n import get_translator, SUPPORTED_LANGUAGES, _ # Ensure `_` is correctly imported
# Create tables on startup
init_db()
@@ -35,8 +34,6 @@ static.configure_static_files(app)
# Setup Jinja2 templates
templates = Jinja2Templates(directory="app/templates")
templates.env.globals["SUPPORTED_LANGUAGES"] = SUPPORTED_LANGUAGES
templates.env.globals["_"] = _
# User context middleware to make template globals available
@app.middleware("http")
@@ -52,35 +49,13 @@ async def add_template_globals(request: Request, call_next):
response = await call_next(request)
return response
# Add translation context processor to Jinja templates
@app.middleware("http")
async def add_translation_context(request: Request, call_next):
response = await call_next(request)
return response
@app.get("/", response_class=HTMLResponse)
async def read_root(request: Request, i18n: dict = Depends(get_translator)):
async def read_root(request: Request):
return templates.TemplateResponse(
"index.html",
{"request": request, "user": None, **i18n}
{"request": request, "user": None}
)
@app.api_route("/set-language/{language_code}", methods=["GET", "POST"])
async def set_language(request: Request, language_code: str):
if request.method == "POST":
form = await request.form()
language = form.get("language", "en")
else:
language = language_code
if language in SUPPORTED_LANGUAGES:
request.session["language"] = language
response = RedirectResponse(url=request.headers.get("referer", "/"))
response.set_cookie(key="language", value=language, max_age=31536000) # 1 year
return response
return {"message": f"Invalid language code: {language}"}
# Routers
app.include_router(pages.router, tags=["Pages"]) # Pages router for index and static pages
app.include_router(qr.router, prefix="/qr", tags=["QR"])