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
messagepomocí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 prefixna úrovni třídy - Uchovává
metaa předává je funkcím generujícím zprávy instanceof Error,causeistackfungují beze změny
Struktura
Instalace
Přidání balíčku a peer závislost.
Použití
Od definice přes přepínání, prefix až po fallback.
Referenční příručka API
Specifikace I18nErrorBase a setErrorMessage.
Jak to funguje
message se při každém čtení vyhodnocuje v následujícím pořadí.
- Získá
langzgetGlobalConfig(). Není-li nastaveno, je to"en" - Pokud existuje registrace
(třída × lang), spustí ji smeta - Jinak vrátí výchozí zprávu z konstruktoru
- 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.