You've already forked Tricky-Addon-Update-Target-List
mirror of
https://github.com/KOWX712/Tricky-Addon-Update-Target-List.git
synced 2025-09-06 06:37:09 +00:00
opt: get language
use native js instead of execCommand to get available language
This commit is contained in:
@@ -12,11 +12,17 @@ let availableLanguages = ['en-US'];
|
|||||||
// Function to check for available language
|
// Function to check for available language
|
||||||
export async function initializeAvailableLanguages() {
|
export async function initializeAvailableLanguages() {
|
||||||
try {
|
try {
|
||||||
const multiLang = await execCommand(`find ${basePath}webui/locales -type f -name "*.json" ! -name "A-template.json" -exec basename -s .json {} \\;`);
|
const response = await fetch('locales/');
|
||||||
availableLanguages = multiLang.trim().split('\n');
|
const text = await response.text();
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const html = parser.parseFromString(text, 'text/html');
|
||||||
|
const files = Array.from(html.querySelectorAll('a'))
|
||||||
|
.map(a => a.href.split('/').pop())
|
||||||
|
.filter(file => file.endsWith('.json') && file !== 'A-template.json')
|
||||||
|
.map(file => file.replace('.json', ''));
|
||||||
|
availableLanguages = files;
|
||||||
generateLanguageMenu();
|
generateLanguageMenu();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
toast("Failed to get available langauge!");
|
|
||||||
console.error('Failed to fetch available languages:', error);
|
console.error('Failed to fetch available languages:', error);
|
||||||
availableLanguages = ['en-US'];
|
availableLanguages = ['en-US'];
|
||||||
}
|
}
|
||||||
@@ -38,7 +44,7 @@ export function detectUserLanguage() {
|
|||||||
// Load translations dynamically based on the selected language
|
// Load translations dynamically based on the selected language
|
||||||
export async function loadTranslations(lang) {
|
export async function loadTranslations(lang) {
|
||||||
try {
|
try {
|
||||||
const response = await fetch(`/locales/${lang}.json`);
|
const response = await fetch(`locales/${lang}.json`);
|
||||||
translations = await response.json();
|
translations = await response.json();
|
||||||
applyTranslations();
|
applyTranslations();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -116,7 +122,7 @@ async function generateLanguageMenu() {
|
|||||||
languageMenu.innerHTML = '';
|
languageMenu.innerHTML = '';
|
||||||
const languagePromises = availableLanguages.map(async (lang) => {
|
const languagePromises = availableLanguages.map(async (lang) => {
|
||||||
try {
|
try {
|
||||||
const response = await fetch(`/locales/${lang}.json`);
|
const response = await fetch(`locales/${lang}.json`);
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
return { lang, name: data.language || lang };
|
return { lang, name: data.language || lang };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user