Contrôle du comportement du filtre de commutation de langue
Vous pouvez gérer le comportement de commutation de langue d'HCL Digital Experience à l'aide d'un filtre de servlet intégré. Vous pouvez ainsi contrôler la façon dont le portail détermine la langue du rendu des portlets.
Par défaut, HCL Digital Experience 8.5 reconnaît si un code de langue général est secondaire ou plus bas dans la liste des priorités du navigateur. Il ignore toutes les variations régionales sans correspondance directe avec une langue définie par le portail. Par exemple, si la liste d'environnements locaux de navigateur indique "ja-JP", "de", "ja"
, le portail ignore l'entrée "ja-JP"
et effectue une rétromigration vers la deuxième entrée, "de"
. Il reconnaît que "ja-JP"
n'a pas de correspondance parmi les environnements locaux définis dans le portail et que la version plus générique "ja"
de cet environnement est située plus loin dans la liste que "de"
. Ce comportement est conforme à la spécification HTTP.
Le filtre de servlet de commutation de langue intégré prend en charge un mode qui étend le comportement de commutation de langue. Si vous activez ce mode de commutation de langue étendu, le portail effectue une commutation de toutes les entrées et supprime les doublons des environnements locaux de commutation détectés plus loin dans la liste. Dans l'exemple décrit précédemment avec la liste d'environnements locaux de navigateur "ja-JP", "de", "ja"
, le portail détermine que "ja-JP"
ne correspond à aucun environnement local défini dans le portail. Par conséquent, il exécute une rétromigration vers l'environnement local défini dans le portail "ja"
. Il utilise "ja"
comme environnement local approprié et ignore la troisième entrée "ja"
dans la liste. Il en résulte la liste d'environnements locaux suivante utilisée par le portail : "ja", "de"
. Ce mécanisme de commutation contourne le suivi strict de la spécification HTTP d'acceptation et d'affichage des langues en utilisant à la place l'option de commutation. De la sorte, HCL Portal 8.5 se comporte également comme les versions antérieures du portail.
engine.enableExtendedLanguageFallback=true
. Procédez comme suit : - Ouvrez la console WebSphere® Integrated Solutions Console.
- Sélectionnez le fournisseur d'environnement de ressources WP ConfigService.
- Dans la section Propriétés personnalisées, ajoutez la propriété
engine.enableExtendedLanguageFallback
et affectez-lui la valeurtrue
. - Sauvegardez vos modifications.
- Redémarrez HCL Portal pour que les modifications prennent effet.
Exemple : Supposons que le navigateur envoie l'en-tête Accept-Language "DE_de, en"
. Cette combinaison signifie que l'utilisateur que la première priorité est l'allemand parlé en Allemagne, puis l'anglais, mais pas l'allemand général. Dans un scénario de portail, ces préférences auraient pour conséquence de servir des ressources dans la langue "en"
, même si la langue "de"
est prise en charge (mais non acceptable selon l'en-tête). Le mode de commutation de langue par défaut permet d'ajouter tous les environnements locaux de commutation à l'en-tête tout en conservant l'ordre relatif des environnements locaux d'origine dans l'en-tête. Le résultat serait "DE_de, en, de"
, avec la rétromigration vers "de"
après "en"
pour correspondre aux préférences de l'utilisateur.
A l'opposé, le mode de commutation de langue par défaut donne priorité aux commutations sur l'ordre d'origine des environnements locaux dans l'en-tête. Pour "DE_de, en"
, le filtre générerait "DE_de, de, en"
et toutes les rétromigrations pour "DE_de"
auraient la même priorité relative que "DE_de"
.
- Modifiez le fichier
wp_profile_root/config/cells/node-name/applications/wps.ear/deployments/wps/wps.war/WEB-INF/web.xml
. - Recherchez la section suivante :
<filter> <filter-name>Locale Filter</filter-name> <filter-class>com.ibm.wps.engine.ExtendedLocaleFilter</filter-class> </filter>
- Remplacez la classe de filtre
com.ibm.wps.engine.ExtendedLocaleFilter
par le nom de classe de votre filtre de langue personnalisé. - Enregistrez le fichier.
- Redémarrez HCL Portal pour que les modifications prennent effet.
- Si vous supprimez une langue du portail, les deux filtres se basent sur les environnements locaux définis en dernier. Par exemple, si vous retirez le japonais (
"ja-JP"
,"ja"
) des environnements locaux définis dans le portail, la liste des environnements locaux du navigateur spécifie"ja-JP,de,ja"
. Dans ce cas, le portail reconnaît que"ja-JP"
et"ja"
ne correspondent à aucun des environnements locaux définis par le portail. Par conséquent, il ignore les entrées"ja-JP"
et"ja"
. A la place, il effectue une rétromigration vers la seconde entrée, nommée"de"
. - HCL Web Content Manager n'utilise pas de portlets et par conséquent ne peut pas appliquer le filtre que le portail utilise pour ceux-ci. Par conséquent, si votre installation de portail comprend Web Content Manager, vous devez définir le filtre personnalisé dans le fichier Web Content Manager
web.xml
sous l'emplacement de répertoirewp_profile_root/config/cells/node-name/applications/wcm.ear/deployments/wcm/ilwwcm.war/WEB-INF/
. Remplacez le filtre étendu comme décrit précédemment et redémarrez le portail.Si vous utilisez la distribution par servlet plutôt que la distribution par portlet, vous devez éditer
web.xml
sous l'emplacement de répertoirewp_profile_root/config/cells/node-name/applications/PA_WCM_Authoring_UI.ear/deployments/PA_WCM_Authoring_UI/ilwwcm-authoring.war/WEB-INF/
.