web-dev-qa-db-fra.com

Mode d'affichage automatique de Google Website Translator

J'essaie d'inclure le traducteur de site Web Google sur mon site Web. Je veux utiliser la fonction automatique pour que la barre apparaisse si la langue de votre navigateur est différente de celle de la page. Chaque fois que je sélectionne le mode d'affichage automatique, le code qu'il me donne est destiné à "onglets". Quelqu'un peut-il me dire ce que je fais mal ou fournir le bon code? 

Merci d'avance.

MODIFIER:

<div id="google_translate_element"></div>
<script type="text/javascript">
    function googleTranslateElementInit() {
        new google.translate.TranslateElement({pageLanguage: 'en', layout:     google.translate.TranslateElement.FloatPosition.TOP_LEFT},     'google_translate_element');
    }
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
10
user2532030

Tout en essayant de comprendre pourquoi l'auto-affichage ne fonctionnait pas, c'est-à-dire que le menu de traduction était toujours affiché, j'ai trouvé le vérificateur d'internationalisation du W3C: http://validator.w3.org/i18n-checker/

Le vérificateur d'internationalisation du W3C m'a averti que les en-têtes d'acceptation retournaient: Accept-Language: en-US, en; q = 0.8

Le code généré par Google que j'ai collé à l'origine dans les fichiers de mon site n'avait qu'une valeur pour vérifier la langue de la page. Mais je l'ai modifiée, voir ci-dessous, et passé un tableau dans la clé pageLanguage et je pense que cela fonctionne maintenant.

<div id="google_translate_element"></div>
<script type="text/javascript">
    function googleTranslateElementInit() {
        new google.translate.TranslateElement({pageLanguage: ['en', 'en-us'], autoDisplay: false, multilanguagePage: true, gaTrack: true, gaId: 'UA-403844-8'}, 'google_translate_element');
    }
</script>
<script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

J'ai fait des tests du mieux que je pouvais en modifiant les paramètres de langue dans Google Chrome. Mais je ne crois pas vraiment que cela fonctionne. Le menu de traduction doit apparaître pour toute personne n'ayant pas configuré en ou en-US dans leur navigateur. Vous pouvez transmettre n'importe quelle langue à la baie de disques pour la configurer correctement en fonction de vos besoins.

Si quelqu'un a des commentaires à ce sujet, je l'apprécierais. J'espère que ça aide.

2
podoglyph

J'ai vu un autre exemple ici: 

Détecte la langue préférée de l'utilisateur et Google Translate automatiquement

Cela avait le paramètre autoDisplay: false,

Pour obtenir uniquement la barre de traduction lorsque la langue du site ne correspond pas, j'ai supprimé le conteneur et utilisé autoDisplay: true,

Je reçois la barre dans une autre langue, mais pas de liste déroulante. 

2
gm-sb
<div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
  new google.translate.TranslateElement({pageLanguage: 'id', includedLanguages: 'id', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1
jeffrey

C'est drôle comment la récupération de code de Google pour la fonction automatique du traducteur est brisée, n'est-ce pas? J'ai essayé plusieurs itérations dans le niveau Rincevent Wizard elles devaient effectuer la configuration personnalisée, mais la valeur par défaut était une fonction Onglet qui ne correspond pas à la conception de mon site Web.

Ceci est pour un site anglais, changez le code de langue pour la langue par défaut de votre site où la barre n'est pas censée être affichée. Supprimez le suivi si vous ne l'utilisez pas.

<!-- <div id="google_translate_element"></div> -->
<script type="text/javascript">
    function googleTranslateElementInit() {
        new google.translate.TranslateElement({
        pageLanguage: 'en', 
        autoDisplay: true,
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 
        gaTrack: true, gaId: 'UA-xxxxxx-x'
        }, 'google_translate_element');
    }
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
0
Fiasco Labs
<div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
  new google.translate.TranslateElement({pageLanguage: 'en', autoDisplay: false}, 'google_translate_element');
}
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
0
user7491434

Pour afficher le traducteur uniquement lorsque votre page est différente de la page de l'utilisateur, effectuez une vérification côté serveur et n'incluez le code que si nécessaire.

Voir Obtenir la langue du navigateur

Votre URL est incorrecte. Ajoutez "http:". Voir l'exemple de travail ci-dessous.

<div id="google_translate_element"></div>

<script type="text/javascript">

function googleTranslateElementInit() {
  new google.translate.TranslateElement({pageLanguage: 'en',
    layout: google.translate.TranslateElement.FloatPosition.TOP_LEFT},
    'google_translate_element');
}

</script>

<script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
0
Dan Grahn