---
title: i18n-error-base
description: En Error-baseklasse som bytter feilmeldinger i takt med Valibots språkinnstilling.
---

En `Error`-baseklasse som bytter `message` med Valibots `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` slår opp `lang` ved hver lesing. Bytt uten å gjenskape instanser. Uregistrerte språk bruker konstruktørens standardmelding.

## Funksjoner [#features]

- Løser `message` dynamisk med Valibots `setGlobalConfig({ lang })`
- Registrer språkspesifikke meldinger i etterkant med `setErrorMessage`. Funksjoner som mottar `meta` er også tillatt
- Uregistrerte språk bruker konstruktørens standardmelding
- Legger til et prefiks via `static prefix` per klasse
- Beholder `meta` og sender den til meldingsfunksjoner
- `instanceof Error`, `cause` og `stack` fungerer som vanlig

## Struktur [#structure]

**[Installasjon](/i18n-error-base/no/installation)**

Hvordan legge til pakken og dens peer-avhengighet.

**[Bruk](/i18n-error-base/no/usage)**

Fra definisjon til språkbytte, prefiks og fallback.

**[API-referanse](/i18n-error-base/no/api)**

Spesifikasjoner for `I18nErrorBase` og `setErrorMessage`.

## Slik fungerer det [#how-it-works]

`message` løses i følgende rekkefølge ved hver aksess.

1. Henter `lang` fra `getGlobalConfig()`. `"en"` når den ikke er satt
2. Hvis en `(klasse × lang)`-registrering finnes, kjøres den med `meta`
3. Ellers returneres konstruktørens standardmelding
4. Hvis `static prefix` er satt, legges det til foran

:::tip
Registrerte meldinger genereres fra `meta` ved hver lesing, så språkbytter slår inn umiddelbart.
:::

## Neste trinn [#next-steps]

Start med [Installasjon](/i18n-error-base/no/installation), og se deretter flyten i [Bruk](/i18n-error-base/no/usage). Detaljer står i [API-referansen](/i18n-error-base/no/api).
