fix: infinite loading; add: translate on set

This commit fixes the infinite loading area and adds the feature that it will already change all phrases on set, without the need of restart.
This commit is contained in:
ThePedroo
2024-06-30 20:25:40 -03:00
parent 567cf1a8b9
commit 41a15e87b7
10 changed files with 143 additions and 44 deletions

View File

@@ -67,11 +67,11 @@
</div>
<div class="brightc content">
<div class="brightc lock" style="font-size: 1.1em">Zygote64</div>
<div class="brightc desc lockd" id="is_zygote64_injected" style="font-size: 0.9em; margin-top: 3px;">Unknown</div>
<div class="brightc desc lockd" id="zygote32_status" style="font-size: 0.9em; margin-top: 3px;">Unknown</div>
</div>
<div class="brightc content lock">
<div class="brightc lock" style="font-size: 1.1em">Zygote32</div>
<div class="brightc desc lockd" id="is_zygote32_injected" style="font-size: 0.9em; margin-top: 3px;">Unknown</div>
<div class="brightc desc lockd" id="zygote64_status" style="font-size: 0.9em; margin-top: 3px;">Unknown</div>
</div>
</div>

View File

@@ -3,7 +3,7 @@
export const en_US = {
langName: 'English (United States)',
langModal: {
header: "Choose your new language"
header: 'Choose your new language'
},
infoCard: {
status: {
@@ -25,7 +25,7 @@ export const en_US = {
arch: 'Arch: '
},
settings: {
header: "Settings",
header: 'Settings',
daemonButton: {
start: 'Start',
stop: 'Stop',
@@ -38,5 +38,5 @@ export const en_US = {
ls: 'Error while listing files in zygisk folder of module',
cat: 'Error while reading module.prop from module',
find: 'Error while finding zygisk modules'
},
}
}

View File

@@ -9,5 +9,5 @@ export const lang = {
pt_BR,
ro_RO,
ru_RU,
vi_VN,
vi_VN
}

View File

@@ -3,7 +3,7 @@
export const pt_BR = {
langName: 'Português (Brasil)',
langModal: {
header: "Choose your new language"
header: 'Escolha sua nova língua'
},
infoCard: {
status: {
@@ -25,7 +25,7 @@ export const pt_BR = {
arch: 'Arquitetura: '
},
settings: {
header: "Configurações",
header: 'Configurações',
daemonButton: {
start: 'Iniciar',
stop: 'Parar',
@@ -38,5 +38,5 @@ export const pt_BR = {
ls: 'Erro ao listar arquivos na pasta zygisk do módulo',
cat: 'Erro ao ler module.prop do módulo',
find: 'Erro ao encontrar módulos que usam o zygisk'
},
}
}

View File

@@ -3,7 +3,7 @@
export const ro_RO = {
langName: 'Română (România)',
langModal: {
header: "Alegeți limba prestabilită"
header: 'Alegeți limba prestabilită'
},
infoCard: {
status: {
@@ -25,7 +25,7 @@ export const ro_RO = {
arch: 'Arhitectură: '
},
settings: {
header: "Setări",
header: 'Setări',
daemonButton: {
start: 'Start',
stop: 'Stop',
@@ -38,5 +38,5 @@ export const ro_RO = {
ls: 'Eroare în timpul listării fișierelor din folderul Zygisk al modulului',
cat: 'Eroare în timpul citirii fișierului module.prop din modul',
find: 'Eroare la găsirea modulelor Zygisk'
},
}
}

View File

@@ -3,7 +3,7 @@
export const ru_RU = {
langName: 'Русский (Россия)',
langModal: {
header: "Выберите Ваш новый язык"
header: 'Выберите Ваш новый язык'
},
infoCard: {
status: {
@@ -25,10 +25,10 @@ export const ru_RU = {
arch: 'Архи-ра: '
},
settings: {
header: "Настройки",
header: 'Настройки',
daemonButton: {
start: 'Старт',
stop: 'Пауза,
stop: 'Пауза',
exit: 'Стоп'
}
},
@@ -38,5 +38,5 @@ export const ru_RU = {
ls: 'Ошибка перечисления файлов в zygisk папке модуля',
cat: 'Ошибка чтения module.prop модуля',
find: 'Ошибка обнаружения zygisk модулей'
},
}
}

View File

@@ -3,7 +3,7 @@
export const vi_VN = {
langName: 'Tiếng Việt',
langModal: {
header: "Chọn ngôn ngữ mới của bạn"
header: 'Chọn ngôn ngữ mới của bạn'
},
infoCard: {
status: {
@@ -25,11 +25,19 @@ export const vi_VN = {
arch: 'Loại: '
},
settings: {
header: "Cài đặt",
header: 'Cài đặt',
daemonButton: {
start: 'Chạy',
stop: 'Dừng',
exit: 'Thoát'
}
},
/* INFO: Not translated */
cmdErrors: {
ptrace64: 'Error while executing zygisk-ptrace64',
ptrace32: 'Error while executing zygisk-ptrace32',
ls: 'Error while listing files in zygisk folder of module',
cat: 'Error while reading module.prop from module',
find: 'Error while finding zygisk modules'
}
}

View File

@@ -18,8 +18,16 @@ const daemon64_exit_button = document.getElementById('daemon64_exit_button')
/* INFO: lang modal */
const lang_modal_title = document.getElementById('lang_modal_title')
/* INFO: Variable fields */
const rezygisk_state = document.getElementById('rezygisk_state')
const zygote32_status_div = document.getElementById('zygote32_status')
const zygote64_status_div = document.getElementById('zygote64_status')
export function setNewLang(locate) {
const old_translations = lang[localStorage.getItem('/system/language')]
const new_lang = lang[locate]
/* INFO: info card */
version_info_title.innerHTML = new_lang.infoCard.version
root_info_title.innerHTML = new_lang.infoCard.root
@@ -28,13 +36,85 @@ export function setNewLang(locate) {
/* INFO: settings card */
settings_card_title.innerHTML = new_lang.settings.header
/* INFO: daemon32 small card */
daemon32_stop_button.innerHTML = new_lang.settings.daemonButton.stop
daemon32_start_button.innerHTML = new_lang.settings.daemonButton.start
daemon32_exit_button.innerHTML = new_lang.settings.daemonButton.exit
if (daemon32_stop_button) { /* INFO: Not all devices have 32-bit support */
daemon32_stop_button.innerHTML = new_lang.settings.daemonButton.stop
daemon32_start_button.innerHTML = new_lang.settings.daemonButton.start
daemon32_exit_button.innerHTML = new_lang.settings.daemonButton.exit
}
/* INFO: daemon64 small card */
daemon64_stop_button.innerHTML = new_lang.settings.daemonButton.stop
daemon64_start_button.innerHTML = new_lang.settings.daemonButton.start
daemon64_exit_button.innerHTML = new_lang.settings.daemonButton.exit
if (daemon64_stop_button) { /* INFO: Not all devices have 64-bit support */
daemon64_stop_button.innerHTML = new_lang.settings.daemonButton.stop
daemon64_start_button.innerHTML = new_lang.settings.daemonButton.start
daemon64_exit_button.innerHTML = new_lang.settings.daemonButton.exit
}
/* INFO: lang modal */
lang_modal_title.innerHTML = new_lang.langModal.header
/* INFO: Translate variables */
switch (rezygisk_state.innerHTML) {
case old_translations.infoCard.status.ok: {
rezygisk_state.innerHTML = new_lang.infoCard.status.ok
break
}
case old_translations.infoCard.status.partially: {
rezygisk_state.innerHTML = new_lang.infoCard.status.partially
break
}
case old_translations.infoCard.status.notWorking: {
rezygisk_state.innerHTML = new_lang.infoCard.status.notWorking
break
}
case old_translations.infoCard.status.unknown: {
rezygisk_state.innerHTML = new_lang.infoCard.status.unknown
break
}
}
if (zygote32_status_div) {
switch (zygote32_status_div.innerHTML) {
case old_translations.infoCard.zygote.injected: {
zygote32_status_div.innerHTML = new_lang.infoCard.zygote.injected
break
}
case old_translations.infoCard.zygote.notInjected: {
zygote32_status_div.innerHTML = new_lang.infoCard.zygote.notInjected
break
}
case old_translations.infoCard.zygote.unknown: {
zygote32_status_div.innerHTML = new_lang.infoCard.zygote.unknown
break
}
}
}
if (zygote64_status_div) {
switch (zygote64_status_div.innerHTML) {
case old_translations.infoCard.zygote.injected: {
zygote64_status_div.innerHTML = new_lang.infoCard.zygote.injected
break
}
case old_translations.infoCard.zygote.notInjected: {
zygote64_status_div.innerHTML = new_lang.infoCard.zygote.notInjected
break
}
case old_translations.infoCard.zygote.unknown: {
zygote64_status_div.innerHTML = new_lang.infoCard.zygote.unknown
break
}
}
}
}
export function getTranslations(locate) {
return lang[locate]
}

View File

@@ -16,11 +16,12 @@ for (const lang_key of key_list) {
</div>`
}
document.addEventListener('click', function (event) {
if (!event.target.getAttribute('lang_section')) return
document.addEventListener('click', (event) => {
if (!event.target.getAttribute('lang_section')) return;
setNewLang(event.target.id)
target.style.display = 'none'
localStorage.setItem('/cache/modal/language/state', 'closed')
localStorage.setItem('/system/language', event.target.id)
}, false);
}, false)

View File

@@ -1,5 +1,5 @@
import { fullScreen, exec, toast } from './kernelsu.js'
import { setNewLang } from './language.js'
import { setNewLang, getTranslations } from './language.js'
(async () => {
const EXPECTED = 1
@@ -9,6 +9,11 @@ import { setNewLang } from './language.js'
let sys_lang = localStorage.getItem('/system/language')
if (!sys_lang) sys_lang = setLangData('en_US')
if (sys_lang !== 'en_US') setNewLang(sys_lang)
const translations = getTranslations(sys_lang)
const loading_screen = document.getElementById('loading_screen')
const rootCss = document.querySelector(':root')
@@ -32,9 +37,6 @@ import { setNewLang } from './language.js'
let zygote64_status = EXPECTED
let zygote32_status = EXPECTED
if (!sys_lang) sys_lang = setLangData("en_US")
if (sys_lang !== "en_US") setNewLang(sys_lang)
const ptrace64Cmd = await exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 info')
if (ptrace64Cmd.errno === 0) {
@@ -44,14 +46,18 @@ import { setNewLang } from './language.js'
code_version.innerHTML = lines[0].split('Tracer ')[1].split('-')[0]
root_impl.innerHTML = lines[4].split(': ')[1]
zygote64_status_div.innerHTML = lines[5].split(': ')[1] === 'yes' ? 'Injected' : 'Not Injected'
if (lines[5].split(': ')[1] === 'yes') {
zygote64_status_div.innerHTML = translations.infoCard.zygote.injected
} else {
zygote64_status_div.innerHTML = translations.infoCard.zygote.notInjected
if (zygote64_status_div.innerHTML === 'Not Injected') zygote64_status = UNEXPECTED_FAIL
zygote64_status = UNEXPECTED_FAIL
}
} else if (ptrace64Cmd.stderr.includes('cannot execute binary file: Exec format error')) {
zygote64_div.remove()
daemon64_div.remove()
} else {
toast(`zygisk-ptrace64 error (${ptrace64Cmd.errno}): ${ptrace64Cmd.stderr}`)
toast(`${translations.cmdErrors.ptrace64} (${ptrace64Cmd.errno}): ${ptrace64Cmd.stderr}`)
zygote64_status = UNEXPECTED_FAIL
}
@@ -65,32 +71,36 @@ import { setNewLang } from './language.js'
code_version.innerHTML = lines[0].split('Tracer ')[1].split('-')[0]
root_impl.innerHTML = lines[4].split(': ')[1]
zygote32_status_div.innerHTML = lines[5].split(': ')[1] === 'yes' ? 'Injected' : 'Not Injected'
if (lines[5].split(': ')[1] === 'yes') {
zygote32_status_div.innerHTML = translations.infoCard.zygote.injected
} else {
zygote32_status_div.innerHTML = translations.infoCard.zygote.notInjected
if (zygote32_status_div.innerHTML === 'Not Injected') zygote32_status = UNEXPECTED_FAIL
zygote32_status = UNEXPECTED_FAIL
}
} else if (ptrace32Cmd.stderr.includes('not executable: 32-bit ELF file')) {
zygote32_div.remove()
daemon32_div.remove()
} else {
toast(`zygisk-ptrace32 error (${ptrace32Cmd.errno}): ${ptrace32Cmd.stderr}`)
toast(`${translations.cmdErrors.ptrace32} (${ptrace32Cmd.errno}): ${ptrace32Cmd.stderr}`)
zygote32_status = UNEXPECTED_FAIL
}
if (zygote32_status === EXPECTED && zygote64_status === EXPECTED) {
rezygisk_state.innerHTML = 'ReZygisk is fully functioning!'
rezygisk_state.innerHTML = translations.infoCard.status.ok
rezygisk_settings.removeAttribute('style')
rootCss.style.setProperty('--bright', '#3a4857')
rezygisk_icon_state.innerHTML = '<img class="brightc" src="assets/tick.svg">'
} else if (zygote64_status === EXPECTED ^ zygote32_status.innerHTML === EXPECTED) {
rezygisk_state.innerHTML = 'ReZygisk is partially functioning!'
rezygisk_state.innerHTML = translations.infoCard.status.partially
rezygisk_settings.removeAttribute('style')
rootCss.style.setProperty('--bright', '#766000')
rezygisk_icon_state.innerHTML = '<img class="brightc" src="assets/warn.svg">'
} else {
rezygisk_state.innerHTML = 'ReZygisk is not functioning!'
rezygisk_state.innerHTML = translations.infoCard.status.notWorking
}
const modules_card = document.getElementById('modules_card')
@@ -114,7 +124,7 @@ import { setNewLang } from './language.js'
const lsZygiskCmd = await exec(`ls ${module}/zygisk`)
if (lsZygiskCmd.errno !== 0) {
toast(`ls ${module}/zygisk error (${lsZygiskCmd.errno}): ${lsZygiskCmd.stderr}`)
toast(`${translations.cmdErrors.js} ${module} (${lsZygiskCmd.errno}): ${lsZygiskCmd.stderr}`)
continue
}
@@ -134,14 +144,14 @@ import { setNewLang } from './language.js'
modules_list.innerHTML +=
`<div class="dimc ${index !== modules.length ? 'spliter' : ''}" style="padding-top: 13px; padding-bottom: 13px;">
<div class="dimc" style="font-size: 1.1em;">${name}</div>
<div class="dimc desc" style="font-size: 0.9em; margin-top: 3px;">Arch: ${bitsUsed.join(' / ')}</div>
<div class="dimc desc" style="font-size: 0.9em; margin-top: 3px;">${translations.moduleCard.arch}: ${bitsUsed.join(' / ')}</div>
</div>`
} else {
toast(`cat ${module} error (${catCmd.errno}): ${catCmd.stderr}`)
toast(`${translations.cmdErrors.cat} ${module} (${catCmd.errno}): ${catCmd.stderr}`)
}
}
} else {
toast(`find error (${findModulesCmd.errno}): ${findModulesCmd.stderr}`)
toast(`${translations.cmdErrors.find}: ${findModulesCmd.stderr}`)
}
})()