1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-21 05:49:37 +02:00
AdventureLog/frontend/src/routes/+layout.svelte

53 lines
1.6 KiB
Svelte
Raw Normal View History

2024-10-26 23:03:35 -04:00
<script lang="ts">
import { browser } from '$app/environment';
import { register, init, locale, waitLocale } from 'svelte-i18n';
export let data;
// Register your translations for each locale
register('en', () => import('../locales/en.json'));
register('es', () => import('../locales/es.json'));
2024-10-28 13:56:57 -04:00
register('fr', () => import('../locales/fr.json'));
register('de', () => import('../locales/de.json'));
register('it', () => import('../locales/it.json'));
register('zh', () => import('../locales/zh.json'));
register('nl', () => import('../locales/nl.json'));
2024-10-26 23:03:35 -04:00
if (browser) {
init({
fallbackLocale: navigator.language.split('-')[0],
initialLocale: data.locale
});
// get the locale cookie if it exists and set it as the initial locale if it exists
const localeCookie = document.cookie
.split(';')
.find((cookie) => cookie.trim().startsWith('locale='));
if (localeCookie) {
const localeValue = localeCookie.split('=')[1];
locale.set(localeValue);
}
}
2024-07-08 11:44:39 -04:00
import Navbar from '$lib/components/Navbar.svelte';
import Toast from '$lib/components/Toast.svelte';
import 'tailwindcss/tailwind.css';
2024-10-26 23:03:35 -04:00
// Create a promise that resolves when the locale is ready
export const localeLoaded = browser ? waitLocale() : Promise.resolve();
</script>
2024-07-08 11:44:39 -04:00
2024-10-26 23:03:35 -04:00
{#await localeLoaded}
<!-- You can add a loading indicator here if needed -->
{:then}
<Navbar {data} />
<Toast />
<slot />
{/await}
2024-10-28 13:56:57 -04:00
<svelte:head>
<title>AdventureLog</title>
<meta
name="description"
content="Embark, explore, remember with AdventureLog. AdventureLog is the ultimate travel companion."
/>
</svelte:head>