Files
Umbrella/frontend/src/translations.svelte.js
2025-07-27 12:46:16 +02:00

24 lines
789 B
JavaScript

export const translations = $state({
values: {}
})
export async function loadTranslation(lang){
var url = `${location.protocol}//${location.host.replace('5173','8080')}/api/translations/${lang}`;
translations.values = await fetch(url).then(resp => resp.json());
}
export function t(key,args = {}){
if (key === undefined) return "";
if (key instanceof Response) key = 'status.'+key.status;
let set = translations.values;
let keys = key.split('.');
for (let token of keys){
if (!set[token]){
console.warn('Missing translation for '+key);
return keys[keys.length-1].replaceAll('_',' ');
}
set = set[token];
}
for (var key of Object.keys(args)) set = set.replace(`{${key}}`,args[key]);
return set;
}