From 88597e1834a3005ad39ce3e0023b1ca09f933ae3 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Tue, 29 Nov 2022 12:54:45 +0400 Subject: [PATCH] Enter selectMostSuitableLanguage() --- src/server/i18n.cpp | 6 ++++++ src/server/i18n.h | 2 ++ src/server/request_context.cpp | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/i18n.cpp b/src/server/i18n.cpp index acde36993..faf14d5cd 100644 --- a/src/server/i18n.cpp +++ b/src/server/i18n.cpp @@ -128,4 +128,10 @@ UserLangPreferences parseUserLanguagePreferences(const std::string& s) return {{s, 1}}; } +std::string selectMostSuitableLanguage(const UserLangPreferences& prefs) +{ + // TOOD: implement properly + return prefs[0].lang; +} + } // namespace kiwix diff --git a/src/server/i18n.h b/src/server/i18n.h index c3d648f0c..23236074a 100644 --- a/src/server/i18n.h +++ b/src/server/i18n.h @@ -99,6 +99,8 @@ typedef std::vector UserLangPreferences; UserLangPreferences parseUserLanguagePreferences(const std::string& s); +std::string selectMostSuitableLanguage(const UserLangPreferences& prefs); + } // namespace kiwix #endif // KIWIX_SERVER_I18N diff --git a/src/server/request_context.cpp b/src/server/request_context.cpp index d2898ed47..4eac4ad33 100644 --- a/src/server/request_context.cpp +++ b/src/server/request_context.cpp @@ -227,7 +227,8 @@ std::string RequestContext::determine_user_language() const try { const std::string acceptLanguage = get_header("Accept-Language"); - return parseUserLanguagePreferences(acceptLanguage)[0].lang; + const auto userLangPrefs = parseUserLanguagePreferences(acceptLanguage); + return selectMostSuitableLanguage(userLangPrefs); } catch(const std::out_of_range&) {} return "en";