Language Detector API হল একটি ক্লায়েন্ট-সাইড ওয়েব API যা কোনও টেক্সট স্ট্রিংয়ের ভাষা শনাক্ত করার জন্য ডিজাইন করা হয়েছে। ব্রাউজারে স্থানীয়ভাবে শনাক্তকরণের মাধ্যমে এটি ব্যবহারকারীর গোপনীয়তা উন্নত করে এবং ভারী এক্সটার্নাল লাইব্রেরি বা ব্যয়বহুল সার্ভার-সাইড কলের প্রয়োজনীয়তা কমায়।
মূল ব্যবহারিক ক্ষেত্র
- অনুবাদ করার প্রস্তুতি: অনুবাদকের কাছে টেক্সট পাঠানোর আগে সোর্স ভাষা শনাক্ত করা।
- সুরক্ষা ও ফিল্টারিং: বিষাক্ততা শনাক্তকরণের মতো টাস্কের জন্য নির্দিষ্ট মডেল লোড করা।
- অ্যাক্সেসিবিলিটি: স্ক্রিন রিডারের জন্য সঠিক
langঅ্যাট্রিবিউট সহ কন্টেন্ট লেবেল করা। - UI লোকালাইজেশন: ব্যবহারকারীর ইনপুট ভাষার উপর ভিত্তি করে অ্যাপ্লিকেশন ইন্টারফেস অ্যাডজাস্ট করা।
হার্ডওয়্যার ও সিস্টেমের প্রয়োজনীয়তা
- OS: Windows 10/11, macOS 13+, Linux বা Chromebook Plus.
- স্টোরেজ: ২২ জিবি খালি জায়গা (১০ জিবির কম জায়গা থাকলে মডেল সরিয়ে দেওয়া হয়)।
- RAM/CPU: ১৬ জিবি RAM এবং ৪+ CPU কোর।
- VRAM: GPU ব্যবহার করলে ৪ জিবি বা তার বেশি।
প্রয়োগ করার নির্দেশিকা
১. মডেল ম্যানেজমেন্ট ও ব্যবহারকারী অ্যাক্টিভেশন
ডিটেক্টর ইনস্ট্যান্টিয়েট বা ডাউনলোড ট্রিগার করার চেষ্টা করার আগে মডেলের উপলভ্যতা চেক করুন।
বাধ্যতামূলক: মডেল downloadable বা downloading অবস্থায় থাকলে NotAllowedError প্রতিরোধ করতে, LanguageDetector.create()-এর মাধ্যমে ভাষা শনাক্তকারী ইনস্ট্যান্টিয়েট করা বা মডেল ডাউনলোড ট্রিগার করার কাজটি অবশ্যই ব্যবহারকারীর জেসচারের (যেমন, বোতামে ক্লিক করা) মাধ্যমে শুরু করতে হবে।
// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();
if (availability !== 'unavailable') {
button.addEventListener('click', async () => {
const detector = await LanguageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
});
}
২. রানিং ডিটেকশন
API সম্ভাব্য ভাষার একটি র্যাঙ্ক করা তালিকা প্রদান করে, যার কনফিডেন্স স্কোর 0.0 থেকে 1.0-এর মধ্যে থাকে।
const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);
for (const result of results) {
// result.detectedLanguage (e.g., 'de')
// result.confidence (e.g., 0.999)
console.log(result.detectedLanguage, result.confidence);
}
খুব ছোট বাক্যাংশ বা একক শব্দের ক্ষেত্রে ডিটেক্টর ব্যবহার করা এড়িয়ে চলুন, কারণ এর ফলে নির্ভুলতা উল্লেখযোগ্যভাবে কমে যায়।
নিরাপত্তা ও পরিবেশ
Iframes: ক্রস-অরিজিন iframes-এর API অ্যাক্সেস করার জন্য একটি নির্দিষ্ট অনুমতি সংক্রান্ত নীতি প্রয়োজন।
<iframe src="https://cross-origin.example.com/" allow="language-detector" ></iframe>ওয়েব ওয়ার্কার: অনুমতি সংক্রান্ত নীতির জটিলতার কারণে API বর্তমানে ওয়েব ওয়ার্কারে উপলভ্য নেই।
গোপনীয়তা: শনাক্তকরণ প্রসেস চলাকালীন Google বা থার্ড-পার্টির কাছে কোনও ডেটা পাঠানো হয় না।
ফলব্যাক স্ট্র্যাটেজি
ব্যবহার করার আগে, গ্লোবাল স্কোপে LanguageDetector অবজেক্ট উপলভ্য আছে কিনা তা চেক করুন:
if ('LanguageDetector' in self) {
// The Language Detector API is supported.
} else {
// Execute fallback strategy
}
LanguageDetector API কাজ না করলে বা উপলভ্যতা চেক করার সময় 'unavailable' দেখালে, আপনাকে অবশ্যই আগের অবস্থায় ফিরে যেতে হবে:
- রিমোট API ফলব্যাক: ভাষা শনাক্ত করার জন্য শনাক্তকরণ সংক্রান্ত অনুরোধ কোনও সার্ভার এন্ডপয়েন্ট বা ক্লাউড API-তে (যেমন, Vertex AI Gemini API) রিডাইরেক্ট করুন।
- গ্রেসফুল ডিগ্রেডেশন: ভাষা শনাক্তকরণ এলিমেন্ট/বোতাম বন্ধ করে দিন এবং ব্যবহারকারীকে জানান যে ক্লায়েন্ট-সাইড শনাক্তকরণ বর্তমানে এই ব্রাউজারে কাজ করে না, যাতে কোনও হ্যান্ডেল না করা ব্যতিক্রম বা ক্র্যাশ এড়ানো যায়।