Dokumentacja API Transliterate

Prosta transliteracja

Poniższa metoda umożliwia przeprowadzenie prostej transliteracji bez interfejsu użytkownika poprzez manipulowanie kodem JavaScript.

Metoda Opis

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

google.language.transliterate(wordsArray, srcLang, destLang, callback) to globalna metoda transliteracji podanego tekstu z języka źródłowego na docelowy. Interfejs API zwraca asynchronicznie wynik do określonej funkcji callback jako obiekt result. Parametry tej metody:

  • wordsArray udostępnia tekst do transliteracji jako tablicę.
  • srcLang podaje język źródłowy jako kod języka. Przykłady znajdziesz w wyliczeniu LanguageCode.
  • destLang podaje język docelowy jako kod języka. Przykłady znajdziesz w wyliczeniu LanguageCode.
  • callback to funkcja wywołania zwrotnego, która otrzymuje wartość result.

google.language.transliterate() nie ma wartości zwracanej.

Ta uproszczona metoda transliteracji używa przestrzeni nazw google.language.transliterate (a nie google.elements.transliteration, czyli przestrzeni nazw dla każdej innej metody w Transliterate API).

google.language.transliterate() generuje obiekt result.

Obiekty wyników są generowane za pomocą kodowania JSON żądań serwera. W związku z tym postanowiliśmy nie implementować oficjalnych obiektów JavaScript, a zamiast tego stworzyliśmy dynamicznie obiekty result ze zserializowanej formy.

Choć nie ma oficjalnej implementacji obiektów, istnieją one i dokumentujemy je tak, jakby istniała zastępcza implementacja JavaScriptu. Wpływ tych działań jest minimalny. Oznacza tylko, że nie ma nazwanego konstruktora. W przypadku każdego wyniku system wydaje się, że system wywołał nowy obiekt Object(), a potem ustawił formalne właściwości tego obiektu. Właściwości te znajdziesz poniżej.

  • <result>
    • error?
      Widoczne, jeśli wystąpił błąd transliteracji.
    • transliterations
      Tablica rozmiarów równa wejściem wordsArray.
      • transliteratedWords
        Tablica maksymalnych rozmiarów 5 z transliteracją odpowiadającego mu słowa w wordsArray.

Dokumentacja JavaScript dotycząca transliteracji

Poniższy konstruktor i metody umożliwiają transliterację w interfejsie API.

Konstruktor – google.elements.transliteration.TransliterationControl(options)

Zespół Opis

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) umożliwia transliterację na zestawie elementów HTML DOM, które można edytować, i udostępnia wiele metod pozwalających na sterowanie transliteracją w tych elementach. Argument options może zawierać te pola:

  • sourceLanguage to obowiązkowy język, który określa język źródłowy za pomocą LanguageCode enum (tak jak w google.elements.transliteration.ENGLISH). Obecnie jedynym obsługiwanym językiem źródłowym jest angielski.
  • destinationLanguage to tablica obowiązkowa, która określa język docelowy za pomocą liczby LanguageCode jak w rzeczywistości (tak jak w google.elements.transliteration.HINDI).

    W interfejsie dostępne języki docelowe są widoczne w menu, a pierwszy język jest domyślnie ustawiony w tablicy. Więcej informacji o prawidłowych językach docelowych dla danego języka źródłowego znajdziesz tutaj: getDestinationLanguages.
  • transliterationEnabled to opcjonalne pole, które określa, czy domyślnie ma być włączona transliteracja. Jeśli chcesz domyślnie włączyć transliterację, określ to pole na wartość true. Wartością domyślną jest false.
  • shortcutKey to opcjonalne pole ciągu, które określa skrót pozwalający włączać lub wyłączać transliterację. Aby określić klawisz skrótu, podaj ciąg zawierający modyfikatory, np. 'Ctrl', 'Alt' lub 'Shift' oraz literę alfabetyczną. Na przykład 'Ctrl+g' 'Ctrl+Shift+a' są to prawidłowe kombinacje klawiszy skrótów.

    Uwaga: nie możesz użyć Shifta jako jedynego modyfikatora, ale możesz go użyć w połączeniu z klawiszami Alt lub Control.

Ta metoda powoduje wyjątki w następujących sytuacjach:

  • Nieprawidłowe wartości sourceLanguage lub destinationLanguage
  • Nieobsługiwane języki w parze sourceLangauge i destinationLanguage
  • Nieprawidłowa kombinacja shortcutsKey

Ten fragment kodu pokazuje, jak utworzyć instancję kontrolki transliteracji:

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

Metody sterowania transliteracją

Poniższe metody są zaimplementowane w przestrzeni nazw google.elements.transliteration.TransliterationControl.

Metoda Opis

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) dodaje detektor do transliteracji określonego typu zdarzenia. Po aktywowaniu konkretnego typu zdarzenia detektor jest wywoływany z obiektem zdarzenia. Zawartość obiektu zdarzenia zależy od jego typu. Parametry tej metody:

  • eventType to zdarzenie, do którego chcesz dodać odbiornik. Ten argument pobiera wartość z wyliczenia eventType, takiego jak google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener udostępnia funkcję odbiornika zdarzenia.
  • opt_listenerScope wywołuje detektor z wartością this ustawioną na obiekt określony w opt_listenerScope.

.addEventListener() nie ma wartości zwracanej.

.disableTransliteration()

.disableTransliteration() wyłącza transliterację w ustawieniach transliteracji. Ta metoda nie zawiera argumentów ani wartości zwracanej.

.enableTransliteration()

.enableTransliteration() umożliwia transliterację w transliteracji. Ta metoda nie zawiera argumentów ani wartości zwracanej.

.isTransliterationEnabled()

.isTransliterationEnabled() nie ma argumentów i zwraca wartość logiczną wskazującą, czy w transliteracji jest włączona transliteracja.

.makeTransliteratable(elementIds, opt_options)

Funkcja .makeTransliteratable(elementIds, opt_options) umożliwia transliterację określonych dostarczanych elementów HTML. Parametry tej metody:

  • elementIds to tablica zawierająca ciągi możliwych do edytowania identyfikatorów elementów lub odniesień do elementów, dla których chcesz włączyć transliterację. Element, który można edytować, to:

    • Pole tekstowe
    • Obszar tekstowy
    • <g> z: contentEditable="true"
    • <iframe> z designMode="on"
    • Element iframe z elementem contentEditable="true". Zanim włączysz transliterację, skonfiguruj iFrame.
  • opt_options to opcjonalny argument dostarczający opcje zastosowane do tych elementów. Ten argument może zawierać następujące pola:
    • adjustElementStyle to opcjonalne pole wartości logicznej, które określa, czy interfejs API ma automatycznie dostosowywać rozmiary elementów i czcionek do optymalnego dopasowania do znaków języka docelowego. Wartością domyślną jest true. Ta opcja ma wpływ tylko na elementy w formie zwykłego tekstu.
    • adjustElementDirection to opcjonalne pole wartości logicznej, które kontroluje kierunek elementu edytowalnego w zależności od kierunku elementu destinationLanguage. Wartością domyślną jest true.

W przypadku systemów pisma od prawej do lewej, takich jak arabski, interfejs API automatycznie dostosowuje kierunek elementu wejściowego zgodnie z kierunkiem pisma odręcznego i treścią elementu wejściowego. Kierunek tekstu w elemencie wejściowym możesz ustawić za pomocą języka HTML i JavaScript. Atrybut direction może mieć wartość 'ltr' (od lewej do prawej) lub 'rtl' (od prawej do lewej). Użycie tej metody wpływa na kursor i wyrównanie tekstu w obszarze wprowadzania danych.

Przykład obsługi języków pisanych od prawej do lewej znajdziesz w przykładzie transliteracji arabskiej.

Ta metoda tworzy wyjątki, gdy którykolwiek z podanych elementów elementIds jest nieprawidłowy.

.makeTransliteratable() nie ma wartości zwracanej.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope) usuwa detektor zdarzeń z transliteracji, gdzie:

  • Ten argument pobiera wartość z wyliczenia eventType (np. google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener to funkcja zdarzenia, którą trzeba usunąć.
  • opt_listenerScope to zakres, w którym słuchacz został zarejestrowany w momencie dodania detektora.

.removeEventListener() nie ma wartości zwracanej.

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) pozwala dynamicznie zmieniać parę językową używaną w ustawieniach transliteracji, w którym:

  • sourceLanguage zawiera typ języka, który ma być transliterowany. Ten argument pobiera wartość z wyliczenia LanguageCode, takiego jak google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH).
  • destinationLanguage zawiera typ języka transliterowanego tekstu.

.setLanguagePair() zwraca wartość logiczną określającą, czy działanie setLanguage zostało wykonane.

.showControl(divElement)

.showControl(divElement) pokazuje transliterację w określonym elemencie DIV, gdzie divElement to identyfikator elementu DIV. Ta metoda nie ma wartości zwracanej.

.toggleTransliteration()

.toggleTransliteration() włącza lub wyłącza transliterację w ustawieniach transliteracji. Ta metoda nie zawiera argumentów ani wartości zwracanej.

Metoda statyczna

W przestrzeni nazw google.language zaimplementowano poniższą metodę statyczną.

Metoda statyczna Opis

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) to funkcja statyczna, która rejestruje określoną funkcję obsługi przez wywołanie strony wczytywania tego wywołania, gdzie callback to wymagana funkcja, która jest wywoływana, gdy dokument wczytywany jest podczas ładowania i gdy interfejs API jest gotowy do użycia (np. po onLoad). Ta funkcja jest wdrażana w przestrzeni nazw google (tzn. google.setOnLoadCallback(callback);).

.setOnLoadCallback() nie ma wartości zwracanej.

Uwaga: w starszej dokumentacji zalecamy używanie atrybutu onload [body] (<body onload="OnLoad()">). Chociaż jest to dobry sposób na uzyskanie pełnej kontroli nad stroną i całym jej kodem wczytanym, ta metoda może powodować problemy w niektórych środowiskach wykonawczych niszczących moduł obsługi body.onload. setOnLoadCallback() nie powoduje tych problemów, dlatego jest zalecaną metodą rejestrowania wywołania zwrotnego, które wywołuje Twój kod, gdy interfejs API zostanie całkowicie wczytany i gotowy do użycia.

W przestrzeni nazw google.elements.transliteration zaimplementowano poniższą metodę statyczną.

Metoda statyczna Opis

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) to globalna metoda zwracania mapy języków docelowych, dla których transliteracja jest obsługiwana w danym obiekcie sourceLanguage. Zwrócona mapa zawiera obsługiwane języki docelowe, w których klucz jest nazwą języka, a wartością jest kod języka. Zwrócona mapa jest podobna do tej opisaną w wyliczeniu LanguageCode.

Wartości w polu enum

Wyliczenie zdarzenia typu

Wyliczenie google.elements.transliteration.TransliterationControl.EventType zawiera listę zdarzeń, które są dostępne podczas transliteracji. W swoim kodzie możesz określić niestandardowe moduły obsługi tych zdarzeń.

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: wyniki są dostępne, gdy transliteracja jest włączona lub wyłączona w ustawieniach transliteracji:
    • Klawisz skrótu
    • Metody enableTransliteration, disableTransliteration lub toggleTransliteration
    • Kliknij kursorem myszy element transliteracji utworzony przez metodę showControl.
    Obiekt zdarzenia przekazywany do detektora zawiera pole transliterationEnabled. To pole jest prawdziwe, jeśli transliteracja to 'on' w przeciwnym razie ma wartość Fałsz.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: wyniki wyświetlane w przypadku zmiany pary transliteracji w ustawieniach transliteracji:
    • Metoda setLanguagePair
    • Kontrola nad transliteracją uwzględniana przez metodę showControl
    Obiekt zdarzenia przekazany do detektora zawiera pola sourceLanguage i destinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: wyniki udane przekształcenie tekstu w serwery.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE w wyniku nieudanej próby nawiązania transliteracji tekstu z serwera.

Wyliczenie kodu języka

google.elements.transliteration.LanguageCode mapuje nazwy stałych na kody języków, których można użyć do określenia języków źródłowych i docelowych w metodach transliteracji.

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

Wyliczenie wyr.

Wyliczenie google.elements.transliteration.SupportedDestinationLanguages mapuje stałe na tablice kodów języków, których można używać do określania grup języków docelowych w kontrolce transliteracji.

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

Rozwiązywanie problemów

Jeśli napotkasz problemy:

  • Poszukaj literówek. Pamiętaj, że w języku JavaScript rozróżniana jest wielkość liter.
  • Użyj debugera JavaScriptu. Google Chrome ma pełny zestaw narzędzi dla programistów. W Firefoksie możesz korzystać z konsoli JavaScript lub programu Firebug. W Internet Explorerze możesz użyć narzędzia Microsoft Script Debugger.
  • Przeszukaj grupę dyskusyjną. Jeśli nie możesz znaleźć posta z odpowiedzią na Twoje pytanie, opublikuj swoje pytanie w grupie wraz z linkiem do strony internetowej, na której widać problem.