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

הוספת החבילה ותלות ה-peer.

**[שימוש](/i18n-error-base/he/usage)**

מהגדרת מחלקה עד החלפת שפה, prefix ו-fallback.

**[ייחוס API](/i18n-error-base/he/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/he/installation), ובדקו את התהליך ב[שימוש](/i18n-error-base/he/usage). פרטים ב[ייחוס API](/i18n-error-base/he/api).
