diff --git a/webroot/index.html b/webroot/index.html index ac6f4c4..d077797 100644 --- a/webroot/index.html +++ b/webroot/index.html @@ -67,11 +67,11 @@
Zygote64
-
Unknown
+
Unknown
Zygote32
-
Unknown
+
Unknown
diff --git a/webroot/js/lang/en_US.js b/webroot/js/lang/en_US.js index 4775056..a08bca1 100644 --- a/webroot/js/lang/en_US.js +++ b/webroot/js/lang/en_US.js @@ -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' - }, + } } \ No newline at end of file diff --git a/webroot/js/lang/index.js b/webroot/js/lang/index.js index 0db72fc..c6251fe 100644 --- a/webroot/js/lang/index.js +++ b/webroot/js/lang/index.js @@ -9,5 +9,5 @@ export const lang = { pt_BR, ro_RO, ru_RU, - vi_VN, + vi_VN } diff --git a/webroot/js/lang/pt_BR.js b/webroot/js/lang/pt_BR.js index 61db5f3..3645a32 100644 --- a/webroot/js/lang/pt_BR.js +++ b/webroot/js/lang/pt_BR.js @@ -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' - }, + } } \ No newline at end of file diff --git a/webroot/js/lang/ro_RO.js b/webroot/js/lang/ro_RO.js index cffceee..7e46320 100644 --- a/webroot/js/lang/ro_RO.js +++ b/webroot/js/lang/ro_RO.js @@ -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' - }, + } } diff --git a/webroot/js/lang/ru_RU.js b/webroot/js/lang/ru_RU.js index d8008f3..33b2d40 100644 --- a/webroot/js/lang/ru_RU.js +++ b/webroot/js/lang/ru_RU.js @@ -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 модулей' - }, + } } \ No newline at end of file diff --git a/webroot/js/lang/vi_VN.js b/webroot/js/lang/vi_VN.js index d564ea8..fa2c3da 100644 --- a/webroot/js/lang/vi_VN.js +++ b/webroot/js/lang/vi_VN.js @@ -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' } } \ No newline at end of file diff --git a/webroot/js/language.js b/webroot/js/language.js index 8f97f27..3d80901 100644 --- a/webroot/js/language.js +++ b/webroot/js/language.js @@ -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] } \ No newline at end of file diff --git a/webroot/js/list/lang.js b/webroot/js/list/lang.js index 71e49b1..b5bb184 100644 --- a/webroot/js/list/lang.js +++ b/webroot/js/list/lang.js @@ -16,11 +16,12 @@ for (const lang_key of key_list) { ` } -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); \ No newline at end of file +}, false) \ No newline at end of file diff --git a/webroot/js/main.js b/webroot/js/main.js index d8db64f..817de26 100644 --- a/webroot/js/main.js +++ b/webroot/js/main.js @@ -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 = '' } 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 = '' } 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 += `
${name}
-
Arch: ${bitsUsed.join(' / ')}
+
${translations.moduleCard.arch}: ${bitsUsed.join(' / ')}
` } 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}`) } })()