mirror of https://github.com/kiwix/libkiwix.git
Added default user language to viewer_settings.js
The default user language determined from the value of "Accept-Language" header is communicated to the client via the /viewer_settings.js endpoint.
This commit is contained in:
parent
b5b98e7a61
commit
f8c3a1fd2e
|
@ -754,7 +754,8 @@ std::unique_ptr<Response> InternalServer::handle_viewer_settings(const RequestCo
|
|||
const kainjow::mustache::object data{
|
||||
{"enable_toolbar", m_withTaskbar ? "true" : "false" },
|
||||
{"enable_link_blocking", m_blockExternalLinks ? "true" : "false" },
|
||||
{"enable_library_button", m_withLibraryButton ? "true" : "false" }
|
||||
{"enable_library_button", m_withLibraryButton ? "true" : "false" },
|
||||
{"default_user_language", request.get_user_language() }
|
||||
};
|
||||
return ContentResponse::build(*this, RESOURCE::templates::viewer_settings_js, data, "application/javascript; charset=utf-8");
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const viewerSettings = {
|
||||
toolbarEnabled: {{enable_toolbar}},
|
||||
linkBlockingEnabled: {{enable_link_blocking}},
|
||||
libraryButtonEnabled: {{enable_library_button}}
|
||||
libraryButtonEnabled: {{enable_library_button}},
|
||||
defaultUserLanguage: "{{default_user_language}}"
|
||||
}
|
||||
|
|
|
@ -1926,7 +1926,8 @@ TEST_F(ServerTest, viewerSettings)
|
|||
R"(const viewerSettings = {
|
||||
toolbarEnabled: false,
|
||||
linkBlockingEnabled: false,
|
||||
libraryButtonEnabled: false
|
||||
libraryButtonEnabled: false,
|
||||
defaultUserLanguage: "en"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
@ -1937,7 +1938,8 @@ R"(const viewerSettings = {
|
|||
R"(const viewerSettings = {
|
||||
toolbarEnabled: false,
|
||||
linkBlockingEnabled: true,
|
||||
libraryButtonEnabled: false
|
||||
libraryButtonEnabled: false,
|
||||
defaultUserLanguage: "en"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
@ -1948,7 +1950,8 @@ R"(const viewerSettings = {
|
|||
R"(const viewerSettings = {
|
||||
toolbarEnabled: true,
|
||||
linkBlockingEnabled: false,
|
||||
libraryButtonEnabled: false
|
||||
libraryButtonEnabled: false,
|
||||
defaultUserLanguage: "en"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
@ -1959,7 +1962,47 @@ R"(const viewerSettings = {
|
|||
R"(const viewerSettings = {
|
||||
toolbarEnabled: true,
|
||||
linkBlockingEnabled: false,
|
||||
libraryButtonEnabled: true
|
||||
libraryButtonEnabled: true,
|
||||
defaultUserLanguage: "en"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
||||
{
|
||||
resetServer(ZimFileServer::WITH_TASKBAR_AND_LIBRARY_BUTTON);
|
||||
const Headers headers{ {"Accept-Language", "fr"} };
|
||||
ASSERT_EQ(zfs1_->GET("/ROOT%23%3F/viewer_settings.js", headers)->body,
|
||||
R"(const viewerSettings = {
|
||||
toolbarEnabled: true,
|
||||
linkBlockingEnabled: false,
|
||||
libraryButtonEnabled: true,
|
||||
defaultUserLanguage: "fr"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
||||
{
|
||||
resetServer(ZimFileServer::WITH_TASKBAR_AND_LIBRARY_BUTTON);
|
||||
const Headers headers{ {"Accept-Language", "test;q=0.2, en;q=0.9"} };
|
||||
ASSERT_EQ(zfs1_->GET("/ROOT%23%3F/viewer_settings.js", headers)->body,
|
||||
R"(const viewerSettings = {
|
||||
toolbarEnabled: true,
|
||||
linkBlockingEnabled: false,
|
||||
libraryButtonEnabled: true,
|
||||
defaultUserLanguage: "en"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
||||
{
|
||||
resetServer(ZimFileServer::WITH_TASKBAR_AND_LIBRARY_BUTTON);
|
||||
const Headers headers{ {"Accept-Language", "test;q=0.9, en;q=0.2"} };
|
||||
ASSERT_EQ(zfs1_->GET("/ROOT%23%3F/viewer_settings.js", headers)->body,
|
||||
R"(const viewerSettings = {
|
||||
toolbarEnabled: true,
|
||||
linkBlockingEnabled: false,
|
||||
libraryButtonEnabled: true,
|
||||
defaultUserLanguage: "test"
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue