i18n-error-base
فئة أساسية لوراثة Error تُبدِّل رسائل الخطأ بالتزامن مع إعداد اللغة في Valibot.
فئة أساس لـError تُبدِّل message مع lang في Valibot.
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 })في Valibot - سجِّل رسائل كل لغة لاحقًا عبر
setErrorMessage. ويمكن تسجيل دوال تستقبلmeta - اللغات غير المسجلة تستخدم الرسالة الافتراضية للمُنشئ
- تضيف بادئة عبر
static prefixلكل فئة - تحفظ
metaوتمرِّره إلى دوال إنشاء الرسائل instanceof Errorوcauseوstackتعمل كالمعتاد
البنية
التثبيت
حول إضافة الحزمة واعتمادية النظير.
الاستخدام
من تعريف الفئات إلى تبديل اللغة والبادئة والتراجع.
مرجع API
مواصفات I18nErrorBase وsetErrorMessage.
آلية العمل
message تُحلّ بالترتيب التالي عند كل قراءة.
- تحصل على
langمنgetGlobalConfig(). وعند عدم الضبط تكون"en" - إذا وُجد تسجيل (الفئة × اللغة)، تُنفَّذ مع
meta - وإلا تُرجَع الرسالة الافتراضية للمُنشئ
- إذا ضُبط
static prefixيُوصَل في البداية
الخطوات التالية
ابدأ من التثبيت، ثم انظر التدفق في الاستخدام. التفاصيل في مرجع API.