تاريخ النشر: 13 نوفمبر 2024، تاريخ آخر تعديل: 20 مايو 2025
شرح | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
---|---|---|---|---|
MDN | العرض | Intent to Ship |
استخدام Translator API في Chrome لترجمة النصوص باستخدام نماذج الذكاء الاصطناعي المتوفّرة في المتصفّح
قد يوفّر موقعك الإلكتروني محتوى بعدة لغات لتسهيل وصول الجمهور العالمي إليه. باستخدام Translator API، يمكن للمستخدمين المساهمة بلغتهم الأم. على سبيل المثال، يمكن للمستخدمين المشاركة في محادثات الدعم بلغتهم الأولى، ويمكن لموقعك الإلكتروني ترجمة المحادثة إلى اللغة التي يستخدمها موظفو الدعم قبل أن تغادر جهاز المستخدم. ويتيح ذلك تجربة سلسة وسريعة وشاملة لجميع المستخدمين.
عادةً ما تتطلّب ترجمة المحتوى على الويب استخدام خدمة سحابية. أولاً، يتم تحميل المحتوى المصدر إلى خادم، ثم يتم تشغيل الترجمة إلى اللغة المستهدَفة، وبعد ذلك يتم تنزيل النص الناتج وإرساله إلى المستخدم. من خلال تنفيذ الترجمة على الجهاز العميل، يمكنك توفير الوقت اللازم لعمليات نقل البيانات إلى الخادم وتكاليف استضافة خدمة الترجمة.
البدء
تتوفّر Translator API من الإصدار الثابت 138 من Chrome. في البداية، شغِّل ميزة التعرّف على الميزات لمعرفة ما إذا كان المتصفّح يتيح استخدام Translator API.
if ('Translator' in self) {
// The Translator API is supported.
}
مع أنّك تعرف دائمًا اللغة الهدف للترجمات، قد لا تعرف دائمًا اللغة المصدر. في مثل هذه الحالات، يمكنك استخدام Language Detector API.
مراجعة متطلبات الأجهزة
في ما يلي المتطلبات التي يجب استيفاؤها من قِبل المطوّرين والمستخدمين الذين يشغّلون الميزات باستخدام واجهات برمجة التطبيقات هذه في Chrome. قد تتطلّب المتصفّحات الأخرى متطلبات تشغيل مختلفة.
تعمل واجهتا برمجة التطبيقات Language Detector وTranslator في متصفّح Chrome على أجهزة الكمبيوتر المكتبي. ولا تعمل واجهات برمجة التطبيقات هذه على الأجهزة الجوّالة. تعمل واجهات برمجة التطبيقات Prompt API وSummarizer API وWriter API وRewriter API في Chrome عند استيفاء الشروط التالية:
- نظام التشغيل: Windows 10 أو 11 أو macOS 13 (Ventura والإصدارات الأحدث) أو Linux لا تتوافق واجهات برمجة التطبيقات التي تستخدم Gemini Nano مع متصفّح Chrome على أجهزة Android وiOS وChromeOS حتى الآن.
- مساحة التخزين: يجب أن تتوفّر مساحة تخزين لا تقلّ عن 22 غيغابايت على وحدة التخزين التي تحتوي على ملفك الشخصي على Chrome.
- وحدة معالجة الرسومات (GPU): يجب أن تكون ذاكرة الوصول العشوائي للفيديو (VRAM) أكبر من 4 غيغابايت.
- الشبكة: بيانات غير محدودة أو اتصال غير محدود.
قد يختلف حجم Gemini Nano قليلاً. للعثور على الحجم الحالي، انتقِل إلى
chrome://on-device-internals
ثم إلى حالة النموذج.
افتح مسار الملف المُدرَج لتحديد حجم النموذج.
التحقّق من توفّر الزوج اللغوي
تتم إدارة الترجمة باستخدام حِزم اللغات التي يتم تنزيلها عند الطلب. حزمة اللغة هي بمثابة قاموس للغة معيّنة.
-
sourceLanguage
: اللغة الحالية للنص targetLanguage
: اللغة النهائية التي يجب ترجمة النص إليها.
استخدِم رموز اللغات القصيرة BCP 47 كسلاسل. على سبيل المثال، 'es'
للإسبانية أو 'fr'
للفرنسية.
const translatorCapabilities = await Translator.availability({
sourceLanguage: 'es',
targetLanguage: 'fr',
});
// 'available'
تعرض الدالة availability()
وعدًا يتضمّن القيم التالية:
-
"unavailable"
: لا يتيح التنفيذ ترجمة اللغات المحدّدة أو التعرّف عليها. -
"downloadable"
: يتيح التنفيذ ترجمة اللغات المحدّدة أو التعرّف عليها، ولكن يجب تنزيلها للمتابعة. قد يكون التنزيل هو نموذج المتصفّح. -
"downloading"
: يتيح التنفيذ ترجمة اللغات المحدّدة أو التعرّف عليها. يُنهي المتصفّح عملية تنزيل جارية كجزء من إنشاء العنصر المرتبط. -
"available"
: يشير إلى أنّ عملية التنفيذ تتيح ترجمة اللغات المحدّدة أو التعرّف عليها، وأنّ عمليات التنزيل المطلوبة قد اكتملت.
استمِع إلى مستوى التقدّم في تنزيل النموذج باستخدام الحدث downloadprogress
:
const translator = await Translator.create({
sourceLanguage: 'es',
targetLanguage: 'fr',
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
إذا تعذّر التنزيل، تتوقف أحداث downloadprogress
ويتم رفض وعد ready
.
إنشاء أداة الترجمة وتشغيلها
لإنشاء أداة ترجمة، استدعِ الدالة غير المتزامنة create()
. يتطلّب ذلك معلَمة خيارات تتضمّن حقلَين، أحدهما لـ sourceLanguage
والآخر لـ targetLanguage
.
// Create a translator that translates from English to French.
const translator = await Translator.create({
sourceLanguage: 'en',
targetLanguage: 'fr',
});
بعد الحصول على مترجم، اتّصِل بالدالة غير المتزامنة translate()
.
await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"
بدلاً من ذلك، إذا كنت بحاجة إلى التعامل مع نصوص أطول، يمكنك أيضًا استخدام إصدار البث من واجهة برمجة التطبيقات واستدعاء translateStreaming()
.
const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
console.log(chunk);
}
الترجمات التسلسلية
تتم معالجة الترجمات بالتسلسل. إذا أرسلت كميات كبيرة من النصوص لترجمتها، سيتم حظر الترجمات اللاحقة إلى أن تكتمل الترجمات السابقة.
للحصول على أفضل استجابة لطلباتك، قسِّمها إلى أجزاء وأضِف واجهة تحميل، مثل مؤشر تقدّم التحميل، للإشارة إلى أنّ عملية الترجمة مستمرة.
عرض توضيحي
يمكنك الاطّلاع على واجهة برمجة التطبيقات Translator API، المستخدَمة مع واجهة برمجة التطبيقات Language Detector، في ساحة تجارب واجهة برمجة التطبيقات Translator وLanguage Detector.
الجهد المطلوب لتوحيد المقاييس
نعمل على توحيد معايير Translator API لضمان التوافق مع جميع المتصفحات.
لقد حظي اقتراح واجهة برمجة التطبيقات بدعم من المنتدى، وتم نقله إلى مجموعة W3C Web Incubator Community Group لمناقشته بشكل أكبر. طلب فريق Chrome الحصول على ملاحظات من فريق الهندسة المعمارية التقنية في W3C، كما طلب من Mozilla وWebKit توضيح مواقفهما بشأن المعايير.
يمكنك المشاركة في جهود وضع المعايير من خلال الانضمام إلى مجموعة Web Incubator Community Group.
مشاركة الملاحظات
نريد أن نرى ما تنشئه باستخدام واجهة برمجة التطبيقات Language Detector API. يمكنك مشاركة مواقعك الإلكترونية وتطبيقات الويب معنا على X وYouTube وLinkedIn.
لإرسال ملاحظات حول طريقة تنفيذ Chrome لهذه الميزة، يمكنك تقديم تقرير عن خطأ أو طلب ميزة.