middleware.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:wagtailtrans 作者: LUKKIEN 项目源码 文件源码
def process_request(self, request):
        active_language = None
        language_from_path = translation.get_language_from_path(request.path)
        requested_languages = request.META.get('HTTP_ACCEPT_LANGUAGE')
        if language_from_path:
            active_language = language_from_path
        elif requested_languages:
            requested_languages = requested_languages.split(',')
            codes = tuple(
                language.code
                for language in get_languages_for_site(request.site)
                if language
            )

            for language in requested_languages:
                language = language.split(';')[0]
                active_language = (
                    language if language in codes else None)
                if active_language is None and language.startswith(codes):
                    active_language = [
                        code for code in codes
                        if language.startswith(code)][0]
                if active_language is not None:
                    break

        if active_language is None:
            default_language = Language.objects.default_for_site(
                site=request.site)

            if default_language:
                active_language = default_language.code
            else:
                active_language = settings.LANGUAGE_CODE

        translation.activate(active_language)
        request.LANGUAGE_CODE = active_language
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号