diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-20 12:45:53 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-20 12:45:53 +0200 |
commit | 08f067aa1d0c1c1cec072dc73d4b4c04ce135b01 (patch) | |
tree | 7055a021dfc032838b842134e5a1d07c4b92da19 /server/src/routes/locale.rs | |
parent | 4523bd0d455781c5cc3544fb230b69990fd53225 (diff) | |
download | jellything-08f067aa1d0c1c1cec072dc73d4b4c04ce135b01.tar jellything-08f067aa1d0c1c1cec072dc73d4b4c04ce135b01.tar.bz2 jellything-08f067aa1d0c1c1cec072dc73d4b4c04ce135b01.tar.zst |
tr layout
Diffstat (limited to 'server/src/routes/locale.rs')
-rw-r--r-- | server/src/routes/locale.rs | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/server/src/routes/locale.rs b/server/src/routes/locale.rs index adce685..6d16c17 100644 --- a/server/src/routes/locale.rs +++ b/server/src/routes/locale.rs @@ -30,26 +30,26 @@ impl<'r> FromRequest<'r> for AcceptLanguage { 'life0: 'async_trait, Self: 'async_trait, { - Box::pin(async move { - Outcome::Success(AcceptLanguage( - request - .headers() - .get_one("accept-language") - .and_then(|h| { - h.split(",") - .filter_map(|e| { - let code = e.split(";").next()?; - let code = code.split_once("-").unwrap_or((code, "")).0; - match code { - "en" => Some(Language::English), - "de" => Some(Language::German), - _ => None, - } - }) - .next() - }) - .unwrap_or(Language::English), - )) - }) + Box::pin(async move { Outcome::Success(AcceptLanguage(lang_from_request(request))) }) } } + +pub(crate) fn lang_from_request(request: &Request) -> Language { + request + .headers() + .get_one("accept-language") + .and_then(|h| { + h.split(",") + .filter_map(|e| { + let code = e.split(";").next()?; + let code = code.split_once("-").unwrap_or((code, "")).0; + match code { + "en" => Some(Language::English), + "de" => Some(Language::German), + _ => None, + } + }) + .next() + }) + .unwrap_or(Language::English) +} |