תרגום באמצעות AI מובנה

פורסם: 13 בנובמבר 2024, עדכון אחרון: 20 במאי 2025

הסבר פיתוח אתרים תוספים הסטטוס של Chrome המטרה
MDN Chrome 138 Chrome 138 תצוגה כוונה לשלוח

אפשר להשתמש ב-Translator API ב-Chrome כדי לתרגם טקסט באמצעות מודלים של AI שמופיעים בדפדפן.

יכול להיות שהאתר שלכם כבר מציע תוכן בכמה שפות, כדי שיהיה נגיש לקהל גלובלי. באמצעות Translator API, משתמשים יכולים לתרום בשפה הראשונה שלהם. לדוגמה, משתמשים יכולים להשתתף בצ'אטים עם נציגי תמיכה בשפה הראשונה שלהם, והאתר יכול לתרגם את הצ'אט לשפה שבה נציגי התמיכה משתמשים, לפני שהצ'אט עוזב את המכשיר של המשתמש. כך נוצרת חוויה חלקה, מהירה ומכילה לכל המשתמשים.

בדרך כלל, כדי לתרגם תוכן באינטרנט צריך להשתמש בשירות ענן. קודם מעלים את תוכן המקור לשרת, שמריץ את התרגום לשפת היעד, ואז מורידים את הטקסט שמתקבל ומחזירים אותו למשתמש. הפעלת התרגום בצד הלקוח חוסכת את הזמן שנדרש להעברות לשרת ואת העלות של אירוח שירות התרגום.

שנתחיל?

‫Translator API זמין החל מ-Chrome 138 stable. קודם מריצים זיהוי תכונות כדי לראות אם הדפדפן תומך ב-API של Translator.

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

אתם תמיד יודעים מה שפת היעד של התרגומים, אבל לא תמיד תדעו מה שפת המקור. במקרים כאלה, אפשר להשתמש ב-Language Detector API.

בדיקת דרישות החומרה

הדרישות הבאות חלות על מפתחים ועל משתמשים שמפעילים תכונות באמצעות ממשקי ה-API האלה ב-Chrome. בדפדפנים אחרים עשויות להיות דרישות הפעלה שונות.

ממשקי ה-API של כלי זיהוי השפה והתרגום פועלים ב-Chrome במחשב. ממשקי ה-API האלה לא פועלים במכשירים ניידים. ממשקי Prompt API,‏ Summarizer API,‏ Writer API ו-Rewriter API פועלים ב-Chrome כשמתקיימים התנאים הבאים:

  • מערכת הפעלה: Windows 10 או 11;‏ macOS מגרסה 13 ואילך (Ventura ואילך); או Linux. ‫Chrome ל-Android, ל-iOS ול-ChromeOS עדיין לא נתמך על ידי ממשקי ה-API שמשתמשים ב-Gemini Nano.
  • אחסון: לפחות 22 GB בכרך שמכיל את פרופיל Chrome.
  • מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
  • רשת: נתונים ללא הגבלה או חיבור ללא מדידה.

הגודל המדויק של Gemini Nano עשוי להשתנות מעט. כדי לראות את הגודל הנוכחי, נכנסים אל chrome://on-device-internals ועוברים אל Model status (סטטוס המודל). פותחים את נתיב הקובץ שמופיע ברשימה כדי לקבוע את גודל המודל.

בדיקת התמיכה בזוג שפות

התרגום מתבצע באמצעות חבילות שפה, שמורידים לפי הצורך. חבילת שפה היא כמו מילון לשפה מסוימת.

  • 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() היא דורשת פרמטר options עם שני שדות, אחד ל-sourceLanguage ואחד ל-targetLanguage.

// Create a translator that translates from English to French.
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

אחרי שמקבלים אובייקט translator, מתקשרים אל translate() האסינכרוני.

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

לחלופין, אם אתם צריכים לעבד טקסטים ארוכים יותר, אתם יכולים להשתמש בגרסת הסטרימינג של ה-API ולהפעיל את translateStreaming().

const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
  console.log(chunk);
}

תרגומים עוקבים

התרגומים מעובדים ברצף. אם שולחים כמויות גדולות של טקסט לתרגום, התרגומים הבאים נחסמים עד שהתרגומים הקודמים מסתיימים.

כדי לקבל את התשובה הכי טובה לבקשות שלכם, כדאי לקבץ אותן ולהוסיף ממשק טעינה, כמו סמל טעינה, כדי להראות שהתרגום מתבצע.

הדגמה (דמו)

אפשר לראות את Translator API, שמשמש בשילוב עם Language Detector API, בסביבת הבדיקה של Translator ו-Language Detector API.

מאמץ התקנון

אנחנו פועלים לסטנדרטיזציה של Translator API כדי להבטיח תאימות בין דפדפנים שונים.

הצעת ה-API שלנו קיבלה תמיכה מהקהילה ועברה לW3C Web Incubator Community Group להמשך דיון. צוות Chrome ביקש משוב מקבוצת הארכיטקטורה הטכנית של W3C וביקש מ-Mozilla ומ-WebKit את עמדותיהן בנוגע לתקנים.

כדי להשתתף בתהליך יצירת התקנים, אפשר להצטרף לקבוצת הקהילה Web Incubator.

שליחת משוב

נשמח לראות מה אתם בונים באמצעות Language Detector API. אתם יכולים לשתף איתנו את האתרים ואת אפליקציות האינטרנט שלכם ב-X, ב-YouTube וב-LinkedIn.

כדי לשלוח משוב על ההטמעה של Chrome, אפשר להגיש דוח באגים או בקשה להוספת תכונה.