1.0.8 • Published 4 years ago

google-translate-result v1.0.8

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

google-translate-result

A simple translate API for Google Translate. Exports translate, audio and detect.

Install

npm i google-translate-result

Usage

Translate:

import google from 'google-translate-result';

google.translate({text: 'hello', to: 'ja', userLang: 'ja'}).then(result => console.log(result));

/*
    => {
        dict: ["名詞: 今日は"],
        from: "en",
        phonetic: "heˈlō,həˈlō",
        raw: [raw data],
        result: ["こんにちは"],
        text: "hello",
        to: "ja"
    }
*/

Translate params:

{
    /*
    * the text you wanna translate
    * should be a string
    */ 
    text,

    /*
    * translate from
    * should ba a language code like 'en', 'zh-CN', etc.
    */
    from = '', 

    /*
    * translate to
    * should be a language code like 'en', 'zh-CN', etc.
    */
    to = '',

    /*
    * should be 'navigator.language'
    * userLang: userLang || 'en'
    * &hl=`${userLang || to}`
    */
    userLang = '',

    /*
    * if you didn't set 'from'
    * translate will auto detect the text, to give a better performance
    * but it will take about two times of time to get the result
    * if you don't want the auto detect
    * you can set it false
    */
    autoDetect = true
}

Audio:

import google from 'google-translate-result';

google.audio({text: 'Hello world!'}).then(result => console.log(result));

/*
    => [
        "https://translate.google.cn/translate_tts?client=webapp&ie=UTF-8&prev=input&total=1&idx=0&tl=en&textlen=12&tk=964336.527511&q=Hello%20world!"
    ]

    return array is
    because it will be 404 not found if the text-length > 200
*/

Audio params:

{
    /*
    * the meaning is the same as translate's params
    * Notice: it must auto detect if you don't set 'from'
    */
    text,
    from = ''
}

You can play audio like it in the chrome extension background:

const audioPlayer = new Audio();
let index = 0;
let audioSrcList = [];

audioPlayer.addEventListener('ended', () => {
    if (index < audioSrcList.length) {
        audioPlayer.src = audioSrcList[index];
        audioPlayer.play();
        ++index;
    }
});

const playAudio = (srcList) => {
    if (1 > srcList.length) return;

    audioSrcList = srcList;
    index = 1;

    audioPlayer.src = srcList[0];
    audioPlayer.play();
}

Detect:

import google from 'google-translate-result';

google.detect('你好').then(result => console.log(result));

/*
    => 'zh-CN'
*/

Detect params:

(
    /*
    * the meaning is the same as translate's params
    */
    text
)

You can catch the error of every function, catch like it:

google.translate({text: 'hello', to: 'abc'})
    .then(result => console.log(result))
    .catch(err => console.log(err.code)); // => 'LANGUAGE_NOT_SOPPORTED'

The error code is as follows:

'CONNECTION_TIMED_OUT'
'BAD_REQUEST'
'RESULT_ERROR'
'LANGUAGE_NOT_SOPPORTED'

License

MIT