Create Translator service
This commit is contained in:
@@ -1,5 +1,41 @@
|
||||
'use strict';
|
||||
const qs = require('qs')
|
||||
const axios = require('axios')
|
||||
|
||||
const { createCoreService } = require('@strapi/strapi').factories;
|
||||
|
||||
module.exports = createCoreService('api::parole.parole');
|
||||
class Translator {
|
||||
constructor() {
|
||||
this.deeplApi = process.env.DEEPL_URL || 'api-free.deepl.com'
|
||||
this.deeplKey = process.env.DEEPL_KEY
|
||||
this.urlRequest = `https://${this.deeplApi}/v2/translate`
|
||||
}
|
||||
|
||||
async get(origin, target, text) {
|
||||
try {
|
||||
const data = {
|
||||
auth_key: this.deeplKey,
|
||||
source_lang: origin,
|
||||
target_lang: target,
|
||||
text
|
||||
}
|
||||
const result = await axios.post(this.urlRequest, qs.stringify(data), {
|
||||
headers: {
|
||||
'content-type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
})
|
||||
|
||||
return result.data
|
||||
} catch (error) {
|
||||
console.log('error', error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = createCoreService('api::parole.parole', ({strapi}) => ({
|
||||
async translate(origin, target, text) {
|
||||
const translator = new Translator()
|
||||
const data = await translator.get(origin, target, text)
|
||||
return data.translations[0].text
|
||||
}
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user