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}`)
}
})()