diff --git a/webroot/js/language.js b/webroot/js/language.js index 22d3996..5b53964 100644 --- a/webroot/js/language.js +++ b/webroot/js/language.js @@ -1,3 +1,5 @@ +import { fullScreen, exec, toast } from './kernelsu.js' + import { setError } from './main.js' import { translateActionPage } from './translate/action.js' import { translateHomePage } from './translate/home.js' @@ -42,14 +44,16 @@ export async function getTranslations(locate) { } /* INFO: This list is in alphabetical order. */ -export const avaliableLanguages = [ - 'de_DE', /* INFO: Translated by @Blazzycrafter */ - '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 & @AJleKcAHgP68 */ - 'vi_VN', /* INFO: Translated by @RainyXeon */ - 'zh_CN', /* INFO: Translated by @Meltartica & @SheepChef */ - 'zh_TW' /* INFO: Translated by @Meltartica */ -] +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 +} \ No newline at end of file diff --git a/webroot/js/main.js b/webroot/js/main.js index 1be1c0e..05b7e7a 100644 --- a/webroot/js/main.js +++ b/webroot/js/main.js @@ -1,4 +1,5 @@ import { fullScreen, exec, toast } from './kernelsu.js' + import { setNewLanguage, getTranslations } from './language.js' export function setError(place, issue) { diff --git a/webroot/js/smallPage/language.js b/webroot/js/smallPage/language.js index 5fe5c27..6fbb400 100644 --- a/webroot/js/smallPage/language.js +++ b/webroot/js/smallPage/language.js @@ -1,15 +1,16 @@ import { - avaliableLanguages, getTranslations, - setNewLanguage + setNewLanguage, + getAvailableLanguages } from '../language.js' import { smallPageDisabler } from '../smallPageDesabler.js' /* INFO: Initial setup */ let index = 0 -function setAvaliableLanguage() { - const langKey = avaliableLanguages[index] +async function setAvailableLanguage() { + const availableLanguages = await getAvailableLanguages() + const langKey = availableLanguages[index] index += 1 @@ -21,10 +22,10 @@ function setAvaliableLanguage() { ` }) .finally(() => { - if (index !== avaliableLanguages.length) setAvaliableLanguage() + if (index !== avaliableLanguages.length) setAvailableLanguage() }) } -setAvaliableLanguage() +setAvailableLanguage() /* INFO: Event setup */ document.getElementById('lang_page_toggle').addEventListener('click', () => {