---
title: i18n-error-base
description: Classe base d'Error que canvia els missatges d'error segons la configuració d'idioma de Valibot.
---

Classe base `Error` que canvia `message` amb `lang` de 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` consulta `lang` a cada lectura. Canvieu sense tornar a crear les instàncies. Els idiomes sense registre utilitzen el missatge per defecte del constructor.

## Característiques [#features]

- Resol `message` dinàmicament amb `setGlobalConfig({ lang })` de Valibot
- Els missatges per idioma es registren posteriorment amb `setErrorMessage`. També s'accepten funcions que reben `meta`
- Els idiomes sense registre utilitzen el missatge per defecte del constructor
- Afegeix un prefix amb `static prefix` per classe
- Conserva `meta` i la passa a les funcions de generació de missatges
- `instanceof Error`, `cause` i `stack` funcionen com sempre

## Estructura [#structure]

**[Instal·lació](/i18n-error-base/ca/installation)**

L'addició del paquet i la seva dependència d'iguals.

**[Ús](/i18n-error-base/ca/usage)**

De la definició al canvi d'idioma, el prefix i la reserva.

**[Referència de l'API](/i18n-error-base/ca/api)**

L'especificació de `I18nErrorBase` i `setErrorMessage`.

## Com funciona [#how-it-works]

`message` es resol en l'ordre següent a cada accés.

1. Obté `lang` de `getGlobalConfig()`. `"en"` si no està configurat
2. Si hi ha un registre `(classe × lang)`, l'executa amb `meta`
3. En cas contrari, retorna el missatge per defecte del constructor
4. Si `static prefix` està configurat, el concatena al principi

:::tip
Els missatges registrats es generen des de `meta` a cada lectura, de manera que el canvi d'idioma es reflecteix immediatament.
:::

## Següents passos [#next-steps]

Comenceu per la [Instal·lació](/i18n-error-base/ca/installation) i vegeu el flux a [Ús](/i18n-error-base/ca/usage). Els detalls són a la [Referència de l'API](/i18n-error-base/ca/api).
