diff --git a/server/app/api/v1/legal.py b/server/app/api/v1/legal.py index d6cf918..1986aa0 100644 --- a/server/app/api/v1/legal.py +++ b/server/app/api/v1/legal.py @@ -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: - return "tc" - if "zh" in s or "hant" in s or "tw" in s or "hk" in s or "mo" in s: - return "tc" + # 按语言优先级顺序逐项解析,避免“只要包含 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 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" diff --git a/server/celerybeat-schedule b/server/celerybeat-schedule index df15f25..06527ca 100644 Binary files a/server/celerybeat-schedule and b/server/celerybeat-schedule differ diff --git a/server/celerybeat-schedule-shm b/server/celerybeat-schedule-shm deleted file mode 100644 index 9fb6ee4..0000000 Binary files a/server/celerybeat-schedule-shm and /dev/null differ diff --git a/server/celerybeat-schedule-wal b/server/celerybeat-schedule-wal deleted file mode 100644 index 85a2a3f..0000000 Binary files a/server/celerybeat-schedule-wal and /dev/null differ