目的:用户第一次进来。根据浏览器语言设置语言环境。

问题:1.浏览器权重q 跟语言是否是默认浏览器语言并无关系。只是设置的浏览器语言的排序。但一般正常来讲,获取到的第一个语言一般为浏览器语言。

      2.个别浏览器会有获取不到的情况。

方案:如果用户的url参数没有lang,也无cookie信息,则通过浏览器语言(\’accept-language\’)设置网站语言环境。一般中文,包括简体和繁体均以zh开头

代码:

const browserLang = ctx => {
  const langs = ctx.header[\'accept-language\'];
  logger.info(\'获取到的浏览器语言\', langs)
  let lang = \'en_US\'
  if (langs && langs.startsWith(\'zh\')) {
    lang = \'zh_CN\'
  }
  logger.info(\'第一次设置语言\', lang)
  return lang
}

const getLangFormat = ctx => {
  const langs = [\'zh_CN\', \'en_US\', \'ru_RU\']
  const lang = ctx.query.lang || ctx.cookies.get(\'Lang\') || browserLang(ctx)
  const realLang = langs.includes(lang) ? lang : \'zh_CN\'

  const cookieOptions = {
    httpOnly: false,
    domain: process.env.COOKIE_DOMAIN,
    expires: new Date(2147483647000)
  }

  ctx.cookies.set(\'Lang\', realLang, cookieOptions)

  return realLang
}

  

版权声明:本文为lyxverycool原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lyxverycool/articles/10606045.html