Chrome এর বিল্ট-ইন Translator API কি?

Translator API একটি পরীক্ষামূলক ওয়েব প্ল্যাটফর্ম ফিচার যা একটি ওয়েবপেজকে ব্রাউজারে সরাসরি টেক্সট অনুবাদ করতে দেয়, ব্যবহারকারী এজেন্ট দ্বারা পরিচালিত স্থানীয়ভাবে বান্ডিল করা AI মডেল ব্যবহার করে। দূরবর্তী অনুবাদ সেবায় টেক্সট পাঠানোর পরিবর্তে, ব্রাউজার একটি JavaScript ইন্টারফেস (window.Translator) প্রকাশ করে যা একটি নির্দিষ্ট উৎস/লক্ষ্য ভাষা জোড়ার জন্য স্বল্পস্থায়ী অনুবাদক সেশন তৈরি করে এবং অনুবাদিত স্ট্রিং অ্যাসিঙ্ক্রোনাসভাবে ফেরত দেয়।

সঙ্গী Language Detector API (window.LanguageDetector) একটি স্ট্রিং পরিদর্শন করে এবং আত্মবিশ্বাসের স্কোর সহ সম্ভাব্য BCP-47 ভাষা ট্যাগের একটি র‍্যাঙ্ক করা তালিকা ফেরত দেয়। একসাথে, দুটি API একটি পৃষ্ঠাকে নির্বিচারে ইনপুটের ভাষা সনাক্ত করতে এবং তারপর প্রাথমিক মডেল ডাউনলোডের পরে কোনো নেটওয়ার্ক রাউন্ড-ট্রিপ ছাড়াই এটি অনুবাদ করতে দেয়।

কারণ মডেল ব্যবহারকারীর ডিভাইসে চলে, অনুবাদগুলি ডাউনলোড করার পরে অফলাইনে কাজ করে, সংবেদনশীল টেক্সট কখনও মেশিন ছেড়ে যায় না, এবং কোনো প্রতি-অনুরোধ API খরচ নেই। ট্রেড-অফ হল যে প্রাপ্যতা ব্রাউজার, অপারেটিং সিস্টেম এবং অনুরোধকৃত ভাষা জোড়া ডাউনলোড করা হয়েছে কিনা তার উপর নির্ভর করে।

টুল বর্ণনা

এই প্লেগ্রাউন্ড আপনার নিজের ব্রাউজারে Translator এবং Language Detector API পরীক্ষা করার জন্য একটি হ্যান্ডস-অন পরিবেশ। এটি একটি ইনপুট এলাকা, একটি লক্ষ্য ভাষা নির্বাচক এবং একটি আউটপুট এলাকা অন্তর্নিহিত Translator.create() / translate() কলের সাথে সংযুক্ত করে, এবং আপনি পরীক্ষা করার সময় মডেলের প্রাপ্যতা অবস্থা এবং ডাউনলোড অগ্রগতি প্রদর্শন করে।

উৎস ভাষা ডিফল্টরূপে "স্বয়ংক্রিয় সনাক্তকরণ" এ সেট করা হয়, যা ইনপুটটি প্রথমে LanguageDetector এর মাধ্যমে রুট করে এবং তারপর সনাক্ত করা ভাষা অনুবাদকের কাছে এগিয়ে দেয়। আপনি সনাক্তকরণ এড়াতে স্পষ্টভাবে উৎস ভাষা পিন করতে পারেন।

উদাহরণ

উৎস (স্বয়ংক্রিয় সনাক্ত) লক্ষ্য আউটপুট
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.

বৈশিষ্ট্য

  • স্বয়ংক্রিয় ভাষা সনাক্তকরণ — অনুবাদের আগে উৎস ভাষা চিহ্নিত করতে Language Detector API ব্যবহার করে।
  • দ্বিমুখী ভাষা পিকার — একটি ক্লিকে উৎস এবং লক্ষ্য অদলবদল করুন এবং পুনরায় অনুবাদ করুন।
  • লাইভ প্রাপ্যতা অবস্থা — অনুরোধকৃত মডেল available, downloadable, downloading, বা unavailable কিনা তা দেখায়।
  • ডাউনলোড অগ্রগতি বার — মডেল আনা হচ্ছে যখন অনুবাদক/সনাক্তকারী থেকে downloadprogress ইভেন্ট স্ট্রিম করে।
  • অন-ডিভাইস, অফলাইন অনুবাদ — একবার মডেল ডাউনলোড হলে, অনুবাদ করার জন্য কোনো নেটওয়ার্ক অনুরোধ করা হয় না।

ব্যবহারের ক্ষেত্র

  • স্থানীয়করণ করা কপি পূর্বরূপ — একটি স্ট্রিং পেস্ট করুন এবং UI টেক্সট খসড়া করার সময় এটি অন্য ভাষায় কীভাবে পড়ে তা তাৎক্ষণিকভাবে দেখুন।
  • ব্রাউজার সমর্থন যাচাই করা — একটি নির্দিষ্ট উৎস/লক্ষ্য জোড়া উপলব্ধ কিনা তা পরীক্ষা করুন Translator API এর উপর নির্ভর করে এমন একটি ফিচার শিপ করার আগে।
  • দ্রুত অফলাইন অনুবাদ — প্রাসঙ্গিক ভাষা প্যাক ডাউনলোড করার পরে, সংযোগ বিচ্ছিন্ন থাকাকালীন স্নিপেট অনুবাদ করুন।

প্রয়োজনীয়তা

  • একটি ব্রাউজার যা Translator এবং Language Detector API বাস্তবায়ন করে। লেখার সময়, এটি ডেস্কটপে Chrome 138+ এবং Chromium-ভিত্তিক ব্রাউজার (যেমন Opera 122+)। Edge, Firefox এবং Safari এখনও সমর্থিত নয়।
  • একটি নিরাপদ প্রসঙ্গ (HTTPS বা localhost)।
  • ক্ষণস্থায়ী ব্যবহারকারী সক্রিয়করণ — API শুধুমাত্র সম্প্রতি ব্যবহারকারী অঙ্গভঙ্গির পরে 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 হিসাবে রিপোর্ট করা জোড়াগুলি আপনার বর্তমান ব্রাউজারে অনুবাদ করা যায় না।

সীমাবদ্ধতা

  • API গুলি পরীক্ষামূলক এবং পৃষ্ঠটি ব্রাউজার সংস্করণগুলির মধ্যে পরিবর্তিত হতে পারে।
  • অনুবাদ গুণমান ব্রাউজার-প্রদত্ত মডেল দ্বারা নির্ধারিত হয় এবং নিবেদিত ক্লাউড অনুবাদ সেবাগুলির সাথে মেলে তার গ্যারান্টি নেই।
  • কিছু ভাষা জোড়া ইংরেজির মাধ্যমে একটি মধ্যবর্তী পিভট প্রয়োজন হতে পারে বা সহজভাবে অনুপলব্ধ হতে পারে।
  • একটি নতুন ভাষা জোড়ার জন্য প্রথম অনুবাদ মডেল ডাউনলোডের কারণে ধীর হতে পারে।
  • API গুলি বর্তমানে ওয়েব ওয়ার্কারদের কাছে প্রকাশ করা হয় না এবং ক্রস-অরিজিন iframes এ একটি Permissions Policy (translator, language-detector) এর পিছনে গেট করা হতে পারে।

FAQ

আউটপুট খালি কেন থাকে? Translator API সম্ভবত আপনার ব্রাউজারে বাস্তবায়িত নয়। ডেস্কটপে Chrome 138+ এ পৃষ্ঠা খুলুন এবং পুনরায় লোড করুন।

"মডেল ডাউনলোড করা হচ্ছে…" কেন দেখানো হয়? প্রথমবার আপনি একটি ভাষা জোড়া ব্যবহার করলে, ব্রাউজার একটি মডেল প্যাকেজ ডাউনলোড করে। অগ্রগতি বার Translator.create() দ্বারা নির্গত downloadprogress ইভেন্টগুলি প্রতিফলিত করে।

আমার টেক্সট ডিভাইস ছেড়ে যায় কি? না। মডেল ডাউনলোড করার পরে, অনুবাদ সম্পূর্ণভাবে অন-ডিভাইসে ঘটে। টুল নিজেই আপনার ইনপুট কোথাও পাঠায় না।

"স্বয়ংক্রিয় সনাক্তকরণ" কখনও কখনও ব্যর্থ কেন হয়? যদি ইনপুট খুব ছোট, অস্পষ্ট বা একটি স্ক্রিপ্টে থাকে যা সনাক্তকারী দেখেনি, LanguageDetector.detect() und (অনির্ধারিত) ফেরত দিতে পারে। সেই ক্ষেত্রে ম্যানুয়ালি উৎস ভাষা বেছে নিন।