WPML le plugin multi-langue pour wordpress

WPML est un plugin qui permet de rendre un site wordpress multi langue. Cependant, il nécessite quelques notions en php et des connaissances des templates tags de wordpress. Le site officiel : http://wpml.org et le lien de téléchargement : ici

Construire le bloc de sélection des langues

Code à placer dans header.php pour afficher les langues sélectionnées au préalable depuis le back-office :

[php]<?php language_selector_flags();?>[/php]

Rendre la navigation entièrement multi-langue

Certains thèmes possèdent des navigations en « dure », c’est à dire que pour un affichage très spécial, le développeur à choisi de ne pas utiliser la fonction classique pour afficher un menu (depuis wordpress 3 la navigation à été énormément simplifiée et permet une customisation des menus, elle est accessible depuis l’onglet Apparence/Menus )ou par exemple le footer qui en général est développé en dur. Pour pallier à ce problème :

[php]<?php icl_link_to_element(3,’page’); ?>[/php]

3 : id de la page, post ou catégorie. page: type de l’élément (page, tag, category,post,…) Plus d’information sur cette fonction ici

Et les textes statiques et les plugins ?

2 solutions :

  • Faire un if ou un switch en php :
[php] if(ICL_LANGUAGE_CODE ==’en’){ $ma_traduction = ‘Home’; } else{ if(ICL_LANGUAGE_CODE ==’fr’){ $ma_traduction = ‘Accueil’; } else{ if(ICL_LANGUAGE_CODE ==’de’){ $ma_traduction =  ‘Aufnahme’; } else{ $ma_traduction = ‘Home’; } } } [/php]
  • Utiliser la fonction icl_register_string() et icl_t() (meilleur des 2 solutions) :

Principe : Permet de modifier les textes directement depuis l’interface d’admin (WPML/String translation):

Installation :

  • 1)Enregistrer un nouveau texte comme une variable php :

$context : contexte permet simplement de retrouver la traduction facilement depuis l’onglet string translation exemple : « footer ». $name : nom de la traduction : « mon-slogan-du-footer ». $value : valeur de la traduction en langue par défaut : « Développeur WordPress en freelance, Actus, Tutos, Plugins & Portfolio ».

[php]icl_register_string($context, $name, $value)[/php]
  • 2)Afficher la variable :
[php]icl_t($context, $name, $value)[/php]
  • 3) Scanner le thème pour que WPML récupère la traduction :

  • 4) Traduire dans les différentes langues depuis l’onglet WPML/string translation de l’admin:

Documentation anglaise :

http://wpml.org/documentation/support/translation-for-texts-by-other-plugins-and-themes/

Laisser un commentaire

1 Commentaires

  1. Salut.
    Merci pour le tuto!

    J’essaie de rendre traductibles les options d’un plugin que j’ai fait.
    J’ai réussi a faire le icl_register_string() et traduire la chaine dans WPML , avec la status « Traduction Complete »

    Mais je n’arrive pas a afficher le contenu de ma variable « upload_image_overlay » traduite en front, c’est toujours la version non traduite qui est retournée.

    En front j’utilise cette fonction pour afficher:

    if (function_exists(‘icl_t’)) {
    $img_overlay_url = icl_t(‘admin_texts_plugin_fb-like-detect’, ‘upload_image_overlay’, get_option(‘upload_image_overlay’));
    }
    echo $img_overlay_url;

    LA fonction retourne toujours la chaine non traduite (fr) même si je suis bien en anglais et que la locale

    Queque chose m’échappe ou bien …?

    Merci d’avance pour votre aide.