如何从浏览器的'request'中的'accept-language'获取正确的语言

浏览器 request 的'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 字符串中怎么获取正确的语言

浏览器通常会在HTTP请求头中的'accept-language'字段中包含有语言偏好设置。这个字符串中包含了客户端浏览器支持的语言以及对每种语言的优先级排序。

在给定的字符串中,语言是按照优先级排序的,排在前面的语言表示用户更倾向于使用这种语言。您可以使用以下方法来获取正确的语言:

  1. 首先,使用逗号分隔符将字符串拆分为单个语言代码:
languages = accept_language.split(',')
  1. 对于每个语言代码,可以进一步检查其是否具有区域设置。例如,'zh-CN'表示中国大陆地区的汉语,'zh-TW'表示台湾地区的汉语。以下是一个遍历语言代码列表并提取正确语言的示例代码:
for lang in languages:
    # 检查语言代码是否包含区域设置
    if '-' in lang:
        code, region = lang.split('-')
        # 如果区域设置为CN,表示简体中文,返回'zh'
        if region == 'CN':
            return code
        # 如果区域设置为TW,表示繁体中文,返回'zh-Hant'
        elif region == 'TW':
            return code + '-Hant'
    else:
        # 如果没有区域设置,默认为英语,返回'en'
        if lang == 'en':
            return lang
return 'zh'  # 如果以上代码都未匹配,则返回中文

这段代码会返回正确的主要语言,如果最优先的语言不是中文或英文,则默认返回中文。