You've already forked ReZygisk
mirror of
https://github.com/PerformanC/ReZygisk.git
synced 2025-09-06 06:37:01 +00:00
63 lines
2.9 KiB
JavaScript
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/zygisksu/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
|
|
} |