def get_request_language_preference(request):
"""
Collect language preferences from request.LANGUAGE_CODE, the HTTP
Accept-Language header, and settings.LANGUAGE_CODE, and return a list of
languages in preference order.
"""
all_langs = []
if hasattr(request, 'LANGUAGE_CODE'):
all_langs.append(request.LANGUAGE_CODE)
all_langs.extend(parse_accept_header(request.META.get('HTTP_ACCEPT_LANGUAGE', '')))
all_langs.append(settings.LANGUAGE_CODE)
# Remove duplicates while preserving order. The list of languages should be
# quite short, so the inefficiency of this method should not matter.
# Famous last words.
langs = []
for lang in all_langs:
if lang not in langs:
langs.append(lang)
return langs
评论列表
文章目录