From 69b3e1f8a770cfaa590fa63504f7fad8c90c791d Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Tue, 29 Nov 2022 12:42:54 +0400 Subject: [PATCH] Moved user language preferences into i18n.{h,cpp} --- src/server/i18n.cpp | 17 +++++++++++++++++ src/server/i18n.h | 10 ++++++++++ src/server/request_context.cpp | 26 +------------------------- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/server/i18n.cpp b/src/server/i18n.cpp index 2aecc724d..acde36993 100644 --- a/src/server/i18n.cpp +++ b/src/server/i18n.cpp @@ -111,4 +111,21 @@ std::string ParameterizedMessage::getText(const std::string& lang) const return i18n::expandParameterizedString(lang, msgId, params); } +UserLangPreferences parseUserLanguagePreferences(const std::string& s) +{ + // TODO: implement properly + const UserLangPreferences defaultPref{{"en", 1}}; + + if ( s.empty() ) + return defaultPref; + + for ( const char c : s ) { + if ( ! std::isalpha(c) ) { + return defaultPref; + } + } + + return {{s, 1}}; +} + } // namespace kiwix diff --git a/src/server/i18n.h b/src/server/i18n.h index d4b084d3e..c3d648f0c 100644 --- a/src/server/i18n.h +++ b/src/server/i18n.h @@ -89,6 +89,16 @@ private: // data const Parameters params; }; +struct LangPreference +{ + const std::string lang; + const float preference; +}; + +typedef std::vector UserLangPreferences; + +UserLangPreferences parseUserLanguagePreferences(const std::string& s); + } // namespace kiwix #endif // KIWIX_SERVER_I18N diff --git a/src/server/request_context.cpp b/src/server/request_context.cpp index bf14ee783..d2898ed47 100644 --- a/src/server/request_context.cpp +++ b/src/server/request_context.cpp @@ -28,6 +28,7 @@ #include #include "tools/stringTools.h" +#include "i18n.h" namespace kiwix { @@ -64,31 +65,6 @@ fullURL2LocalURL(const std::string& full_url, const std::string& rootLocation) } } -struct LangPreference -{ - const std::string lang; - const float preference; -}; - -typedef std::vector UserLangPreferences; - -UserLangPreferences parseUserLanguagePreferences(const std::string& s) -{ - // TODO: implement properly - const UserLangPreferences defaultPref{{"en", 1}}; - - if ( s.empty() ) - return defaultPref; - - for ( const char c : s ) { - if ( ! std::isalpha(c) ) { - return defaultPref; - } - } - - return {{s, 1}}; -} - } // unnamed namespace RequestContext::RequestContext(struct MHD_Connection* connection,