Spring til indhold
i18n-error-base
Dansk
Esc
↑↓navigér↵åbn⌘Jforhåndsvis
På denne side

i18n-error-base

En Error-basisklasse, der skifter fejlmeddelelser i takt med Valibots sprogindstilling.

En Error-basisklasse, der skifter message med Valibots lang.

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 slår lang op ved hver læsning. Skift uden at genskabe instanser. Uregistrerede sprog bruger konstruktørens standardmeddelelse.

Funktioner

  • Løser message dynamisk med Valibots setGlobalConfig({ lang })
  • Registrer sprogspecifikke meddelelser efterfølgende med setErrorMessage. Funktioner, der modtager meta, er også tilladt
  • Uregistrerede sprog bruger konstruktørens standardmeddelelse
  • Tilføjer et præfiks via static prefix pr. klasse
  • Beholder meta og sender den til meddelelsesfunktioner
  • instanceof Error, cause og stack virker som normalt

Struktur

Sådan fungerer det

message løses i følgende rækkefølge ved hver adgang.

  1. Henter lang fra getGlobalConfig(). "en", når den ikke er angivet
  2. Hvis en (klasse × lang)-registrering findes, køres den med meta
  3. Ellers returneres konstruktørens standardmeddelelse
  4. Hvis static prefix er angivet, sættes det foran

Næste trin

Start med Installation, og se derefter forløbet i Brug. Detaljer står i API-referencen.

Var denne side nyttig?