Svelte Simple Lang (SSR MODE)

i18n for Svelte - Docs Github

Go to Home


SSR Mode

Your lang: en it randomly generate for simulate ssr mode
Available locale: id, en


// src/hooks.server.ts
import { setDefaultLocale } from '$lib/lang/i18n.js';
import type { Handle } from '@sveltejs/kit';

export const handle: Handle = async ({ event, resolve }) => {
	// const lang = event.request.headers.get('accept-language')?.split(',')[0];
	// random generate for simulate ssr mode locale
	const lang = (Math.random() > 0.5 ? 'id' : 'en') as 'id' | 'en';
	console.log(lang);
	setDefaultLocale(lang);
	return resolve(event);
};

	

// +page.svelte
import { availableLocales, getLocale, setLocale, t } from '$lib/lang/i18n.js';

const toggleLocale = () => {
	const locale = getLocale();
	const newLocale = locale === 'en' ? 'id' : 'en';
	setLocale(newLocale);
	// hit api for change user language in database
};
	
    
en.json
{
	"world": "World",
	"hello_{name}": "Hello {name}",
	"you_have_{count}_apple": "You have {count} apple",
	"you_have_{count}_apple_plural": "You have {count} apples",
	"you_have_{count}_item": "You have {count} item"
}


id.json
{
	"world": "Dunia",
	"hello_{name}": "Halo {name}",
	"you_have_{count}_apple": "Kamu punya {count} apel",
	"you_have_{count}_apple_plural": "Kamu punya {count} apel",
	"you_have_{count}_item": "Kamu punya {count} item"
}
    
  

Current lang: id



{t('world')}

Dunia