TranslRepeat API 참조

간단한 음역

다음 메서드를 사용하면 자바스크립트를 조작하여 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()에는 반환값이 없습니다.

이와 같이 음역하는 방법은 TranslRepeat API에서 다른 모든 메서드의 네임스페이스인 google.elements.transliteration가 아닌 google.language.transliterate 네임스페이스를 사용합니다.

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

결과 객체는 서버 요청의 JSON 인코딩을 사용하여 생성됩니다. 따라서 공식 자바스크립트 객체를 구현하지 않고 직렬화된 형태로 result 객체를 동적으로 생성하도록 선택했습니다.

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

  • <결과>
    • error?
      음역 중 오류가 발생한 경우 표시됩니다.
    • transliterations
      입력 wordsArray의 크기와 같은 크기의 배열입니다.
      • transliteratedWords
        최대 크기가 5인 배열로, wordsArray에서 해당 단어의 음역을 포함합니다.

음역 제어 자바스크립트 참조

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

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

생성자 설명

google.elements.transliteration.
TransliterationControl(options)

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

  • sourceLanguageLanguageCode enum (google.elements.transliteration.ENGLISH에 있음)을 사용하여 출발어를 지정하는 필수 문자열입니다. 현재 영어만 지원되는 언어입니다.
  • destinationLanguagegoogle.elements.transliteration.HINDI에서와 같이 LanguageCode 열거형을 사용하여 도착어를 지정하는 필수 배열입니다.

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

    참고: Shift 키를 유일한 수정자로 사용할 수 없습니다. 그러나 Alt 또는 Control과 함께 사용할 수 있습니다.

이 메서드는 다음과 같은 경우에 예외를 생성합니다.

  • sourceLanguage 또는 destinationLanguage이(가) 잘못되었습니다.
  • sourceLangaugedestinationLanguage 언어 쌍에서 지원되지 않는 언어
  • 잘못된 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)는 지정된 이벤트 유형의 음역 제어에 리스너를 추가합니다. 특정 이벤트 유형이 트리거되면 이벤트 객체와 함께 리스너가 호출됩니다. 이벤트 객체의 콘텐츠는 이벤트 유형에 따라 다릅니다. 이 메서드의 매개변수는 다음과 같습니다.

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

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

.disableTransliteration()

.disableTransliteration()는 음역 제어에서 음역을 사용 중지합니다. 이 메서드에는 인수가 없으며 반환 값이 없습니다.

.enableTransliteration()

.enableTransliteration()는 음역 제어에서 음역을 사용 설정합니다. 이 메서드에는 인수가 없으며 반환 값이 없습니다.

.isTransliterationEnabled()

.isTransliterationEnabled()에는 인수가 없으며 음역 제어에서 음역이 사용 설정되었는지 여부를 나타내는 부울이 반환됩니다.

.makeTransliteratable(elementIds, opt_options)

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

  • elementIds는 음역을 사용 설정할 수 있는 편집 가능한 요소 ID 또는 요소 참조로 구성된 배열이 포함된 배열입니다. 수정 가능한 요소는 다음과 같습니다.

    • 텍스트 필드
    • 텍스트 영역
    • contentEditable="true"와 함께 &div>
    • designMode="on"가 있는 Anlt;iframe>
    • 본문이 contentEditable="true"인 iframe입니다. 음역을 사용 설정하기 전에 iframe이 로드되었는지 확인하세요.
  • opt_options은 이러한 요소에 적용되는 옵션을 제공하는 선택적 인수입니다. 이 인수에는 다음 필드가 포함될 수 있습니다.
    • adjustElementStyle는 선택적 부울 필드로, 타겟 언어 문자에 맞게 API에서 요소 및 글꼴 크기를 자동으로 조정하는지 여부를 제어합니다. 기본값은 true입니다. 이 옵션은 일반 텍스트 요소에만 적용됩니다.
    • adjustElementDirectiondestinationLanguage의 방향에 따라 수정 가능한 요소의 방향을 제어하는 부울 필드(선택사항)입니다. 기본값은 true입니다.

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

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

이 메서드는 지정된 elementIds 중 하나라도 유효하지 않은 경우 예외를 만듭니다.

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

.removeEventListener(eventType, listener, opt_listenerScope)

.removeEventListener(eventType, listener, opt_listenerScope)는 음역 제어에서 이벤트 리스너를 삭제합니다. 여기서,

  • 이 인수는 eventType 열거형 (예: 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()에는 반환값이 없습니다.

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

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

정적 메소드 설명

.getDestinationLanguages(sourceLanguage)

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

열거형

이벤트 유형 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 enum

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

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