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.json或fr.json中新添加或更新的i18n键存在于JCR存储库中,但未出现在Sling ResourceBundle缓存中。- UI标签在创作环境中显示原始i18n键(例如,
lblExampleKey),而不是预期的翻译文本。 - 尝试重建客户端库或使缓存失效并不能解决此问题。
原因
/conf下的i18n词典文件过时或冲突,可能会阻止Sling ResourceBundle缓存使用新密钥进行更新。 这会导致UI标签无法解析。 删除过时的节点并确保仅存在所需的词典,这样缓存就可以刷新并显示正确的翻译。
解决方法 resolution
请按照以下步骤解决问题:
- 识别
/conf下过时或冲突的i18n词典文件,如/conf/<project>/i18n/en.json和fr.json。 - 创建带有过滤器定义的FileVault内容包,该过滤器定义用于定向要删除的过时字典文件。 对要删除的每个过时的字典节点使用
mode="replace",并将这些路径的包有效负载保留为空,以便安装从存储库中删除指定的节点。 - 通过CI/CD管道将包部署到创作环境。
- 将更改复制到发布环境,以确保所有层之间的一致性。
- 验证已过时的词典文件(如
/conf/<project>/i18n/en.json和fr.json)是否不再可访问,并在直接访问时返回404响应。 - 确认UI标签现在可解析为正确的已翻译文本。
注释
如果您要将字典迁移到/apps,请在该处添加新的字典,并确保旧/conf筛选器使用替换模式删除同一版本中过时的节点。
相关阅读
recommendation-more-help
experience-cloud-kcs-help-kbarticles