AEM as a Cloud Service: la cache del ResourceBundle i18n non viene aggiornata dopo le modifiche del dizionario
In Adobe Experience Manager as a Cloud Service, gli aggiornamenti ai file del dizionario i18n in /conf potrebbero non essere visualizzati nella cache di Sling ResourceBundle, causando la visualizzazione di chiavi i18n non risolte da parte delle etichette dell’interfaccia utente al posto del testo tradotto.
Descrizione description
Ambiente
Adobe Experience Manager as a Cloud Service (AEMaaCS)(tutte le versioni)
Problema/Sintomi
- Le chiavi i18n appena aggiunte o aggiornate in
/conf/.../i18n/en.jsonofr.jsonsono presenti nell’archivio JCR ma non compaiono nella cache di Sling ResourceBundle. - Le etichette dell’interfaccia utente visualizzano le chiavi i18n non elaborate (ad esempio,
lblExampleKey) invece del testo tradotto previsto nell’ambiente di authoring. - I tentativi di ricreare le librerie client o di invalidare la cache non risolvono il problema.
Causa
I file del dizionario i18n obsoleti o in conflitto in /conf possono impedire l’aggiornamento della cache di Sling ResourceBundle con nuove chiavi. Questo determina etichette di interfaccia utente non risolte. L’eliminazione dei nodi obsoleti e la garanzia che siano presenti solo i dizionari desiderati consentono alla cache di aggiornare e visualizzare le traduzioni corrette.
Risoluzione resolution
Per risolvere il problema, segui i passaggi seguenti:
- Identificare i file del dizionario i18n obsoleti o in conflitto in
/conf, ad esempio/conf/<project>/i18n/en.jsonefr.json. - Creare un pacchetto di contenuti FileVault con una definizione di filtro che esegue il targeting dei file di dizionario obsoleti per l’eliminazione. Utilizzare
mode="replace"per ogni nodo di dizionario obsoleto che si desidera rimuovere e mantenere vuoto il payload del pacchetto per tali percorsi in modo che l’installazione rimuova i nodi specificati dall’archivio. - Distribuisci il pacchetto nell’ambiente di authoring tramite la pipeline CI/CD.
- Replica le modifiche all’ambiente di pubblicazione per garantire la coerenza su tutti i livelli.
- Verificare che i file obsoleti del dizionario, ad esempio
/conf/<project>/i18n/en.jsonefr.json, non siano più accessibili e restituire una risposta 404 quando si accede direttamente. - Conferma che le etichette dell’interfaccia utente ora risolvano il testo tradotto corretto.
Nota
Se stai eseguendo la migrazione dei dizionari a /apps, aggiungi i nuovi dizionari e assicurati che i vecchi filtri /conf utilizzino la modalità di sostituzione per rimuovere i nodi obsoleti nella stessa versione.
Lettura correlata
Internazionalizzazione di componenti e applicazioni