Traduire les menus avec WPML

Il y a plusieurs manières de gérer la traduction des menus dans WPML qui sont plus ou moins adaptées à des situations particulières.

Nous avons choisi d'aborder deux de ces manières, la première est une approche plus automatisée qui convient lorsqu'un menu dans une langue étrangère doit avoir la même organisation que le menu d'origine. La seconde approche est quant à elle plus manuelle, elle vous laisse plus de liberté pour gérer vos différentes traductions de menu de manière désynchronisée. 

Important: Si votre site utilise l'extension Ubermenu pour gérer les menus de votre site, vous ne pouvez pas à ce jour utiliser la méthode 2 au risque de casser vos menus lors de la synchro, vous devez donc gérer vos menus de manière manuelle comme expliqué à la méthode 1.

Pour vérifier si votre site utilise Ubermenu il vous suffit de survoler l'onglet "Apparence" dans la barre latérale de Worpdress et de voir si il y a un sous-onglet intitulé "Ubermenu"?

Méthode 1: Traduire les menus manuellement

La méthode manuelle a l'avantage de proposer d'avantage de souplesse car elle permet d'entretenir les versions traduites d'un menu de manière complètement indépendante. Vous pouvez ainsi avoir un menu principal anglais proposant des éléments radicalement différents du menu original français.

1 - Accédez à l'éditeur de menus Wordpress et sélectionnez le menu à traduire.

Allez sur Apparence > Menus et vérifiez que la langue couramment active est bien la langue principale (drapeau dans la barre supérieure).

Sélectionnez le menu à traduire à l'aide du menu déroulant situé en haut à côté de l'intitulé "Sélectionnez le menu à modifier" (Ici nous avons choisi un menu intitulé "Principal"), puis cliquez sur "Sélectionner".

selection menu

Ici le menu principal a été sélectionné et on voit les éléments qui le constituent (Accueil, À Propos, Contact) dans la partie basse de la capture.

2 - Générer une nouvelle traduction ou accéder à une traduction existante.

Vous avez peut-être déjà une traduction pour le menu sélectionné que vous souhaitez actualiser ou bien vous souhaitez créer une traduction qui pour l'instant n'existe pas.

langues dispos menu

L'encadré rouge de la capture vous indique par la présence du crayon que ce menu "Principal" possède déjà une traduction en catalan et en espagnol tandis que le "+" vous indique que la version anglaise n'existe pas encore et reste à générer. Cliquer sur le menu à actualiser ou à générer selon ce que vous souhaitez.

Important: Vous trouverez un lien "Synchroniser les menus entre les langues" sous l'encadré rouge. Ne cliquez sur ce lien que si vous savez ce que vous faites. Pour mieux comprendre l'impact de la synchronisation veuillez lire l'intégralité de cette page.

3 - Créer votre nouveau menu

Pour notre part nous avons décidé de créer le menu anglais qui n'existait pas encore, nous sommes donc redirigés vers un menu vide ou nous allons commencer par lui donner un nom et l'enregistrer une première fois.

creation menu anglais

L'encadré rouge situé en haut est la zone où l'on indique le nom de son menu, ici nous avons saisi "Main" (Principal en anglais). En bas nous trouvons le bouton "Créer le menu" qui permet de sauvegarder ce nouveau menu qui pour l'instant est vide.

4 - Composez votre nouveau menu

Maintenant que notre nouveau menu est créé nous allons pouvoir insérer des éléments à l'intérieur en venant piocher dans la colonnes de gauche listant les différents contenus disponibles sur notre site.

composition menu anglais

Dans l'encadré rouge situé à gauche on retrouve la liste des éléments qui peuvent être insérés dans notre menu, dans l'encadré du centre nous voyons les éléments que nous avons ajoutés à notre menu qui sont les pages Home, À Propos et Contact. Il nous suffit maintenant de sauvegarder notre nouveau menu.

Méthode 2: Menu Synchronisé automatiquement par WPML

Avec cette méthode l'outil de synchronisation des menus tend à garder vos menus dans différentes langues synchronisés. Il fait cela en ajoutant, supprimant et en mettant à jour les éléments des menus traduits en se référent à l'état dans le menu de la langue originale.

Important: Comme évoqué en début de guide, cette méthode très pratique n'est pas compatible avec toutes les configurations de Wordpress. Si par exemple votre site utilise Ubermenu, cette méthode destructurera votre menu. Cela est dû au fait que Ubermenu propose des éléments de menu qui n'ont pas été prévus pour être synchronisés.

1 - Accédez à l'interface de synchronisation des menus

Allez sur WPML > WP Menus Sync.

menu sync 1 1

Dans la capture ci-dessus, vous avez un aperçu de l'état de vos menus et dans les différentes langues.

2 - Cliquez sur le bouton Sync

synchroniser

Cliquer sur le bouton "Synchroniser" (Sync en anglais) pour que WPML lance un processus d'évaluation des différences entre les menus dans leur langue principale et leurs correspondances étrangères.

menu sync 2 1

Une fois le processus d'évaluation terminé, WPML vous liste l'ensemble des modifications qu'il va opérer sur vos menus si vous appliquez vos changements. À ce moment si vous avez des doutes il vous est possible d'annuler l'opération ou bien de valider l'opération.

À présent, tous les éléments des menus en langue originale qui correspondent à des contenus compatibles avec WPML (pages, articles, catégories, étiquettes, produits, catégories de produit, étiquettes de produits...) et qui ont été traduis se retrouve dans les menus en langue étrangère. Les homologues étrangers des éléments présents dans les menus originaux qui auraient été mis à jour ou supprimés sont rafraichis.

3 - Traduire les liens personnalisés d'un menu synchronisés

Tous les éléments synchronisés d'un menu prennent le titre du contenu traduit auquel ils se réfèrent, par exemple si le menu principal contenait la page "À Propos" et que cette page avait bien une traduction anglaise (Intitulée par exemple  "About") alors le menu anglais ferait apparaitre l'élément "About" automatiquement.

Donc tous les contenus gérés dans Wordpress sont synchronisés de cette manière, cependant dans un menu il est possible de mettre des liens personnalisés et comme ces liens sont des éléments autonomes qui ne sont rattachés à aucun contenu structuré par Wordpress, il faut pourvoir les traduire d'une autre manière.

Pour traduire les liens on utilise l'interface de gestion de chaîne de WPML

a - Synchronisez vos menu

Allez dans WPML > Synchroniser les menus WP et cliquer sur Synchroniser afin que les liens personnalisés des menus originaux s'ajoutent aux menus traduits.

b - Accédez au gestionnaire de chaînes du menu

Une fois la synchronisation effectuée, retournez sur WPML > Synchroniser les menu WP et cliquez sur le lien portant le nom de votre menu comme sur la capture ci-dessous.

wpml menu sync 1

Ici le menu pour lequel nous souhaitons ouvrir le gestionnaire de chaînes s'intitule "Main menu" 

c - Traduisez les liens

Une fois sur l'interface de gestion des chaînes vous constatez que la liste ne fait remonter que les liens du "Main menu".

Dès lors il vous suffit de cliquer sur le petit "+" ou le crayon en vis-à-vis de la chaîne à traduire.  

wpml menu sync 2

Cliquer sur le "+" pour créer une nouvelle traduction de ces chaînes.

c - Resynchronisez les menus

Maintenant que vous avez traduit les chaînes de caractères correspondantes aux liens du menu, il vous suffit de resynchroniser le menu avec ces traductions soient pris en considération dans les menus.

Allez dans WPML > Synchronisation des menus WP puis cliquez sur "Synchroniser".

Une fois la synchronisation effectuée votre traduction doit apparaitre côté client.