2013-02-11 7 views
7

Io uso questo script nel mio sito per la traduzioneDetect utente lingua preferita e Google tradurre automaticamente

<div id="google_translate_element" align="center"></div> 
<script type="text/javascript"> 
    function googleTranslateElementInit() { 
     new google.translate.TranslateElement({ 
     pageLanguage: 'auto', 
     autoDisplay: false, 
     layout: google.translate.TranslateElement.InlineLayout.SIMPLE 
     }, 'google_translate_element'); 
    } 
</script> 
<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 

Si sta lavorando bene :) Ma c'è un modo per rilevare l'IP dell'utente e auto tradurre quando un l'utente entra nel mio sito?

+1

Si prega di leggere ** ** i tag con attenzione prima di applicarli a una domanda. Questo non ha nulla a che fare con [tag: java]. –

+0

* "Ma c'è un modo per rilevare l'utente ip e tradurre automaticamente" * Meglio offrire un elenco di opzioni di lingua e lasciare che l'utente scelga. Un cittadino francese preferirebbe probabilmente il francese quando viaggi in Gran Bretagna o in Germania. –

risposta

2

Sebbene sia possibile utilizzare il rilevamento della posizione basato su IP (vedere this answer), ma non è affidabile né rende più saggia le lingue preferite dell'utente (ad esempio, gli utenti che viaggiano all'estero, ecc.).

I siti Web con traffico internazionale pesante utilizzano vari parametri per decidere in quale lingua deve essere presentato il contenuto. Alcuni di questi parametri: intestazione

  • Accept-Language HTTP che è discusso in dettaglio here.
  • valori delle proprietà window.navigator.language o window.navigator.userLanguage (per IE)
  • localizzazione dei dati di rilevamento basate su IP controllato contro CLDR per offrire con linguaggi comuni in quel territorio.

L'estensione MediaWiki, UniversalLanguageSelector, utilizza questi fattori e le preferenze utente memorizzate per fornire un elenco di lingue comuni per ciascun utente. Vedi getFrequentLanguageList().

W3C ha anche recommendations.

1

Questo script mostra il riquadro della traduzione discesa solo per le persone con l'inglese non impostate come lingua principale o unico, e nasconde quando gli utenti inglesi visualizzano la pagina - si è codificato per le pagine in inglese che utilizzano il en nel codice google

IT utilizza i primi 2 caratteri della lingua solo per evitare il controllo per la many variants of English come en-US, en-tt ecc - tutti iniziano con en.

Questo potrebbe facilmente essere adattato per rilevare pageLanguage e confrontarlo con le lingue preferite dell'utente. L'uso di navigator.languages è importante perché questo è usato sulle release più recente del browser, vedere cross-browser compatibility explained

<div id="google_translate_element"></div> 
<script type="text/javascript"> 
var userLang = navigator.language || navigator.userLanguage || navigator.languages; 
if (userLang.substr(0,2) != "en"){ 
    function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'en', layout: 
    google.translate.TranslateElement.FloatPosition.TOP_LEFT}, 'google_translate_element'); 
    } 
} 
else { 
    document.getElementById("google_translate_element").style.display="none"; 
    } 
</script> 
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 
Problemi correlati