Skip to content

Commit b9269b7

Browse files
committed
Fix language switcher
1 parent 95be444 commit b9269b7

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

content/_includes/masthead.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
{% assign page_language = site.default_language %}
1313
{% endunless %}
1414

15+
<h1>{{ page_language }}</h1>
16+
1517
{% capture logo_path %}{{ site.logo }}{% endcapture %}
1618
<div class="masthead">
1719
<div class="masthead__inner-wrap">

content/_layouts/default.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,17 @@
1414
{% assign page_language = site.default_language %}
1515
{% endunless %}
1616

17+
<h1>{{ page_language }}</h1>
18+
1719
<!doctype html>
1820
{% include copyright.html %}
1921
<html lang="{{ page_language }}" class="no-js">
2022
<head>
2123
{% include head.html %}
2224
{% include head/custom.html %}
25+
<script type="text/javascript">
26+
localStorage.setItem("page_language", "{{ page_language }}");
27+
</script>
2328
</head>
2429

2530
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}" dir="{% if site.rtl %}rtl{% else %}ltr{% endif %}">
Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
window.addEventListener("DOMContentLoaded", function() {
22
let current_language = localStorage.getItem("current_language");
3-
if (current_language === null) {
3+
let page_language = localStorage.getItem("page_language");
4+
if (current_language !== page_language) {
45
// No language set, defaulting to English
5-
current_language = "en";
6+
current_language = page_language || "en";
67
}
8+
console.log(current_language);
79
// Set the option in the select element to have the "selected" attribute
810
var selectElement = document.getElementById("select_language");
911
var selectedOption = selectElement.querySelector(
@@ -16,18 +18,15 @@ window.addEventListener("DOMContentLoaded", function() {
1618

1719
// Change language for current page
1820
function change_language() {
21+
let page_language = localStorage.getItem("page_language");
1922
var selectElement = document.getElementById("select_language");
20-
var value = selectElement.options[selectElement.selectedIndex].value;
23+
var new_language = selectElement.options[selectElement.selectedIndex].value;
2124

2225
// Get the current page URL
2326
const currentPageUrl = window.location.href;
24-
const old_language = localStorage.getItem("current_language");
25-
26-
localStorage.setItem("current_language", value);
27-
// Update the lang attribute of the HTML element
28-
document.documentElement.setAttribute("lang", value);
27+
localStorage.setItem("current_language", new_language);
2928
window.location.href = currentPageUrl.replace(
30-
"/" + old_language + "/",
31-
"/" + value + "/"
29+
"/" + page_language + "/",
30+
"/" + new_language + "/"
3231
);
3332
}

0 commit comments

Comments
 (0)