La nouvelle fonctionnalité de traduction automatique de Google Chrome se déclenche sur une page dans l'une de nos applications. Chaque fois que nous naviguons vers cette page particulière, Chrome nous indique que la page est en danois et propose de traduire. La page est en anglais, comme toutes les autres pages de notre application. Cette page particulière est une page de test interne qui contient quelques dizaines de champs de formulaire avec des étiquettes en anglais. Je ne sais pas pourquoi Chrome pense que cette page est danoise.
Quelqu'un a-t-il des informations sur le fonctionnement de cette fonctionnalité de détection de langue et sur la manière dont je peux déterminer ce qui fait que Chrome pense que la page est en danois?
html
localization
internationalization
google-chrome
Samuel Neff
la source
la source
Réponses:
Mise à jour: selon Google
Ils vous recommandent de préciser la langue de votre site. Utilisez ce qui suit qui semble aider bien qu'il
Content-Language
soit obsolète et que Google indique qu'ils ignorentlang
Si cela ne fonctionne pas, vous pouvez toujours placer un tas de texte (votre page "À propos" par exemple) dans un div masqué. Cela pourrait également aider avec le référencement.
EDIT (et plus d'infos)
L'OP pose des questions sur Chrome, la recommandation de Google est donc publiée ci-dessus. Il existe généralement trois façons de procéder pour les autres navigateurs:
Recommandation W3C : utilisez lesattributs
lang
et / ouxml:lang
dans la balise html:MISE À JOUR: auparavant, une recommandation Google est désormais obsolète, même si elle peut toujours aider avec Chrome. :
meta http-equiv
(comme décrit ci-dessus):Utilisez les en-têtes HTTP (non recommandés en fonction des tests de reconnaissance multi-navigateurs ):
Quittez complètement Chrome et redémarrez-le pour vous assurer que la modification est détectée. Chrome ne récupère pas toujours la nouvelle balise Meta lors de l'actualisation de l'onglet.
la source
J'ai ajouté
lang="en"
à la déclaration doctype, ajouté des balises meta pour charset utf-8 et Content-Langauge dans l'en-tête HTML, spécifié charset comme utf-8 et Content-Language commeen
dans les en-têtes de réponse HTTP et cela n'a rien fait pour empêcher Chrome de déclarer mon page était en portugais. La seule chose qui a résolu le problème a été d'ajouter ceci à l'en-tête HTML:Mais maintenant, j'ai empêché les utilisateurs de traduire ma page qui est clairement en anglais dans leur propre langue. Mauvais travail, Chrome. Vous pouvez être meilleur que ça.
la source
Sans savoir ce qu'était le texte, peut-être que la détection de ngram est trompée par le contenu de votre page.
http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html
https://en.wikipedia.org/wiki/N-gram
la source
Chromium pense cette page en philippin: http://www.reyalvarado.com/portfolio/cuba/ Remarques: Il n'y a pratiquement pas de texte sur la page à l'exception du nom du propriétaire et des éléments de menu. Les éléments de menu sont remplacés dynamiquement par des images par FLIR.
Le HTML déclare la page en anglais américain:
la source
Spécifiez la langue par défaut du document, puis utilisez l' attribut translate et la
notranslate
classe de Google par élément / conteneur, comme dans:Explication:
La réponse acceptée présente une solution globale, mais n'indique pas comment spécifier la langue par élément, ce qui peut corriger le bogue et garantir que votre page reste traduisible .
Pourquoi est-ce mieux? Cela coopérera avec l'internationalisation de Google plutôt que de l'arrêter. En se référant au PO:
Réponse : Google essaie de vous aider dans l'internationalisation, mais nous devons comprendre pourquoi cela échoue. Sur la base de la réponse de NinjaCat , nous supposons que Google lit et prédit la langue de votre site Web à l'aide d'un algorithme N-gramme - nous ne pouvons donc pas dire exactement pourquoi Google veut traduire votre page; on ne peut que supposer que:
translate="no"
etlang="en"
(ou supprimer ces mots) aidera Google à prédire correctement la langue de votre page.Malheureusement, la plupart des personnes qui accèdent à ce message ne sauront pas quels mots sont à l'origine du problème. Utilisez la fonction "Traduire vers l'anglais" intégrée de Chrome (dans le menu contextuel du clic droit) pour voir ce qui est traduit, vous pouvez voir des traductions inattendues comme celle-ci :
Alors, mettez à jour votre html avec les balises de traduction appropriées jusqu'à ce que la traduction Google de votre page ne change rien - alors nous devrions nous attendre à ce que la fenêtre contextuelle disparaisse pour les futurs visiteurs.
Est-ce que ce ne sera pas beaucoup de travail pour ajouter toutes ces balises supplémentaires? Oui, très probablement. Si vous utilisez Wordpress ou un autre système de gestion de contenu, recherchez dans leur documentation des moyens rapides de mettre à jour votre code!
la source
Essayez d'inclure la propriété
xml:lang=""
dans<html>
, si les autres solutions ne fonctionnent pas:la source