最近在做一个Edge
插件,突然离开webpack
和npm
有点陌生而又兴奋的感觉。从最简单的http
请求到i18n
,都自己手撸了一遍。后来某一天,看到chrome
文档有官方的i18n
方案,就弃用了自己封装的代码。在这里,我把代码贴出来,纪念一下我"逝去"的代码~
(function() {
var i18n = {
lang: 'en_US',
phrases: {},
tr: function(word) {
return i18n.phrases[i18n.lang][word];
},
setLang: function(lang = 'en_US') {
i18n.lang = lang;
webix.storage.local.put('lang', lang);
window.location.reload();
}
};
// 恢复上次选择语言
var localLang = webix.storage.local.get('lang');
if (!localLang) {
webix.storage.local.put('lang', 'en_US');
} else {
i18n.lang = localLang;
}
// 加载词库
const xhr = new XMLHttpRequest();
xhr.open('GET', '/profile/language.json', false);
xhr.send();
if (xhr.status !== 200) {
throw new Error(`HTTP error! status: ${xhr.status}`);
}
var phrases = JSON.parse(xhr.responseText);
i18n.phrases = phrases;
window.i18n = i18n;
})();