---
title: i18n-error-base
description: Clase base de Error que cambia los mensajes de error según la configuración de idioma de Valibot.
---

Clase base `Error` que cambia `message` con el `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` en cada lectura. Cambio sin recrear instancias. Los idiomas no registrados usan el mensaje predeterminado del constructor.

## Características [#features]

- Resuelve `message` dinámicamente con `setGlobalConfig({ lang })` de Valibot.
- Los mensajes por idioma se registran después con `setErrorMessage`. También se admiten funciones que reciben `meta`.
- Los idiomas no registrados usan el mensaje predeterminado del constructor.
- Añade un prefijo con `static prefix` por clase.
- Conserva `meta` y lo pasa a las funciones generadoras de mensajes.
- `instanceof Error`, `cause` y `stack` funcionan como siempre.

## Estructura [#structure]

**[Instalación](/i18n-error-base/es/installation)**

Instalación del paquete y su dependencia peer.

**[Uso](/i18n-error-base/es/usage)**

De la definición al cambio, prefijo y reserva.

**[Referencia de la API](/i18n-error-base/es/api)**

Especificación de `I18nErrorBase` y `setErrorMessage`.

## Cómo funciona [#how-it-works]

`message` se resuelve en cada lectura en el siguiente orden.

1. Obtiene `lang` de `getGlobalConfig()`. Si no está configurado, `"en"`.
2. Si existe un registro `(clase × lang)`, lo ejecuta con `meta`.
3. Si no, devuelve el mensaje predeterminado del constructor.
4. Si `static prefix` está configurado, lo antepone.

:::tip
Los mensajes registrados se generan desde `meta` en cada lectura, así que los cambios surten efecto de inmediato.
:::

## Siguientes pasos [#next-steps]

Comience con la [instalación](/i18n-error-base/es/installation) y vea el flujo en [uso](/i18n-error-base/es/usage). Los detalles están en la [referencia de la API](/i18n-error-base/es/api).
