i18n-error-base
Valibotin kieliasetuksen mukana vaihtuvia virheviestejä tarjoava Error-perusluokka.
Error-perusluokka, joka vaihtaa message-arvoa Valibotin lang-arvon mukaisesti.
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 viittaa lang-arvoon jokaisella käyttökerralla. Vaihda ilman uusien instanssien luomista. Rekisteröimättömät kielet käyttävät rakentajan oletusviestiä.
Ominaisuudet
- Ratkaisee
message-arvon dynaamisesti ValibotinsetGlobalConfig({ lang })-asetuksella - Kielikohtaiset viestit rekisteröidään jälkikäteen
setErrorMessage-funktiolla. Myösmeta-arvon vastaanottavat funktiot sallitaan - Rekisteröimättömät kielet käyttävät rakentajan oletusviestiä
- Lisää etuliitteen luokkakohtaisella
static prefix-ominaisuudella - Säilyttää
meta-arvon ja välittää sen viestin luontifunktioille instanceof Error,causejastacktoimivat sellaisenaan
Rakenne
Asennus
Paketin ja vertaisriippuvuuden lisääminen.
Käyttö
Määrittämisestä kielen vaihtamiseen, etuliitteeseen ja varaviestiin.
API-viite
I18nErrorBase- ja setErrorMessage-määritykset.
Miten se toimii
message ratkaistaan jokaisella käyttökerralla seuraavassa järjestyksessä.
- Hakee arvon
langfunktiollagetGlobalConfig()."en", jos sitä ei ole asetettu - Jos
(luokka × lang)-rekisteröinti löytyy, se suoritetaanmeta-arvolla - Muussa tapauksessa palautetaan rakentajan oletusviesti
- Jos
static prefixon asetettu, se liitetään alkuun
Seuraavat vaiheet
Aloita asennuksesta ja katso työnkulku käyttöohjeesta. Yksityiskohdat on koottu API-viitteeseen.