---
title: i18n-error-base
description: Een basisklasse voor Error die foutmeldingen schakelt in sync met de taalinstelling van Valibot.
---

Een `Error`-basisklasse die `message` schakelt met Valibot's `lang`.

```ts
import { setGlobalConfig } from "valibot";
import { I18nErrorBase, setErrorMessage } from "i18n-error-base";

class NotFoundError extends I18nErrorBase<{ resource: string }> {}

setErrorMessage(NotFoundError, ({ resource }) => `リソースが見つかりません: ${resource}`, "ja");
setErrorMessage(NotFoundError, ({ resource }) => `Resource not found: ${resource}`, "en");

const error = new NotFoundError({ resource: "user" }, "fallback message");

setGlobalConfig({ lang: "ja" });
console.log(error.message); // リソースが見つかりません: user

setGlobalConfig({ lang: "en" });
console.log(error.message); // Resource not found: user
```

`message` verwijst bij elke toegang naar `lang`. Wissel zonder instanties opnieuw aan te maken. Talen zonder registratie gebruiken het standaardbericht uit de constructor.

## Kenmerken [#features]

- Lost `message` dynamisch op met Valibot's `setGlobalConfig({ lang })`
- Registreer berichten per taal achteraf met `setErrorMessage`. Functies die `meta` ontvangen zijn ook toegestaan
- Talen zonder registratie gebruiken het standaardbericht uit de constructor
- Voegt een prefix toe via `static prefix` per klasse
- Bewaart `meta` en geeft deze door aan berichtgenererende functies
- `instanceof Error`, `cause` en `stack` werken zoals gewoonlijk

## Structuur [#structure]

**[Installatie](/i18n-error-base/nl/installation)**

Het toevoegen van het pakket en de peer-afhankelijkheid.

**[Gebruik](/i18n-error-base/nl/usage)**

Van definitie tot wisselen van taal, prefix en fallback.

**[API-referentie](/i18n-error-base/nl/api)**

De specificatie van `I18nErrorBase` en `setErrorMessage`.

## Hoe het werkt [#how-it-works]

`message` wordt bij elke toegang in de volgende volgorde opgelost.

1. Haalt `lang` op uit `getGlobalConfig()`. `"en"` indien niet ingesteld
2. Als er een `(klasse × lang)`-registratie bestaat, wordt deze met `meta` uitgevoerd
3. Zo niet, dan wordt het standaardbericht uit de constructor teruggegeven
4. Als `static prefix` is ingesteld, wordt deze vooraan geplaatst

:::tip
Geregistreerde berichten worden bij elke toegang uit `meta` gegenereerd, zodat een taalwissel onmiddellijk wordt weerspiegeld.
:::

## Volgende stappen [#next-steps]

Begin met [Installatie](/i18n-error-base/nl/installation) en bekijk de flow in [Gebruik](/i18n-error-base/nl/usage). Details staan in de [API-referentie](/i18n-error-base/nl/api).
