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,