6 changed files with 57 additions and 42 deletions
@ -1,9 +1,21 @@
@@ -1,9 +1,21 @@
|
||||
<script> |
||||
import { onMount } from 'svelte'; |
||||
import { loadTranslation } from './translations.svelte.js' |
||||
let translations_ready = false; |
||||
onMount(async () => { |
||||
await loadTranslation('de','Login'); |
||||
translations_ready = true; |
||||
}); |
||||
|
||||
import Homepage from "./Components/Homepage.svelte"; |
||||
import Login from "./Components/Login.svelte"; |
||||
import Menu from "./Components/Menu.svelte"; |
||||
</script> |
||||
|
||||
{#if translations_ready} |
||||
<Menu /> |
||||
<Homepage /> |
||||
<Login /> |
||||
<Login /> |
||||
{:else} |
||||
<p>Loading translations...</p> |
||||
{/if} |
||||
@ -1,17 +0,0 @@
@@ -1,17 +0,0 @@
|
||||
const translations = {} |
||||
|
||||
export async function loadTranslation(lang,page){ |
||||
if (!translations[lang]) translations[lang] = {}; |
||||
if (translations[lang][page]) return; |
||||
var url = `${location.protocol}//${location.host.replace('5173','8080')}/api/translations/${lang}/${page}`; |
||||
const resp = await fetch(url); |
||||
const json = await resp.json(); |
||||
translations[lang][page] = json; |
||||
} |
||||
|
||||
export function t(page,key){ |
||||
const lang = 'en'; |
||||
if (!translations[lang]) return key; |
||||
if (!translations[lang][page]) return key; |
||||
return translations[lang][page][key] ? translations[lang][page][key] : key; |
||||
} |
||||
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
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){ |
||||
var keys = key.split('.'); |
||||
let set = translations.values; |
||||
for (let key of keys){ |
||||
if (set[key]) { |
||||
set = set[key]; |
||||
} else return key; |
||||
} |
||||
return set; |
||||
} |
||||
Loading…
Reference in new issue