aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/locale.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-20 12:45:53 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-20 12:45:53 +0200
commit08f067aa1d0c1c1cec072dc73d4b4c04ce135b01 (patch)
tree7055a021dfc032838b842134e5a1d07c4b92da19 /server/src/routes/locale.rs
parent4523bd0d455781c5cc3544fb230b69990fd53225 (diff)
downloadjellything-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.rs42
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)
+}