Since this is becoming a widely-felt problem, it seems like a more formal solution than class="notranslate" is due. Based on the proposals above, I suggest that we add a translate="" global attribute to HTML, with two valid values, "yes" and "no", with the obvious semantics. The value would inherit to descendants, much like "lang". Invalid values (translate="foo", etc) would be ignored. A missing value (translate="") would be treated like translate="yes".
-- Ian Hixon
Here's how the translate attribute works:
<p lang="en">Mr <span translate="no">Hope</span> is speaking at…</p>When translating from English to French, the string “Hope” will not be translated to “Espoir” in French.
It is worth noting that Google Translate has featured support for excluding text from translation for sometime, as has Microsoft Translator. However, the hope is that HTML5 adopting such a practice will provide a standard approach.