2013-02-11 14 views
7

używam tego skryptu na moim miejscu do tłumaczeniaDetect użytkownika Preferowany język i Google Translate Automatycznie

<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> 

To działa dobrze :) Ale czy jest jakiś sposób, aby wykryć IP użytkownika i auto tłumaczyć kiedy użytkownik wchodzi na moją stronę?

+1

Proszę przeczytać ** ** znaczniki przed ich wprowadzeniem na pytanie ostrożnie. Nie ma to nic wspólnego z [tag: java]. –

+0

* "Ale czy istnieje sposób na wykrycie użytkownika ip i automatyczne tłumaczenie" * Lepiej zaoferować listę opcji językowych i pozwolić użytkownikowi wybrać. Obywatel francuski prawdopodobnie wolałby francuski podczas podróży w Wielkiej Brytanii lub w Niemczech. –

Odpowiedz

2

Mimo że można użyć funkcji wykrywania lokalizacji opartej na protokole IP (patrz this answer), ale nie jest ona ani wiarygodna, ani mądrzejsza na temat preferowanych języków użytkownika (np. Użytkownicy podróżujący za granicą itp.).

Strony o dużym natężeniu ruchu międzynarodowego używają różnych parametrów do decydowania, w jakim języku treść ma być prezentowana. Niektóre z tych parametrów: header

  • Accept-Language HTTP, który jest szczegółowo omówione here.
  • Wartości właściwości window.navigator.language lub window.navigator.userLanguage (dla IE)
  • danych wykrywanie lokalizacji IP oparte na sprawdzonej przeciwko projekcie CLDR konsorcjum, aby zapewnić Państwu popularnych języków na tym terytorium.

Rozszerzenie MediaWiki, UniversalLanguageSelector, wykorzystuje te czynniki, a także przechowywane preferencje użytkownika, aby zapewnić listę popularnych języków dla każdego użytkownika. Zobacz getFrequentLanguageList().

W3C ma także trochę recommendations.

1

Ten skrypt pokazuje okno tłumaczenie rozwijane tylko dla osób z angielskim nie określonych jako podstawowego lub jedynego języka, a ukrywa go, gdy angielski użytkownicy będą wyświetlać stronę - jest kodowana stronach angielskich wykorzystaniem en w kod Google.

Wykorzystuje pierwsze 2 znaki języka tylko w celu uniknięcia kontroli dla many variants of English jak en-US, en-tt etc - wszystkie one zaczynają się en.

Można go łatwo dostosować do wykrywania pageLanguage i porównywania go z preferowanym językiem użytkownika. Zastosowanie navigator.languages jest ważna, ponieważ jest on używany w nowszych wersjach przeglądarek, zobacz 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>