---
title: i18n-error-base
description: کلاس پایهٔ ارث‌بری از Error که پیام‌های خطا را هم‌زمان با تنظیم زبان Valibot جابه‌جا می‌کند.
---

کلاس پایهٔ `Error` که `message` را با `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` را به‌صورت پویا با `setGlobalConfig({ lang })` والیبوت حل می‌کند
- پیام‌های هر زبان را بعداً با `setErrorMessage` ثبت کنید. تابع گیرندهٔ `meta` هم مجاز است
- زبان‌های ثبت‌نشده از پیام پیش‌فرض سازنده استفاده می‌کنند
- با `static prefix` هر کلاس پیشوند اضافه می‌کند
- `meta` را نگه می‌دارد و به تابع‌های سازندهٔ پیام می‌سپارد
- `instanceof Error` و `cause` و `stack` مثل معمول کار می‌کنند

## ساختار [#structure]

**[نصب](/i18n-error-base/fa/installation)**

دربارهٔ افزودن بسته و وابستگی همتا.

**[طرز استفاده](/i18n-error-base/fa/usage)**

از تعریف تا جابه‌جایی زبان، prefix و fallback.

**[مرجع API](/i18n-error-base/fa/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/fa/installation) شروع کنید، سپس روند را در [طرز استفاده](/i18n-error-base/fa/usage) ببینید. جزئیات در [مرجع API](/i18n-error-base/fa/api) است.
