---
title: i18n-error-base
description: Valibotin kieliasetuksen mukana vaihtuvia virheviestejä tarjoava Error-perusluokka.
---

`Error`-perusluokka, joka vaihtaa `message`-arvoa Valibotin `lang`-arvon mukaisesti.

```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` viittaa `lang`-arvoon jokaisella käyttökerralla. Vaihda ilman uusien instanssien luomista. Rekisteröimättömät kielet käyttävät rakentajan oletusviestiä.

## Ominaisuudet [#features]

- Ratkaisee `message`-arvon dynaamisesti Valibotin `setGlobalConfig({ lang })` -asetuksella
- Kielikohtaiset viestit rekisteröidään jälkikäteen `setErrorMessage`-funktiolla. Myös `meta`-arvon vastaanottavat funktiot sallitaan
- Rekisteröimättömät kielet käyttävät rakentajan oletusviestiä
- Lisää etuliitteen luokkakohtaisella `static prefix` -ominaisuudella
- Säilyttää `meta`-arvon ja välittää sen viestin luontifunktioille
- `instanceof Error`, `cause` ja `stack` toimivat sellaisenaan

## Rakenne [#structure]

**[Asennus](/i18n-error-base/fi/installation)**

Paketin ja vertaisriippuvuuden lisääminen.

**[Käyttö](/i18n-error-base/fi/usage)**

Määrittämisestä kielen vaihtamiseen, etuliitteeseen ja varaviestiin.

**[API-viite](/i18n-error-base/fi/api)**

`I18nErrorBase`- ja `setErrorMessage`-määritykset.

## Miten se toimii [#how-it-works]

`message` ratkaistaan jokaisella käyttökerralla seuraavassa järjestyksessä.

1. Hakee arvon `lang` funktiolla `getGlobalConfig()`. `"en"`, jos sitä ei ole asetettu
2. Jos `(luokka × lang)` -rekisteröinti löytyy, se suoritetaan `meta`-arvolla
3. Muussa tapauksessa palautetaan rakentajan oletusviesti
4. Jos `static prefix` on asetettu, se liitetään alkuun

:::tip
Rekisteröidyt viestit luodaan `meta`-arvosta jokaisella käyttökerralla, joten kielen vaihto näkyy välittömästi.
:::

## Seuraavat vaiheet [#next-steps]

Aloita [asennuksesta](/i18n-error-base/fi/installation) ja katso työnkulku [käyttöohjeesta](/i18n-error-base/fi/usage). Yksityiskohdat on koottu [API-viitteeseen](/i18n-error-base/fi/api).
