diff --git a/static/skin/i18n.js b/static/skin/i18n.js
index 6c5eb0ad..53c11c7f 100644
--- a/static/skin/i18n.js
+++ b/static/skin/i18n.js
@@ -97,7 +97,51 @@ function setUserLanguage(lang, callback) {
Translations.whenReady(callback);
}
+function createModalUILanguageSelector() {
+ document.body.insertAdjacentHTML('beforeend',
+ `
+
+
+
+
+ Select UI language
+
+
+
+
+
+
+
+
+
`);
+
+ window.modalUILanguageSelector = {
+ show: () => {
+ document.getElementById('uiLanguageSelector').style.display = 'flex';
+ },
+
+ close: () => {
+ document.getElementById('uiLanguageSelector').style.display = 'none';
+ }
+ };
+}
+
function initUILanguageSelector(activeLanguage, languageChangeCallback) {
+ if ( document.getElementById("ui_language") == null ) {
+ createModalUILanguageSelector();
+ }
const languageSelector = document.getElementById("ui_language");
for (const lang of uiLanguages ) {
const lang_name = Object.getOwnPropertyNames(lang)[0];
diff --git a/static/skin/index.css b/static/skin/index.css
index e0d43fbb..df0b33ff 100644
--- a/static/skin/index.css
+++ b/static/skin/index.css
@@ -157,9 +157,26 @@ body {
font-weight: bolder;
}
-#ui_language {
+#uiLanguageSelector {
+ display: none;
+}
+
+#uiLanguageSelector .modal {
+ height: 140px;
+}
+
+#uiLanguageSelector .modal-heading {
+ height: 40%;
+}
+
+#uiLanguageSelector .modal-content #ui_language {
+ font-size: 1.6rem;
+ width: 100%;
+}
+
+#uiLanguageSelectorButton {
+ margin: 16px 12px 0 0;
float: right;
- top: 0;
}
.book__list {
diff --git a/static/skin/index.js b/static/skin/index.js
index 06147f88..c87a4787 100644
--- a/static/skin/index.js
+++ b/static/skin/index.js
@@ -33,6 +33,7 @@
}
function changeUILanguage() {
+ window.modalUILanguageSelector.close();
const s = document.getElementById("ui_language");
const lang = s.options[s.selectedIndex].value;
setPermanentGlobalCookie('userlang', lang);
diff --git a/static/templates/index.html b/static/templates/index.html
index aae63a6a..6bbe6d12 100644
--- a/static/templates/index.html
+++ b/static/templates/index.html
@@ -52,9 +52,18 @@
aria-label="Library OPDS Feed"
title="Library OPDS Feed">
+
+
+
-