UNPKG

@shelchin/svelte-i18n

Version:

The last Svelte i18n library you'll ever need. Type-safe, AI-powered, zero-config.

65 lines (44 loc) 1.8 kB
# SvelteKit Integration Module This directory contains all SvelteKit-specific functionality for the i18n library. ## Structure ### Core Load Functions - **load.ts** - Main entry point for all SvelteKit load functions - **ssr-load.ts** - Server-side rendering load function for +layout.server.ts - **universal-load.ts** - Universal load function for +layout.ts - **client-init.ts** - Client-side initialization for +layout.svelte ### Routing Utilities - **pathname-locale.ts** - Extract and validate locale from URL pathname - **url-locale.ts** - Remove locale codes from URLs ### Compatibility - **compat.ts** - Backward compatibility layer for deprecated APIs ## Usage ### Server-Side (+layout.server.ts) ```typescript import { loadI18nSSR } from '@shelchin/svelte-i18n'; import { i18n } from '../translations/i18n.js'; export const load = async ({ cookies, url }) => { return await loadI18nSSR(i18n, cookies, url); }; ``` ### Universal (+layout.ts) ```typescript import { loadI18nUniversal } from '@shelchin/svelte-i18n'; import { i18n } from '../translations/i18n.js'; export const load = async ({ data, url }) => { return await loadI18nUniversal(i18n, data, url); }; ``` ### Client-Side (+layout.svelte) ```svelte <script> import { setupI18nClient } from '@shelchin/svelte-i18n'; import { i18n } from '../translations/i18n.js'; setupI18nClient(i18n); </script> ``` ## Features - **Pathname Locale Detection**: Automatically detect locale from URL pathname (e.g., /zh/about, /en-US/products) - **Cookie Persistence**: Store user's language preference in cookies for SSR - **localStorage Support**: Client-side language persistence - **Auto-Discovery**: Dynamically load translation files at runtime - **SSR/CSR Compatibility**: Seamless hydration between server and client