2013-02-11 31 views
7

tôi sử dụng kịch bản này vào trang web của tôi để dịchDetect Preferred Language của người sử dụng và Google Translate Tự động

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

Người ta chỉ làm việc tốt :) Nhưng có một cách để phát hiện các ip người dùng và tự động dịch khi một người dùng truy cập vào trang web của tôi?

+1

Hãy ** đọc ** các thẻ một cách cẩn thận trước khi áp dụng chúng vào một câu hỏi. Điều này không liên quan gì đến [tag: java]. –

+0

* "Nhưng có cách nào để phát hiện ip người dùng và dịch tự động" * Tốt hơn để cung cấp danh sách tùy chọn ngôn ngữ và cho phép người dùng chọn. Một quốc gia Pháp có lẽ sẽ thích tiếng Pháp hơn khi đi du lịch ở Anh hoặc Đức. –

Trả lời

2

Mặc dù bạn có thể sử dụng tính năng phát hiện vị trí dựa trên IP (xem this answer), nhưng không đáng tin cậy cũng không giúp bạn hiểu rõ hơn về ngôn ngữ ưa thích của người dùng (ví dụ: người dùng đi du lịch ở nước ngoài, v.v.).

Trang web có lưu lượng truy cập quốc tế lớn sử dụng các thông số khác nhau để quyết định ngôn ngữ cần hiển thị nội dung. Một số thông số sau:

  • Accept-Language Tiêu đề HTTP được thảo luận chi tiết here.
  • Giá trị của các thuộc tính window.navigator.language hoặc window.navigator.userLanguage (dành cho IE)
  • Dữ liệu phát hiện vị trí dựa trên IP được kiểm tra với CLDR để cung cấp cho bạn các ngôn ngữ phổ biến trong lãnh thổ đó.

Tiện ích mở rộng MediaWiki, UniversalLanguageSelector, sử dụng các yếu tố này cũng như tùy chọn người dùng được lưu trữ để cung cấp danh sách ngôn ngữ chung cho từng người dùng. Xem getFrequentLanguageList().

W3C cũng có một số recommendations.

1

kịch bản này cho thấy hộp dịch thả xuống chỉ dành cho những người có tiếng Anh không phải thiết lập như là ngôn ngữ chính hoặc duy nhất của họ, và ẩn nó khi người dùng tiếng Anh xem trang - nó được mã hóa cho các trang tiếng Anh bằng en trong mã google.

Chỉ sử dụng 2 ký tự đầu tiên của ngôn ngữ để tránh kiểm tra many variants of English như en-US, en-tt v.v. - tất cả đều bắt đầu bằng en.

Điều này có thể dễ dàng được điều chỉnh để phát hiện pageLanguage và so sánh nó với (các) ngôn ngữ ưa thích của người dùng. Việc sử dụng navigator.languages là rất quan trọng bởi vì đây được sử dụng trên các phiên bản trình duyệt mới hơn, xem 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> 
Các vấn đề liên quan