Date: 2026-01-10 22:45 Summary: Set English as fallback default and negotiate page language from browser Accept-Language / navigator.
[question] 设置英文为默认语言,并且判断浏览器可接受语言作为页面语言,网站没有对应语言则显示英文
[try to solve] Two-layer language selection:
- Worker (dynamic routes)
- Default fallback language English (
SITE_DEFAULT_LANG=en). - For Worker-rendered HTML (e.g. tool routes), pick the best match from
Accept-Language; if unsupported or disabled, fall back to English.
- Static pages (home / devlogs)
- Platform may serve static assets first, so every generated page injects an early
<head>script that:- Reads
navigator.languages(ornavigator.language) and picks the best site language; - If the URL has no lang prefix and English is chosen, navigates to
/en/...; - Falls back to English when the browser language is not a site language.
- Reads
[actions]
- Updated:
wrangler.jsonc(SITE_DEFAULT_LANG=en) - Updated:
worker-configuration.d.ts(typegen) - Updated:
src/index.ts(Accept-Language negotiation + English fallback for Worker HTML) - Updated:
scripts/site/layout.mjs(client language auto-select/redirect script) - Updated:
README.md - Regenerated static pages via
build:site