parent
37b2fdea80
commit
3ec7c6915f
@ -1,9 +1,16 @@
|
||||
import { Translator} from 'deepl-node';
|
||||
import { Translator, TextResult } from 'deepl-node';
|
||||
import { DeeplInLang, DeeplOutLang } from './model';
|
||||
|
||||
|
||||
const translator = new Translator(require('../keys.json').DEEPL);
|
||||
|
||||
export async function translate(text: string, srcLang:any, targetLang: any): Promise<string> {
|
||||
targetLang = targetLang === 'en' ? 'en-US' : targetLang;
|
||||
return translator.translateText(text, srcLang, targetLang)
|
||||
.then((textResult => textResult.text));
|
||||
export async function translate(text: string, srcLang:any, dstLang: any): Promise<string> {
|
||||
dstLang = dstLang === 'en' ? 'en-US' : dstLang;
|
||||
if (!(srcLang in DeeplInLang)) { srcLang = 'en'; }
|
||||
if (!(dstLang in DeeplOutLang)) { dstLang = 'en'; }
|
||||
return translator.translateText(text, srcLang, dstLang)
|
||||
.then(
|
||||
(textResult: TextResult) => {return textResult.text;},
|
||||
() => ''
|
||||
);
|
||||
}
|
||||
|
@ -1,15 +1,23 @@
|
||||
import { GoogleLang } from './model';
|
||||
|
||||
const {Translate} = require('@google-cloud/translate').v2;
|
||||
|
||||
const projectId = 'translate-reebot';
|
||||
const translator = new Translate({projectId});
|
||||
translator.key = require('../keys.json').GOOGLE;
|
||||
|
||||
export async function translate(text: string, targetLang: string): Promise<string> {
|
||||
return translator.translate(text, targetLang)
|
||||
.then(([result] : any) => result);
|
||||
export async function translate(text: string, dstLang: string): Promise<string> {
|
||||
return translator.translate(text, dstLang)
|
||||
.then(
|
||||
([result] : any) => result,
|
||||
(error: any) => console.log(error)
|
||||
);
|
||||
}
|
||||
|
||||
export async function detect(text: string): Promise<string> {
|
||||
return translator.detect(text)
|
||||
.then(([result] : any) => result.language === 'und' ? 'en' : result.language);
|
||||
.then(
|
||||
([result] : any) => !(result.language in GoogleLang) ? 'en' : result.language,
|
||||
(error: any) => console.log(error)
|
||||
);
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
// subset of https://cloud.google.com/translate/docs/languages
|
||||
export enum GoogleLang {
|
||||
de, en, uk, es, fr, it, ru
|
||||
}
|
||||
|
||||
// subset of https://www.deepl.com/docs-api/translating-text/
|
||||
export enum DeeplInLang {
|
||||
de, en, es, fr, it, ru
|
||||
}
|
||||
|
||||
// subset of https://www.deepl.com/docs-api/translating-text/
|
||||
export enum DeeplOutLang {
|
||||
de, 'en-US', es, fr, it, ru
|
||||
}
|
Loading…
Reference in new issue