Chrome का built-in Translator API क्या है?

Translator API एक प्रायोगिक वेब प्लेटफ़ॉर्म फीचर है जो एक वेबपेज को ब्राउज़र में सीधे टेक्स्ट का अनुवाद करने देता है, जो यूज़र एजेंट द्वारा प्रबंधित एक स्थानीय रूप से बंडल किए गए AI मॉडल का उपयोग करता है। टेक्स्ट को दूरस्थ अनुवाद सेवा में भेजने के बजाय, ब्राउज़र एक JavaScript इंटरफेस (window.Translator) को उजागर करता है जो दिए गए स्रोत/लक्ष्य भाषा जोड़ी के लिए अल्पकालिक अनुवादक सत्र बनाता है और अनुवादित स्ट्रिंग्स को asynchronously रिटर्न करता है।

साथी Language Detector API (window.LanguageDetector) एक स्ट्रिंग की जांच करता है और आत्मविश्वास स्कोर के साथ संभावित BCP-47 भाषा टैग की एक रैंक की गई सूची रिटर्न करता है। दोनों APIs एक साथ एक पेज को मनमानी इनपुट की भाषा का पता लगाने और फिर प्रारंभिक मॉडल डाउनलोड के बाद किसी भी नेटवर्क राउंड-ट्रिप के बिना इसका अनुवाद करने की अनुमति देते हैं।

क्योंकि मॉडल यूज़र के डिवाइस पर चलता है, अनुवाद डाउनलोड के बाद ऑफलाइन काम करते हैं, संवेदनशील टेक्स्ट कभी मशीन से बाहर नहीं जाता है, और कोई प्रति-अनुरोध API लागत नहीं है। ट्रेड-ऑफ यह है कि उपलब्धता ब्राउज़र, ऑपरेटिंग सिस्टम, और क्या अनुरोधित भाषा जोड़ी डाउनलोड की गई है पर निर्भर करती है।

टूल विवरण

यह playground आपके अपने ब्राउज़र में Translator और Language Detector APIs का परीक्षण करने के लिए एक व्यावहारिक वातावरण है। यह एक इनपुट क्षेत्र, एक लक्ष्य भाषा चयनकर्ता, और एक आउटपुट क्षेत्र को अंतर्निहित Translator.create() / translate() कॉल से जोड़ता है, और जब आप प्रयोग करते हैं तो मॉडल की उपलब्धता स्थिति और डाउनलोड प्रगति को सामने लाता है।

स्रोत भाषा डिफ़ॉल्ट रूप से "Auto detect" है, जो इनपुट को पहले LanguageDetector के माध्यम से रूट करता है और फिर पहचानी गई भाषा को अनुवादक को आगे बढ़ाता है। आप स्रोत भाषा को स्पष्ट रूप से पिन भी कर सकते हैं ताकि पहचान को छोड़ दिया जाए।

उदाहरण

स्रोत (auto-detected) लक्ष्य आउटपुट
Bonjour, comment ça va ? English Hello, how are you?
Guten Morgen, wie geht es dir? Spanish Buenos días, ¿cómo estás?
今日は良い天気ですね。 English The weather is nice today.

फीचर्स

  • Auto language detection — अनुवाद से पहले स्रोत भाषा की पहचान करने के लिए Language Detector API का उपयोग करता है।
  • Bidirectional language picker — एक क्लिक के साथ स्रोत और लक्ष्य को स्वैप करें और फिर से अनुवाद करें।
  • Live availability state — दिखाता है कि क्या अनुरोधित मॉडल available, downloadable, downloading, या unavailable है।
  • Download progress bar — जब मॉडल को fetch किया जाता है तो अनुवादक/डिटेक्टर से downloadprogress इवेंट्स को स्ट्रीम करता है।
  • On-device, offline translation — एक बार मॉडल डाउनलोड हो जाने के बाद, अनुवाद के लिए कोई नेटवर्क अनुरोध नहीं किए जाते हैं।

उपयोग के मामले

  • Previewing localized copy — एक स्ट्रिंग पेस्ट करें और तुरंत देखें कि यह UI टेक्स्ट का मसौदा तैयार करते समय दूसरी भाषा में कैसा पढ़ता है।
  • Verifying browser support — जांचें कि क्या एक विशिष्ट स्रोत/लक्ष्य जोड़ी उपलब्ध है इससे पहले कि आप एक फीचर शिप करें जो Translator API पर निर्भर करता है।
  • Quick offline translation — प्रासंगिक भाषा पैक डाउनलोड होने के बाद, डिस्कनेक्ट होने पर स्निपेट्स का अनुवाद करें।

आवश्यकताएं

  • एक ब्राउज़र जो Translator और Language Detector APIs को लागू करता है। लेखन के समय, यह Chrome 138+ और Chromium-आधारित ब्राउज़र (जैसे Opera 122+) डेस्कटॉप पर है। Edge, Firefox और Safari अभी तक समर्थित नहीं हैं।
  • एक secure context (HTTPS या localhost)।
  • Transient user activation — APIs केवल हाल के यूज़र जेस्चर के बाद create() की अनुमति देते हैं, यही कारण है कि अनुवाद इनपुट पर चलता है न कि पेज लोड पर।
  • प्रारंभिक भाषा मॉडल डाउनलोड के लिए पर्याप्त डिस्क स्पेस और बैंडविड्थ। बाद के अनुवाद कैश किए गए मॉडल का पुन: उपयोग करते हैं।

यह कैसे काम करता है

  1. माउंट पर, टूल window.Translator और window.LanguageDetector की जांच करता है। यदि कोई भी गायब है, तो एक चेतावनी प्रदर्शित की जाती है और इनपुट को अक्षम किया जाता है।
  2. जब आप टाइप करते हैं, तो इनपुट को debounce किया जाता है और स्रोत/लक्ष्य जोड़ी को हल किया जाता है (यदि स्रोत auto है तो पहले LanguageDetector.detect() चलाते हुए)।
  3. Translator.availability({ sourceLanguage, targetLanguage }) को उस जोड़ी के लिए मॉडल स्थिति को क्वेरी करने के लिए कॉल किया जाता है।
  4. Translator.create() को एक monitor कॉलबैक के साथ आमंत्रित किया जाता है जो downloadprogress इवेंट्स को सुनता है और प्रगति बार को अपडेट करता है।
  5. translator.translate(text) अनुवादित स्ट्रिंग रिटर्न करता है, जो आउटपुट क्षेत्र में रेंडर किया जाता है।
  6. अनुवादक और डिटेक्टर इंस्टेंस को संसाधनों को मुक्त करने के लिए प्रत्येक कॉल के बाद destroy() के माध्यम से रिलीज़ किया जाता है।

समर्थित भाषाएं

पिकर सामान्य BCP-47 भाषा टैग की एक क्यूरेटेड सूची को उजागर करता है जो Chrome के बंडल किए गए मॉडल को समर्थन करता है या आमतौर पर परीक्षण करता है, जिसमें शामिल हैं:

en, es, fr, de, it, pt, nl, pl, ru, uk, tr, ar, hi, bn, ja, ko, zh, zh-Hant, vi, th, id, sv, no, fi, da, el, he, cs, ro, hu

उपयोग करने योग्य जोड़ियों का वास्तविक सेट इस बात पर निर्भर करता है कि अंतर्निहित ब्राउज़र मॉडल ने क्या डाउनलोड किया है या डाउनलोड कर सकता है। unavailable के रूप में रिपोर्ट की गई जोड़ियों को आपके वर्तमान ब्राउज़र में अनुवादित नहीं किया जा सकता है।

सीमाएं

  • APIs experimental हैं और सतह ब्राउज़र संस्करणों के बीच बदल सकती है।
  • अनुवाद की गुणवत्ता ब्राउज़र-प्रदान किए गए मॉडल द्वारा निर्धारित की जाती है और समर्पित क्लाउड अनुवाद सेवाओं से मेल खाने की गारंटी नहीं है।
  • कुछ भाषा जोड़ियों को English के माध्यम से एक मध्यवर्ती pivot की आवश्यकता हो सकती है या बस unavailable हो सकती हैं।
  • एक नई भाषा जोड़ी के लिए पहला अनुवाद मॉडल डाउनलोड के कारण धीमा हो सकता है।
  • APIs वर्तमान में web workers को उजागर नहीं किए गए हैं और क्रॉस-ऑरिजिन iframes पर एक Permissions Policy (translator, language-detector) के पीछे गेट किए जा सकते हैं।

FAQ

आउटपुट खाली क्यों रहता है? Translator API संभवतः आपके ब्राउज़र में लागू नहीं है। पेज को डेस्कटॉप पर Chrome 138+ में खोलें और रीलोड करें।

"Downloading model…" क्यों दिखाया जाता है? पहली बार जब आप एक भाषा जोड़ी का उपयोग करते हैं, तो ब्राउज़र एक मॉडल पैकेज डाउनलोड करता है। प्रगति बार Translator.create() द्वारा उत्सर्जित downloadprogress इवेंट्स को प्रतिबिंबित करता है।

क्या मेरा टेक्स्ट डिवाइस से बाहर जाता है? नहीं। एक बार मॉडल डाउनलोड हो जाने के बाद, अनुवाद पूरी तरह से on-device होता है। टूल स्वयं आपके इनपुट को कहीं भी नहीं भेजता है।

"Auto detect" कभी-कभी विफल क्यों होता है? यदि इनपुट बहुत छोटा है, अस्पष्ट है, या एक स्क्रिप्ट में है जिसे डिटेक्टर ने नहीं देखा है, तो LanguageDetector.detect() und (undetermined) रिटर्न कर सकता है। उस स्थिति में स्रोत भाषा को मैन्युअल रूप से चुनें।