ข้ามไปยังเนื้อหา
i18n-error-base
ไทย
Esc
↑↓นำทาง↵เปิด⌘Jดูตัวอย่าง
ในหน้านี้

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 ได้ตามปกติ

โครงสร้าง

หลักการทำงาน

message resolve ตามลำดับต่อไปนี้ทุกครั้งที่อ่าน

  1. ดึง lang จาก getGlobalConfig() หากยังไม่ตั้งค่าจะเป็น "en"
  2. หากมีลงทะเบียน (คลาส × lang) เรียกใช้พร้อม meta
  3. หากไม่มี คืนข้อความเริ่มต้นของคอนสตรักเตอร์
  4. หากตั้ง static prefix ไว้ เชื่อมไว้ด้านหน้า

ขั้นตอนถัดไป

เริ่มจากการติดตั้ง แล้วดูขั้นตอนในการใช้งาน รายละเอียดในข้อมูลอ้างอิง API

หน้านี้มีประโยชน์หรือไม่?