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مثل معمول کار میکنند
ساختار
نصب
دربارهٔ افزودن بسته و وابستگی همتا.
طرز استفاده
از تعریف تا جابهجایی زبان، prefix و fallback.
مرجع API
مشخصات I18nErrorBase و setErrorMessage.
سازوکار
message در هر خواندن به ترتیب زیر حل میشود.
langرا ازgetGlobalConfig()میگیرد. اگر تنظیم نشده باشد"en"است- اگر ثبت (کلاس × lang) وجود داشته باشد، آن را با
metaاجرا میکند - در غیر این صورت پیام پیشفرض سازنده را برمیگرداند
- اگر
static prefixتنظیم شده باشد به ابتدا میچسباند
گامهای بعدی
از نصب شروع کنید، سپس روند را در طرز استفاده ببینید. جزئیات در مرجع API است.