Files
ReZygisk/webroot/js/language.js
ThePedroo 98f88916b8 update: module id
Historically "zygisksu" is the ZygiskOnKernelSU (known as Zygisk Next) module id, which due to ReZygisk being a fork of Zygisk Next, was used by it. To avoid conflicts in systems like MMRL, we decided to change it to "rezygisk". This, however, will allow both to be installed in the same system, although causing problems, as a side effect. The old module, with the old module id, must be uninstalled while the new one is installed.

closes #113
2025-05-18 20:10:14 -03:00

63 lines
2.9 KiB
JavaScript

import { exec } from './kernelsu.js'
import { setError } from './main.js'
import { translateActionsPage } from './translate/actions.js'
import { translateHomePage } from './translate/home.js'
import { translateModulesPage } from './translate/modules.js'
import { translateSettingsPage } from './translate/settings.js'
export async function setNewLanguage(locate, initialize) {
const main_html = document.getElementById('main_html')
const old_translations = await getTranslations(initialize ? 'en_US' : localStorage.getItem('/system/language'))
const new_translations = await getTranslations(locate)
if (locate.includes('ar_')) main_html.setAttribute("dir", "rtl");
else main_html.setAttribute("dir", "none");
translateHomePage(old_translations, new_translations)
translateModulesPage(new_translations)
translateActionsPage(old_translations, new_translations)
translateSettingsPage(new_translations)
/* INFO: navbar info */
document.getElementById('nav_home_title').innerHTML = new_translations.page.home.header
document.getElementById('nav_modules_title').innerHTML = new_translations.page.modules.header
document.getElementById('nav_actions_title').innerHTML = new_translations.page.actions.header
document.getElementById('nav_settings_title').innerHTML = new_translations.page.settings.header
/* INFO: Language small page */
document.getElementById('small_panel_lang_title').innerHTML = new_translations.smallPage.language.header
/* INFO: Theme small page */
document.getElementById('small_panel_theme_title').innerHTML = new_translations.smallPage.theme.header
document.getElementById('small_panel_theme_dark_option').innerHTML = new_translations.smallPage.theme.dark
document.getElementById('small_panel_theme_light_option').innerHTML = new_translations.smallPage.theme.light
document.getElementById('small_panel_theme_system_option').innerHTML = new_translations.smallPage.theme.system
/* INFO: Error history small page */
document.getElementById('errorh_copy').innerHTML = new_translations.smallPage.errorh.buttons.copy
document.getElementById('errorh_clear_all').innerHTML = new_translations.smallPage.errorh.buttons.clear
document.getElementById('small_panel_errorh_title').innerHTML = new_translations.smallPage.errorh.header
document.getElementById('errorh_panel').placeholder = new_translations.smallPage.errorh.placeholder
}
export async function getTranslations(locate) {
const translateData = await fetch(`./lang/${locate}.json`)
.catch((err) => setError('WebUI', err.stack ? err.stack : err.message))
return translateData.json()
}
export async function getAvailableLanguages() {
const lsCmd = await exec('ls /data/adb/modules/rezygisk/webroot/lang')
if (lsCmd.errno !== 0) return setError('WebUI', lsCmd.stderr)
const languages = []
lsCmd.stdout.split('\n').forEach((lang) => {
if (lang.length !== 0)
languages.push(lang.replace('.json', ''))
})
return languages
}