@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
Markdown
# 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