Tài liệu tham khảo Transliterate API

Chuyển tự đơn giản

Phương thức sau đây cho phép bạn thực hiện việc chuyển tự đơn giản mà không cần giao diện người dùng bằng cách thao tác với JavaScript.

Phương thức Mô tả

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

google.language.transliterate(wordsArray, srcLang, destLang, callback) là một phương thức chung giúp chuyển tự văn bản đã cho từ ngôn ngữ nguồn sang ngôn ngữ đích. API này trả về kết quả không đồng bộ cho hàm callback đã cho dưới dạng đối tượng result. Các tham số cho phương thức này là:

  • wordsArray cung cấp văn bản cần chuyển tự dưới dạng một mảng.
  • srcLang cung cấp ngôn ngữ nguồn dưới dạng mã ngôn ngữ. Hãy xem enum LanguageCode để biết ví dụ.
  • destLang cung cấp ngôn ngữ đích dưới dạng mã ngôn ngữ. Hãy xem enum LanguageCode để biết ví dụ.
  • callback là hàm callback nhận result.

google.language.transliterate() không có giá trị trả về.

Phương thức đơn giản hoá này để chuyển tự sử dụng không gian tên google.language.transliterate (chứ không phải google.elements.transliteration, là không gian tên cho mọi phương thức khác trong Transliterate API).

google.language.transliterate() xuất đối tượng result.

Các đối tượng kết quả được tạo bằng cách sử dụng mã hoá JSON của các yêu cầu từ máy chủ. Do đó, chúng tôi đã chọn không triển khai các đối tượng JavaScript chính thức mà thay vào đó, chúng tôi đã tạo động các đối tượng result từ dạng được chuyển đổi tuần tự của chúng.

Mặc dù không có cách triển khai chính thức nào cho các đối tượng này, nhưng chúng vẫn tồn tại và chúng tôi ghi lại chúng như thể có một cách triển khai JavaScript hỗ trợ. Tất cả những điều này đều có tác động không đáng kể. Điều đó chỉ có nghĩa là không có hàm khởi tạo được đặt tên. Đối với mỗi kết quả, hệ thống sẽ gọi new Object() rồi đặt các thuộc tính chính thức trên đối tượng đó. Các thuộc tính này nằm bên dưới.

  • <result>
    • error?
      Trình bày nếu có lỗi trong quá trình chuyển tự.
    • transliterations
      Một mảng có kích thước bằng kích thước của wordsArray đầu vào.
      • transliteratedWords
        Một mảng có kích thước tối đa là 5, có bản phiên âm cho từ tương ứng trong wordsArray.

Tài liệu tham khảo về JavaScript của chế độ kiểm soát chuyển tự

Hàm khởi tạo và các phương thức sau đây cho phép bạn thực hiện việc chuyển tự trong giao diện người dùng do API cung cấp.

Hàm khởi tạo – google.elements.transliteration.TransliterationControl(options)

Hàm dựng Mô tả

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) cho phép chuyển tự trên một nhóm các phần tử DOM HTML có thể chỉnh sửa và cung cấp một số phương thức cho phép bạn kiểm soát việc chuyển tự trong các phần tử đó. Đối số options có thể có các trường sau:

  • sourceLanguage là một chuỗi bắt buộc chỉ định ngôn ngữ nguồn bằng cách sử dụng enum LanguageCode (như trong google.elements.transliteration.ENGLISH). Hiện tại, tiếng Anh là ngôn ngữ nguồn duy nhất được hỗ trợ.
  • destinationLanguage là một mảng bắt buộc chỉ định ngôn ngữ đích bằng cách sử dụng enum LanguageCode như trong (như trong google.elements.transliteration.HINDI ).

    Trong giao diện người dùng, các ngôn ngữ đích có sẵn sẽ xuất hiện trong trình đơn, với ngôn ngữ đầu tiên trong mảng được chọn theo mặc định.
    Vui lòng tham khảo getDestinationLanguages để biết thêm thông tin về các ngôn ngữ đích hợp lệ cho một ngôn ngữ nguồn nhất định.
  • transliterationEnabled là một trường không bắt buộc, chỉ định xem có bật tính năng chuyển tự theo mặc định hay không. Nếu bạn muốn bật tính năng chuyển tự theo mặc định, hãy chỉ định trường này bằng giá trị true. Giá trị mặc định là false.
  • shortcutKey là một trường chuỗi không bắt buộc, chỉ định một phím tắt để bật hoặc tắt tính năng chuyển tự. Để chỉ định phím tắt, hãy chỉ định một chuỗi chứa các phím bổ trợ như "Ctrl", "Alt" hoặc "Shift" cùng với một chữ cái. Ví dụ: "Ctrl+g" và "Ctrl+Shift+a" đều là tổ hợp phím tắt hợp lệ.

    Lưu ý: Bạn không thể chỉ dùng Shift làm khoá sửa đổi; tuy nhiên, bạn có thể dùng Shift kết hợp với Alt hoặc Control.

Phương thức này tạo ra các trường hợp ngoại lệ trong những trường hợp sau:

  • sourceLanguage hoặc destinationLanguage không hợp lệ
  • Ngôn ngữ không được hỗ trợ trong cặp ngôn ngữ sourceLangaugedestinationLanguage
  • Tổ hợp shortcutKey không hợp lệ

Đoạn mã sau đây minh hoạ cách tạo một phiên bản của chế độ kiểm soát chuyển tự:

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);
}

Phương pháp kiểm soát việc chuyển tự

Các phương thức sau được triển khai trên không gian tên google.elements.transliteration.TransliterationControl.

Phương thức Mô tả

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) thêm một trình nghe vào chế độ kiểm soát chuyển tự cho loại sự kiện đã chỉ định. Khi loại sự kiện cụ thể được kích hoạt, trình nghe sẽ được gọi bằng đối tượng sự kiện. Nội dung của đối tượng sự kiện phụ thuộc vào loại sự kiện. Các tham số cho phương thức này là:

  • eventType là sự kiện mà bạn sẽ thêm trình nghe. Đối số này lấy giá trị từ enum eventType (chẳng hạn như google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener cung cấp một hàm trình nghe cho sự kiện.
  • opt_listenerScope gọi trình nghe với this được đặt thành đối tượng được chỉ định trong opt_listenerScope.

.addEventListener() không có giá trị trả về.

.disableTransliteration()

.disableTransliteration() sẽ tắt tính năng chuyển tự trong chế độ kiểm soát chuyển tự. Phương thức này không có đối số và không có giá trị trả về.

.enableTransliteration()

.enableTransliteration() cho phép chuyển tự trong chế độ chuyển tự. Phương thức này không có đối số và không có giá trị trả về.

.isTransliterationEnabled()

.isTransliterationEnabled() không có đối số và trả về một giá trị boolean cho biết liệu tính năng chuyển tự có được bật trong chế độ kiểm soát chuyển tự hay không.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) cho phép chuyển tự trên(các) phần tử HTML được cung cấp. Các tham số cho phương thức này là:

  • elementIds là một mảng chứa các chuỗi mã nhận dạng phần tử có thể chỉnh sửa hoặc các tham chiếu phần tử mà bạn muốn bật tính năng chuyển tự. Phần tử có thể chỉnh sửa có thể là:

    • Trường văn bản
    • Vùng văn bản
    • Một <div> có contentEditable="true"
    • Một <iframe> có designMode="on"
    • Một iFrame có phần thân contentEditable="true". Đảm bảo iFrame đã được tải trước khi bật tính năng chuyển tự.
  • opt_options là một đối số không bắt buộc cung cấp các lựa chọn được áp dụng cho những phần tử này. Đối số này có thể chứa các trường sau:
    • adjustElementStyle là một trường boolean không bắt buộc, kiểm soát việc API có tự động điều chỉnh kích thước phần tử và phông chữ để phù hợp nhất với các ký tự của ngôn ngữ mục tiêu hay không. Giá trị mặc định là true. Lựa chọn này chỉ ảnh hưởng đến các phần tử văn bản thuần tuý.
    • adjustElementDirection là một trường boolean không bắt buộc, kiểm soát hướng của phần tử có thể chỉnh sửa, tuỳ thuộc vào hướng của destinationLanguage. Giá trị mặc định là true.

Đối với các hệ thống viết từ phải sang trái như tiếng Ả Rập, API sẽ tự động điều chỉnh hướng của phần tử đầu vào, theo hướng của kịch bản đã viết và nội dung của phần tử đầu vào. Bạn có thể đặt hướng văn bản trong một phần tử đầu vào bằng HTML và JavaScript với direction. Thuộc tính này có thể có giá trị 'ltr' (từ trái sang phải) hoặc 'rtl' (từ phải sang trái). Việc sử dụng phương thức này sẽ ảnh hưởng đến con trỏ và việc căn chỉnh văn bản trong vùng nhập.

Bạn có thể xem ví dụ về việc API hỗ trợ các ngôn ngữ viết từ phải sang trái trong Ví dụ về phiên âm tiếng Ả Rập.

Phương thức này tạo ra các trường hợp ngoại lệ nếu có elementIds nào được chỉ định không hợp lệ.

.makeTransliteratable() không có giá trị trả về.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope) xoá một trình nghe sự kiện khỏi chế độ kiểm soát phiên âm, trong đó:

  • Đối số này lấy giá trị từ enum eventType (chẳng hạn như google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener là hàm cho sự kiện cần xoá.
  • opt_listenerScope là phạm vi mà trình nghe được đăng ký tại thời điểm thêm trình nghe.

.removeEventListener() không có giá trị trả về.

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) cho phép bạn thay đổi linh hoạt cặp ngôn ngữ mà chế độ kiểm soát phiên âm sử dụng, trong đó:

  • sourceLanguage cung cấp loại ngôn ngữ cần chuyển tự. Đối số này lấy giá trị từ enum LanguageCode (chẳng hạn như google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH).
  • destinationLanguage cung cấp loại ngôn ngữ cho văn bản được chuyển tự.

.setLanguagePair() trả về một giá trị boolean cho biết liệu thao tác setLanguage có thành công hay không.

.showControl(divElement)

.showControl(divElement) cho thấy chế độ kiểm soát phiên âm trong DIV được chỉ định, trong đó divElement là mã nhận dạng của DIV. Phương thức này không có giá trị trả về.

.toggleTransliteration()

.toggleTransliteration() bật hoặc tắt tính năng chuyển tự trong chế độ điều khiển chuyển tự. Phương thức này không có đối số và không có giá trị trả về.

Phương thức tĩnh

Phương thức tĩnh sau đây được triển khai trên không gian tên google.language.

Phương thức tĩnh Mô tả

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) là một hàm tĩnh đăng ký hàm trình xử lý được chỉ định để gọi một lần khi trang chứa lệnh gọi này tải, trong đó callback là một hàm bắt buộc được gọi khi tài liệu chứa được tải và API đã sẵn sàng để sử dụng (ví dụ: sau onLoad). Hàm này được triển khai trên không gian tên google (tức là google.setOnLoadCallback(callback);)

.setOnLoadCallback() không có giá trị trả về.

Lưu ý: Tài liệu trước đây đề xuất bạn sử dụng thuộc tính onload của phần tử nội dung (<body onload="OnLoad()">). Mặc dù đây là một cách hay để thực hiện khi bạn hoàn toàn kiểm soát trang và tất cả mã do trang tải, nhưng phương pháp này có thể gây ra vấn đề với một số thời gian chạy phá huỷ trình xử lý body.onload của bạn. setOnLoadCallback() không gặp phải những vấn đề này. Do đó, đây là phương thức được đề xuất để đăng ký một lệnh gọi lại gọi mã của bạn khi API được tải đầy đủ và sẵn sàng sử dụng.

Phương thức tĩnh sau đây được triển khai trên không gian tên google.elements.transliteration.

Phương thức tĩnh Mô tả

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) là một phương thức chung trả về bản đồ các ngôn ngữ đích mà phương thức chuyển tự được hỗ trợ cho sourceLanguage đã cho. Bản đồ được trả về chứa các ngôn ngữ đích được hỗ trợ, trong đó khoá là tên ngôn ngữ và giá trị là mã ngôn ngữ. Bản đồ được trả về tương tự như bản đồ được mô tả trong enum LanguageCode.

Enum

EnumType của EventType

Liệt kê google.elements.transliteration.TransliterationControl.EventType là danh sách các sự kiện có thể xảy ra trong quá trình chuyển tự. Bạn có thể cung cấp trình xử lý tuỳ chỉnh cho các sự kiện này trong mã của mình.

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: Kết quả khi tính năng chuyển tự được bật hoặc tắt trong chế độ kiểm soát chuyển tự thông qua:
    • Phím tắt
    • Phương thức enableTransliteration, disableTransliteration hoặc toggleTransliteration
    • Lượt nhấp chuột vào chế độ kiểm soát phiên âm do phương thức showControl vẽ.
    Đối tượng sự kiện được truyền đến trình nghe chứa trường transliterationEnabled. Trường này có giá trị true nếu phiên âm là "on", nếu không thì có giá trị false.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: Kết quả khi bạn thay đổi cặp ngôn ngữ chuyển tự trong chế độ kiểm soát chuyển tự thông qua:
    • Phương thức setLanguagePair
    • Chế độ kiểm soát phiên âm do phương thức showControl vẽ
    Đối tượng sự kiện được truyền đến trình nghe chứa các trường sourceLanguagedestinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: Kết quả khi bạn liên hệ thành công với máy chủ để phiên âm văn bản.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE kết quả khi không liên hệ được với máy chủ để phiên âm văn bản.

Enum LanguageCode

google.elements.transliteration.LanguageCode ánh xạ các hằng số tên với mã ngôn ngữ mà bạn có thể dùng để chỉ định ngôn ngữ nguồn và ngôn ngữ đích trong các phương thức chuyển tự.

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'
};

Enum SupportedDestinationLanguages

Liệt kê google.elements.transliteration.SupportedDestinationLanguages ánh xạ các hằng số tên đến mảng mã ngôn ngữ mà bạn có thể dùng để chỉ định các nhóm ngôn ngữ đích trong chế độ kiểm soát chuyển tự.

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]
};

Khắc phục sự cố

Nếu bạn gặp vấn đề, hãy làm như sau:

  • Tìm lỗi chính tả. Hãy nhớ rằng JavaScript là một ngôn ngữ phân biệt chữ hoa chữ thường.
  • Sử dụng trình gỡ lỗi JavaScript. Google Chrome có một bộ công cụ hoàn chỉnh dành cho nhà phát triển. Trong Firefox, bạn có thể sử dụng bảng điều khiển JavaScript hoặc Firebug. Trong IE, bạn có thể sử dụng Microsoft Script Debugger.
  • Tìm kiếm trong nhóm thảo luận. Nếu không tìm thấy bài đăng nào trả lời câu hỏi của bạn, hãy đăng câu hỏi của bạn lên nhóm cùng với đường liên kết đến một trang web minh hoạ vấn đề.