main #14
@@ -90,13 +90,23 @@ def _resolve_lang(accept_language: Optional[str]) -> ResolvedLang:
|
|||||||
|
|
||||||
if not accept_language:
|
if not accept_language:
|
||||||
return "en"
|
return "en"
|
||||||
s = accept_language.lower()
|
|
||||||
|
|
||||||
# 目前只支持 EN / TC:只要是中文或显式 tc,都归到 tc
|
# 按语言优先级顺序逐项解析,避免“只要包含 zh 就全判 tc”。
|
||||||
if "tc" in s:
|
# 例如: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"
|
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"
|
return "tc"
|
||||||
|
if lang_tag.startswith("zh"):
|
||||||
|
return "tc"
|
||||||
|
if lang_tag.startswith("en"):
|
||||||
|
return "en"
|
||||||
|
|
||||||
return "en"
|
return "en"
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user