js获取浏览器默认语言设置

  • 2019 年 11 月 28 日
  • 筆記

项目用到多语言,之前也接触过,不过没有自测过,通过自测,写出通用比较简化的方法

// i18n  import i18n from './i18n'  let lang = navigator.language||navigator.userLanguage  i18n.locale = lang.substr(0, 2) || 'en'

网上别的常见方法

<script type="text/javascript">    var type = navigator.appName;    if (type == "Netscape"){        var lang = navigator.language;//获取浏览器配置语言,支持非IE浏览器    }else{        var lang = navigator.userLanguage;//获取浏览器配置语言,支持IE5+ == navigator.systemLanguage    };    var lang = lang.substr(0, 2);//获取浏览器配置语言前两位    if (lang == "zh"){        alert(lang);        //window.location.replace('url');//中文编码时打开链接    }else if (lang == "en"){        window.location.replace('url');    }else{//其他语言编码时打开以下链接        window.location.replace('url');    };  </script>

文中截取lang的前2位字符,是因为浏览器语言返回值可能是:

zh-CN Chinese(PRC)

zh-TW Chinese(Taiwan Region)

zh-HK Chinese(Hong Kong SAR, PRC)

zh-SC Chinese(Singapore)

en-US English(United States)

en English