fix:更新隐私协议语言问题
This commit is contained in:
@@ -90,13 +90,23 @@ def _resolve_lang(accept_language: Optional[str]) -> ResolvedLang:
|
||||
|
||||
if not accept_language:
|
||||
return "en"
|
||||
s = accept_language.lower()
|
||||
|
||||
# 目前只支持 EN / TC:只要是中文或显式 tc,都归到 tc
|
||||
if "tc" in s:
|
||||
# 按语言优先级顺序逐项解析,避免“只要包含 zh 就全判 tc”。
|
||||
# 例如:en-US,en;q=0.9,zh-CN;q=0.8 应命中 en,而不是 tc。
|
||||
items = [seg.strip().lower() for seg in accept_language.split(",") if seg.strip()]
|
||||
for item in items:
|
||||
lang_tag = item.split(";", 1)[0].strip()
|
||||
if not lang_tag:
|
||||
continue
|
||||
|
||||
if lang_tag == "tc":
|
||||
return "tc"
|
||||
if "zh" in s or "hant" in s or "tw" in s or "hk" in s or "mo" in s:
|
||||
if lang_tag.startswith(("zh-hant", "zh-tw", "zh-hk", "zh-mo")):
|
||||
return "tc"
|
||||
if lang_tag.startswith("zh"):
|
||||
return "tc"
|
||||
if lang_tag.startswith("en"):
|
||||
return "en"
|
||||
|
||||
return "en"
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user