AEM as a Cloud Service: i18n ResourceBundle cache not updating after dictionary changes

In Adobe Experience Manager as a Cloud Service, updates to i18n dictionary files under /conf might not appear in the Sling ResourceBundle cache, causing UI labels to display unresolved i18n keys instead of translated text.

Description description

Environment

Adobe Experience Manager as a Cloud Service (AEMaaCS)(all versions)

Issue/Symptoms

  • Newly added or updated i18n keys in /conf/.../i18n/en.json or fr.json are present in the JCR repository but don’t appear in the Sling ResourceBundle cache.
  • UI labels display raw i18n keys (for example, lblExampleKey) instead of the expected translated text in the author environment.
  • Attempts to rebuild client libraries or invalidate the cache don’t resolve the issue.

Cause

Obsolete or conflicting i18n dictionary files under /conf can prevent the Sling ResourceBundle cache from updating with new keys. This results in unresolved UI labels. Deleting the obsolete nodes and ensuring only the intended dictionaries are present allows the cache to refresh and display the correct translations.

Resolution resolution

Follow the steps below to resolve the issue:

  1. Identify obsolete or conflicting i18n dictionary files under /conf, such as /conf/<project>/i18n/en.json and fr.json.
  2. Create a FileVault content package with a filter definition that targets the obsolete dictionary files for deletion. Use mode="replace" for each obsolete dictionary node that you want to remove, and keep the package payload empty for those paths so installation removes the specified nodes from the repository.
  3. Deploy the package through your CI/CD pipeline to the author environment.
  4. Replicate the changes to the publish environment to ensure consistency across all tiers.
  5. Verify that the obsolete dictionary files, such as /conf/<project>/i18n/en.json and fr.json, are no longer accessible and return a 404 response when accessed directly.
  6. Confirm that UI labels now resolve to the correct translated text.

Note

If you’re migrating dictionaries to /apps, add the new dictionaries there and ensure the old /conf filters use replace mode to remove obsolete nodes in the same release.

Internationalizing Components and Applications

recommendation-more-help
experience-cloud-kcs-help-kbarticles