การอ้างอิง API การทับศัพท์

การทับศัพท์แบบง่าย

วิธีการต่อไปนี้ช่วยให้คุณทับศัพท์ได้ง่ายๆ โดยไม่มี UI ด้วยการปรับเปลี่ยน 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 ซึ่งเป็นเนมสเปซของวิธีการอื่นๆ ทั้งหมดใน Transliterate API)

google.language.transliterate() เอาต์พุตออบเจ็กต์ result

ออบเจ็กต์ผลลัพธ์สร้างโดยใช้การเข้ารหัส JSON ของคําขอเซิร์ฟเวอร์ ด้วยเหตุนี้ เราจึงเลือกที่จะไม่ใช้ออบเจ็กต์ JavaScript อย่างเป็นทางการ และสร้างออบเจ็กต์ result จากแบบฟอร์มที่มีการเปลี่ยนแปลงแทน

แม้ว่าจะไม่มีการติดตั้งใช้งานอย่างเป็นทางการของออบเจ็กต์ แต่ออบเจ็กต์นั้นมีการบันทึก และเราจะบันทึกเสมือนว่ามีการใช้งาน JavaScript ที่สนับสนุน ผลกระทบจากทั้งหมดนี้เพียงเล็กน้อยเท่านั้น ซึ่งหมายความว่าไม่มีเครื่องมือสร้างชื่อ สําหรับผลลัพธ์แต่ละรายการ ให้เปรียบเสมือนระบบชื่อ Object() ใหม่ แล้วตั้งค่าพร็อพเพอร์ตี้อย่างเป็นทางการในออบเจ็กต์นั้น พร็อพเพอร์ตี้เหล่านี้อยู่ด้านล่าง

  • <result>
    • error?
      นําเสนอหากเกิดข้อผิดพลาดในการทับศัพท์
    • transliterations
      อาร์เรย์ขนาดเท่ากับขนาดของอินพุต wordsArray
      • transliteratedWords
        อาร์เรย์ของขนาดไม่เกิน 5 โดยมีการทับศัพท์สําหรับคําที่เกี่ยวข้องใน wordsArray

การอ้างอิง JavaScript การควบคุมการทับศัพท์

เครื่องมือสร้างและวิธีการต่อไปนี้ช่วยให้คุณทับศัพท์ภายใน UI ที่ API มีให้

เครื่องมือสร้าง - google.elements.transliteration.TransliterationControl(options)

ผู้ผลิต คำอธิบาย

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) การทับศัพท์ในชุดองค์ประกอบ HTML DOM ที่แก้ไขได้และจัดหาวิธีการต่างๆ ที่ช่วยให้คุณควบคุมการทับศัพท์ในองค์ประกอบเหล่านั้นได้ อาร์กิวเมนต์ options อาจมีช่องต่อไปนี้

  • sourceLanguage เป็นสตริงบังคับที่ระบุภาษาต้นฉบับโดยใช้ enum ของ LanguageCode (เช่นเดียวกับ google.elements.transliteration.ENGLISH) ขณะนี้ภาษาอังกฤษเป็นภาษาต้นฉบับที่รองรับเท่านั้น
  • destinationLanguage คืออาร์เรย์ บังคับ ที่ระบุภาษาปลายทางโดยใช้ enum ของ LanguageCode ตามที่เป็น (เหมือนใน google.elements.transliteration.HINDI)

    ใน UI ภาษาปลายทางที่ใช้ได้จะปรากฏในเมนู โดยภาษาแรกในอาร์เรย์ที่เลือกโดยค่าเริ่มต้น โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับปลายทางที่ถูกต้องสําหรับภาษาต้นฉบับที่ระบุที่ getDestinationLanguage
  • transliterationEnabled เป็นช่องที่ไม่บังคับซึ่งระบุว่าจะเปิดใช้การทับศัพท์โดยค่าเริ่มต้นหรือไม่ หากต้องการเปิดใช้การทับศัพท์เป็นค่าเริ่มต้น ให้ระบุช่องนี้ด้วยค่า true ค่าเริ่มต้นคือ false
  • shortcutKey เป็นช่องสตริงที่ไม่บังคับซึ่งระบุคีย์แป้นพิมพ์ลัดเพื่อเปิดหรือปิดการทับศัพท์ ในการระบุคีย์แป้นพิมพ์ลัด ให้ระบุสตริงที่มีตัวปรับแต่ง เช่น 'Ctrl', 'Alt' หรือ 'Shift' พร้อมตัวอักษรที่เป็นตัวอักษร ตัวอย่างเช่น 'Ctrl+g' & 'Ctrl+Shift+a' ทั้ง 2 ค่าเป็นแป้นพิมพ์ลัดที่ถูกต้อง

    หมายเหตุ: คุณใช้ Shift เป็นคีย์ตัวปรับแต่งได้เท่านั้น แต่ใช้ร่วมกับ Alt หรือ Control ได้

วิธีนี้ทําให้เกิดข้อยกเว้นในสถานการณ์ต่อไปนี้

  • sourceLanguage หรือ destinationLanguage ไม่ถูกต้อง
  • คู่ภาษาsourceLangaugeและdestinationLanguageไม่รองรับภาษา
  • ชุดค่าผสมของ shortcutsKey ไม่ถูกต้อง

ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีการสร้างการควบคุมการทับศัพท์

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 ในการควบคุมการทับศัพท์สําหรับประเภทเหตุการณ์ที่ระบุ เมื่อมีการทริกเกอร์ประเภทเหตุการณ์นั้นๆ ระบบจะเรียก Listener ด้วยออบเจ็กต์เหตุการณ์ เนื้อหาของออบเจ็กต์เหตุการณ์จะขึ้นอยู่กับประเภทของเหตุการณ์ พารามิเตอร์สําหรับเมธอดนี้ได้แก่

  • eventType คือเหตุการณ์ที่จะเพิ่ม Listener อาร์กิวเมนต์นี้ใช้ค่าจากeventType enum (เช่น google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)
  • listener มีฟังก์ชัน Listener สําหรับเหตุการณ์
  • opt_listenerScope เรียก Listener ด้วยการตั้งค่า this เป็นออบเจ็กต์ที่ระบุใน opt_listenerScope

.addEventListener() ไม่มีค่าคืนสินค้า

.disableTransliteration()

.disableTransliteration() ปิดใช้การทับศัพท์ในการควบคุมการทับศัพท์ เมธอดนี้ไม่มีอาร์กิวเมนต์และไม่มีค่าส่งคืน

.enableTransliteration()

.enableTransliteration() จะเปิดใช้การทับศัพท์ในการควบคุมการทับศัพท์ เมธอดนี้ไม่มีอาร์กิวเมนต์และไม่มีค่าส่งคืน

.isTransliterationEnabled()

.isTransliterationEnabled() ไม่มีอาร์กิวเมนต์และส่งคืนบูลีนที่ระบุว่ามีการเปิดใช้การทับศัพท์ในการควบคุมการทับศัพท์หรือไม่

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) เปิดใช้การทับศัพท์ในองค์ประกอบ HTML ที่ระบุ พารามิเตอร์สําหรับเมธอดนี้ได้แก่

  • elementIds คืออาร์เรย์ที่มีสตริงรหัสองค์ประกอบที่แก้ไขได้หรือข้อมูลอ้างอิงองค์ประกอบที่คุณต้องการเปิดใช้การทับศัพท์ องค์ประกอบที่แก้ไขได้มีดังนี้

    • ช่องข้อความ
    • พื้นที่ข้อความ
    • <div> ด้วย contentEditable="true"
    • <iframe> กับ 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) จะนํา Listener เหตุการณ์ออกจากการควบคุมการทับศัพท์ ในกรณีที่

  • อาร์กิวเมนต์นี้ใช้ค่าจาก Enum eventType (เช่น google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)
  • listener คือฟังก์ชันสําหรับเหตุการณ์ที่ต้องนําออก
  • opt_listenerScope คือขอบเขตที่มีการลงทะเบียน Listener ตอนที่เพิ่ม Listener

.removeEventListener() ไม่มีค่าคืนสินค้า

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) ช่วยให้คุณเปลี่ยนคู่ภาษาที่ใช้ในการควบคุมการทับศัพท์แบบไดนามิกได้ โดยที่

  • sourceLanguage ระบุประเภทภาษาที่ทับศัพท์ อาร์กิวเมนต์นี้ใช้ค่าจากLanguageCode enum (เช่น google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH)
  • destinationLanguage ระบุประเภทภาษาสําหรับข้อความทับศัพท์

.setLanguagePair() แสดงบูลีนที่ระบุว่าการดําเนินการ setLanguage สําเร็จหรือไม่

.showControl(divElement)

.showControl(divElement) แสดงการควบคุมการทับศัพท์ใน DIV ที่ระบุ โดยที่ divElement เป็นรหัสของ DIV วิธีนี้ไม่มีค่าส่งคืน

.toggleTransliteration()

.toggleTransliteration() เปิดหรือปิดการทับศัพท์ในการควบคุมการทับศัพท์ เมธอดนี้ไม่มีอาร์กิวเมนต์และไม่มีค่าส่งคืน

เมธอดแบบคงที่

ระบบใช้วิธีแบบคงที่ต่อไปนี้กับเนมสเปซ google.language

เมธอดแบบคงที่ คำอธิบาย

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) เป็นฟังก์ชันคงที่ที่ลงทะเบียนฟังก์ชันเครื่องจัดการที่ระบุไว้เมื่อเรียกใช้หน้าที่โหลดการเรียกนี้ โดย callback เป็นฟังก์ชันที่จําเป็นเมื่อโหลดเอกสารที่มี API และพร้อมใช้งาน API (เช่น หลังจาก onLoad) โดยฟังก์ชันนี้ใช้ในเนมสเปซ google (เช่น google.setOnLoadCallback(callback);)

.setOnLoadCallback() ไม่มีค่าคืนสินค้า

หมายเหตุ: เอกสารก่อนหน้านี้แนะนําให้คุณใช้เอลิเมนต์ของการโหลดของเอลิเมนต์เนื้อหา (<body onload="OnLoad()">) แม้ว่าวิธีนี้จะเหมาะอย่างยิ่งเมื่อคุณควบคุมหน้าเว็บโดยสมบูรณ์และโค้ดทั้งหมดที่โหลดโดยหน้าเว็บ วิธีนี้จะทําให้เกิดปัญหากับรันไทม์บางรายการที่ทําลายเครื่องจัดการ body.onload setOnLoadCallback() ไม่มีปัญหาเหล่านี้ ดังนั้นจึงเป็นวิธีที่แนะนําสําหรับการลงทะเบียนโค้ดเรียกกลับที่เรียกใช้โค้ดของคุณเมื่อ API โหลดอย่างสมบูรณ์และพร้อมใช้งาน

ระบบใช้วิธีแบบคงที่ต่อไปนี้กับเนมสเปซ google.elements.transliteration

เมธอดแบบคงที่ คำอธิบาย

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) คือวิธีทั่วไปที่แสดงผลแผนที่ภาษาปลายทางซึ่งรองรับการทับศัพท์สําหรับ sourceLanguage ที่ระบุ แผนที่ที่แสดงผลมีภาษาปลายทางที่สนับสนุน โดยที่คีย์คือชื่อภาษาและค่าจะเป็นรหัสภาษา แผนที่ที่แสดงผลคล้ายกับแผนที่ที่อธิบายไว้ในแจกแจง LanguageCode

Enum

การแจกแจง EventType

การแจกแจง google.elements.transliteration.TransliterationControl.EventType จะแสดงรายการเหตุการณ์ที่เป็นไปได้ระหว่างการทับศัพท์ คุณสามารถระบุเครื่องจัดการที่กําหนดเองสําหรับเหตุการณ์เหล่านี้ในโค้ดได้

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 เกิดขึ้นเมื่อพยายามติดต่อเซิร์ฟเวอร์ในการทับศัพท์ข้อความไม่สําเร็จ

การแจกแจงภาษา CodeCode

แผนที่ชื่อ 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'
};

การแจกแจง การรองรับDestinationLanguage

แผนที่การแจงนับ 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]
};

การแก้ปัญหา

หากพบปัญหา ให้ทําดังนี้