# ============================================================================== # Formeleon - Multi-tenant Form Generator # Author: Björn Runden # Module: utils/i18n.py # Description: Internationalization setup using Flask-Babel. # ============================================================================== from flask import request, current_app from flask_babel import Babel # Initialize Babel babel = Babel() def get_locale(): """ Selects the best matching language for the user. """ # Force language via query parameter (e.g. ?lang=de) lang_param = request.args.get('lang') if lang_param and lang_param in current_app.config.get('LANGUAGES', ['en']): return lang_param # Accept-Language header from browser return request.accept_languages.best_match(current_app.config.get('LANGUAGES', ['en'])) def get_timezone(): """ Returns the user's timezone if available, fallback to default. """ # For now, default to UTC. Can be extended to read from user session. return current_app.config.get('BABEL_DEFAULT_TIMEZONE', 'UTC')