diff --git a/lib/mwUtil.js b/lib/mwUtil.js index a43704b8d..69aad65ae 100644 --- a/lib/mwUtil.js +++ b/lib/mwUtil.js @@ -86,23 +86,24 @@ mwUtil.canConvertLangVariant = (hyper, req, pageLanguage) => { * a page in a requested language on a particular wiki. * @param {HyperSwitch} hyper * @param {Object} req - * @param {string} pageLanguage the language of the requested page. - * @param {string} acceptLanguage the language variant accepted by the client. + * @param {string} pageLang the language of the requested page. + * @param {string} acceptLang the language variant accepted by the client. * @return {Promise} */ -mwUtil.shouldConvertLangVariant = (hyper, req, pageLanguage, acceptLanguage) => { - if (!acceptLanguage) { +mwUtil.shouldConvertLangVariant = (hyper, req, pageLang, acceptLang) => { + if (!acceptLang) { return P.resolve(false); } return mwUtil.getSiteInfo(hyper, req) .then((siteInfo) => { + const pageLangWithFallback = pageLang ? pageLang.toLowerCase() : siteInfo.general.lang; // First, whether specialized variants exist for the page lang on a wiki - const pageLangVariants = siteInfo.languagevariants[pageLanguage.toLowerCase()]; + const pageLangVariants = siteInfo.languagevariants[pageLangWithFallback]; if (!pageLangVariants) { return false; } // Second, if the requested language variant exist for page language - return pageLangVariants.indexOf(acceptLanguage.toLowerCase()) !== -1; + return pageLangVariants.indexOf(acceptLang.toLowerCase()) !== -1; }); };