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 ทุกครั้งที่อ่าน สลับได้โดยไม่สร้างใหม่ ภาษาที่ยังไม่ลงทะเบียนใช้ข้อความเริ่มต้นของคอนสตรักเตอร์
คุณสมบัติ
- resolve
messageแบบไดนามิกกับsetGlobalConfig({ lang })ของ Valibot - ลงทะเบียนข้อความตามภาษาภายหลังด้วย
setErrorMessageใช้ฟังก์ชันรับmetaได้ - ภาษาที่ยังไม่ลงทะเบียนใช้ข้อความเริ่มต้นของคอนสตรักเตอร์
- ใส่คำนำหน้าด้วย
static prefixระดับคลาส - เก็บ
metaและส่งให้ฟังก์ชันสร้างข้อความ - สืบทอดจาก
Errorใช้instanceof Error,cause,stackได้ตามปกติ
โครงสร้าง
การติดตั้ง
การเพิ่มแพ็กเกจและ peer dependency
การใช้งาน
จากการกำหนดถึงการสลับ prefix และ fallback
ข้อมูลอ้างอิง API
ข้อมูลจำเพาะของ I18nErrorBase และ setErrorMessage
หลักการทำงาน
message resolve ตามลำดับต่อไปนี้ทุกครั้งที่อ่าน
- ดึง
langจากgetGlobalConfig()หากยังไม่ตั้งค่าจะเป็น"en" - หากมีลงทะเบียน (คลาส × lang) เรียกใช้พร้อม
meta - หากไม่มี คืนข้อความเริ่มต้นของคอนสตรักเตอร์
- หากตั้ง
static prefixไว้ เชื่อมไว้ด้านหน้า
ขั้นตอนถัดไป
เริ่มจากการติดตั้ง แล้วดูขั้นตอนในการใช้งาน รายละเอียดในข้อมูลอ้างอิง API