hugo-theme-stack/layouts/partials/head/autoLang.html
2023-04-08 21:11:22 +08:00

30 lines
931 B
HTML

{{ if .Site.IsMultiLingual }}
<script>
(function () {
if (window.location.pathname !== '/') return;
const CURRENT_LANG = '{{ .Site.Language.Lang }}';
let userLangList = [...navigator.languages];
if (localStorage.userLang)
userLangList.unshift(localStorage.userLang);
let supportLangs = new Set();
{{ range .Site.Languages }}
supportLangs.add('{{ .Lang }}');
{{ end }}
for (let userLang of userLangList) {
userLang = userLang.toLowerCase();
if (CURRENT_LANG == userLang) {
return;
}
if (supportLangs.has(userLang)) {
localStorage.userLang = userLang;
window.location.href = window.location.href + userLang;
return;
}
}
})()
</script>
{{ end }}