twinlakes
twinlakes

Reputation: 10238

How to disable Google translate from HTML in Chrome

I just made a website for a french restaurant. The website is in english, but I guess there is enough french on the website (labeled pictures of menu items) to prompt the visitor to translate the website if using Chrome.

Is there something I can add to the html to prevent chrome from asking to translate the page? I'd assume it'd be something like <html lang="en"> but that doesn't work.

Any ideas?

Thanks

Upvotes: 261

Views: 256695

Answers (11)

Matthew Adams
Matthew Adams

Reputation: 10126

New Answer

Add translate="no" to your <html> tag, like so:

<html translate="no">

You also can add this to any element of your page if you want to allow/prevent only parts of the webpage to be translated.

MDN Reference


Old Answer

(This should still work but is less desirable because it is Google-specific, and there are other translation services out there.)

Add this tag in between <head> and </head>:

<meta name="google" content="notranslate">

Documentation reference

Upvotes: 497

Murtaza Hussain
Murtaza Hussain

Reputation: 4285

The google tag for not translating the page has been updated to

<!-- opt out of translation features on all search engines that support this directive -->
<meta name="robots" content="notranslate">

or

<!-- opt out of translation features on Google -->
<meta name="googlebot" content="notranslate">

For more info check this links:

https://developers.google.com/search/docs/crawling-indexing/special-tags

https://developers.google.com/search/docs/appearance/translated-results


Moreover, I had to update this because it was not working on Edge browser by using only translate="no" as below:

<html translate="no">

So for a full solution as mentioned here too, i had to do something like this to not translate anything from search engines

<html lang="en" class="notranslate" translate="no">
  <meta name="robots" content="notranslate" />
  ...
</head>

Upvotes: 7

EDIflyer
EDIflyer

Reputation: 47

Initially I added just <html translate="no"> but although that seemed to work for Edge and Firefox it wasn't working for Chrome (despite wiping site data, closing/reopening Chrome, doing Ctrl-F5 hard refresh). I tried adding lang="en" too but that didn't help.

I then added the <meta name="google" content="notranslate"> 'older' solution to the <head> tag and that finally stopped it from offering it. This was despite the page having basically no content (it's just a redirect page), but it seemed to keep thinking the .mobi TLD was in Arabic!

I've left both solutions in place and that seems to have sorted things.

Upvotes: 1

Tiago Rangel
Tiago Rangel

Reputation: 1327

Add this in your <head>:

<meta name="google" content="notranslate" /> 

and change your <html> tag to

<html lang="en" class="notranslate" translate="no">

The more simple way is just adding the translate="no" proprety. This can be made in divs, text and more. Here's an example:

/* Just some basic styling */
div[translate] {
width: 50%;
border: 1px solid black;
padding: 20px;
border-radius: 7px;
text-align: center;
font-family: Arial;
}
<div style="display: flex;gap:20px;">
<div translate="no"> <!-- Disables translation -->
  Enabled<br>
  <b>Olá - Hello - Hola</b>
</div>
<div translate> <!-- Enables translation -->
  Disabled<br>
  <b>Olá - Hello - Hola</b>
</div>
</div>

Note that this example has some problems on the stackoverflow viewer.

Upvotes: 9

Dmytro S
Dmytro S

Reputation: 553

sometimes you need to block not all html, but specific element, in such case you could add class="notranslate" only to that element. ie. <div class="notranslate"> some content </div>

Upvotes: 2

rkalways
rkalways

Reputation: 59

Disable google translate on your website

Add this to your <head></head>:

<meta name="google" content="notranslate" />

Upvotes: 5

Tiago Rangel
Tiago Rangel

Reputation: 1327

Solution:

<html lang="en" class="notranslate" translate="no">    <!-- All translators -->
 <head><meta name="google" content="notranslate" /> <!-- Just for google -->
</head>                                                <!-- Close head      -->

The more simple way is just adding the translate="no" proprety. This can be made in divs, text and more. Here's an example:

// Just for instructions
// Do not copy or paste
console.log("The first div don't alows translateing. But the second, alows it.")
console.log("Open the translator and see the efect.")
DIV1
<div translate="no">
  Try translating me!
  <b>Olá - Hello - Hola</b>
</div>
<hr> DIV2
<div translate="">
  Now, you can do it!
  <b>Olá - Hello - Hola</b>
</div>

Note that this example has some problems with the StackOverflow viewer.


Disclaimer: This answer is repeated, on it is on the Community Wiki.

Upvotes: 10

Ibrahim Sakaci
Ibrahim Sakaci

Reputation: 1061

So for the ultimate solution I made;

<!DOCTYPE html>
<html lang="en" class="notranslate" translate="no">
<head>
  <meta name="google" content="notranslate" />
</head>
<body>
...
</body>
</html>

This worked for me.

Upvotes: 96

westor
westor

Reputation: 1534

My Windows is german in german.

I made the following experiences in Chrome: If I set

<html lang="en" translate="no">

Google Translate comes up with suggestion to translate english.

Definitely I have to omit the lang property. This works for me:

<html translate="no">

No popup is coming up and the translation icon in the URL field is no longer displayed.

Upvotes: 4

BrainSlugs83
BrainSlugs83

Reputation: 6412

FYI, if you want something that will work for all content in your site (including that which is not HTML), you can set the Content-Language header in your response (source) to the appropriate language, (in my case, en-US).

This has the benefit here is that it will "disable" the offer to translate the page for you (because it will know the source language correctly), but for other, non-native readers, they will still have the option to translate your site into their own language, and it will work correctly.

(Also for my use case, where Chrome was offering to translate well formatted JSON from latin to English, that BS goes away.)

Upvotes: 2

edelans
edelans

Reputation: 9088

The meta tag in the <head> didn't work for me, but

class="notranslate"

added to a parent div (or even <body>) did work and allows more precise control of the content you don't want to be translated.

Upvotes: 26

Related Questions