Přejít k obsahu
i18n-error-base
Čeština
Esc
↑↓navigace↵otevřít⌘Jnáhled
Na této stránce

i18n-error-base

Základní třída Error, která přepíná chybové zprávy podle nastavení jazyka Valibotu.

Základní třída Error, která přepíná message podle 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 odkazuje na lang při každém čtení. Přepínejte bez opětovného vytváření instancí. Neregistrované jazyky používají výchozí zprávu z konstruktoru.

Funkce

  • Dynamicky resolvuje message pomocí setGlobalConfig({ lang }) Valibotu
  • Zprávy pro jazyky dodatečně registruje pomocí setErrorMessage. Lze i funkce přijímající meta
  • Neregistrované jazyky používají výchozí zprávu z konstruktoru
  • Přidává předponu přes static prefix na úrovni třídy
  • Uchovává meta a předává je funkcím generujícím zprávy
  • instanceof Error, cause i stack fungují beze změny

Struktura

Jak to funguje

message se při každém čtení vyhodnocuje v následujícím pořadí.

  1. Získá lang z getGlobalConfig(). Není-li nastaveno, je to "en"
  2. Pokud existuje registrace (třída × lang), spustí ji s meta
  3. Jinak vrátí výchozí zprávu z konstruktoru
  4. Je-li nastaven static prefix, připojí jej na začátek

Další kroky

Začněte instalací a postup najdete v části Použití. Podrobnosti jsou v referenční příručce API.

Byla tato stránka užitečná?