From 0ad21da246aad0ef5a0f9792a1dd78473da9eb8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=95=E6=96=B0=E9=9B=A8?= Date: Wed, 25 Feb 2026 17:46:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E9=9A=90=E7=A7=81?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E8=AF=AD=E8=A8=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/app/api/v1/legal.py | 22 ++++++++++++++++------ server/celerybeat-schedule | Bin 12288 -> 12288 bytes server/celerybeat-schedule-shm | Bin 32768 -> 0 bytes server/celerybeat-schedule-wal | Bin 675712 -> 0 bytes 4 files changed, 16 insertions(+), 6 deletions(-) delete mode 100644 server/celerybeat-schedule-shm delete mode 100644 server/celerybeat-schedule-wal 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 df15f253a3b26e777fa9966fc3d13075d2d45aa5..06527ca71f7f73659aeff1b97bc01ae46977f190 100644 GIT binary patch delta 562 zcmZojXh_(=D8SEun}LNVn3;bc|4RNAp5TpzmYj-h`i?zg)Ea;-)W zqX97ZOrZXp+%K=dtkjq_`JTKIvruE^IjJcOF9E~%rsn_v delta 335 zcmZojXh_(=D8SFaz`(+j#=w7=e?9*lp0tgHVLZZZu8o2$QoRhRc_l@esl^Q}Q}rij zNv>w+W>7Qa+TS@@Mky*F5|=ka52MzU44Dj>$@8RI6}efB85m;wr(}q=O$nOf z{UbwKqlZ~b-w>< zgYx3cN|nr$@5`%monherz<-ASCI8LMf(onnCkAlXaWhLXLOjgFEX4%%I>SVMW+g@> bvntq_1sF@J%0a^M@nxw+#hLke@$r=asuE#s diff --git a/server/celerybeat-schedule-shm b/server/celerybeat-schedule-shm deleted file mode 100644 index 9fb6ee4066f412ab78904a1390fac25db623002d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 V5I_I{1Q0N%KoY&cANT16{vSA43m^ah