最近项目中遇到了一个加载国际化文件的功能,直接上代码:
//这个getUrl()函数获取了url并进行了参数解析,到的参数再进行判断当前的语言
let URLParams;
function getUrl (url) {
var strArr = url.split('&');
for(var i = 0; i < strArr.length; i++) {
newStrArr = strArr[i].split('=');
// console.log(newStrArr);
if(newStrArr[1] == 'zh-hans') {
URLParams = 'zh-cn';
} else if (newStrArr[1] == 'en') {
URLParams = 'en'
} else {
URLParams = ''
}
console.log(URLParams)
}
};
getUrl(window.location.search.substring(1));
//通过url或浏览器获取系统语言 lang
// http:127.0.0.1:xxxxx/index.html?lang=zh-hans
function getSystemLanguage() {
console.log(URLParams)
var JsSrc = (URLParams || navigator.language || navigator.browserLanguage || 'zh-hans').toLowerCase();
console.log(JsSrc)
let languageUrl;
if (JsSrc.indexOf('zh') >= 0) {
languageUrl = "zh-hans";
} else if (JsSrc.indexOf('en') >= 0) {
languageUrl = "en";
}
return languageUrl;
}
var languageUrl = getSystemLanguage();
function i18n(src) {
var newSrc = src.replace("%1", languageUrl);
console.log(newSrc)
return newSrc;
}
var src = [
i18n("js/i18n/%1/xxxx.js"),
i18n("js/i18n/%1/xxxx.js"),
]
这个xxxx.js就是英文或者中文文件,i18n是个函数,就是用来判断要加载的文件的路径,
文件夹分别是zh-hans(中文文件夹),en(英文文件夹)