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ớisetGlobalConfig({ lang })của Valibot - Đăng ký thông báo từng ngôn ngữ sau bằng
setErrorMessage. Hàm nhậnmetacũ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 prefixtừng class - Giữ
metavà truyền cho hàm tạo thông báo instanceof Error,cause,stackvẫn dùng bình thường
Cấu trúc
Cài đặt
Thêm package và peer dependency.
Cách dùng
Từ định nghĩa đến chuyển ngôn ngữ, prefix và fallback.
Tham chiếu API
Đặc tả I18nErrorBase và setErrorMessage.
Cơ chế hoạt động
message giải quyết theo thứ tự sau mỗi lần đọc.
- Lấy
langtừgetGlobalConfig(). Nếu chưa thiết lập thì là"en" - Nếu có đăng ký (class × lang), thực thi với
meta - Nếu không, trả về thông báo mặc định của constructor
- 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.