reset
Panoramica
Il modulo reset espone tre utility marcate @internal e @deprecated (l'attributo segnala che non vanno usate in produzione). Sono state pensate per i test: permettono di partire da uno stato pulito tra una suite e l'altra evitando interferenze dovute al singleton globale.
In produzione il sistema i18n viene configurato una sola volta all'avvio e non ha senso resettarlo: per cambiare lingua usare setLocale di useI18n.
initI18n
Inizializza il sistema cambiando alla lingua specificata. È una scorciatoia equivalente a useI18n().setLocale(locale), pensata per i plugin che vogliono garantire un caricamento iniziale.
Firma
function initI18n(locale: string): Promise<void>
Esempio
import { configureI18n, initI18n } from '@pzeta/vue-i18n'
configureI18n({ /* ... */ })
await initI18n('en') // attende il caricamento di EN
Richiede che configureI18n sia già stata chiamata, altrimenti useI18n() interno lancia errore.
resetI18n
Resetta lo stato runtime alla lingua di default mantenendo la configurazione e la cache. Equivalente a un setLocale(defaultLocale) sincrono.
Firma
function resetI18n(): void
Comportamento
- Se non c'è configurazione attiva, no-op.
currentLocale = config.defaultLocale.translationsripristinate dalla cache (o{}se la default non è preloaded).isLoading = false.- La cache delle lingue caricate non viene toccata.
Esempio — reset tra test
import { resetI18n } from '@pzeta/vue-i18n'
afterEach(() => {
resetI18n() // riparte dalla default ma evita di ricaricare le lingue
})
resetI18nFull
Reset completo: rimuove configurazione, stato e cache. Lascia il modulo nello stato iniziale come dopo l'import (prima di configureI18n).
Firma
function resetI18nFull(): void
Comportamento
config = null,isConfigured = false.currentLocale = '',translations = {},isLoading = false.localeCache.clear().
Esempio — reset hard tra suite
import { resetI18nFull, configureI18n } from '@pzeta/vue-i18n'
beforeEach(() => {
resetI18nFull()
configureI18n({
defaultLocale: 'it',
locales: { it: { loader: mockLoader, preloaded: mockDict } },
})
})
Usare quando si vuole testare il flusso di configurazione stesso, o per assicurarsi che cache e mock di una suite precedente non influenzino la successiva.
Quando usare quale
| Scenario | Funzione |
|---|---|
| Test cambia configurazione tra suite | resetI18nFull + configureI18n |
| Test riusa configurazione, vuole solo ripartire dalla default | resetI18n |
| Plugin/bootstrap vuole forzare il caricamento iniziale | initI18n |
| Codice di produzione | nessuna delle precedenti — usare useI18n().setLocale |
Note
- Tutte e tre le funzioni sono marcate
@deprecatedper scoraggiarne l'uso in codice applicativo: l'IDE mostrerà un avviso. resetI18nnon emetteonLocaleChange: è un reset, non un cambio lingua.- Dopo
resetI18nFull, qualsiasi chiamata auseI18n()oloadLocalelanciaError('[i18n] Sistema non configurato.')finché non viene reinvocataconfigureI18n.