---
title: i18n-error-base
description: En Error-basklass som växlar felmeddelanden i takt med Valibots språkinställning.
---

En `Error`-basklass som växlar `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` refererar till `lang` vid varje läsning. Byt utan att återskapa instanser. Oregistrerade språk använder konstruktorns standardmeddelande.

## Funktioner [#features]

- Löser `message` dynamiskt med Valibots `setGlobalConfig({ lang })`
- Registrera språkspecifika meddelanden i efterhand med `setErrorMessage`. Funktioner som tar emot `meta` är också tillåtna
- Oregistrerade språk använder konstruktorns standardmeddelande
- Lägger till ett prefix via `static prefix` per klass
- Behåller `meta` och skickar den till meddelandefunktioner
- `instanceof Error`, `cause` och `stack` fungerar som vanligt

## Struktur [#structure]

**[Installation](/i18n-error-base/sv/installation)**

Hur man lägger till paketet och dess peer-beroende.

**[Användning](/i18n-error-base/sv/usage)**

Från definition till språkbyte, prefix och fallback.

**[API-referens](/i18n-error-base/sv/api)**

Specifikationer för `I18nErrorBase` och `setErrorMessage`.

## Så fungerar det [#how-it-works]

`message` löses i följande ordning vid varje åtkomst.

1. Hämtar `lang` från `getGlobalConfig()`. `"en"` när den inte är inställd
2. Om en `(klass × lang)`-registrering finns körs den med `meta`
3. Annars returneras konstruktorns standardmeddelande
4. Om `static prefix` är inställt läggs det till i början

:::tip
Registrerade meddelanden genereras från `meta` vid varje läsning, så språkbyten slår igenom omedelbart.
:::

## Nästa steg [#next-steps]

Börja med [Installation](/i18n-error-base/sv/installation) och se sedan flödet i [Användning](/i18n-error-base/sv/usage). Detaljer finns i [API-referensen](/i18n-error-base/sv/api).
