const lngs = [ ['en', 'English'], ['ru', 'Русский'], ['zh-CN', '简体中文'] ] lngs.forEach(v => $('#lngList').append(`${v[1]}`)) i18next .use(i18nextBrowserLanguageDetector) .use(i18nextXHRBackend) .init({ backend: { loadPath: 'locales/{{lng}}.json' }, fallbackLng: 'en', whitelist: lngs.map(v => v[0]), keySeparator: false }) .then(() => { jqueryI18next.init(i18next, $, { parseDefaultValueFromContent: false }) updateView() }) function changeLng(code) { i18next.changeLanguage(code).then(() => { updateView() }) }