Composables

reset

Utility per il reset dello stato i18n nei test — initI18n, resetI18n, resetI18nFull.

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.
  • translations ripristinate 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

ScenarioFunzione
Test cambia configurazione tra suiteresetI18nFull + configureI18n
Test riusa configurazione, vuole solo ripartire dalla defaultresetI18n
Plugin/bootstrap vuole forzare il caricamento inizialeinitI18n
Codice di produzionenessuna delle precedenti — usare useI18n().setLocale

Note

  • Tutte e tre le funzioni sono marcate @deprecated per scoraggiarne l'uso in codice applicativo: l'IDE mostrerà un avviso.
  • resetI18n non emette onLocaleChange: è un reset, non un cambio lingua.
  • Dopo resetI18nFull, qualsiasi chiamata a useI18n() o loadLocale lancia Error('[i18n] Sistema non configurato.') finché non viene reinvocata configureI18n.