diff --git a/src/kiri/init.js b/src/kiri/init.js index a89aa3c8..c45ae116 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -2552,13 +2552,14 @@ // inject language script if not english if (lang && lang !== 'en' && lang !== 'en-us') { lang_set = lang; + let map = KIRI.lang.map(lang); let scr = DOC.createElement('script'); // scr.setAttribute('defer',true); - scr.setAttribute('src',`/kiri/lang/${lang}.js`); + scr.setAttribute('src',`/kiri/lang/${map}.js`); (DOC.body || DOC.head).appendChild(scr); STATS.set('ll',lang); scr.onload = function() { - KIRI.lang.set(lang); + KIRI.lang.set(map); UI.lang(); init_one(); }; diff --git a/src/kiri/lang.js b/src/kiri/lang.js index f82ad861..9f464938 100644 --- a/src/kiri/lang.js +++ b/src/kiri/lang.js @@ -7,9 +7,28 @@ if (self.kiri.lang) return; const KIRI = self.kiri, LANG = self.kiri.lang = { current: {} }; + const KDFL = 'en-us'; let lset = navigator.language.toLocaleLowerCase(); + LANG.map = function(key) { + if (!key) { + return KDFL; + } + let tok = key.split('-'); + switch (tok[0]) { + case 'en': + return 'en-us'; + case 'da': + return 'da-dk'; + case 'de': + return 'de-de'; + case 'fr': + return 'fr-fr'; + } + return KDFL; + }; + LANG.get = function() { return lset; };