Internationalization (i18n) Guide
Version: 1.0.0 | Languages: FR, NL, EN
Frontend i18n
Configuration
// frontend/src/lib/i18n.ts
const translations = {
fr: {
'auth.login': 'Connexion',
'buildings.list': 'Liste des immeubles',
'units.owners': 'Copropriétaires'
},
nl: {
'auth.login': 'Inloggen',
'buildings.list': 'Lijst van gebouwen',
'units.owners': 'Mede-eigenaars'
},
en: {
'auth.login': 'Login',
'buildings.list': 'Buildings list',
'units.owners': 'Co-owners'
}
};
Usage in Svelte
<script>
import { t } from '$lib/i18n';
</script>
<button>{$t('auth.login')}</button>
Backend i18n
API Error Messages
// Support multiple languages via Accept-Language header
let error_msg = match lang.as_str() {
"fr" => "Bâtiment non trouvé",
"nl" => "Gebouw niet gevonden",
_ => "Building not found"
};
Adding New Translations
Add key to
translationsobjectTranslate to FR, NL, EN
Use
t('new.key')in componentsTest with language selector
Translation Files
frontend/src/lib/translations/fr.jsonfrontend/src/lib/translations/nl.jsonfrontend/src/lib/translations/en.json
Version: 1.0.0