2013-02-11 5 views
7

я использую этот скрипт на моем сайте для переводаОбнаружение пользователя Язык и Google Translate Автоматически

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

Это работает просто отлично :) Но есть способ для обнаружения пользователем IP и автоматического перевода, когда пользователь заходит на мой сайт?

+1

Пожалуйста ** прочитайте ** теги тщательно перед нанесением их на вопрос. Это не имеет никакого отношения к [tag: java]. –

+0

* «Но есть ли способ обнаружить пользовательский ip и автоматический перевод» * Лучше предложить список вариантов языка и позволить пользователю выбрать. Французский гражданин, вероятно, предпочел бы французский во время поездок в Великобританию или Германию. –

ответ

2

Хотя вы можете использовать обнаружение местоположения на основе IP (см. this answer), но оно не является надежным и не делает вас более разумным относительно предпочитаемых вами языков (например, пользователей, путешествующих за границу и т. Д.).

Веб-сайты с интенсивным международным трафиком используют различные параметры, чтобы решить, на каком языке должен быть представлен контент. Некоторые из этих параметров:

  • Accept-Language HTTP-заголовок, который подробно обсуждается here.
  • Значение свойств window.navigator.language или window.navigator.userLanguage (для IE)
  • данных обнаружения местоположения IP на основе сверяется CLDR, чтобы предоставить вам общие языки на этой территории.

Расширение MediaWiki, UniversalLanguageSelector, использует эти факторы, а также сохраненные пользовательские настройки для предоставления списка общих языков для каждого пользователя. См. getFrequentLanguageList().

W3C также имеет некоторые recommendations.

1

Этот скрипт показывает окно перевода раскрывающийся только для людей с английским не установлен в качестве основного или единственного языка, и скрывает, когда английские пользователи просматривают страницу - он кодируется для английских страниц с помощью en в код google.

Он использует первые 2 символа языка только, чтобы избежать проверки для many variants of English как en-US, en-tt и т.д. - все они начинаются с en.

Это может быть легко адаптировано для определения pageLanguage и сравнить его с предпочтительными языками (-ами) пользователя. Использование navigator.languages важно, потому что это используется в новых версиях браузера, см 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> 
Смежные вопросы