תמלול של ממשק API

תעתיק פשוט

השיטה הבאה מאפשרת לבצע תעתיק פשוט ללא ממשק משתמש על ידי ביצוע מניפולציה ב-JavaScript.

שיטה תיאור

google.language.transliterate(wordsArray, srcLang, destLang, callback)

google.language.transliterate(wordsArray, srcLang, destLang, callback) היא שיטה גלובלית שתעתיק טקסט נתון משפת המקור לשפת היעד. ה-API מחזיר את התוצאה באופן אסינכרוני אל הפונקציה callback הנתונה כאובייקט result. הפרמטרים לשיטה זו הם:

  • wordsArray מספק את הטקסט שיש לתעתק כמערך.
  • srcLang מספק את שפת המקור כקוד שפה. דוגמאות מפורטות בסעיף 'LanguageCode'.
  • destLang מספק את שפת היעד כקוד שפה. דוגמאות מפורטות בסעיף 'LanguageCode'.
  • callback היא פונקציית הקריאה החוזרת שמקבלת את הערך result.

ל-google.language.transliterate() אין ערך החזרה.

השיטה הפשוטה הזו לתעתיק משתמשת במרחב השמות של google.language.transliterate (ולא ב-google.elements.transliteration, שהוא מרחב השמות לכל שיטה אחרת ב-תעתיק).

google.language.transliterate() פלט את האובייקט result.

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

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

  • <result>
    • error?
      יש להציג אם אירעה שגיאה בתעתיק.
    • transliterations
      מערך בגודל זהה לגודל הקלט wordsArray.
      • transliteratedWords
        מערך בגודל מקסימלי של 5, עם תרגומים של המילה המתאימה ב-wordsArray.

הפניית JavaScript לבקרה על תעתיק

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

בונה - google.elements.transliteration.TransliterationControl(options)

יצרן תיאור

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) מאפשר תעתיק בקבוצה של רכיבי DOM ניתנים לעריכה ב-HTML ומספקת מספר שיטות שמאפשרות לך לשלוט בתעתיק ברכיבים האלה. הארגומנט options יכול להכיל את השדות הבאים:

  • sourceLanguage היא מחרוזת חובה המציינת את שפת המקור באמצעות LanguageCode en (כמו ב-google.elements.transliteration.ENGLISH). נכון לעכשיו, אנגלית היא שפת המקור הנתמכת היחידה.
  • destinationLanguage הוא מערך חובה שמציין את שפת היעד באמצעות LanguageCode en, כמו ב (google.elements.transliteration.HINDI).

    בממשק המשתמש, שפות היעד הזמינות מופיעות בתפריט, והשפה הראשונה במערך שנבחרה כברירת מחדל. כדי לקבל פרטים נוספים על שפות יעד תקפות בשפת מקור מסוימת, ניתן לעיין במאמר getDestinationLanguage.
  • transliterationEnabled הוא שדה אופציונלי המציין אם להפעיל את התעתיק כברירת מחדל. אם ברצונך להפעיל תעתיק כברירת מחדל, יש לציין את השדה הזה עם הערך true. ערך ברירת המחדל הוא false.
  • shortcutKey הוא שדה מחרוזת אופציונלי המציין שמקש קיצור מופעל כדי להפעיל או לכבות את התעתיק. כדי לציין את מקש הקיצור, יש לציין מחרוזת הכוללת משתנים, כגון 'Ctrl', 'Alt' או 'Shift' יחד עם אות אלפביתית. לדוגמה, &&339;Ctrl+g' &'Ctrl+Shift+a' הם שילובים חוקיים של מקשי קיצור.

    הערה: לא ניתן להשתמש ב-Shift בתור מקש השינוי היחיד, אבל אפשר להשתמש בו בשילוב עם Alt או Control.

שיטה זו יוצרת חריגים בנסיבות הבאות:

  • sourceLanguage או destinationLanguage לא חוקיים
  • שפות שאינן נתמכות בצמד השפות sourceLangauge ו-destinationLanguage
  • השילוב של קיצור הדרך לא חוקי

קטע הקוד הבא מדגים איך ליצור מופע של פקד התעתיק:

function onLoad() {
  var options = {
    sourceLanguage: 'en',
    destinationLanguage: ['hi'],
    shortcutKey: 'ctrl+g',
    transliterationEnabled: true
  };

  // Create an instance on TransliterationControl with the required
  // options.
  var control = new google.elements.transliteration.TransliterationControl(options);
}

שיטות בקרת תעתיק

השיטות הבאות מיושמות במרחב השמות google.elements.transliteration.TransliterationControl.

שיטה תיאור

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) מוסיף פונקציות מסוג listener לפקד התעתיק עבור סוג האירוע שצוין. כשסוג האירוע הספציפי מופעל, המאזינים מתקשרים עם אובייקט האירוע. תוכנו של אובייקט האירוע תלוי בסוג האירוע. הפרמטרים לשיטה זו הם:

  • eventType הוא האירוע שאליו יתווסף המאזינים. הארגומנט הזה מקבל את הערך שלו מ-eventType en (כמו google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)).
  • הערך listener מספק פונקציית האזנה לאירוע.
  • הפונקציה opt_listenerScope מתקשרת למתקשר עם הערך this שמוגדר לאובייקט שצוין ב-opt_listenerScope.

ל-.addEventListener() אין ערך החזרה.

.disableTransliteration()

.disableTransliteration() משבית את התעתיק בפקד התעתיק. לשיטה הזו אין ארגומנטים או ערך החזרה.

.enableTransliteration()

.enableTransliteration() מאפשר תעתיק בפקד התעתיק. לשיטה הזו אין ארגומנטים או ערך החזרה.

.isTransliterationEnabled()

ל-.isTransliterationEnabled() אין ארגומנטים ומחזירה בוליאני שמציין אם התעתיק מופעל בפקד התעתיק.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) מאפשר תעתיק ברכיבי ה-HTML שסופקו. הפרמטרים לשיטה זו הם:

  • elementIds הוא מערך המכיל מחרוזות של מזהי רכיבים ניתנים לעריכה או הפניות לרכיבים שעבורם ברצונך להפעיל תעתיק. רכיב שניתן לעריכה יכול להיות:

    • שדה טקסט
    • אזור טקסט
    • <div> with contentEditable="true"
    • <iframe> with designMode="on"
    • iFrame עם גוף של contentEditable="true". יש לוודא ש-iFrame נטען לפני הפעלת תעתיק.
  • opt_options הוא ארגומנט אופציונלי שמספק את האפשרויות שהוחלו על הרכיבים האלה. הארגומנט הזה יכול להכיל את השדות הבאים:
    • adjustElementStyle הוא שדה בוליאני אופציונלי, הקובע אם ה-API יתאים באופן אוטומטי את גודל הרכיב והגופן כך שיתאימו באופן אופטימלי לתווים של שפת היעד. ערך ברירת המחדל הוא true. אפשרות זו משפיעה רק על רכיבי הטקסט הפשוט.
    • adjustElementDirection הוא שדה בוליאני אופציונלי ששולט בכיוון של הרכיב שניתן לעריכה, בהתאם לכיוון של destinationLanguage. ערך ברירת המחדל הוא true.

עבור מערכות כתיבה מימין לשמאל, כמו ערבית, ה-API מתאים באופן אוטומטי את כיוון רכיב הקלט, בהתאם לכיוון של הסקריפט הכתוב ולתוכן של רכיב הקלט. אפשר להגדיר את כיוון הטקסט ברכיב קלט באמצעות HTML ו-JavaScript באמצעות direction. הערך הזה יכול להיות 'ltr' (מצד שמאל) או 'rtl' (מצד שמאל). השימוש בשיטה זו משפיע על הסמן ועל היישור של הטקסט באזור הקלט.

בדוגמה לתעתיק ערבית אפשר לראות דוגמה לתמיכה של API בשפות הנכתבות מימין לשמאל.

שיטה זו יוצרת חריגים אם אחד או יותר מה-elementIds שצוינו אינו חוקי.

ל-.makeTransliteratable() אין ערך החזרה.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope) מסיר פונקציות event listener מפקד התעתיק, כאשר:

  • הארגומנט הזה מקבל את הערך שלו ממערך eventType (כגון google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener היא הפונקציה של האירוע שיש להסיר.
  • opt_listenerScope הוא ההיקף שבו ההאזנה נרשמה בזמן הוספת ההאזנה.

ל-.removeEventListener() אין ערך החזרה.

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) מאפשר לך לשנות באופן דינמי את זוג השפה המשמש את פקד התעתיק, כאשר:

  • sourceLanguage מספק את סוג השפה לתעתיק. הארגומנט הזה מקבל את הערך שלו מ-LanguageCode en (כמו google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH)).
  • DestinationLanguage מספק את סוג השפה של הטקסט התעתיק.

.setLanguagePair() מחזיר את הערך בוליאני שמציין אם הפעולה setLanguage הסתיימה בהצלחה.

.showControl(divElement)

ב-.showControl(divElement) מוצג פקד התעתיק ב-DIV שצוין, כאשר divElement הוא המזהה של ה-DIV. לשיטה הזו אין ערך החזרה.

.toggleTransliteration()

.toggleTransliteration() מפעיל או משבית את התעתיק באמצעי הבקרה של התעתיק. לשיטה הזו אין ארגומנטים או ערך החזרה.

שיטה סטטית

השיטה הסטטית הבאה מיושמת במרחב השמות של google.language.

שיטה סטטית תיאור

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) היא פונקציה סטטית שמתעדת את פונקציית ה-handler שצוינה כדי להתקשר אליה כשהדף שמכיל את הקריאה הזאת נטען. כאשר callback הוא פונקציה נדרשת בעת טעינת המסמך שמכיל אותו וה-API מוכן לשימוש (למשל אחרי onLoad). הפונקציה הזו מוטמעת במרחב השמות של google (כלומר, google.setOnLoadCallback(callback);)

ל-.setOnLoadCallback() אין ערך החזרה.

הערה: לפי התיעוד הקודם, מומלץ להשתמש ברכיב הטעינה של רכיב הגוף (<body onload="OnLoad()">). זו דרך טובה להגיע למצב שבו יש לך שליטה מלאה על הדף וכל הקוד שנטען על ידי הדף. עם זאת, הגישה הזו עלולה לגרום לבעיות עם חלק מזמני הריצה שנהרסו את רכיב ה-handler של body.onload. ב-setOnLoadCallback() אין את הבעיות האלה, ולכן זו השיטה המומלצת לרישום קריאה חוזרת לקריאה לקוד כאשר ה-API נטען במלואו ומוכן לשימוש.

השיטה הסטטית הבאה מיושמת במרחב השמות של google.elements.transliteration.

שיטה סטטית תיאור

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) היא שיטה גלובלית שמחזירה מפה של שפות יעד שעבורן יש תמיכה בתעתיק עבור sourceLanguage הנתון. המפה שהוחזרה מכילה שפות יעד נתמכות, שבהן המפתח הוא שם השפה והערך הוא קוד השפה. המפה המוחזרות דומה למפה המתוארת ב-LanguageCode enum.

Enum

סוג סוג אירוע

הספירה של google.elements.transliteration.TransliterationControl.EventType מציינת את האירועים האפשריים במהלך תעתיק. ניתן לספק handlers מותאמים אישית לאירועים האלה בקוד.

var google.elements.transliteration.TransliterationControl.EventType = {
   STATE_CHANGED : 'state_changed',
   LANGUAGE_CHANGED : 'language_changed',
   SERVER_REACHABLE : 'server_reachable',
   SERVER_UNREACHABLE : 'server_unreachable'
};
  • google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED: תוצאות כשהתעתיק מופעל או מושבת בפקד התעתיק באמצעות:
    • מקש קיצור
    • השיטות enableTransliteration, disableTransliteration או toggleTransliteration
    • לחיצה בעכבר על פקד התעתיק ששרטטת בשיטה showControl.
    אובייקט האירוע שהועבר ל-listener מכיל את השדה transliterationEnabled. השדה הזה נכון אם התעתיק הוא 'on' אחרת הוא לא נכון.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: תוצאות כשזוג תעתיק התעתיק משתנה בפקד התעתיק באמצעות:
    • השיטה setLanguagePair
    • פקד התעתיק שציירת בשיטת showControl
    אובייקט האירוע שהועבר ל-listener מכיל את השדות sourceLanguage ו-destinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: תוצאות כשפונים בהצלחה לשרת כדי לתעתק טקסט.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE תוצאות לאחר ניסיון ליצור קשר עם השרת נכשל כדי לתעתק טקסט.

קוד שפה

ה-google.elements.transliteration.LanguageCode ממפה שמות קבועים לקודי שפה שאפשר להשתמש בהם כדי לציין את שפת המקור ושפת היעד בשיטות התעתיק.

var google.elements.transliteration.LanguageCode = {
    ENGLISH: 'en',
    AMHARIC: 'am',
    ARABIC: 'ar',
    BENGALI: 'bn',
    CHINESE: 'zh',
    GREEK: 'el',
    GUJARATI: 'gu',
    HINDI: 'hi',
    KANNADA: 'kn',
    MALAYALAM: 'ml',
    MARATHI: 'mr',
    NEPALI: 'ne',
    ORIYA: 'or',
    PERSIAN: 'fa',
    PUNJABI: 'pa',
    RUSSIAN: 'ru',
    SANSKRIT: 'sa',
    SINHALESE: 'si',
    SERBIAN: 'sr',
    TAMIL: 'ta',
    TELUGU: 'te',
    TIGRINYA: 'ti',
    URDU: 'ur'
};

שפה נתמכת של DestinationDestination

הספירה של google.elements.transliteration.SupportedDestinationLanguages במפות קבועה באמצעות מערכים של קודי שפה שבהם אפשר להשתמש כדי לציין קבוצות של שפות יעד בפקד התעתיק.

var google.elements.transliteration.SupportedDestinationLanguages = {
    // ALL includes all languages supported in the Transliterate API.
    // As support for more languages becomes available, this enum will be
    // automatically updated to include the new languages transparently.
    ALL: [
        google.elements.transliteration.LanguageCode.AMHARIC,
        google.elements.transliteration.LanguageCode.ARABIC,
        google.elements.transliteration.LanguageCode.BENGALI,
        google.elements.transliteration.LanguageCode.CHINESE,
        google.elements.transliteration.LanguageCode.GREEK,
        google.elements.transliteration.LanguageCode.GUJARATI,
        google.elements.transliteration.LanguageCode.HINDI,
        google.elements.transliteration.LanguageCode.KANNADA,
        google.elements.transliteration.LanguageCode.MALAYALAM,
        google.elements.transliteration.LanguageCode.MARATHI,
        google.elements.transliteration.LanguageCode.NEPALI,
        google.elements.transliteration.LanguageCode.ORIYA,
        google.elements.transliteration.LanguageCode.PERSIAN,
        google.elements.transliteration.LanguageCode.PUNJABI,
        google.elements.transliteration.LanguageCode.RUSSIAN,
        google.elements.transliteration.LanguageCode.SANSKRIT,
        google.elements.transliteration.LanguageCode.SERBIAN,
        google.elements.transliteration.LanguageCode.SINHALESE,
        google.elements.transliteration.LanguageCode.TAMIL,
        google.elements.transliteration.LanguageCode.TELUGU,
        google.elements.transliteration.LanguageCode.TIGRINYA,
        google.elements.transliteration.LanguageCode.URDU],
 
    // INDIC includes all Indic languages supported in the Transliterate API.
    // As support for more Indic languages becomes available, this enum will be
    // automatically updated to include the new languages transparently.
    INDIC: [
        google.elements.transliteration.LanguageCode.BENGALI,
        google.elements.transliteration.LanguageCode.GUJARATI,
        google.elements.transliteration.LanguageCode.HINDI,
        google.elements.transliteration.LanguageCode.KANNADA,
        google.elements.transliteration.LanguageCode.MALAYALAM,
        google.elements.transliteration.LanguageCode.MARATHI,
        google.elements.transliteration.LanguageCode.NEPALI,
        google.elements.transliteration.LanguageCode.ORIYA,
        google.elements.transliteration.LanguageCode.PUNJABI,
        google.elements.transliteration.LanguageCode.SANSKRIT,
        google.elements.transliteration.LanguageCode.SINHALESE,
        google.elements.transliteration.LanguageCode.TAMIL,
        google.elements.transliteration.LanguageCode.TELUGU,
        google.elements.transliteration.LanguageCode.URDU]
};

פתרון בעיות

אם נתקלתם בבעיות:

  • מחפשים שגיאות הקלדה. זכרו ש-JavaScript הוא שפה תלוית אותיות רישיות.
  • משתמשים בכלי לניפוי באגים של JavaScript. ב-Google Chrome יש קבוצה מלאה של כלים למפתחים. ב-Firefox אפשר להשתמש במסוף JavaScript או ב-Firebug. ב-IE, אפשר להשתמש בכלי לניפוי באגים של Microsoft Script.
  • חפש בקבוצת הדיונים. אם לא הצלחת למצוא פוסט שעונה על השאלה שלך, אפשר לפרסם את השאלה בקבוצה יחד עם קישור לדף אינטרנט שמדגים את הבעיה.