---
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/bg/installation)**

Как да добавите пакета и peer зависимостта.

**[Употреба](/i18n-error-base/bg/usage)**

От дефиниране до превключване, префикс и резервен вариант.

**[API справка](/i18n-error-base/bg/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/bg/installation), после вижте процеса в [Употреба](/i18n-error-base/bg/usage). Подробностите са в [API справка](/i18n-error-base/bg/api).
