Skip to content

v2.10.4: localizzazioni Moment e FullCalendar ESM caricate come script classici #1911

Open

Description

@sajotrei

Problema

Nella release ufficiale v2.10.4, le localizzazioni JavaScript di Moment e FullCalendar vengono caricate come script classici ma gli asset corrispondenti contengono sintassi ESM.

Con lingua italiana, la console del browser riporta:

Uncaught SyntaxError: Cannot use import statement outside a module
.../assets/dist/js/i18n/moment/it.min.js

Uncaught SyntaxError: Unexpected token 'export'
.../assets/dist/js/i18n/@fullcalendar/it.min.js

Riproduzione minima

  1. Installare OpenSTAManager v2.10.4.
  2. Impostare una lingua che carichi le localizzazioni JavaScript (ad esempio italiano).
  3. Aprire una pagina autenticata.
  4. Controllare la console del browser.

Evidenza nel sorgente v2.10.4

  • src/App.php inserisce tra gli asset:
    • i18n/moment/|lang|.min.js
    • i18n/@fullcalendar/|lang|.min.js
  • include/top.php emette tutti gli asset JS come:
<script type="text/javascript" charset="utf-8" src="..."></script>
  • Gli asset generati nei percorsi sopra contengono rispettivamente import ... e export ....

Il gulpfile.js include già @fullcalendar/core/locales/it.global.js nel bundle vendor, mentre la raccolta generalizzata delle localizzazioni pubblica anche file ESM nel percorso assets/dist/js/i18n.

Comportamento atteso

Le localizzazioni devono essere pubblicate in un formato compatibile con il caricamento classico corrente, oppure il loader deve adottare in modo coerente il caricamento dei moduli. La correzione dovrebbe preservare il supporto multi-lingua.

Impatto

Gli errori di console possono compromettere la localizzazione e rendono non affidabile il comportamento delle schermate basate su Moment o FullCalendar.

Nessuna modifica locale viene proposta in questa segnalazione: il problema è riproducibile dalla release ufficiale.

Activity

  1. Andrea-Bruno commented on Oct 11, 2026

    @Andrea-Bruno

    Ciao, abbiamo dato un'occhiata a questa segnalazione e abbiamo preparato una correzione.

    Il problema era che, con la pagina in italiano, il programma carica due piccoli file con le traduzioni del calendario e delle date. Uno di questi, quello del calendario, era scritto in un formato moderno che il caricatore attuale della pagina non sa leggere, e per questo la console del browser mostrava un errore.

    La libreria del calendario mette lo stesso file di traduzione in due formati, uno moderno e uno classico. Il nostro sistema di costruzione dei file prendeva quello moderno e lo pubblicava dove la pagina se lo aspetta classico, e da li' veniva l'errore.

    La correzione dice al sistema di costruzione di prendere il formato classico del calendario e di pubblicarlo con il nome che la pagina si aspetta. Cosi' la pagina trova il file nel formato giusto, l'errore sparisce e la traduzione resta com'e'. Il resto della raccolta delle traduzioni non e' stato toccato.

    La proposta di correzione la trovi qui: #1928

  2. Andrea-Bruno commented on Oct 12, 2026

    @Andrea-Bruno

    Abbiamo preparato una correzione e inviato la pull request #1928.

    Il problema era che il calendario e le date venivano caricati in un formato che il browser non riesce a leggere, cosi non si traducevano in italiano. Abbiamo cambiato il modo in cui vengono caricati questi file, usando le versioni gia pronte per la pagina. In questo modo il calendario e le date risultano correttamente in italiano.

    I dettagli del lavoro sono nella pull request #1928.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions