Chrome गलत पृष्ठ का निर्धारण किसी अन्य भाषा में क्यों करता है और अनुवाद करने की पेशकश क्यों करता है?


173

नया Google Chrome ऑटो-ट्रांसलेशन फीचर हमारे एक एप्लिकेशन के एक पेज पर ट्रिपिंग कर रहा है। जब भी हम इस विशेष पेज पर जाते हैं, तो क्रोम हमें बताता है कि पेज डेनिश में है और अनुवाद करने की पेशकश करता है। पेज अंग्रेजी में है, ठीक हमारे ऐप के हर दूसरे पेज की तरह। यह विशेष पृष्ठ एक आंतरिक परीक्षण पृष्ठ है जिसमें अंग्रेजी लेबल के साथ कुछ दर्जन फॉर्म फ़ील्ड हैं। मुझे नहीं पता कि Chrome को यह पृष्ठ क्यों लगता है कि डेनिश है।

क्या किसी को इस बात की जानकारी है कि यह भाषा पहचान सुविधा कैसे काम करती है और मैं यह कैसे निर्धारित कर सकता हूं कि क्रोम के कारण पेज डेनिश में है?


1
यह एक लंबा शॉट है, लेकिन क्या पेज में बहुत कम शब्द हैं? कुछ अन्य पृष्ठ देखें जिनमें कुछ शब्द हैं, क्या वे समान लक्षण प्रदर्शित करते हैं? मेरा अनुमान है कि सर्वर पर कहीं एक कॉन्फ़िगरेशन है जो लोकेल को सेट करता है, और क्योंकि भाषा को निर्धारित करने के लिए पृष्ठ पर पर्याप्त शब्द नहीं हैं, क्रोम बस सर्वर की धारणा के साथ जाता है।
hasen


7
यहां नॉरवेगियन बोकमल। मैंने कुछ बटनों पर 'बारफ' शब्द का इस्तेमाल किया। मैंने शब्द को 'बाउंस' में बदल दिया और अब क्रोम को लगता है कि यह डच है। Whaaaaaat?
थोमस-पीटर

जवाबों:


222

अपडेट: Google के अनुसार

हम किसी भी कोड-स्तरीय भाषा की जानकारी का उपयोग नहीं करते हैं जैसे कि लैंग विशेषताएँ।

वे आपको यह स्पष्ट करने की सलाह देते हैं कि आपकी साइट की भाषा क्या है। निम्नलिखित का उपयोग करें जो कि वंचित होने में मदद करने के लिए लगता Content-Languageहै और Google कहता है कि वे उपेक्षा करते हैंlang

<html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
<meta charset="UTF-8">
<meta name="google" content="notranslate">
<meta http-equiv="Content-Language" content="en">

यदि वह काम नहीं करता है, तो आप हमेशा एक छिपे हुए div में पाठ का एक गुच्छा (उदाहरण के लिए आपका "के बारे में" पृष्ठ) रख सकते हैं। यह एसईओ के साथ भी मदद कर सकता है।

EDIT (और अधिक जानकारी)

ओपी क्रोम के बारे में पूछ रहा है, इसलिए Google की सिफारिश ऊपर पोस्ट की गई है। अन्य ब्राउज़रों के लिए इसे पूरा करने के तीन तरीके हैं:

  1. W3C अनुशंसा :HTML टैग मेंlang/ और / याxml:langविशेषताओं काउपयोग करें:

    <html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
  2. अद्यतन: पहले एक Google अनुशंसा ने अब कल्पना को हटा दिया है, हालांकि यह अभी भी क्रोम के साथ मदद कर सकता है। : meta http-equiv(जैसा ऊपर वर्णित है):

    <meta http-equiv="Content-Language" content="en">
  3. HTTP हेडर का उपयोग करें ( क्रॉस-ब्राउज़र मान्यता परीक्षणों के आधार पर अनुशंसित नहीं ):

    HTTP/1.1 200 OK
    Date: Wed, 05 Nov 2003 10:46:04 GMT
    Content-Type: text/html; charset=iso-8859-1
    Content-Language: en

Chrome से पूरी तरह से बाहर निकलें और परिवर्तन का पता लगाने के लिए इसे पुनः आरंभ करें। Chrome हमेशा टैब रीफ़्रेश पर नया मेटा टैग नहीं लेता है।


1
यहाँ Google के मेटा टैग का वर्णन है: support.google.com/webmasters/bin/…
जोशुआ डेविस

7
@ ईमाइल: यदि आप पृष्ठ को एक नए टैब में लोड करते हैं तो यह काम करता है। यह काम नहीं करता है यदि आप ताज़ा करने के लिए सिर्फ F5 दबाते हैं।
स्टीफन स्टीगर

1
Html5 में यह मूल्य के बजाय सामग्री होना चाहिए: <meta name = "google" content = "notranslate" />
r03

1
@ जेक, यह न तो Google या W3C की सिफारिश है। यद्यपि आपकी चुनौती ने दिलचस्प जानकारी को बदल दिया, जिसने मेरे सवाल का जवाब दिया: w3.org/International/tests/html-css/language-declarations/…
काइल

2
Chrome जो चाहे वह कर सकता है। मैं अंग्रेजी में txt फ़ाइलों को यह बताकर वापस कर सकता हूं कि HTTP प्रतिक्रिया हेडर में ASCII हैं, और भले ही डेटा में केवल ASCII वर्ण हों, क्रोम अभी भी बाइट्स पर एक आवृत्ति विश्लेषण करता है और उपयोगकर्ता को संकेत देता है कि यह एक अलग भाषा में है।
मायफोर्विक

3

मैंने lang="en"doctype डिक्लेरेशन में जोड़ा, HTML हेडर में charset utf-8 और Content-Langauge के लिए मेटा टैग जोड़ा, utf-8 और Content-Language के रूप enमें charset को HTTP रिस्पॉन्स हेडर के रूप में निर्दिष्ट किया और इसने क्रोम को रोकने के लिए कुछ भी नहीं किया जो मेरे द्वारा घोषित किया गया था पेज पुर्तगाली में था। समस्या को ठीक करने वाली एकमात्र चीज़ HTML हेडर में इसे जोड़ रही है:

<meta name="google" content="notranslate">

लेकिन अब मैंने उपयोगकर्ताओं को अपने पृष्ठ का अनुवाद करने से रोका है जो स्पष्ट रूप से अंग्रेजी में अपनी भाषा में है। खराब नौकरी, क्रोम। आप इससे बेहतर हो सकते हैं।


2

यह जानने के बिना कि पाठ क्या था, शायद आपके पृष्ठ की सामग्री से एनग्राम का पता लगाया जा रहा है।

http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html

https://en.wikipedia.org/wiki/N-gram


2
लेकिन सवाल यह है कि मैं इसे कैसे डिबग करूं या क्रोम के बारे में अधिक जानकारी प्राप्त कर सकूं कि उसने यह चुनाव क्यों किया?
सैमुअल नेफ

2
पाठ को देखे बिना, मैं निश्चित रूप से नहीं कह सकता। कोशिश करने के लिए कुछ चीजें: - यदि आप पाठ को कॉपी करते हैं और इसे Translate.google.com में पेस्ट करते हैं, और इसे "भाषा का पता लगाएं" पर सेट करते हैं, तो क्या यह आपको बताता है कि यह अंग्रेजी है या नहीं? - अगर यह कहते हैं कि यह डेनिश है या जो भी है, तो मैं तब तक वाक्य निकालना शुरू कर दूंगा जब तक कि आपको संकटमोचक नहीं मिल जाता।
निंजाकैट जूल

हाय सैम - यह प्रभावी है कि मैं क्या सुझाव दे रहा हूं। यह पूछने का कोई तरीका नहीं है कि उसने यह निर्णय क्यों लिया। आपके पाठ में कुछ वाक्य या शब्द है जो इसे ट्रिक कर रहा है (सभी मशीन अनुवाद लगभग सही नहीं है)। इस बात को डिबग करने के लिए मैं सजा को तब तक निकालूंगा जब तक कि वह सही भाषा को न पहचान ले।
निंजाकाट जूल 25'10

1

क्रोमियम इस पेज को फिलिपिनो में समझता है: http://www.reyalvarado.com/portfolio/cuba/ नोट्स: मालिक के नाम और मेनू आइटम को छोड़कर पृष्ठ पर बहुत अधिक पाठ नहीं है। मेनू आइटमों को गतिशील रूप से FLIR द्वारा छवियों के साथ बदल दिया जाता है।

HTML पृष्ठ को US अंग्रेजी घोषित करता है:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 

1
हाँ, मैं एक ही मुद्दा है। पृष्ठ पर अधिक पाठ नहीं है, और <html> तत्व में lang = "en" और xml: lang = "en" है। क्रोम इसे अनदेखा करता है!
जोशुआ डेविस

1
@JoshuaDavis, मैंने लैंग एटिट्यूड, मेटा टैग्स (नोटरीलेट को छोड़कर) के ऊपर सब कुछ आज़माया। आखिरकार मेरे लिए यह तय किया गया कि मैं dir = "ltr" विशेषता जोड़ रहा था।
डैन मॉर्फिस

1
dir = "ltr" है ... दिशा, बाएं से दाएं मुझे लगता है? वाह।
जोशुआ डेविस

1

दस्तावेज़ के लिए डिफ़ॉल्ट भाषा निर्दिष्ट करें, फिर अनुवाद विशेषता और Google की notranslateकक्षा प्रति तत्व / कंटेनर का उपयोग करें, जैसे:

<html lang="en">
    ...
    <span><a href="#" translate="no" class="notranslate">English</a></span>

स्पष्टीकरण:

स्वीकृत उत्तर एक कंबल समाधान प्रस्तुत करता है, लेकिन प्रति तत्व भाषा को निर्दिष्ट करने के तरीके को संबोधित नहीं करता है, जो बग को ठीक कर सकता है और आपके पृष्ठ को अनुवाद योग्य बना सकता है

यह बेहतर क्यों है? यह Google के अंतर्राष्ट्रीयकरण बनाम इसे बंद करने में सहयोग करेगा। वापस ओपी का जिक्र:

क्रोम गलत तरीके से पृष्ठ का निर्धारण किसी अन्य भाषा में क्यों करता है और अनुवाद करने की पेशकश करता है?

उत्तर : Google अंतर्राष्ट्रीयकरण में आपकी सहायता करने का प्रयास कर रहा है, लेकिन हमें यह समझने की आवश्यकता है कि यह क्यों विफल हो रहा है। निंजाकैट के उत्तर का निर्माण , हम मानते हैं कि Google एन-ग्राम एल्गोरिथम का उपयोग करके आपकी वेबसाइट की भाषा पढ़ता है और भविष्यवाणी करता है - इसलिए, हम ठीक से नहीं कह सकते हैं कि Google आपके पृष्ठ का अनुवाद क्यों करना चाहता है; हम केवल यह मान सकते हैं:

  1. आपके पृष्ठ पर ऐसे शब्द हैं जो एक अलग भाषा से संबंधित हैं।
  2. युक्त तत्व को translate="no"और lang="en"(या इन शब्दों को हटाकर) को चिह्नित करने से Google को आपके पृष्ठ की भाषा का सही अनुमान लगाने में मदद मिलेगी।

दुर्भाग्य से, इस पोस्ट पर पहुंचने वाले अधिकांश लोगों को पता नहीं होगा कि कौन से शब्द परेशानी का कारण बन रहे हैं। क्रोम का "इन ट्रांसलेशन टू इंग्लिश" फीचर (राइट-क्लिक के संदर्भ मेनू में) का उपयोग करके देखें कि क्या अनुवादित है, आप निम्नलिखित जैसे अनपेक्षित अनुवाद देख सकते हैं :

यहां छवि विवरण दर्ज करें

इसलिए, अपने HTML को उचित अनुवाद टैग के साथ अपडेट करें जब तक कि आपके पृष्ठ का Google अनुवाद कुछ भी नहीं बदलता - तब हमें पॉपअप को भविष्य के आगंतुकों से दूर जाने की उम्मीद करनी चाहिए।

क्या इन सभी अतिरिक्त टैगों को जोड़ना बहुत काम नहीं होगा? हाँ, बहुत संभावना है। यदि आप Wordpress या किसी अन्य सामग्री प्रबंधन प्रणाली का उपयोग कर रहे हैं तो अपने कोड को अपडेट करने के त्वरित तरीकों के लिए उनके दस्तावेज़ देखें !


यह मेरे लिए काम करता है, मेटा टैग अभी भी अनुवाद पॉपअप की अनुमति दे रहे थे।
रयान

0

संपत्ति को शामिल करके xml:lang=""करने के लिए <html>करता है, तो अन्य समाधान काम नहीं करते,:

<html class="no-js" lang="pt-BR" dir="ltr" xml:lang="pt-BR">

1
यह तरीका मेरे काम नहीं आया। Chrome को लैंग = "..." और xml: lang = "..." को अनदेखा करना प्रतीत होता है।
जोशुआ डेविस

यह क्रोम को भ्रमित करने में काम करता है कि यह पता न चले कि पृष्ठ किस भाषा का है, इसलिए यह अनुवाद की पेशकश नहीं करेगा।
कार्टर मेडलिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.