---
title: i18n-error-base
description: Basisklasse für Error, die Fehlermeldungen synchron mit der Spracheinstellung von Valibot umschaltet.
---

Eine `Error`-Basisklasse, die `message` mit Valibots `lang` umschaltet.

```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` bezieht sich bei jedem Lesen auf `lang`. Wechsel ohne Neuerstellung der Instanz. Nicht registrierte Sprachen verwenden die Standardnachricht des Konstruktors.

## Funktionen [#features]

- Löst `message` dynamisch mit Valibots `setGlobalConfig({ lang })` auf.
- Sprachspezifische Nachrichten werden nachträglich mit `setErrorMessage` registriert. Funktionen mit `meta` sind ebenfalls zulässig.
- Nicht registrierte Sprachen verwenden die Standardnachricht des Konstruktors.
- Fügt ein Präfix über `static prefix` pro Klasse hinzu.
- Behält `meta` und übergibt es an Nachrichten-Erzeugungsfunktionen.
- `instanceof Error`, `cause` und `stack` funktionieren wie gewohnt.

## Struktur [#structure]

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

Hinzufügen des Pakets und der Peer-Abhängigkeit.

**[Verwendung](/i18n-error-base/de/usage)**

Von der Definition über Wechsel und Präfix bis zum Fallback.

**[API-Referenz](/i18n-error-base/de/api)**

Spezifikation von `I18nErrorBase` und `setErrorMessage`.

## Funktionsweise [#how-it-works]

`message` wird bei jedem Lesen in folgender Reihenfolge aufgelöst.

1. Holt `lang` aus `getGlobalConfig()`. Wenn nicht gesetzt, `"en"`.
2. Falls eine `(Klasse × lang)`-Registrierung existiert, wird sie mit `meta` ausgeführt.
3. Andernfalls wird die Standardnachricht des Konstruktors zurückgegeben.
4. Falls `static prefix` gesetzt ist, wird es vorangestellt.

:::tip
Registrierte Nachrichten werden bei jedem Lesen aus `meta` erzeugt, sodass Sprachwechsel sofort wirksam werden.
:::

## Nächste Schritte [#next-steps]

Beginnen Sie mit der [Installation](/i18n-error-base/de/installation) und sehen Sie den Ablauf in der [Verwendung](/i18n-error-base/de/usage). Details finden Sie in der [API-Referenz](/i18n-error-base/de/api).
