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{
|
const kainjow::mustache::object data{
|
||||||
{"enable_toolbar", m_withTaskbar ? "true" : "false" },
|
{"enable_toolbar", m_withTaskbar ? "true" : "false" },
|
||||||
{"enable_link_blocking", m_blockExternalLinks ? "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");
|
return ContentResponse::build(*this, RESOURCE::templates::viewer_settings_js, data, "application/javascript; charset=utf-8");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
const viewerSettings = {
|
const viewerSettings = {
|
||||||
toolbarEnabled: {{enable_toolbar}},
|
toolbarEnabled: {{enable_toolbar}},
|
||||||
linkBlockingEnabled: {{enable_link_blocking}},
|
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 = {
|
R"(const viewerSettings = {
|
||||||
toolbarEnabled: false,
|
toolbarEnabled: false,
|
||||||
linkBlockingEnabled: false,
|
linkBlockingEnabled: false,
|
||||||
libraryButtonEnabled: false
|
libraryButtonEnabled: false,
|
||||||
|
defaultUserLanguage: "en"
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
@ -1937,7 +1938,8 @@ R"(const viewerSettings = {
|
||||||
R"(const viewerSettings = {
|
R"(const viewerSettings = {
|
||||||
toolbarEnabled: false,
|
toolbarEnabled: false,
|
||||||
linkBlockingEnabled: true,
|
linkBlockingEnabled: true,
|
||||||
libraryButtonEnabled: false
|
libraryButtonEnabled: false,
|
||||||
|
defaultUserLanguage: "en"
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
@ -1948,7 +1950,8 @@ R"(const viewerSettings = {
|
||||||
R"(const viewerSettings = {
|
R"(const viewerSettings = {
|
||||||
toolbarEnabled: true,
|
toolbarEnabled: true,
|
||||||
linkBlockingEnabled: false,
|
linkBlockingEnabled: false,
|
||||||
libraryButtonEnabled: false
|
libraryButtonEnabled: false,
|
||||||
|
defaultUserLanguage: "en"
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
@ -1959,7 +1962,47 @@ R"(const viewerSettings = {
|
||||||
R"(const viewerSettings = {
|
R"(const viewerSettings = {
|
||||||
toolbarEnabled: true,
|
toolbarEnabled: true,
|
||||||
linkBlockingEnabled: false,
|
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