๐ Introduction
Thank you to matheuss and iamtraction for writing the
original version of this library. Due to the original authors no longer actively maintaining it, I rewrote the library
using TypeScript and ISO-639-1. This rewrite has made the program more secure, provided richer translation results,
and
resolved program anomalies.
What's New?
Adaptive native language translation.
Synonyms, polysemous explanations, and example sentences.
Timeout and retry parameters in complex networks.
Support for querying language, language code, native language, and adaptive language lists.
Support for ISO-639-1, minority languages, special languages, and the latest changes on Wikipedia.
Secure API types and comprehensive coverage.
Controllable error states.
โ๏ธ Installation npm install @kabeep/node-translate --save
Copy
yarn add @kabeep/node-translate
Copy
pnpm add @kabeep/node-translate
Copy
๐ Usage import translate from '@kabeep/node-translate' ;
Copy
Methods: translate(text, options)
translate ( text , options ) . then ( console . log ) . catch ( console . error );
Copy
Parameter
Type
Optional
Default
Description
text
string
No
-
Source text, phrase or word.
options
TranslateOptions
-
-
The options for translating.
options.from
LanguageCode
, auto
or string
Yes
'auto'
The language name/ISO 639-1 code to translate from. If none is given, it will auto-detect the source language.
options.to
LanguageCode
, auto
or string
Yes
'auto'
The language name/ISO 639-1 code to translate to. If none is given, it will translate to native environment language.
options.raw
boolean
Yes
false
If true
, it will return the raw output that was received from Google Translation Api.
options.timeout
number
Yes
30_000
Timeout duration for the translation request in milliseconds.
options.retry
number
Yes
0
Retry attempts for the translation request in case of failure.
Returns: Promise<TranslationOption>
Response Object:
Key
Type
Description
text
string
Translation summary, long text will be truncated, please use to.text.value
for complete results.
from
Record
-
from.language
Record
-
from.language.didYouMean
boolean
Indicates whether there is a language suggestion.
from.language.iso
string
The ISO code of the detected language.
from.text
Record
-
from.text.autoCorrected
boolean
Indicates whether there was an autocorrection.
from.text.value
string
Source text.
from.text.phonetics
string
Phonetic transcription of the source text.
from.text.didYouMean
boolean
Indicates whether a suggestion for the source text.
from.synonyms
string[]
Synonyms of the source word.
from.sentences
string[]
Example sentence of the source word.
to
Record
-
to.text
Record
-
to.text.phonetics
string
Phonetic transcription of the translated text.
to.text.value
string
Translated text.
to.polysemy
Array<{ label: string; children: string[] }>
Polysemy information for the translated text.
raw
string
The raw response body from the translation request. Only returned if options.raw
is true
in the request options.
import { iso6391X } from '@kabeep/node-translate' ;
Copy
Methods: getName(code)
iso6391X . getName ( code );
Copy
Parameter
Type
Optional
Default
Description
code
string
No
-
Iso-639-1 language code or google translation language code.
Returns: string
Methods: getAllNames()
iso6391X . getAllNames ();
Copy
Returns: string[]
Methods: getNativeName(code)
iso6391X . getNativeName ( code );
Copy
Parameter
Type
Optional
Default
Description
code
string
No
-
Iso-639-1 language code or google translation language code.
Returns: string
Methods: getAllNativeNames()
iso6391X . getAllNativeNames ();
Copy
Returns: string[]
Methods: getCode(name)
iso6391X . getCode ( name );
Copy
Parameter
Type
Optional
Default
Description
name
string
No
-
Iso-639-1 language name or google translation language name.
Returns: LanguageCode
Methods: getAllCodes()
iso6391X . getAllCodes ();
Copy
Returns: LanguageCode[]
Methods: getLanguages(codes)
iso6391X . getLanguages ( codes );
Copy
Parameter
Type
Optional
Default
Description
codes
string[]
No
-
Iso-639-1 language codes or google translation language codes.
Returns: LanguageOption[]
Methods: getAllDetections()
iso6391X . getAllDetections ();
Copy
Returns: LanguageCode[]
๐ช Examples Usage of language codes View Case
import translate from '@kabeep/node-translate' ; // Simple example translate ( 'ไพๅญ' , { to: 'en' }). then ( res => { // => example console . log ( res . to . text . value ); });
Copy
Using language name and capitalized correction View Case
import translate from '@kabeep/node-translate' ; // Language name and capitalized correction translate ( 'ไพๅญ' , { to: 'ENGlish' }). then ( res => { // => example console . log ( res . text ); });
Copy
Adaptive translation View Case
import translate from '@kabeep/node-translate' ; // Use `auto` or leave the `from` parameter empty to detect language by adativeness // Use `auto` or leave the `to` parameter empty to detect language by os (`en` for example) translate ( 'ไพๅญ' ). then ( res => { // => example console . log ( res . text ); });
Copy
Phonetic transcription of the source text and translation View Case
import translate from '@kabeep/node-translate' ; // Output phonetic transcription of the source text and the translated text translate ( 'ไพๅญ' , { to: 'ja' }). then ( res => { // => Lรฌzi console . log ( res . from . text . phonetics ); // => Rei console . log ( res . to . text . phonetics ); });
Copy
Synonymous and similar words in the source text View Case
import translate from '@kabeep/node-translate' ; // Output synonyms of the source word translate ( 'ไพๅญ' , { to: 'en' }). then ( res => { // => // [ // 'ไพ', // 'ไพๅญ', // '่ไพ', // 'ๆฆๆ ท', // 'ๅ
ธ่', // 'ไพ่ฏ', // ] console . log ( res . from . synonyms ); });
Copy
Source text example sentences View Case
import translate from '@kabeep/node-translate' ; // Output example sentence of the source word translate ( 'example' , { to: 'zh' }). then ( res => { // => [ // "it is vitally important that parents should set an [example]", // "she followed her brother's [example] and deserted her family", // "it's a good [example] of how European action can produce results", // ] console . log ( res . from . sentences ); });
Copy
Synonymous translation View Case
import translate from '@kabeep/node-translate' ; // Output polysemy information for the translated text translate ( 'ไพๅญ' , { to: 'en' }). then ( res => { // => [{ // label: 'noun', // children: [ // 'example', // 'case', // 'instance', // ], // }] console . log ( res . to . polysemy ); });
Copy
Source text suggestions View Case
import translate from '@kabeep/node-translate' ; // Automatically detect and use the correct source text of suggested translate ( 'Thunk you' , { from: 'en' , to: 'zh' }). then ( res => { // => ่ฐข่ฐขไฝ console . log ( res . to . text . value ); // => true console . log ( res . from . text . didYouMean ); });
Copy
Automatic correction of source text View Case
import translate from '@kabeep/node-translate' ; // Automatically correct spelling errors in the source text translate ( 'Thnak you' , { from: 'en' , to: 'zh' }). then ( res => { // => ่ฐข่ฐข console . log ( res . to . text . value ); // => true console . log ( res . from . text . autoCorrected ); });
Copy
Automatic correction of source language codes View Case
import translate from '@kabeep/node-translate' ; // Automatically detect and use correct source language codes of suggested translate ( 'example' , { from: 'zh' , to: 'en' }). then ( res => { // => en console . log ( res . from . language . iso ); // => true console . log ( res . from . language . didYouMean ); }); // Automatically detect and use the correct source text of suggested translate ( 'Thunk you' , { from: 'en' , to: 'zh' }). then ( res => { // => ่ฐข่ฐขไฝ console . log ( res . to . text . value ); // => true console . log ( res . from . text . didYouMean ); });
Copy
Network exception retry View Case
import translate from '@kabeep/node-translate' ; // Retry attempts for the translation request in case of failure (with a maximum of three requests) translate ( 'ไพๅญ' , { to: 'en' , retry: 2 , timeout: 100 }). catch (( err ) => { // => ETIMEDOUT - The timeout limits was reached // => ECONNRESET - The connection was forcibly closed // => EADDRINUSE - Could not bind to any free port // => ECONNREFUSED - The connection was refused by the server // => EPIPE - The remote side of the stream being written has been closed // => ENOTFOUND - Could not resolve the hostname to an IP address // => ENETUNREACH - No internet connection // => EAI_AGAIN - DNS lookup timed out // => EPARSE - Unexpected API response data // => EVALIDATION - Illegal language code console . log ( err . message ); });
Copy
ISO-639-1-X View Case
import { iso6391X , LanguageCode , LanguageOption } from '@kabeep/node-translate' ; // => en console . log ( iso6391X . getCode ( 'english' )); // => ['aa', 'ab', ... 199 more items] console . log ( iso6391X . getAllCodes ()); // => English console . log ( iso6391X . getName ( 'en' )); // => ['Afar', 'Abkhaz', ... 199 more items] console . log ( iso6391X . getAllNames ()); // => ไธญๆ console . log ( iso6391X . getNativeName ( 'zh' )); // => ['Afaraf', 'ะฐางััะฐ ะฑัะทัำะฐ', ... 199 more items] console . log ( iso6391X . getAllNativeNames ()); // => [ // { code: 'en', name: 'English', nativeName: 'English' }, // { code: 'zh', name: 'Chinese', nativeName: 'ไธญๆ' }, // ... 6 more items // ] console . log ( iso6391X . getAllDetections ()); // => [ // { code: 'en', name: 'English', nativeName: 'English' }, // { code: 'zh', name: 'Chinese', nativeName: 'ไธญๆ' }, // ] console . log ( iso6391X . getLanguages ([ 'en' , 'zh' ])); // => true console . log ( iso6391X . validate ( 'en' )); // => false console . log ( iso6391X . validate ( 'english' ));
Copy
๐ Related
๐ค Contribution Contributions via Pull Requests or Issues are welcome.
๐ License This project is licensed under the MIT License. See the LICENSE file for details.