Fermer

février 12, 2023

Plusieurs langues dans SXA / Blogs / Perficient

Plusieurs langues dans SXA / Blogs / Perficient


Bon retour à Devenir multilingue dans Sitecore. Cela fait un moment que je n’ai pas travaillé sur un site qui avait du contenu en plusieurs langues. J’étais reconnaissant envers moi-même en 2019 d’avoir écrit ces articles. À l’époque, j’utilisais Sitecore 8.X. Aujourd’hui, j’utilise Sitecore 10.X avec SXA. Bien que la plupart des informations soient toujours pertinentes, nous devons modifier certaines choses pour que plusieurs langues fonctionnent avec SXA. Nous allons jeter un coup d’oeil!

Activer plusieurs langues

Dans Sitecore 8, nous avons activé le retour de langue en corrigeant notre configuration et en définissant « enableItemLanguageFallback » sur l’élément de site sur true.

<?xml version="1.0"?>
  <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
      <sites>
        <site name="website">
          <patch:attribute name="enableItemLanguageFallback">true</patch:attribute>
        </site>
      </sites>
    </sitecore>
  </configuration>

Cela ne fonctionne pas dans Sitecore 9 et 10. SXA ne rend pas le site Web « site » de la même manière. Au lieu de cela, ce paramètre est déplacé vers l’élément de regroupement de sites pour un site au sein d’un locataire.

Langue de remplacement Sitecore Sxa multilingue

Même avec ce paramètre coché, notre site ne se repliera pas comme prévu.

Sitecore de secours multilingue non défini

Mise à jour des modèles de données

Pour que notre site affiche la langue de secours correcte, nous devons activer le retour d’élément sur les valeurs standard de nos modèles de source de données. Partie 1 de cette série inclut un script powershell pour créer rapidement les valeurs standard pour tous vos modèles de source de données. Sur mon projet actuel, j’ai pu définir les valeurs standard sur le modèle standard car tous mes modèles de source de données héritent du modèle standard.

Valeurs standard Sitecore multilingues

Comme auparavant, une fois que la propriété de secours de l’élément activé est définie, le site affichera correctement le contenu de secours.

Ensemble de secours Sitecore multilingue

NOTE: J’ai essayé de sérialiser le modèle standard via unicorn. Lorsque l’élément a été déplacé vers un environnement différent, les valeurs standard ne s’appliquaient pas aux sources de données comme prévu. J’ai dû créer manuellement les valeurs standard dans chaque environnement, et cela a parfaitement fonctionné.

Nom de l’élément et nom d’affichage

Le nom de l’élément est le même dans les deux langues, mais vous pouvez définir le nom d’affichage pour chaque langue. Le nom d’affichage devient également une URL alternative pour la page. Considérez les exemples ci-dessous.

  • Nom de l’article : page1
  • Nom d’affichage anglais : (non défini)
  • Nom d’affichage espagnol : (non défini)
  • URL des pages :
    • /Page 1
    • /fr/page1
    • /fr/page1
  • Nom de l’article : page1
  • Nom d’affichage anglais : page 1
  • Nom d’affichage espagnol : (non défini)
  • URL des pages :
    • /Page 1
    • /Page 1
    • /fr/page1
    • /en/page 1
    • /fr/page1
    • /es/page 1 (donne une erreur)
  • Nom de l’article : page1
  • Nom d’affichage anglais : (non défini)
  • Nom d’affichage espagnol : pagina 1
  • URL des pages :
    • /Page 1
    • /fr/page1
    • /fr/pagina 1 (donne une erreur)
    • /fr/page1
    • /fr/page 1
  • Nom de l’article : page1
  • Nom d’affichage anglais : page 1
  • Nom d’affichage espagnol : pagina 1
  • URL des pages :
    • /Page 1
    • /Page 1
    • /fr/page1
    • /en/page 1
    • /fr/pagina 1 (donne une erreur)
    • /fr/page1
    • /fr/page 1
    • /es/page 1 (donne une erreur)

Notez que l’arborescence de contenu utilisera le nom d’affichage de la langue actuelle. Vous devrez peut-être actualiser l’élément parent pour mettre à jour l’arborescence de contenu afin d’obtenir le nom d’affichage correct lorsque vous changez de langue.

Nom d'affichage multilingue de Sitecore en anglais

Nom d'affichage espagnol multilingue de Sitecore

NOTE: N’utilisez pas de caractères spéciaux dans le nom d’affichage car cela complique la saisie manuelle de l’URL.

Les meilleures pratiques

Comme pour toute construction, plus tôt vous connaissez une exigence, plus il est facile de la planifier. Il est préférable d’envisager de devenir multilingue le plus tôt possible dans la création de votre site. Mais parfois ce n’est pas toujours possible. En tant que développeurs, nous pouvons établir le cadre d’un site multilingue avec un minimum d’effort, même si le site n’est jamais traduit dans une autre langue.

Dans SXA, nous utilisons des conceptions partielles pour créer des éléments de nos pages tels que l’en-tête, le fil d’Ariane et le pied de page. Nous utilisons généralement l’éditeur d’expérience pour ajouter les composants à la conception partielle. Par défaut, Sitecore ajoute des composants à la mise en page finale. Si nous ajoutons à la place nos composants à la mise en page partagée, nous rendons toute décision future de devenir multilingue beaucoup plus facile. Vous pouvez passer à la mise en page partagée dans l’éditeur d’expérience en cliquant sur l’onglet de présentation dans le ruban. Cliquez sur le bouton de mise en page et passez à la mise en page partagée. Vous obtiendrez également une bannière bleue en haut de l’éditeur d’expérience vous informant que vous modifiez la mise en page partagée et que votre contenu s’appliquera à toutes les langues.

Éditeur multilingue Sitecore Exerience

Il peut être difficile de dire à partir de l’écran des détails de la présentation si votre mise en page finale est différente de votre mise en page partagée. La meilleure façon de vérifier est d’aller dans l’éditeur de contenu, de cliquer sur l’onglet Affichage dans le ruban et de cocher les cases à côté des champs standard et des valeurs brutes. Développez ensuite la section mise en page. Le champ rendus contient le xml pour la mise en page partagée. Le champ des rendus finaux doit être vide.

Sitecore multilingue Valider la mise en page partagée

Toutes les pièces structurelles sont partagées entre les versions linguistiques. Vous pouvez utiliser la mise en page finale pour les composants basés sur la page. Cela vous donne la plus grande flexibilité pour ajouter des composants à une langue mais pas à une autre. L’ajout des mêmes composants à chaque version linguistique nécessite un travail supplémentaire, mais n’oubliez pas que vous pouvez utiliser la même source de données, le cas échéant, et traduire dans la langue cible.






Source link