i18n-error-base
Classe base di Error che cambia i messaggi di errore in sincronia con l'impostazione della lingua di Valibot.
Classe base Error che cambia message con il lang di Valibot.
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 consulta lang a ogni lettura. Cambio senza ricreare le istanze. Le lingue non registrate usano il messaggio predefinito del costruttore.
Funzionalità
- Risolve
messagedinamicamente consetGlobalConfig({ lang })di Valibot. - I messaggi per lingua si registrano dopo con
setErrorMessage. Ammesse anche funzioni che ricevonometa. - Le lingue non registrate usano il messaggio predefinito del costruttore.
- Aggiunge un prefisso tramite
static prefixper classe. - Conserva
metae lo passa alle funzioni di generazione dei messaggi. instanceof Error,causeestackfunzionano come al solito.
Struttura
Installazione
Aggiunta del pacchetto e della dipendenza peer.
Utilizzo
Dalla definizione al cambio, al prefisso e al ripiego.
Riferimento API
Specifiche di I18nErrorBase e setErrorMessage.
Come funziona
message viene risolto a ogni lettura nel seguente ordine.
- Ottiene
langdagetGlobalConfig(). Se non impostato,"en". - Se esiste una registrazione
(classe × lang), la esegue conmeta. - Altrimenti restituisce il messaggio predefinito del costruttore.
- Se
static prefixè impostato, lo antepone.
Passaggi successivi
Inizia dall’Installazione, poi vedi il flusso nell’Utilizzo. I dettagli sono nel Riferimento API.