Chuyển đến nội dung
i18n-error-base
Tiếng Việt
Esc
↑↓di chuyển↵mở⌘Jxem trước
Trên trang này

i18n-error-base

Lớp Error cơ sở chuyển đổi thông báo lỗi đồng bộ với cài đặt ngôn ngữ của Valibot.

Lớp cơ sở Error chuyển message theo lang của 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 tham chiếu lang mỗi lần đọc. Chuyển mà không cần tạo lại. Ngôn ngữ chưa đăng ký dùng thông báo mặc định của constructor.

Tính năng

  • Giải quyết message động với setGlobalConfig({ lang }) của Valibot
  • Đăng ký thông báo từng ngôn ngữ sau bằng setErrorMessage. Hàm nhận meta cũng được
  • Ngôn ngữ chưa đăng ký dùng thông báo mặc định của constructor
  • Thêm tiền tố qua static prefix từng class
  • Giữ meta và truyền cho hàm tạo thông báo
  • instanceof Error, cause, stack vẫn dùng bình thường

Cấu trúc

Cơ chế hoạt động

message giải quyết theo thứ tự sau mỗi lần đọc.

  1. Lấy lang từ getGlobalConfig(). Nếu chưa thiết lập thì là "en"
  2. Nếu có đăng ký (class × lang), thực thi với meta
  3. Nếu không, trả về thông báo mặc định của constructor
  4. Nếu static prefix được thiết lập, nối vào đầu

Các bước tiếp theo

Bắt đầu từ Cài đặt và xem quy trình trong Cách dùng. Chi tiết trong Tham chiếu API.

Trang này có hữu ích không?