prevent loading twice

This commit is contained in:
do
2024-08-12 18:39:38 +02:00
parent 5335e3d607
commit 07fa46b9a6
8 changed files with 16 additions and 62 deletions

View File

@@ -29,12 +29,11 @@
// Event listener for language selection
document.addEventListener('DOMContentLoaded', () => {
const storedLanguage = getLanguage()
const languageItems = document.querySelectorAll(
'#language-selector .dropdown-item')
if (languageItems.length > 0) {
const storedLanguage = getLanguage()
// Redirect if the stored language differs from the active language
if ((storedLanguage) && (document.documentElement.lang !== storedLanguage)) {
languageItems.forEach(item => {
@@ -56,7 +55,10 @@
})
}
else{
removeSelectedLanguage(); // Remove stored language if no language selection is available in the dropdown menu.
// Redirect to the localized homepage
const defaultLang = '{{ site.LanguageCode | default site.Language.Lang }}'
let language = storedLanguage ? storedLanguage : defaultLang
window.location.href = '/' + language + '/'
}
})
})()

View File

@@ -1,8 +0,0 @@
window.onload = function () {
removeSelectedLanguage()
}
// Function to remove the selected language from localStorage
function removeSelectedLanguage () {
localStorage.removeItem('selectedLanguage')
}

View File

@@ -1,39 +0,0 @@
---
author: Mark Dumay
title: Remove selected language
slug: remove-selected-language
date: 2024-08-09
description: Remove selected language
tags:
- shortcode
thumbnail:
url: img/boots.jpg
author: Nathan Dumlao
authorURL: https://unsplash.com/@nate_dumlao
origin: Unsplash
originURL: https://unsplash.com/photos/QLPWQvHvmII
---
Via the adjustable configuration
`enableLanguageSelectionStorage = true`
in **params.toml** (\exampleSite\config\_default\params.toml)
the selected language is stored in the browser *localStorage* in the "**selectedLanguage**" key.
The script can be found here:
**assets\js\critical\languageSelector.js**
## Remove selected language
If the key is to be removed, the shortcode
**remove-selected-language**
can be used on the respective page.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* remove-selected-language */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
{{< remove-selected-language >}}

View File

@@ -302,7 +302,6 @@
"mt-auto",
"multi-docs-collapse-15",
"multi-file-collapse-1",
"multi-file-collapse-2",
"mx-auto",
"mx-md-0",
"mx-md-2",
@@ -491,7 +490,6 @@
"blog",
"body-docs-collapse-15",
"body-file-collapse-1",
"body-file-collapse-2",
"bouton",
"breadcrumb",
"btn-webshare",
@@ -518,7 +516,6 @@
"file",
"footer-docs-collapse-15",
"footer-file-collapse-1",
"footer-file-collapse-2",
"formula-katex",
"formule-katex",
"groupe-de-boutons",
@@ -560,7 +557,6 @@
"projets",
"publication",
"release",
"remove-selected-language",
"réduire",
"spinner",
"sub",

View File

@@ -7,6 +7,10 @@
<meta name="robots" content="noindex">
<meta charset="utf-8">
<noscript><meta http-equiv="refresh" content="0; url={{ .Permalink }}"></noscript>
{{ if site.Params.main.enableLanguageSelectionStorage }}
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" page) -}}
{{ else }}
<script src='{{ partial "utilities/GetStaticURL" (dict "url" "js/alias.js") }}'></script>
{{ end }}
</head>
</html>

View File

@@ -25,13 +25,13 @@
{{- $state := .state | default "async" -}}
{{- if or $header (eq $state "immediate") }}{{ $state = "" }}{{ end -}}
{{- $modules := "" -}}
{{ if $core }}
{{ $config := $page.Scratch.Get "modules" }}
{{ if not $config }}
{{ errorf "partial [footer/scripts.html] - Cannot initialize module configuration" }}
{{ end }}
{{- $modules := "" -}}
{{ if $core }}
{{- $modules = $config.core -}}
{{- if reflect.IsSlice $config.localize -}}
{{- range $index, $mod := $modules -}}

View File

@@ -1,2 +0,0 @@
{{ $languageSelectorRemover := resources.Get "js/optional/languageSelectorRemover.js" | minify | fingerprint -}}
<script defer src="{{ $languageSelectorRemover.RelPermalink }}"></script>

1
package-lock.json generated
View File

@@ -4335,6 +4335,7 @@
"resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
"integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"chalk": "^2.4.1",