AEM as a Cloud Service : le cache ResourceBundle i18n ne se met pas à jour après les modifications du dictionnaire
Dans Adobe Experience Manager as a Cloud Service, les mises à jour apportées aux fichiers de dictionnaire i18n sous /conf peuvent ne pas apparaître dans le cache Sling ResourceBundle, ce qui entraîne l’affichage de clés i18n non résolues au lieu d’un texte traduit dans les libellés de l’interface utilisateur.
Description description
Environnement
Adobe Experience Manager as a Cloud Service (AEMaaCS) (toutes les versions)
Problème/Symptômes
- Les clés i18n nouvellement ajoutées ou mises à jour dans
/conf/.../i18n/en.jsonoufr.jsonsont présentes dans le référentiel JCR, mais n’apparaissent pas dans le cache ResourceBundle Sling. - Les libellés de l’interface utilisateur affichent des clés i18n brutes (par exemple,
lblExampleKey) au lieu du texte traduit attendu dans l’environnement de création. - Les tentatives de reconstruction des bibliothèques clientes ou d’invalidation du cache ne résolvent pas le problème.
Cause
Les fichiers de dictionnaire i18n obsolètes ou en conflit sous /conf peuvent empêcher la mise à jour du cache ResourceBundle Sling avec de nouvelles clés. Cela entraîne des libellés d’interface utilisateur non résolus. La suppression des nœuds obsolètes et la vérification que seuls les dictionnaires prévus sont présents permettent au cache d’actualiser et d’afficher les traductions correctes.
Résolution resolution
Suivez les étapes ci-dessous pour résoudre le problème :
- Identifier les fichiers de dictionnaire i18n obsolètes ou en conflit sous
/conf, tels que/conf/<project>/i18n/en.jsonetfr.json. - Créez un package de contenu FileVault avec une définition de filtre qui cible les fichiers de dictionnaire obsolètes à supprimer. Utilisez
mode="replace"pour chaque nœud de dictionnaire obsolète à supprimer et laissez la payload du package vide pour ces chemins d’accès afin que l’installation supprime les nœuds spécifiés du référentiel. - Déployez le package par le biais de votre pipeline CI/CD vers l’environnement de création.
- Répliquez les modifications dans l’environnement de publication pour garantir la cohérence sur tous les niveaux.
- Vérifiez que les fichiers de dictionnaire obsolètes, tels que
/conf/<project>/i18n/en.jsonetfr.json, ne sont plus accessibles et renvoyez une réponse 404 lorsqu’ils sont directement accessibles. - Vérifiez que les libellés de l’interface utilisateur sont désormais résolus sur le texte traduit correct.
Remarque
Si vous migrez des dictionnaires vers /apps, ajoutez les nouveaux dictionnaires et assurez-vous que les anciens filtres /conf utilisent le mode de remplacement pour supprimer les nœuds obsolètes dans la même version.
Lecture connexe
Internationalisation de composants et d’applications