پرش به محتوا
i18n-error-base
فارسی
Esc
↑↓پیمایش↵باز کردن⌘Jپیش‌نمایش
در این صفحه

i18n-error-base

کلاس پایهٔ ارث‌بری از Error که پیام‌های خطا را هم‌زمان با تنظیم زبان Valibot جابه‌جا می‌کند.

کلاس پایهٔ Error که message را با lang والیبوت جابه‌جا می‌کند.

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 رجوع می‌کند. بدون بازسازی نمونه جابه‌جا کنید. زبان‌های ثبت‌نشده از پیام پیش‌فرض سازنده استفاده می‌کنند.

ویژگی‌ها

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

ساختار

سازوکار

message در هر خواندن به ترتیب زیر حل می‌شود.

  1. lang را از getGlobalConfig() می‌گیرد. اگر تنظیم نشده باشد "en" است
  2. اگر ثبت (کلاس × lang) وجود داشته باشد، آن را با meta اجرا می‌کند
  3. در غیر این صورت پیام پیش‌فرض سازنده را برمی‌گرداند
  4. اگر static prefix تنظیم شده باشد به ابتدا می‌چسباند

گام‌های بعدی

از نصب شروع کنید، سپس روند را در طرز استفاده ببینید. جزئیات در مرجع API است.

آیا این صفحه مفید بود؟