---
title: i18n-error-base
description: Основна класа за Error која пребацује поруке о грешкама у складу са језичким подешавањем Valibot-а.
---

`Error` основна класа која пребацује `message` са Valibot `lang`.

```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` са Valibot `setGlobalConfig({ lang })`
- Накнадно региструје поруке по језику са `setErrorMessage`. Дозвољене су и функције које примају `meta`
- Нерегистровани језици користе подразумевану поруку из конструктора
- Додаје префикс путем `static prefix` по класи
- Чува `meta` и прослеђује га фабричким функцијама порука
- `instanceof Error`, `cause` и `stack` раде као обично

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

**[Инсталација](/i18n-error-base/sr/installation)**

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

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

Од дефинисања до промене, префикса и резерве.

**[АПИ референца](/i18n-error-base/sr/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/sr/installation), па ток погледајте у [употреби](/i18n-error-base/sr/usage). Детаљи су у [АПИ референци](/i18n-error-base/sr/api).
