AEM as a Cloud Service:ディクショナリの変更後にi18n ResourceBundle キャッシュが更新されない

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

問題を解決するには、次の手順に従います。

  1. /conf/<project>/i18n/en.jsonやfr.jsonなど、/confの下にある古いi18n ディクショナリファイルまたは競合するi18n ディクショナリファイルを識別します。
  2. 古い辞書ファイルを削除の対象とするフィルター定義を使用して、FileVault コンテンツパッケージを作成します。 削除する古いディクショナリノードごとにmode="replace"を使用し、それらのパスのパッケージペイロードを空にして、インストールによって指定されたノードをリポジトリから削除します。
  3. CI/CD パイプラインを介してパッケージをオーサー環境にデプロイします。
  4. 変更内容をパブリッシュ環境にレプリケートして、すべての階層で一貫性を確保します。
  5. /conf/<project>/i18n/en.jsonやfr.jsonなどの古い辞書ファイルにアクセスできないことを確認し、直接アクセスすると404応答を返します。
  6. UI ラベルが正しい翻訳済みテキストに解決されていることを確認します。

メモ

辞書を/appsに移行する場合は、新しい辞書をそこに追加し、古い/conf フィルターが置換モードを使用して同じリリースの古いノードを削除することを確認します。

関連トピックス

​ コンポーネントとアプリケーションの国際化

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