diff --git a/src/page.rs b/src/page.rs index 4bddb1e..4840590 100644 --- a/src/page.rs +++ b/src/page.rs @@ -6,7 +6,8 @@ use maud::{html, Markup, DOCTYPE}; pub fn new(content: Markup, lang: Language) -> Markup { html! { (DOCTYPE) - head { + html lang=(lang) { + head { meta charset="utf-8"; meta name="viewport" content="width=device-width, initial-scale=1.0"; link rel="stylesheet" href="/static/pico.min.css"; @@ -39,8 +40,8 @@ pub fn new(content: Markup, lang: Language) -> Markup { } li { - button id="language_toogle" lang="en" { - "DE" + button id="lang-toggle" lang=(lang.next_language()) { + (lang.next_language()) } } } @@ -62,5 +63,6 @@ pub fn new(content: Markup, lang: Language) -> Markup { } script src="/static/theme.js" {} } + } } } diff --git a/static/serve/theme.js b/static/serve/theme.js index d7bc180..9647f15 100644 --- a/static/serve/theme.js +++ b/static/serve/theme.js @@ -4,14 +4,17 @@ document.addEventListener('DOMContentLoaded', () => { }) function setLanguageCookie() { - let langToggle = document.getElementById('language_toogle'); + let langToggle = document.getElementById('lang-toggle'); - langToggle.addEventListener('click', (e)=> { - e.preventDefault(); - let lang = langToggle.getAttribute('lang'); - document.cookie = "language=" + lang; - window.location.reload(); - }) + // check if element exists + langToggle?.addEventListener('click', (e)=> { + e.preventDefault(); + + // set lang, if lang attribute doesn't exit set default en + let lang = langToggle.getAttribute('lang') ? langToggle.getAttribute('lang') : 'en'; + document.cookie = "language=" + lang; + window.location.reload(); + }) } /** [ph] */