---
title: i18n-error-base
description: Klasa bazowa Error, która przełącza komunikaty o błędach zgodnie z ustawieniem językowym Valibot.
---

Bazowa klasa `Error`, która przełącza `message` wraz z `lang` Valibotu.

```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` odwołuje się do `lang` przy każdym odczycie. Przełącz bez odtwarzania instancji. Niezarejestrowane języki używają domyślnego komunikatu z konstruktora.

## Funkcje [#features]

- Dynamicznie rozwiązuje `message` przez `setGlobalConfig({ lang })` Valibotu
- Rejestruje komunikaty dla języków później przez `setErrorMessage`. Dozwolone są też funkcje przyjmujące `meta`
- Niezarejestrowane języki używają domyślnego komunikatu z konstruktora
- Dodaje prefiks przez `static prefix` na poziomie klasy
- Przechowuje `meta` i przekazuje je do funkcji tworzących komunikat
- `instanceof Error`, `cause` i `stack` działają jak zwykle

## Struktura [#structure]

**[Instalacja](/i18n-error-base/pl/installation)**

Dodawanie pakietu i zależność peer.

**[Użycie](/i18n-error-base/pl/usage)**

Od definicji po przełączanie, prefiks i fallback.

**[Dokumentacja API](/i18n-error-base/pl/api)**

Specyfikacja `I18nErrorBase` i `setErrorMessage`.

## Jak to działa [#how-it-works]

`message` jest rozwiązywany przy każdym odczycie w następującej kolejności.

1. Pobiera `lang` z `getGlobalConfig()`. Gdy nie ustawiono, `"en"`
2. Jeśli istnieje rejestracja `(klasa × lang)`, wykonuje ją z `meta`
3. W przeciwnym razie zwraca domyślny komunikat z konstruktora
4. Jeśli ustawiono `static prefix`, dodaje go na początku

:::tip
Zarejestrowane komunikaty są generowane z `meta` przy każdym odczycie, więc przełączenie działa natychmiast.
:::

## Następne kroki [#next-steps]

Zacznij od [Instalacji](/i18n-error-base/pl/installation), potem zobacz przepływ w [Użyciu](/i18n-error-base/pl/usage). Szczegóły w [Dokumentacji API](/i18n-error-base/pl/api).
