diff --git a/module/webui/scripts/language.js b/module/webui/scripts/language.js index 8b3c795..6d23de1 100644 --- a/module/webui/scripts/language.js +++ b/module/webui/scripts/language.js @@ -101,23 +101,8 @@ export async function loadTranslations() { // Support for rtl language const isRTL = rtlLang.includes(lang.split('-')[0]); - if (isRTL) { - document.documentElement.setAttribute('dir', 'rtl'); - document.documentElement.setAttribute('lang', lang); - - // Load extra rtl css - fetch('styles/rtl_styles.css') - .then(res => res.text()) - .then(css => { - const style = document.createElement('style'); - style.textContent = css; - document.head.appendChild(style); - }); - } else { - document.documentElement.setAttribute('dir', 'ltr'); - document.documentElement.setAttribute('lang', lang); - } - + document.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr'); + // Generate language menu await generateLanguageMenu(); } catch (error) { diff --git a/module/webui/styles/about.css b/module/webui/styles/about.css index a4891a7..73f06b6 100644 --- a/module/webui/styles/about.css +++ b/module/webui/styles/about.css @@ -72,6 +72,11 @@ } } +[dir="rtl"] .link-icon svg { + padding-right: unset; + padding-left: 3px; +} + #telegram { background-color: #38A7ED; } diff --git a/module/webui/styles/applist.css b/module/webui/styles/applist.css index 146baea..402d733 100644 --- a/module/webui/styles/applist.css +++ b/module/webui/styles/applist.css @@ -240,6 +240,11 @@ position: relative; } +[dir="rtl"] .app-icon-container { + margin-right: unset; + margin-left: 10px; +} + .loader { position: absolute; top: 0; diff --git a/module/webui/styles/file_selector.css b/module/webui/styles/file_selector.css index b693489..2ab9428 100644 --- a/module/webui/styles/file_selector.css +++ b/module/webui/styles/file_selector.css @@ -79,6 +79,11 @@ } } +[dir="rtl"] .file-item svg { + margin-right: unset; + margin-left: 10px; +} + .file-item span { flex-grow: 1; overflow: hidden; diff --git a/module/webui/styles/global.css b/module/webui/styles/global.css index dc1f7bf..e3f24f6 100644 --- a/module/webui/styles/global.css +++ b/module/webui/styles/global.css @@ -111,6 +111,11 @@ body { user-select: none; } +[dir="rtl"] .close-btn { + right: unset; + left: 12px; +} + .prompt { position: fixed; bottom: 0; diff --git a/module/webui/styles/header.css b/module/webui/styles/header.css index 4c9ba13..23d54e9 100644 --- a/module/webui/styles/header.css +++ b/module/webui/styles/header.css @@ -26,6 +26,12 @@ font-weight: bold; } +[dir="rtl"] #module-version, +[dir="rtl"] #title { + padding-left: unset; + padding-right: 5px; +} + .no-connection { height: 100%; display: flex; @@ -45,6 +51,11 @@ display: inline-block; } +[dir="rtl"] .language-dropdown { + margin-left: unset; + margin-right: auto; +} + .language-button { height: 100%; display: flex; @@ -76,6 +87,12 @@ transition: all 0.2s ease; } +[dir="rtl"] .language-menu { + right: unset; + left: 5px; + transform-origin: top left; +} + .language-menu.show { opacity: 1; transform: translateY(0) scale(1); diff --git a/module/webui/styles/rtl_styles.css b/module/webui/styles/rtl_styles.css deleted file mode 100644 index 28e0f5d..0000000 --- a/module/webui/styles/rtl_styles.css +++ /dev/null @@ -1,57 +0,0 @@ -#module-version, -#title { - padding-left: unset; - padding-right: 5px; -} - -.language-dropdown { - margin-left: unset; - margin-right: auto; -} - -.language-menu { - right: unset; - left: 5px; - transform-origin: top left; -} - -.close-btn { - right: unset; - left: 12px; -} - -.search-icon { - left: unset; - right: 15px; -} - -.search-card { - left: unset; - right: 0; -} - -.menu { - right: unset; - left: 0; -} - -.menu-options { - right: unset; - left: 0; - transform: translateX(-120%); -} - -.app-icon-container { - margin-right: unset; - margin-left: 10px; -} - -.link-icon svg { - padding-right: unset; - padding-left: 3px; -} - -.file-item svg { - margin-right: unset; - margin-left: 10px; -} diff --git a/module/webui/styles/search_menu.css b/module/webui/styles/search_menu.css index ab294b6..ab1fda8 100644 --- a/module/webui/styles/search_menu.css +++ b/module/webui/styles/search_menu.css @@ -26,6 +26,11 @@ position: absolute; } +[dir="rtl"] .search-card { + left: unset; + right: 0; +} + .search-icon { position: absolute; padding-top: 5px; @@ -33,6 +38,11 @@ z-index: 1000; } +[dir="rtl"] .search-icon { + left: unset; + right: 15px; +} + .search-input { position: absolute; border: none; @@ -65,6 +75,11 @@ height: 100%; } +[dir="rtl"] .menu { + right: unset; + left: 0; +} + .menu-toggle { display: none; } @@ -113,6 +128,12 @@ user-select: none; } +[dir="rtl"] .menu-options { + right: unset; + left: 0; + transform: translateX(-120%); +} + #select-denylist, #security-patch { display: none;