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