簡體   English   中英

檢測用戶的首選語言和Google自動翻譯

[英]Detect User's Preferred Language and Google Translate Automatically

我在我的網站上使用此腳本進行翻譯

<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和用戶進入我的網站時自動翻譯?

雖然您可以使用基於IP的位置檢測(請參閱此答案 ),但它既不可靠也不會讓您更加了解用戶的首選語言(例如,出國旅行的用戶等)。

具有大量國際流量的網站使用各種參數來決定應該以何種語言呈現內容。 其中一些參數:

  • Accept-Language中詳細討論的HTTP標頭這里
  • 屬性值window.navigator.languagewindow.navigator.userLanguage (對於IE)
  • 基於IP的位置檢測數據針對CLDR進行檢查,以便為您提供該領域的通用語言。

MediaWiki擴展, UniversalLanguageSelector ,使用這些因素以及存儲的用戶首選項來為每個用戶提供常用語言列表。 請參閱getFrequentLanguageList()

W3C也有一些建議

此腳本僅針對英語未設置為主要或唯一語言的人顯示翻譯下拉框,並在英語用戶查看頁面時隱藏它 - 使用Google代碼中的en編碼英語頁面。

它僅使用該語言的前2個字符來避免檢查英語許多變體,en-USen-tt等 - 它們都以en開頭。

這可以很容易地適用於檢測pageLanguage並將其與用戶的首選語言進行比較。 navigator.languages的使用很重要,因為它用於較新的瀏覽器版本,請參閱解釋的跨瀏覽器兼容性

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM