Files
ReZygisk/webroot/js/language.js
2024-11-12 00:08:49 -03:00

162 lines
6.4 KiB
JavaScript

/* INFO: info card */
const version_info_title = document.getElementById('version_info_title')
const version_code = document.getElementById('version_code')
const root_info_title = document.getElementById('root_info_title')
const root_impl = document.getElementById('root_impl')
/* INFO: module card */
const module_card_title = document.getElementById('module_card_title')
const module_element_arch = document.getElementsByClassName('arch_desc')
/* INFO: settings card */
const settings_card_title = document.getElementById('settings_card_title')
/* INFO: daemon32 small card */
const daemon32_stop_button = document.getElementById('daemon32_stop_button')
const daemon32_start_button = document.getElementById('daemon32_start_button')
const daemon32_exit_button = document.getElementById('daemon32_exit_button')
/* INFO: daemon64 small card */
const daemon64_stop_button = document.getElementById('daemon64_stop_button')
const daemon64_start_button = document.getElementById('daemon64_start_button')
const daemon64_exit_button = document.getElementById('daemon64_exit_button')
/* INFO: error history button card */
const errorh_card_title = document.getElementById('errorh_card_title')
/* INFO: error history modal */
const errorh_modal_title = document.getElementById('errorh_modal_title')
const errorh_panel = document.getElementById('errorh_panel')
/* INFO: lang modal */
const lang_modal_title = document.getElementById('lang_modal_title')
/* INFO: lang modal */
const sys_font_option_title = document.getElementById('sys_font_option_title')
const sys_font_option_desc = document.getElementById('sys_font_option_desc')
/* 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 async function setNewLanguage(locate, initialize) {
const old_translations = await getTranslations(initialize ? 'en_US' : localStorage.getItem('/system/language'))
const new_lang = await getTranslations(locate)
/* INFO: info card */
version_info_title.innerHTML = new_lang.infoCard.version
root_info_title.innerHTML = new_lang.infoCard.root
if (version_code.innerHTML.replace(/(\r\n|\n|\r)/gm,"").trim() === old_translations.global.unknown)
version_code.innerHTML = new_lang.global.unknown
if (root_impl.innerHTML.replace(/(\r\n|\n|\r)/gm,"").trim() === old_translations.global.unknown)
root_impl.innerHTML = new_lang.global.unknown
/* INFO: module card */
module_card_title.innerHTML = new_lang.moduleCard.header
/* INFO: settings card */
settings_card_title.innerHTML = new_lang.settings.header
/* INFO: daemon32 small card */
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 */
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: error history button card */
errorh_card_title.innerHTML = new_lang.errorHistory.header
/* INFO: error history modal */
errorh_modal_title.innerHTML = new_lang.errorHistory.header
errorh_panel.placeholder = new_lang.errorHistory.placeholder
/* INFO: lang modal */
sys_font_option_title.innerHTML = new_lang.switcher.font.header
sys_font_option_desc.innerHTML = new_lang.switcher.font.description
/* INFO: Translate variables */
switch (rezygisk_state.innerHTML.replace(/(\r\n|\n|\r)/gm,"").trim()) {
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.replace(/(\r\n|\n|\r)/gm,"").trim()) {
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.replace(/(\r\n|\n|\r)/gm,"").trim()) {
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
}
}
}
for (const module of module_element_arch) {
module.innerHTML = new_lang.moduleCard.arch
}
}
export async function getTranslations(locate) {
const translateData = await fetch(`./lang/${locate}.json`)
.catch(error => reject(error))
return await translateData.json()
}
/* INFO: This list is in alphabetical order. */
export const avaliableLanguages = [
"en_US", /* INFO: Translated by @PerformanC (The PerformanC Organization) */
"ja_JP", /* INFO: Translated by @Fyphen1223 */
"pt_BR", /* INFO: Translated by @ThePedroo */
"ro_RO", /* INFO: Translated by @ExtremeXT */
"ru_RU", /* INFO: Translated by Emulond Argent (@Emulond) */
"vi_VN", /* INFO: Translated by @RainyXeon (unexpected unresolved) */
"zh_CN", /* INFO: Translated by @Meltartica */
"zh_TW", /* INFO: Translated by @Meltartica */
]