项目用到多语言,之前也接触过,不过没有自测过,通过自测,写出通用比较简化的方法
// 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