deepl-po-translate
Version:
Sponsor: https://ora.pm/ - Best agile project management, time tracking with native git integration platform for developers # Translate a .PO file using DeepL API .po file with no translation => .po file with translation! Translation is autosaved each 30
52 lines (45 loc) • 1.59 kB
JavaScript
const axios = require('axios')
class DeepL {
constructor( auth_key, target_lang, free ){
this.auth_key = auth_key
this.target_lang = target_lang === 'zh-Hans' ? 'zh' : target_lang === 'ko-KR' ? 'ko' : target_lang
this.api = free ? 'https://api-free.deepl.com/v2/' : 'https://api.deepl.com/v2/'
}
translate(text, source_lang = 'en'){
return new Promise((resolve) => {
var config = {
method: 'post',
url: `${this.api}translate?auth_key=${this.auth_key}&target_lang=${this.target_lang}&source_lang=${source_lang}&tag_handling=xml&split_sentences=nonewlines&ignore_tags=NoTrans&text=${encodeURIComponent(text)}`,
headers: {
"Content-Type": 'application/x-www-form-urlencoded'
}
};
// console.log(config)
axios(config)
.then(function (response) {
// console.table(response.data.text)
resolve(response.data)
})
.catch(function (error) {
// console.log(error);
});
})
}
usage(){
var config = {
method: 'post',
url: `${this.api}usage?auth_key=${this.auth_key}`,
headers: { }
};
return axios(config)
.then(function (response) {
console.log('\n'+ JSON.stringify(response.data));
})
.catch(function (error) {
console.error(error);
});
}
}
module.exports = {
DeepL
}