par anonyme 06-Avril-2022

Est-il possible de mettre l'outil de traduction Google traduction sur son site web, de telle manière que l'utilisateur puisse choisir une langue pour traduire le site Web ?

1 Réponse

par Antoine 06-Avril-2022

Google met à disposition son outil Google traduction pour les webmasters. Pour mettre Google traduction sur un site web, il vous suffit de :

  • Créer une balise <div> où le menu de choix de langue s'affichera.
  • Ajouter la fonction JavaScript fournie par Google.
  • Spécifier la langue d'origine dans le code JavaScript.
  • Appeler l'API de Google traduction.

Voici un exemple pour mettre Google traduction sur son site web pour que l'internaute puisse traduite une page dans la langue de son choix :

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Comment mettre Google traduction sur un site web ?</title>
</head>
<body>
  <p>Bonjour, cette page est écrite en français</p> 
  <div id="menu_traduction"></div>   
  <script> 
  function googleTranslateElementInit(){ 
    new google.translate.TranslateElement({pageLanguage: 'fr'}, 'menu_traduction'); 
  } 
  </script>     
  <script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 
</body>
</html>
par anonyme 12-Novembre-2022

Bonjour,
Script assez sympa (en tout cas je l'ai essayé il fait de travail, il traduit ...) mais j'aurai quelques questions.

Peut-on directement traduire un site en fonction de la langue du navigateur plutôt que d'avoir un menu déroulant demandant de choisir la langue ?

Est-il possible d'enlever toutes les annotations "traduit par Google" de façon à ce que ça ait l'air un peu plus "professionnel" ? (et mettre quelque part sur le site que les traductions sont fournies par Google traduction, dans les crédits par exemple).

Le script traduit toute la page d'un coup. Est-il possible de ne traduire qu'une portion d'une page ?

Merci

par Antoine 12-Novembre-2022

Tout en utilisant la méthode ci-dessus, le seul moyen de traduire une portion d'un site Web est d'ajouter l'attribut translate, avec sa valeur no, aux contenus qui ne doivent pas être traduits :

<p translate="no">Ce paragraphe ne doit pas être traduit</p>

Pour traduire un site automatiquement, sans qu'apparaisse les références à Google, et tout en utilisant Google translate, vous devez utiliser leur API, et celle-ci est payante.

Une autre alternative, tout en utilisant la partie gratuite de Google Translate, est de charger votre site via l'URL de Google Translate.

Exemple avec la page d'accueil d'1FORMATIK.com : https://www-1formatik-com.translate.goog/?_x_tr_sl=fr&_x_tr_tl=en

Si cette dernière solution vous convient, il vous suffit de détecter la langue du navigateur puis ensuite de rediriger l'utilisateur vers la bonne URL comme explicité ci-dessus.

Voici un exemple pour traduire automatiquement le site de la BBC dans la langue du navigateur :

<script>
var langue_navigateur = navigator.language || navigator.userLanguage; 
var langue = langue_navigateur.slice(0,2);
window.location.replace("https://www-bbc-com.translate.goog/?_x_tr_sl=en&_x_tr_tl=" + langue + "");
</script>
par anonyme 14-Novembre-2022

Merci pour votre réponse.
En fait oui j'avais traduit mon site via Google Traduction, récupéré l'URL donnée et j'avais fait un switch / case (avec un $_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2 dans le switch et le code de la langue dans chaque case (si la langue = en alors on affiche le site en anglais, si la langue = fr alors on affiche le site en français ... avec l'url récupérée de Google Traduction dans un header location) mais j'avais l'impression que c'était du "bricolage" alors je voulais savoir si techniquement il y avait une façon plus propre de le faire.

Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses d'Antoine et d'autres internautes.

2.6k questions

3k réponses

...