AEM as a Cloud Service:更改字典后,i18n资源包缓存未更新

在Adobe Experience Manager as a Cloud Service中,/conf下的i18n词典文件的更新可能不会显示在Sling ResourceBundle缓存中,这会导致UI标签显示未解析的i18n键而非翻译的文本。

描述 description

环境

Adobe Experience Manager as a Cloud Service (AEMaaCS)(所有版本)

问题/症状

  • /conf/.../i18n/en.jsonfr.json中新添加或更新的i18n键存在于JCR存储库中,但未出现在Sling ResourceBundle缓存中。
  • UI标签在创作环境中显示原始i18n键(例如,lblExampleKey),而不是预期的翻译文本。
  • 尝试重建客户端库或使缓存失效并不能解决此问题。

原因

/conf下的i18n词典文件过时或冲突,可能会阻止Sling ResourceBundle缓存使用新密钥进行更新。 这会导致UI标签无法解析。 删除过时的节点并确保仅存在所需的词典,这样缓存就可以刷新并显示正确的翻译。

解决方法 resolution

请按照以下步骤解决问题:

  1. 识别/conf下过时或冲突的i18n词典文件,如/conf/<project>/i18n/en.jsonfr.json
  2. 创建带有过滤器定义的FileVault内容包,该过滤器定义用于定向要删除的过时字典文件。 对要删除的每个过时的字典节点使用mode="replace",并将这些路径的包有效负载保留为空,以便安装从存储库中删除指定的节点。
  3. 通过CI/CD管道将包部署到创作环境。
  4. 将更改复制到发布环境,以确保所有层之间的一致性。
  5. 验证已过时的词典文件(如/conf/<project>/i18n/en.jsonfr.json)是否不再可访问,并在直接访问时返回404响应。
  6. 确认UI标签现在可解析为正确的已翻译文本。

注释

如果您要将字典迁移到/apps,请在该处添加新的字典,并确保旧/conf筛选器使用替换模式删除同一版本中过时的节点。

相关阅读

国际化组件和应用程序

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