i18n-error-base
Klasa bazowa Error, która przełącza komunikaty o błędach zgodnie z ustawieniem językowym Valibot.
Bazowa klasa Error, która przełącza message wraz z lang Valibotu.
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 odwołuje się do lang przy każdym odczycie. Przełącz bez odtwarzania instancji. Niezarejestrowane języki używają domyślnego komunikatu z konstruktora.
Funkcje
- Dynamicznie rozwiązuje
messageprzezsetGlobalConfig({ lang })Valibotu - Rejestruje komunikaty dla języków później przez
setErrorMessage. Dozwolone są też funkcje przyjmującemeta - Niezarejestrowane języki używają domyślnego komunikatu z konstruktora
- Dodaje prefiks przez
static prefixna poziomie klasy - Przechowuje
metai przekazuje je do funkcji tworzących komunikat instanceof Error,causeistackdziałają jak zwykle
Struktura
Instalacja
Dodawanie pakietu i zależność peer.
Użycie
Od definicji po przełączanie, prefiks i fallback.
Dokumentacja API
Specyfikacja I18nErrorBase i setErrorMessage.
Jak to działa
message jest rozwiązywany przy każdym odczycie w następującej kolejności.
- Pobiera
langzgetGlobalConfig(). Gdy nie ustawiono,"en" - Jeśli istnieje rejestracja
(klasa × lang), wykonuje ją zmeta - W przeciwnym razie zwraca domyślny komunikat z konstruktora
- Jeśli ustawiono
static prefix, dodaje go na początku
Następne kroki
Zacznij od Instalacji, potem zobacz przepływ w Użyciu. Szczegóły w Dokumentacji API.