```
## 🚀 Routing mit Paraglide
### Automatische URL-Übersetzung
Links werden automatisch übersetzt:
```svelte
AboutAbout
```
### Programmatische Navigation
```javascript
import { goto } from '$app/navigation';
import { i18n } from '$lib/i18n';
// Navigation mit Sprachwechsel
const switchToGerman = () => {
const newUrl = i18n.resolveRoute('/dashboard', 'de');
goto(newUrl);
};
```
## 🐛 Häufige Fehler und Lösungen
### Fehler 1: "Cannot find module '$paraglide/runtime.js'"
**Ursache**: Falsche Import-Pfade oder fehlende Alias-Konfiguration.
**Lösung**:
1. Stelle sicher, dass in `vite.config.ts` der `outdir` korrekt ist
2. Prüfe die Alias-Konfiguration in `svelte.config.js`
3. Führe `npm run dev` neu aus
### Fehler 2: "Invalid locale: fr. Expected one of: en, de"
**Ursache**: Die Sprache ist nicht in der Konfiguration registriert.
**Lösung**:
1. Füge die Sprache zu `project.inlang/settings.json` hinzu
2. Erstelle die entsprechende Übersetzungsdatei
3. Kompiliere neu: `npx @inlang/paraglide-js compile --project ./project.inlang`
### Fehler 3: Links werden nicht übersetzt
**Ursache**: Fehlende Hook-Integration.
**Lösung**:
1. Stelle sicher, dass `hooks.js` und `hooks.server.js` korrekt konfiguriert sind
2. Verwende die `ParaglideJS` Komponente im Root-Layout
## 📋 Checkliste für funktionierende Integration
- [ ] `@inlang/paraglide-sveltekit` ist installiert
- [ ] `vite.config.ts` enthält das Paraglide-Plugin
- [ ] `src/lib/i18n.js` ist erstellt und exportiert `i18n`
- [ ] `hooks.js` und `hooks.server.js` sind konfiguriert
- [ ] Root-Layout verwendet ``
- [ ] `app.html` hat `%paraglide.lang%` und `%paraglide.dir%`
- [ ] TypeScript-Typen in `app.d.ts` sind definiert
- [ ] Alle Übersetzungsdateien existieren in `project.inlang/messages/`
- [ ] Import-Pfade verwenden konsistent `$paraglide/`
## 🔧 Befehle
```bash
# Übersetzungen kompilieren
npx @inlang/paraglide-js compile --project ./project.inlang
# Neue Sprache hinzufügen
# 1. Bearbeite project.inlang/settings.json
# 2. Erstelle messages/{lang}.json
# 3. Kompiliere neu
# Development-Server mit Hot-Reload
npm run dev
# Build für Produktion
npm run build
```
## 📚 Weitere Ressourcen
- [Offizielle Paraglide Dokumentation](https://inlang.com/m/gerre34r/library-inlang-paraglideJs)
- [Paraglide SvelteKit Integration](https://inlang.com/m/dxnzrydw/paraglide-sveltekit-i18n)
- [Beispiel-Repository](https://github.com/LorisSigrist/paraglide-sveltekit-example)
- [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=inlang.vs-code-extension)
## 💡 Best Practices
1. **Verwende immer Type-Safe Imports**: Import mit `* as m from '$paraglide/messages'`
2. **Keine hartcodierten Strings**: Alle UI-Texte sollten in Übersetzungsdateien sein
3. **Strukturiere Nachrichten-Keys logisch**: z.B. `page_section_element`
4. **Teste alle Sprachen**: Besonders bei Pluralisierung und Formatierung
5. **Nutze die VS Code Extension**: Für Inline-Übersetzungen und Validierung
## ⚡ Performance-Tipps
1. **Tree-Shaking**: Importiere nur benötigte Messages
2. **Lazy Loading**: Lade Sprachen bei Bedarf
3. **Static Prerendering**: Nutze SvelteKit's SSG für statische Seiten
4. **Bundle-Analyse**: Überwache die Bundle-Größe pro Sprache
---
**Letzte Aktualisierung**: Januar 2025
**Version**: Paraglide SvelteKit 0.16.1