客户端通过设置请求头(Accept-Language),请求语言数据
// 已逗号隔开,q为权重,默认第一个权重为1
xhr.setRequestHeader('Accept-Language','ja,zh;q=0.9')
服务端拿到请求头(accept-language),进行分割排序,返回对应语言数据
let language = req.headers['accept-language'];
let lans = language.split(',').map(item=>{
let [name,q] = item.split(';');
return {
name,
q:q?q.split('=')[1]:1
}
}).sort((a,b)=>b.q-a.q)
for(let i = 0 ; i < lans.length; i++){
if (languages[lans[i].name]){
// 说明有这个语言
res.end(languages[lans[i].name].message);
return;
}
}
res.end(defaultLanguage);