Création de sites multilingue avec WordPress et WPML

Création de site multilingue avec WordPress et WPML
La création de sites Web multilingue avec WordPress n’a jamais été une tâche facile, heureusement il y a plusieurs extensions pour nous aider.

Nous verrons aujourd’hui comment utiliser l’extension WPML pour créer des sites WordPress en plusieurs langues.

Il est à noter que la version gratuite de WPML est compatible jusqu’à la version 3.0.5 de WordPress, sinon la version payante vaut l’investissement.

Ce que WPML peut faire pour vous:

  • Traduire vos pages, articles, custom post type, taxonomy et menus.
  • Traduire vos extensions.
  • Traduire les chaînes de caractères de votre thème.

1 – Installer et configurer WPML

La version payante de WPML comprend plusieurs extensions comparativement à l’ancienne version gratuite qui regroupait toutes les fonctionnalités par défaut. Ceci permet d’activer seulement les modules utiles à nos besoins.

Nous installerons seulement les deux modules/extensions les plus importants.

  • WPML Multilingual CMS
    Le coeur de l’extension qui permet de traduire les pages, articles, etc…
  • WPML String Translation
    Permets la traduction de textes dans le thème, dans d’autres extensions et dans l’administration WordPress.

Après l’installation, suivez les instructions de configuration.

Configurer WPML

  1. Sélectionner la langue principale de votre site.
  2. La seconde étape consiste à choisir les langues supplémentaires.
  3. Pour la dernière étape, les réglages par défaut font parfaitement l’affaire.

2 – Traduire les chaînes de votre thème

Trouver les chaînes

Cette étape consiste à trouver toutes les chaînes de caractère de votre site et de les insérer dans cette fonction _e('chaine à traduire') ou celle-ci __('chaine à traduire').

La différence entre ces deux fonctions est simple, la première echo une chaîne et la seconde retourne une chaîne.

Traduire les chaînes

Avant de traduire les chaînes de caractère de votre thème, vous devez balayer votre thème.

Dans la section » Localisation du thème et des modules d’extension » sélectionnée « Traduire à l’aide de WPML. »

Activer WPML String Translation

Plusieurs sections s’afficheront alors, vous pourriez donc balayer votre thème pour permettre à WPML de trouver les chaînes de votre site.

Scanner votre theme wordpress

WPML recherche toutes les chaînes _e(«  ») de votre thème. Après le balayage effectué, rendez-vous dans la section « Traduction de chaîne » et il ne vous reste plus qu’à traduire les différentes chaînes trouvées par WPML.

Traduction de chaînes dans wordpress avec WPML

3 – Traduire vos pages de contenu

Il y a plusieurs façons de traduire une page de contenu, une façon simple d’y arriver est d’aller dans la section « Pages » de votre administration WordPress.

Traduire les pages de contenu dans WordPress avec WPML
Appuyer sur le petit plus bleu de la page à traduire et WPML créera automatiquement une traduction de la page. Il vous est même possible de copier le contenu de la page d’origine pour conserver la mise en page et les images par exemple.

Copier le contenu de la page d'origine dans WordPress avec WPML

4 – Traduire vos menus

Si vous utilisez l’éditeur de menu, la traduction se fait de la même façon que les pages.

Traduction de menu dans WordPress avec WPML

Quelques trucs complémentaires

Construire un menu manuellement

<div id="menu">
	<ul>
		<li><?php echo icl_link_to_element(PAGE_ID); ?></li>
		<li><?php echo icl_link_to_element(PAGE_ID); ?></li>
		<li><?php echo icl_link_to_element(PAGE_ID); ?></li>
		<li><?php echo icl_link_to_element(PAGE_ID); ?></li>
		<li><?php echo icl_link_to_element(PAGE_ID); ?></li>
	</ul>
</div><!--menu-->

Remplacer seulement « PAGE_ID » par l’ID des pages désiré.

Lien pour changer de langue

Le changement de langue par défaut se fait à l’aide d’un menu déroulent, se qui n’est pas très esthétique.

// Changement de langue
function icl_post_languages(){
	$languages = icl_get_languages('skip_missing=0');
	foreach($languages as $l){
	  if(!$l['active']) $langs[] = '<a href="'.$l['url'].'">'.$l['native_name'].'</a>';
	}
	echo join(', ', $langs);
}

Copier tout simplement cette fonction dans le fichier fonction.php de votre thème.

<?php icl_post_languages(); ?>

Puis copier ceci à l’endroit désiré soit normalement dans le header.php ou sidebar.php pour afficher un lien de changement de langue.

Construire un lien

<a href="<?php echo get_permalink(icl_object_id(219, 'page')); ?>"><?php _e('Lorem ipsum dolor sit'); ?></a>

Voilà, j’espère que ce tutoriel vous aidera dans vos projets multilingues WordPress. N’hésitez pas à consulter l’API WPML pour plus d’informations sur les fonctions utilisées dans ce tutoriel.

À votre tour

De quelle façon faites-vous vos transitions de langue dans WordPress? Avez-vous rencontré des difficultés? Faites-moi savoir!

Eric Valois

Publication

Dernière modification

Catégorie

Sujets