---
title: i18n-error-base
description: Базовий клас для Error, що перемикає повідомлення про помилки разом із мовними налаштуваннями Valibot.
---

Базовий клас `Error`, що перемикає `message` з `lang` Valibot.

```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` при кожному читанні звертається до `lang`. Перемикайте без повторного створення екземплярів. Незареєстровані мови використовують повідомлення за замовчуванням із конструктора.

## Особливості [#features]

- Динамічно розв'язує `message` через `setGlobalConfig({ lang })` Valibot
- Повідомлення за мовами реєструються пізніше через `setErrorMessage`. Допустимі й функції, що приймають `meta`
- Незареєстровані мови використовують повідомлення за замовчуванням із конструктора
- Додає префікс через `static prefix` на рівні класу
- Зберігає `meta` й передає його у фабричні функції повідомлень
- `instanceof Error`, `cause` і `stack` працюють як зазвичай

## Структура [#structure]

**[Встановлення](/i18n-error-base/uk/installation)**

Як додати пакет і peer-залежність.

**[Використання](/i18n-error-base/uk/usage)**

Від визначення до перемикання, префікса й резерву.

**[Довідник API](/i18n-error-base/uk/api)**

Специфікації `I18nErrorBase` і `setErrorMessage`.

## Як це працює [#how-it-works]

`message` розв'язується при кожному читанні в такому порядку.

1. Отримує `lang` із `getGlobalConfig()`. `"en"`, якщо не налаштовано
2. Якщо є реєстрація `(клас × lang)`, виконує її з `meta`
3. Інакше повертає повідомлення за замовчуванням із конструктора
4. Якщо налаштовано `static prefix`, додає його на початок

:::tip
Зареєстровані повідомлення створюються з `meta` при кожному читанні, тому перемикання діє одразу.
:::

## Наступні кроки [#next-steps]

Почніть із [встановлення](/i18n-error-base/uk/installation) і перегляньте процес у [використанні](/i18n-error-base/uk/usage). Деталі — у [довіднику API](/i18n-error-base/uk/api).
