i18n-error-base
Hibaüzeneteket váltó Error alaposztály, amely a Valibot nyelvi beállításával működik együtt.
Error alaposztály, amely a Valibot lang beállításával váltja a message értékét.
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
A message minden olvasáskor a lang értékre hivatkozik. Váltson a példány újraalkotása nélkül. Nem regisztrált nyelv esetén a konstruktor alapértelmezett üzenete használatos.
Jellemzők
- A
messageértékét dinamikusan oldja fel asetGlobalConfig({ lang })segítségével - A nyelvenkénti üzeneteket utólag regisztrálja a
setErrorMessagesegítségével. Ametaértéket fogadó függvények is megadhatók - Nem regisztrált nyelv esetén a konstruktor alapértelmezett üzenete használatos
- Osztályszintű
static prefixsegítségével előtag fűzhető az üzenet elejére - A
metaértéket tárolja, és átadja az üzenetgeneráló függvényeknek - Az
instanceof Error, acauseés astackváltozatlanul használható
Felépítés
Telepítés
A csomag hozzáadása és a peer függőség.
Használat
A definíciótól a váltáson, a prefixen és a tartalék üzeneten át.
API-referencia
Az I18nErrorBase és a setErrorMessage specifikációja.
Működés
A message minden olvasáskor az alábbi sorrendben oldódik fel.
- Lekéri a
langértéket agetGlobalConfig()segítségével. Ha nincs beállítva,"en" - Ha van regisztrált (osztály ×
lang) függvény, végrehajtja ametaátadásával - Ha nincs, a konstruktor alapértelmezett üzenetét adja vissza
- Ha a
static prefixbe van állítva, az üzenet elejére fűzi
Következő lépések
Kezdje a telepítéssel, majd tekintse át a folyamatot a használat oldalon. A részleteket az API-referenciában találja.