Online Free Tools
  • Home
  • Dev Logs
Navigation
HomeDev Logs

将英文设为默认回落语言,并基于浏览器可接受语言自动选择页面语言(无匹配则显示英文)。 | Dev Logs

Back to Logs

日期:2026年1月10日22时45分 摘要:将英文设为默认回落语言,并基于浏览器可接受语言自动选择页面语言(无匹配则显示英文)。

【question】 设置英文为默认语言,并且判断浏览器可接受语言作为页面语言,网站没有对应语言则显示英文

【try to solve】 实现两层语言选择策略:

  1. Worker(动态路由)
  • 将英文设为默认回落语言(SITE_DEFAULT_LANG=en)。
  • 对工具路由等由 Worker 返回 HTML 的页面,按 Accept-Language 选择最匹配语言;若请求的语言不受支持或未启用,则回落英文。
  1. 静态页面(首页 / devlogs)
  • 由于静态资源可能被平台优先直接命中,为保证“按浏览器语言选择”,在所有静态生成页面的 <head> 注入一段极早执行的脚本:
    • 读取 navigator.languages(或 navigator.language)选择最匹配的站点语言;
    • 当 URL 未带语言前缀时,若选择结果为英文,则跳转到 /en/...;
    • 若浏览器语言没有匹配站点语言,则回落英文。

【执行操作】

  • 更新:wrangler.jsonc(SITE_DEFAULT_LANG 改为 en)
  • 更新:worker-configuration.d.ts(重新 typegen)
  • 更新:src/index.ts(增加 Accept-Language 协商与回落英文逻辑,用于 Worker 返回的 HTML 路由)
  • 更新:scripts/site/layout.mjs(静态页注入浏览器语言自动选择/跳转脚本)
  • 更新:README.md(补充浏览器语言说明)
  • 生成:重新运行 build:site 输出静态页面
Online Free Tools · Learning project · Iterating