---
title: i18n-error-base
description: Classe base di Error che cambia i messaggi di errore in sincronia con l'impostazione della lingua di Valibot.
---

Classe base `Error` che cambia `message` con il `lang` di 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 ogni lettura. Cambio senza ricreare le istanze. Le lingue non registrate usano il messaggio predefinito del costruttore.

## Funzionalità [#features]

- Risolve `message` dinamicamente con `setGlobalConfig({ lang })` di Valibot.
- I messaggi per lingua si registrano dopo con `setErrorMessage`. Ammesse anche funzioni che ricevono `meta`.
- Le lingue non registrate usano il messaggio predefinito del costruttore.
- Aggiunge un prefisso tramite `static prefix` per classe.
- Conserva `meta` e lo passa alle funzioni di generazione dei messaggi.
- `instanceof Error`, `cause` e `stack` funzionano come al solito.

## Struttura [#structure]

**[Installazione](/i18n-error-base/it/installation)**

Aggiunta del pacchetto e della dipendenza peer.

**[Utilizzo](/i18n-error-base/it/usage)**

Dalla definizione al cambio, al prefisso e al ripiego.

**[Riferimento API](/i18n-error-base/it/api)**

Specifiche di `I18nErrorBase` e `setErrorMessage`.

## Come funziona [#how-it-works]

`message` viene risolto a ogni lettura nel seguente ordine.

1. Ottiene `lang` da `getGlobalConfig()`. Se non impostato, `"en"`.
2. Se esiste una registrazione `(classe × lang)`, la esegue con `meta`.
3. Altrimenti restituisce il messaggio predefinito del costruttore.
4. Se `static prefix` è impostato, lo antepone.

:::tip
I messaggi registrati sono generati da `meta` a ogni lettura, quindi i cambi hanno effetto immediato.
:::

## Passaggi successivi [#next-steps]

Inizia dall'[Installazione](/i18n-error-base/it/installation), poi vedi il flusso nell'[Utilizzo](/i18n-error-base/it/usage). I dettagli sono nel [Riferimento API](/i18n-error-base/it/api).
