Dokumentacja API transliteracji

Prosta transliteracja

Poniższa metoda umożliwia wykonanie prostej transliteracji bez interfejsu, poprzez manipulowanie JavaScriptem.

Metoda Opis

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

google.language.transliterate(wordsArray, srcLang, destLang, callback) to globalna metoda, która transliteruje podany tekst z języka źródłowego na język docelowy. Interfejs API zwraca wynik asynchronicznie do podanej funkcji callback jako obiekt result. Parametry tej metody to:

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

google.language.transliterate() nie zwraca żadnej wartości.

Ta uproszczona metoda transliteracji korzysta z przestrzeni nazw google.language.transliterate (a nie google.elements.transliteration, która jest przestrzenią nazw dla wszystkich innych metod w interfejsie Transliterate API).

google.language.transliterate() zwraca obiekt result.

Obiekty wyników są tworzone przy użyciu kodowania JSON żądań serwera. W związku z tym nie zdecydowaliśmy się na wdrożenie formalnych obiektów JavaScript, a zamiast tego dynamicznie tworzymy obiekty result z ich postaci serializowanej.

Obiekty te nie są formalnie zaimplementowane, ale istnieją i dokumentujemy je tak, jakby były zaimplementowane w JavaScript. Wpływ tych zmian jest minimalny. Oznacza to tylko, że nie ma konstruktora nazwanego. W przypadku każdego wyniku system wywołuje funkcję new Object(), a następnie ustawia formalne właściwości tego obiektu. Właściwości te wymieniono poniżej.

  • <result>
    • error?
      Występuje, jeśli podczas transliteracji wystąpił błąd.
    • transliterations
      Tablica o rozmiarze równym rozmiarowi danych wejściowych wordsArray.
      • transliteratedWords
        Tablica o maksymalnym rozmiarze 5 zawierająca transliteracje odpowiedniego słowa w języku wordsArray.

Dokumentacja JavaScriptu dotycząca kontroli transliteracji

Poniższy konstruktor i metody umożliwiają przeprowadzenie transliteracji w interfejsie użytkownika udostępnianym przez interfejs API.

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

Zespół Opis

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options) umożliwia transliterację w przypadku zestawu edytowalnych elementów HTML DOM i udostępnia kilka metod, które pozwalają kontrolować transliterację w tych elementach. Argument options może zawierać te pola:

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

    W interfejsie dostępne języki docelowe pojawiają się w menu, a pierwszy język w tablicy jest domyślnie wybrany. Więcej informacji o prawidłowych językach docelowych dla danego języka źródłowego znajdziesz w artykule getDestinationLanguages.
  • transliterationEnabled to pole opcjonalne, które określa, czy transliteracja ma być domyślnie włączona. Jeśli chcesz domyślnie włączyć transliterację, w tym polu wpisz wartość true. Wartością domyślną jest false.
  • shortcutKey to opcjonalne pole tekstowe, które określa klawisz skrótu do włączania i wyłączania transliteracji. Aby określić klawisz skrótu, wpisz ciąg znaków zawierający modyfikatory, takie jak „Ctrl”, „Alt” lub „Shift”, wraz z literą alfabetu. Prawidłowe kombinacje klawiszy to np. „Ctrl+g” i „Ctrl+Shift+a”.

    Uwaga: nie możesz używać klawisza Shift jako jedynego modyfikatora, ale możesz go używać w połączeniu z klawiszem Alt lub Control.

Ta metoda tworzy wyjątki w tych przypadkach:

  • Nieprawidłowe pole sourceLanguage lub destinationLanguage
  • Nieobsługiwane języki w parze języków sourceLangauge i destinationLanguage
  • Nieprawidłowa kombinacja klawiszy skrótu

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ą

W przestrzeni nazw google.elements.transliteration.TransliterationControl zaimplementowano te metody:

Metoda Opis

.addEventListener(eventType, listener, opt_listenerScope)

.addEventListener(eventType, listener, opt_listenerScope) dodaje detektor do kontrolki transliteracji dla określonego typu zdarzenia. Gdy zostanie wywołany określony typ zdarzenia, detektor zostanie wywołany z obiektem zdarzenia. Zawartość obiektu zdarzenia zależy od typu zdarzenia. Parametry tej metody to:

  • eventType to zdarzenie, do którego ma zostać dodany detektor. Ten argument przyjmuje wartość z eventTypewyliczenia (np. google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED).
  • listener udostępnia funkcję detektora zdarzenia.
  • opt_listenerScope wywołuje detektor z parametrem this ustawionym na obiekt określony w opt_listenerScope.

.addEventListener() nie zwraca żadnej wartości.

.disableTransliteration()

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

.enableTransliteration()

.enableTransliteration() włącza transliterację w kontrolce transliteracji. Ta metoda nie ma argumentów ani wartości zwracanej.

.isTransliterationEnabled()

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

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) włącza transliterację w przypadku podanych elementów HTML. Parametry tej metody to:

  • elementIds to tablica zawierająca ciągi znaków z identyfikatorami edytowalnych elementów lub odwołaniami do elementów, dla których chcesz włączyć transliterację. Elementem, który można edytować, może być:

    • pole tekstowe,
    • obszar tekstowy,
    • <div> z contentEditable="true"
    • Element <iframe> z atrybutem designMode="on"
    • Element iframe z contentEditable="true". Zanim włączysz transliterację, upewnij się, że element iframe został wczytany.
  • opt_options to argument opcjonalny, który określa opcje stosowane do tych elementów. Ten argument może zawierać te pola:
    • adjustElementStyle to opcjonalne pole logiczne, które określa, czy interfejs API ma automatycznie dostosowywać rozmiary elementów i czcionek, aby optymalnie pasowały do znaków języka docelowego. (wartością domyślną jest true); Ta opcja dotyczy tylko elementów w formacie zwykłego tekstu.
    • adjustElementDirection to opcjonalne pole logiczne, które określa kierunek elementu edytowalnego w zależności od kierunku elementu destinationLanguage. Wartością domyślną jest true.

W przypadku języków pisanych od prawej do lewej, takich jak arabski, interfejs API automatycznie dostosowuje kierunek elementu wejściowego do kierunku pisma i zawartości elementu wejściowego. Kierunek tekstu w elemencie wejściowym możesz ustawić za pomocą HTML i JavaScriptu, używając atrybutu direction, który może mieć wartość 'ltr' (od lewej do prawej) lub 'rtl' (od prawej do lewej). Ta metoda wpływa na kursor i wyrównanie tekstu w obszarze wprowadzania.

Przykład obsługi języków zapisywanych od prawej do lewej w interfejsie API znajdziesz w przykładzie transliteracji na język arabski.

Ta metoda tworzy wyjątki, jeśli którykolwiek z określonych elementów elementIds jest nieprawidłowy.

.makeTransliteratable() nie zwraca żadnej wartości.

.removeEventListener(eventType, listener, opt_listenerScope)

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

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

.removeEventListener() nie zwraca żadnej wartości.

.setLanguagePair(sourceLanguage, destinationLanguage)

.setLanguagePair(sourceLanguage, destinationLanguage) umożliwia dynamiczną zmianę pary językowej używanej przez kontrolkę transliteracji, gdzie:

  • sourceLanguage określa typ języka, który ma zostać poddany transliteracji. Ten argument przyjmuje wartość z LanguageCodewyliczenia (np. google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH).
  • destinationLanguage określa typ języka dla tekstu po transliteracji.

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

.showControl(divElement)

.showControl(divElement) wyświetla kontrolkę transliteracji w określonym elemencie DIV, gdzie divElement to identyfikator elementu DIV. Ta metoda nie zwraca żadnej wartości.

.toggleTransliteration()

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

Metoda statyczna

W przestrzeni nazw google.language zaimplementowana jest ta metoda statyczna.

Metoda statyczna Opis

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) to funkcja statyczna, która rejestruje określoną funkcję obsługi, która ma być wywoływana po załadowaniu strony zawierającej to wywołanie. callback to wymagana funkcja wywoływana po załadowaniu dokumentu zawierającego to wywołanie i gdy interfejs API jest gotowy do użycia (np. po onLoad). Ta funkcja jest zaimplementowana w przestrzeni nazw google (np. google.setOnLoadCallback(callback);)

.setOnLoadCallback() nie zwraca żadnej wartości.

Uwaga: w poprzedniej dokumentacji zalecaliśmy używanie atrybutu onload elementu body (<body onload="OnLoad()">). Jest to dobry sposób, gdy masz pełną kontrolę nad stroną i całym kodem wczytywanym przez stronę, ale to podejście może powodować problemy z niektórymi środowiskami wykonawczymi, które niszczą Twój moduł obsługi body.onload. setOnLoadCallback() nie ma tych problemów, dlatego jest zalecaną metodą rejestrowania wywołania zwrotnego, które wywołuje Twój kod, gdy interfejs API jest w pełni załadowany i gotowy do użycia.

W przestrzeni nazw google.elements.transliteration zaimplementowana jest ta metoda statyczna.

Metoda statyczna Opis

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) to globalna metoda, która zwraca mapę języków docelowych, w których obsługiwana jest transliteracja dla danego sourceLanguage. Zwracana mapa zawiera obsługiwane języki docelowe, w których kluczem jest nazwa języka, a wartością – kod języka. Zwracana mapa jest podobna do tej opisanej w LanguageCode enum.

Wartości w polu enum

Wyliczenie EventType

Wyliczenie google.elements.transliteration.TransliterationControl.EventType zawiera listę zdarzeń, które mogą wystąpić podczas transliteracji. W kodzie możesz podać niestandardowe procedury 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, gdy transliteracja jest włączona lub wyłączona w kontrolce transliteracji:
    • klawisz skrótu,
    • Metody enableTransliteration, disableTransliteration lub toggleTransliteration
    • Kliknięcie myszą kontrolki transliteracji narysowanej przez metodę showControl.
    Obiekt zdarzenia przekazywany do detektora zawiera pole transliterationEnabled. To pole ma wartość „prawda”, jeśli transliteracja to „on”, w przeciwnym razie ma wartość „fałsz”.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: Wyniki po zmianie pary języków transliteracji w kontrolce transliteracji:
    • Metoda setLanguagePair
    • Kontrolka transliteracji narysowana przez metodę showControl
    Obiekt zdarzenia przekazywany do detektora zawiera pola sourceLanguagedestinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: wyniki, gdy uda Ci się skontaktować z serwerem w celu transliteracji tekstu.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE w przypadku nieudanej próby skontaktowania się z serwerem w celu transliteracji tekstu.

Wyliczenie LanguageCode

google.elements.transliteration.LanguageCode mapuje stałe nazwy na kody języków, których możesz używać do określania języków źródłowego i docelowego 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'
};

SupportedDestinationLanguages enum

Wyliczenie google.elements.transliteration.SupportedDestinationLanguages mapuje stałe nazw na tablice kodów języków, których możesz 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:

  • Sprawdź, czy nie ma literówek. Pamiętaj, że w JavaScript rozróżniana jest wielkość liter.
  • Użyj debugera JavaScriptu. Google Chrome ma pełny zestaw narzędzi dla programistów. W Firefoxie możesz używać konsoli JavaScript lub Firebug. W IE możesz użyć Microsoft Script Debuggera.
  • Wyszukaj grupę dyskusyjną. Jeśli nie możesz znaleźć posta z odpowiedzią na swoje pytanie, opublikuj je w grupie wraz z linkiem do strony internetowej, na której występuje problem.