---
title: i18n-error-base
description: Základní třída Error, která přepíná chybové zprávy podle nastavení jazyka Valibotu.
---

Základní třída `Error`, která přepíná `message` podle `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` odkazuje na `lang` při každém čtení. Přepínejte bez opětovného vytváření instancí. Neregistrované jazyky používají výchozí zprávu z konstruktoru.

## Funkce [#features]

- Dynamicky resolvuje `message` pomocí `setGlobalConfig({ lang })` Valibotu
- Zprávy pro jazyky dodatečně registruje pomocí `setErrorMessage`. Lze i funkce přijímající `meta`
- Neregistrované jazyky používají výchozí zprávu z konstruktoru
- Přidává předponu přes `static prefix` na úrovni třídy
- Uchovává `meta` a předává je funkcím generujícím zprávy
- `instanceof Error`, `cause` i `stack` fungují beze změny

## Struktura [#structure]

**[Instalace](/i18n-error-base/cs/installation)**

Přidání balíčku a peer závislost.

**[Použití](/i18n-error-base/cs/usage)**

Od definice přes přepínání, prefix až po fallback.

**[Referenční příručka API](/i18n-error-base/cs/api)**

Specifikace `I18nErrorBase` a `setErrorMessage`.

## Jak to funguje [#how-it-works]

`message` se při každém čtení vyhodnocuje v následujícím pořadí.

1. Získá `lang` z `getGlobalConfig()`. Není-li nastaveno, je to `"en"`
2. Pokud existuje registrace `(třída × lang)`, spustí ji s `meta`
3. Jinak vrátí výchozí zprávu z konstruktoru
4. Je-li nastaven `static prefix`, připojí jej na začátek

:::tip
Registrované zprávy se při každém čtení znovu generují z `meta`, takže přepnutí se projeví okamžitě.
:::

## Další kroky [#next-steps]

Začněte [instalací](/i18n-error-base/cs/installation) a postup najdete v části [Použití](/i18n-error-base/cs/usage). Podrobnosti jsou v [referenční příručce API](/i18n-error-base/cs/api).
