12345678910111213141516171819202122232425262728293031323334 |
- ;(() => {
- const supportedLangs = window.supportedLangs
- const cacheKey = 'preferred_lang'
- const defaultLang = 'en-US'
- // docs supported languages
- const langAlias = {
- en: 'en-US',
- fr: 'fr-FR',
- es: 'es-ES',
- }
- let userPreferredLang = localStorage.getItem(cacheKey) || navigator.language
- const language =
- langAlias[userPreferredLang] ||
- (supportedLangs.includes(userPreferredLang)
- ? userPreferredLang
- : defaultLang)
- localStorage.setItem(cacheKey, language)
- userPreferredLang = language
- if (!location.pathname.startsWith(`/${userPreferredLang}`)) {
- const toPath = [`/${userPreferredLang}`]
- .concat(location.pathname.split('/').slice(2))
- .join('/')
- location.pathname =
- toPath.endsWith('.html') || toPath.endsWith('/')
- ? toPath
- : toPath.concat('/')
- }
- if (navigator && navigator.serviceWorker.controller) {
- navigator.serviceWorker.controller.postMessage({
- type: 'LANG',
- lang: userPreferredLang,
- })
- }
- })()
|