الترجمة باستخدام تكنولوجيات الذكاء الاصطناعي المدمجة

تاريخ النشر: 12 تشرين الثاني (نوفمبر) 2024

استخدِم Translator API في Chrome لترجمة النص في المتصفّح باستخدام نماذج الذكاء الاصطناعي المحلية.

قد يقدّم موقعك الإلكتروني محتوى بعدّة لغات، ما يتيح لجمهور العالمي الوصول إليه. باستخدام Translator API، يمكن للمستخدمين المساهمة بلغتهم الأولى. على سبيل المثال، يمكن للمستخدمين المشاركة في محادثات الدعم باللغة الأولى لهم، ويمكن لموقعك الإلكتروني ترجمة هذه المحادثات إلى اللغة التي يستخدمها موظّفو الدعم، وذلك قبل أن تغادر محادثة المستخدم. ويؤدي ذلك إلى توفير تجربة سلسة وسريعة وشاملة لجميع المستخدمين.

ترجمة المحتوى على الويب تتطلب عادةً من خلال خدمة سحابية. أولاً، يتم تحميل المحتوى المصدر إلى خادم يُجري الترجمة إلى لغة مستهدفة، ثم يتم تنزيل النص الناتج وإعادته إلى المستخدِم. من خلال تشغيل الترجمة على الجهاز العميل، يمكنك توفير الوقت الذي تستغرقه تنقّلات الخادم وتكلفة استضافة خدمة الترجمة.

مدى التوفّر

على الرغم من أنّ اللغة الهدف المحدّدة معروفة دائمًا، قد تكون language المصدر غير معروفة في بعض الحالات، مثلاً في المحتوى الذي ينشئه المستخدمون. في مثل هذه الحالات، يتضمّن اقتراح Translator API كلًّا من Translator API وLanguage Detector API، المتوفّرَين أيضًا في مرحلة التجربة والتقييم. اشترِك في التجربتَين التجريبيتَين لمصدر البيانات لاستخدام واجهات برمجة التطبيقات هذه معًا.

رصد الميزات

لتحديد ما إذا كانت Translator API متوافقة، يمكنك تشغيل المقتطف التالي لرصد الميزات.

if ('translation' in self && 'createTranslator' in self.translation) {
  // The Translator API is supported.
}

التحقّق من توفّر الأزواج اللغوية

تتم إدارة الترجمة باستخدام حِزم اللغات التي يتم تنزيلها عند الطلب. إنّ حِزمة اللغة هي بمثابة قاموس للغة معيّنة. يتم إقران هذه الحِزم بالدالة canTranslate() غير المتزامنة، التي تتيح لك تحديد ما إذا كان هناك زوج لغة متوافق.

تتطلّب الدالة canTranslate() مَعلمة options تتضمّن حقلَين:

  • sourceLanguage: اللغة الحالية للنص
  • targetLanguage: اللغة النهائية التي يجب ترجمة النص إليها.

استخدِم الرموز القصيرة للّغات وفق معيار BCP 47 كسلسلة. على سبيل المثال، 'es' للغة الإسبانية أو 'fr' للغة الفرنسية.

await translation.canTranslate({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});
// 'readily'

يمكن أن تعرِض الدالة canTranslate() أيًّا ممّا يلي:

  • no: لا يمكن لهذا المتصفّح الترجمة على النحو المطلوب.
  • readily: يمكن للمتصفّح الترجمة على النحو المطلوب.
  • after-download: يمكن للمتصفّح إجراء الترجمة، ولكن بعد تنزيل النموذج أو حِزم اللغات ذات الصلة فقط.

يمكنك الاستماع إلى مستوى تقدُّم عملية التنزيل باستخدام الحدث downloadprogress:

translator.ondownloadprogress = progressEvent => {
  updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};

في حال تعذّر التنزيل، سيتوقّف بث أحداث downloadprogress وسيتم رفض الوعد ready.

إنشاء المترجم وتشغيله

لإنشاء مترجم، استخدِم الدالة غير المتزامنة translation.createTranslator(). مثل canTranslate()، تتطلّب هذه السمة مَعلمة خيارات تحتوي على حقلَين، أحدهما لـ sourceLanguage والآخر لـ targetLanguage.

// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
  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 ?"

القيود المفروضة على الفترة التجريبية للمصدر

تنطبق القيود التالية أثناء الفترة التجريبية الأصلية.

الأزواج اللغوية المتاحة

في الوقت الحالي، يمكن تنزيل ما يصل إلى ثلاث حِزم لغات للترجمة. نحن ملتزمون بتوسيع نطاق اللغات المتاحة في الإصدارات المستقبلية، مع الحفاظ على معايير عالية لخصوصية المستخدمين. يمكنك التأكّد من توفّر canTranslate() دالة التي تتيح استخدام لغة معيّنة مع لغة أخرى.

من الممكن أن يتم استخدام أزواج لغات معيّنة يتم استخدامها بشكل أقل لتحديد هوية المستخدمين . على سبيل المثال، يُرجّح أن تتم الترجمة بين الإنجليزية والإسبانية أكثر من اللغات الأقل شيوعًا، مثل الأيرلندية والكاتالانية. يمكن اعتبار ثنائي اللغة الأقل شيوعًا نقطة بيانات لتحديد هوية المستخدم.

خلال الفترة التجريبية الأصلية، سنحدّ من أزواج اللغات التي يمكن ترجمتها لحماية خصوصية المستخدم. يجب أن تستوفي أزواج اللغات المعايير التالية:

  • يتم ضبط كل من اللغة المصدر واللغة الهدف على أنّهما اللغات المفضّلة في Chrome.
  • أو تم ضبط إحدى اللغتَين كلغة مفضّلة في Chrome، والأخرى من بين اللغات الرائجة التالية:
    • الإنجليزية (en)
    • الصينية المندرينية (zh؛ المبسّطة) أو المندرينية التايوانية (zh-Hant؛ التقليدية)
    • اليابانية (ja)
    • البرتغالية (pt)
    • الروسية (ru)
    • الإسبانية (es)
    • التركية (tr)
    • الهندية (hi)
    • الفيتنامية (vi)
    • البنغالية (bn)

إزالة القيود المفروضة على اللغة في الاختبار على الجهاز

للحصول على نماذج أولية محلية، يمكنك تجاوز عمليات التحقق هذه من خلال تشغيل Chrome باستخدام خيار سطر الأوامر --disable-features=TranslationAPIAcceptLanguagesCheck. بدلاً من ذلك، اضبط chrome://flags/#translation-api على تفعيل بدون حدّ أقصى لحِزم اللغات.

انتقِل إلى chrome://on-device-translation-internals/ لتثبيت حِزم اللغات ونقلها يدويًا.

الترجمات التسلسلية

تتم معالجة الترجمات بالتسلسل. إذا أرسلت كميات كبيرة من النصوص لتمت ترجمتها، يتم حظر عمليات الترجمة اللاحقة إلى أن تكتمل عمليات الترجمة السابقة.

للحصول على أفضل استجابة لطلبات الترجمة، جمِّعها معًا وفكِّر في عرض واجهة تحميل، مثل مؤشر سريان العمل، للإشارة إلى أنّ الترجمة مستمرة.

مدى توفّر Web Worker

خلال الفترة التجريبية الأصلية، لا يمكن استخدام Translator API إلا من سلسلت الرسائل الرئيسية. وننوي توفيرها في Web Workers بعد توفّر واجهة برمجة التطبيقات على نطاق واسع.

عرض توضيحي

يمكنك الاطلاع على واجهة برمجة تطبيقات الترجمة، المستخدمة مع واجهة برمجة تطبيقات أداة رصد اللغة، في ملعب واجهة برمجة التطبيقات للمترجمين أداة كشف اللغة.

جهود التوحيد

نحن نعمل على توحيد Translator API لضمان التوافق مع جميع المتصفحات.

تلقّى اقتراحنا لواجهة برمجة التطبيقات دعمًا من المجتمع، وتم نقله إلى مجموعة منتدى W3C Web Incubator لإجراء مزيد من المناقشة. طلب فريق Chrome ملاحظات من مجموعة الهندسة المعمارية التقنية في W3C وسأل Mozilla وWebKit عن مواقفهما بشأن المعايير.

المشاركة وتقديم الملاحظات

يمكنك بدء اختبار واجهة برمجة التطبيقات الخاصة بالترجمة الآن من خلال الانضمام إلى مرحلة التجربة والتقييم ومشاركة ملاحظاتك. يمكن أن تؤثّر ملاحظاتك مباشرةً في طريقة إنشاء و تنفيذ الإصدارات المستقبلية من واجهة برمجة التطبيقات هذه وجميع واجهات برمجة التطبيقات المضمّنة للذكاء الاصطناعي.