Transliterate API 참조

간단한 음역

다음 방법을 사용하면 JavaScript를 조작하여 UI 없이 간단한 음역을 실행할 수 있습니다.

메서드 설명

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

google.language.transliterate(wordsArray, srcLang, destLang, callback)는 지정된 텍스트를 출발어에서 도착어로 음역하는 전역 메서드입니다. API는 결과를 지정된 callback 함수에 result 객체로 비동기적으로 반환합니다. 이 메서드의 매개변수는 다음과 같습니다.

  • wordsArray는 음역할 텍스트를 배열로 제공합니다.
  • srcLang는 소스 언어를 언어 코드로 제공합니다. 예는 LanguageCode 열거형을 참고하세요.
  • destLang는 대상 언어를 언어 코드로 제공합니다. 예는 LanguageCode 열거형을 참고하세요.
  • callbackresult를 수신하는 콜백 함수입니다.

google.language.transliterate()에는 반환값이 없습니다.

이 간소화된 음역 방법은 google.language.transliterate 네임스페이스를 사용합니다 (Transliterate API의 다른 모든 메서드의 네임스페이스인 google.elements.transliteration 아님).

google.language.transliterate()result 객체를 출력합니다.

결과 객체는 서버 요청의 JSON 인코딩을 사용하여 생성됩니다. 따라서 공식 JavaScript 객체를 구현하지 않고 직렬화된 형식에서 result 객체를 동적으로 생성했습니다.

객체를 공식적으로 구현하지는 않지만 존재하기 때문에, Google에서는 지원 자바스크립트 구현이 있는 것처럼 문서화하지만 그 영향은 아주 적으며, 이름이 지정된 생성자가 없다는 것만 알아두면 됩니다. 각 결과에 대해 시스템이 new Object()를 호출한 다음 해당 객체에 공식 속성을 설정한 것과 같습니다. 이러한 속성은 아래에 있습니다.

  • <result>
    • error?
      음역에 오류가 있는 경우 표시됩니다.
    • transliterations
      입력 wordsArray의 크기와 동일한 크기의 배열입니다.
      • transliteratedWords
        wordsArray의 해당 단어에 대한 음역이 포함된 최대 크기 5의 배열입니다.

음역 제어 JavaScript 참조

다음 생성자와 메서드를 사용하면 API에서 제공하는 UI 내에서 음역을 실행할 수 있습니다.

생성자 - google.elements.transliteration.TransliterationControl(options)

생성자 설명

google.elements.transliteration.
TransliterationControl(options)

.TransliterationControl(options)는 수정 가능한 HTML DOM 요소 집합에서 음역을 사용 설정하고 이러한 요소에서 음역을 제어할 수 있는 여러 메서드를 제공합니다. options 인수에는 다음 필드가 포함될 수 있습니다.

  • sourceLanguageLanguageCode enum (예: google.elements.transliteration.ENGLISH)을 사용하여 출발어를 지정하는 필수 문자열입니다. 현재 영어만 지원되는 출발어입니다.
  • destinationLanguageLanguageCode enum을 사용하여 대상 언어를 지정하는 필수 배열입니다 (google.elements.transliteration.HINDI 참고).

    UI에서 사용 가능한 대상 언어가 메뉴에 표시되며 배열의 첫 번째 언어가 기본적으로 선택됩니다. 특정 소스 언어에 유효한 대상 언어에 관한 자세한 내용은 getDestinationLanguages를 참고하세요.
  • transliterationEnabled는 기본적으로 음역을 사용 설정할지 여부를 지정하는 선택적 필드입니다. 기본적으로 음역을 사용 설정하려면 이 필드를 true 값으로 지정하세요. 기본값은 false입니다.
  • shortcutKey는 선택적 문자열 필드로, 음역을 사용 설정 또는 중지하는 단축키를 지정합니다. 단축키를 지정하려면 알파벳 문자와 함께 'Ctrl', 'Alt', 'Shift'와 같은 수정자가 포함된 문자열을 지정하세요. 예를 들어 'Ctrl+g' 및 'Ctrl+Shift+a'는 모두 유효한 단축키 조합입니다.

    참고: Shift를 단독으로 사용할 수는 없지만 Alt 또는 Control과 함께 사용할 수는 있습니다.

이 메서드는 다음 상황에서 예외를 생성합니다.

  • 잘못된 sourceLanguage 또는 destinationLanguage
  • sourceLangaugedestinationLanguage 언어 쌍에서 지원되지 않는 언어
  • 단축키 조합이 잘못됨

다음 코드 스니펫은 음역 컨트롤의 인스턴스를 만드는 방법을 보여줍니다.

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)는 지정된 이벤트 유형의 음역 컨트롤에 리스너를 추가합니다. 특정 이벤트 유형이 트리거되면 리스너가 이벤트 객체와 함께 호출됩니다. 이벤트 객체의 콘텐츠는 이벤트 유형에 따라 다릅니다. 이 메서드의 매개변수는 다음과 같습니다.

  • eventType는 리스너가 추가될 이벤트입니다. 이 인수는 eventType enum (예: google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED))에서 값을 가져옵니다.
  • listener는 이벤트의 리스너 함수를 제공합니다.
  • opt_listenerScopeopt_listenerScope에 지정된 객체로 설정된 this를 사용하여 리스너를 호출합니다.

.addEventListener()에는 반환값이 없습니다.

.disableTransliteration()

.disableTransliteration()은 음역 컨트롤에서 음역을 사용 중지합니다. 이 메서드에는 인수도 반환 값도 없습니다.

.enableTransliteration()

.enableTransliteration()은 음역 컨트롤에서 음역을 사용 설정합니다. 이 메서드에는 인수도 반환 값도 없습니다.

.isTransliterationEnabled()

.isTransliterationEnabled()에는 인수가 없으며, 음역 컨트롤에서 음역이 사용 설정되어 있는지 여부를 나타내는 불리언을 반환합니다.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options)는 제공된 HTML 요소에서 음역을 사용 설정합니다. 이 메서드의 매개변수는 다음과 같습니다.

  • elementIds은 수정 가능한 요소 ID 또는 요소 참조의 문자열이 포함된 배열로, 여기에 대해 음역을 사용 설정하려고 합니다. 수정 가능한 요소는 다음 중 하나일 수 있습니다.

    • 텍스트 필드
    • 텍스트 영역
    • contentEditable="true"가 있는 <div>
    • designMode="on"가 있는 <iframe>
    • contentEditable="true" 본문이 있는 iframe 트랜스리터레이션을 사용 설정하기 전에 iFrame이 로드되었는지 확인하세요.
  • opt_options은 이러한 요소에 적용되는 옵션을 제공하는 선택적 인수입니다. 이 인수는 다음 필드를 포함할 수 있습니다.
    • adjustElementStyle는 API가 타겟 언어 문자에 최적화되도록 요소와 글꼴 크기를 자동으로 조정할지 여부를 제어하는 선택적 불리언 필드입니다. 기본값은 true입니다. 이 옵션은 일반 텍스트 요소에만 영향을 미칩니다.
    • adjustElementDirectiondestinationLanguage의 방향에 따라 수정 가능한 요소의 방향을 제어하는 선택적 불리언 필드입니다. 기본값은 true입니다.

아랍어와 같은 오른쪽에서 왼쪽으로 쓰는 시스템의 경우 API는 작성된 스크립트의 방향과 입력 요소의 콘텐츠에 따라 입력 요소의 방향을 자동으로 조정합니다. direction를 사용하여 HTML 및 JavaScript로 입력 요소의 텍스트 방향을 설정할 수 있습니다. direction'ltr' (왼쪽에서 오른쪽) 또는 'rtl' (오른쪽에서 왼쪽) 값을 가질 수 있습니다. 이 메서드를 사용하면 입력 영역의 커서와 텍스트 정렬에 영향을 미칩니다.

아랍어 음역 예시에서 오른쪽에서 왼쪽으로 쓰는 언어에 대한 API 지원의 예를 확인할 수 있습니다.

이 메서드는 지정된 elementIds 중 하나가 잘못된 경우 예외를 생성합니다.

.makeTransliteratable()에는 반환값이 없습니다.

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope)는 트랜스리터레이션 컨트롤에서 이벤트 리스너를 삭제합니다. 여기서

  • 이 인수는 eventType enum (예: google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED))에서 값을 가져옵니다.
  • listener은 삭제해야 하는 이벤트의 함수입니다.
  • opt_listenerScope는 리스너가 추가될 때 리스너가 등록된 범위입니다.

.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의 ID입니다. 이 메서드에는 반환 값이 없습니다.

.toggleTransliteration()

.toggleTransliteration()는 음역 컨트롤에서 음역을 사용 설정하거나 사용 중지합니다. 이 메서드에는 인수도 반환 값도 없습니다.

정적 메소드

다음 정적 메서드는 google.language 네임스페이스에 구현됩니다.

정적 메소드 설명

.setOnLoadCallback(callback)

.setOnLoadCallback(callback)는 이 호출을 포함하는 페이지가 로드된 후 호출되도록 지정된 핸들러 함수를 등록하는 정적 함수입니다. 여기서 callback는 포함된 문서가 로드되고 API를 사용할 준비가 되면 (예: onLoad 후) 호출되는 필수 함수입니다. 이 함수는 google 네임스페이스에서 구현됩니다 (예: google.setOnLoadCallback(callback);)

.setOnLoadCallback()에는 반환값이 없습니다.

참고: 이전 문서에서는 body 요소의 onload 속성 (<body onload="OnLoad()">)을 사용하는 것이 좋습니다. 페이지와 페이지에서 로드되는 모든 코드를 완전히 제어할 수 있는 경우에는 이 방법이 적합하지만, body.onload 핸들러를 삭제하는 일부 런타임에서는 이 접근 방식으로 인해 문제가 발생할 수 있습니다. setOnLoadCallback()에는 이러한 문제가 없으므로 API가 완전히 로드되고 사용할 준비가 되었을 때 코드를 호출하는 콜백을 등록하는 데 권장되는 방법입니다.

다음 정적 메서드는 google.elements.transliteration 네임스페이스에 구현됩니다.

정적 메소드 설명

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage)는 지정된 sourceLanguage에 대해 음역이 지원되는 대상 언어의 맵을 반환하는 전역 메서드입니다. 반환된 맵에는 지원되는 도착어가 포함되어 있으며, 여기서 키는 언어 이름이고 값은 언어 코드입니다. 반환된 맵은 LanguageCode enum에 설명된 맵과 유사합니다.

열거형

EventType enum

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 메서드로 그려진 음역 컨트롤에 대한 마우스 클릭입니다.
    리스너에 전달된 이벤트 객체에는 transliterationEnabled 필드가 포함됩니다. 음역이 'on'이면 이 필드는 true이고 그렇지 않으면 false입니다.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: 음역 언어 쌍이 다음을 통해 음역 컨트롤에서 변경될 때의 결과
    • setLanguagePair 메서드
    • showControl 메서드로 그려진 음역 컨트롤
    리스너에 전달된 이벤트 객체에는 sourceLanguagedestinationLanguage 필드가 포함됩니다.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: 텍스트를 음역하기 위해 서버에 성공적으로 연결된 경우의 결과입니다.
  • 텍스트를 음역하기 위해 서버에 연락을 시도했으나 실패한 경우 google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE가 반환됩니다.

LanguageCode 열거형

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

SupportedDestinationLanguages enum

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 디버거를 사용합니다. Chrome에는 전체 개발자 도구가 있습니다. Firefox에서는 JavaScript 콘솔 또는 Firebug를 사용할 수 있습니다. IE에서는 Microsoft 스크립트 디버거를 사용할 수 있습니다.
  • 토론 그룹을 검색합니다. 질문에 답변이 되는 게시물을 찾을 수 없는 경우 문제를 보여주는 웹페이지에 대한 링크를 포함하여 질문을 그룹에 게시하세요.