Zum Inhalt springen
i18n-error-base
Deutsch
Esc
↑↓navigieren↵öffnen⌘Jvorschau
Auf dieser Seite

i18n-error-base

Basisklasse für Error, die Fehlermeldungen synchron mit der Spracheinstellung von Valibot umschaltet.

Eine Error-Basisklasse, die message mit Valibots lang umschaltet.

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 bezieht sich bei jedem Lesen auf lang. Wechsel ohne Neuerstellung der Instanz. Nicht registrierte Sprachen verwenden die Standardnachricht des Konstruktors.

Funktionen

  • Löst message dynamisch mit Valibots setGlobalConfig({ lang }) auf.
  • Sprachspezifische Nachrichten werden nachträglich mit setErrorMessage registriert. Funktionen mit meta sind ebenfalls zulässig.
  • Nicht registrierte Sprachen verwenden die Standardnachricht des Konstruktors.
  • Fügt ein Präfix über static prefix pro Klasse hinzu.
  • Behält meta und übergibt es an Nachrichten-Erzeugungsfunktionen.
  • instanceof Error, cause und stack funktionieren wie gewohnt.

Struktur

Funktionsweise

message wird bei jedem Lesen in folgender Reihenfolge aufgelöst.

  1. Holt lang aus getGlobalConfig(). Wenn nicht gesetzt, "en".
  2. Falls eine (Klasse × lang)-Registrierung existiert, wird sie mit meta ausgeführt.
  3. Andernfalls wird die Standardnachricht des Konstruktors zurückgegeben.
  4. Falls static prefix gesetzt ist, wird es vorangestellt.

Nächste Schritte

Beginnen Sie mit der Installation und sehen Sie den Ablauf in der Verwendung. Details finden Sie in der API-Referenz.

War diese Seite hilfreich?