from django.utils.translation import get_language from .messages import ACCOUNT_MESSAGES def get_localized_msg(key, request=None, fallback_lang="en"): """ Get localized message from ACCOUNT_MESSAGES based on request or active language. """ json_list = ACCOUNT_MESSAGES.get(key) if not json_list: return key # Fallback to key itself if not found # Get language from request (LocaleMiddleware sets LANGUAGE_CODE) language_code = getattr(request, "LANGUAGE_CODE", None) if request else None # Check if 'lang' query param is used (common in this project's mobile apps) if not language_code and request: language_code = request.query_params.get('lang') if not language_code: language_code = get_language() or fallback_lang # 1) Exact match for item in json_list: if item.get("language_code") == language_code: return item.get("text") # 2) Fallback to English for item in json_list: if item.get("language_code") == "en": return item.get("text") # 3) First available return json_list[0].get("text") if json_list else key