diff --git a/server/assets/listings.css b/server/assets/listings.css index 99da2bb..49a9792 100644 --- a/server/assets/listings.css +++ b/server/assets/listings.css @@ -42,8 +42,8 @@ body { } .no-js .requires-js { - display: none; - visibility: hidden; + display: none !important; + visibility: hidden !important; } details { diff --git a/server/assets/listings.js b/server/assets/listings.js index 0ca830b..dae072f 100644 --- a/server/assets/listings.js +++ b/server/assets/listings.js @@ -5,7 +5,7 @@ allowed: [], centre: 'All', list: null, - lang: 'en', + lang: null, }; function addJsClass() { @@ -62,6 +62,16 @@ dataCentre.value = state.centre; let language = document.getElementById('language'); + if (state.lang === null) { + state.lang = language.dataset.accept; + let cookie = document.cookie + .split(';') + .find(row => row.trim().startsWith('lang=')); + if (cookie !== undefined) { + state.lang = decodeURIComponent(cookie.split('=')[1]); + } + } + language.value = state.lang; } diff --git a/server/src/ffxiv.rs b/server/src/ffxiv.rs index db7be9b..32d2b43 100644 --- a/server/src/ffxiv.rs +++ b/server/src/ffxiv.rs @@ -30,6 +30,15 @@ pub enum Language { } impl Language { + pub fn code(&self) -> &'static str { + match self { + Self::English => "en", + Self::Japanese => "ja", + Self::German => "de", + Self::French => "fr", + } + } + pub fn from_codes(val: Option<&str>) -> Self { let val = match val { Some(v) => v, diff --git a/server/templates/listings.html b/server/templates/listings.html index bdfe902..5dfe5b0 100644 --- a/server/templates/listings.html +++ b/server/templates/listings.html @@ -52,7 +52,7 @@ Remote Party Finder
-