@shawnvogt/strapi-plugin-google-translate
Version:
Strapi plugin for automated translation of content using Google Cloud Translation
46 lines (36 loc) • 1.13 kB
JavaScript
const get = require('lodash/get')
const set = require('lodash/set')
const cloneDeep = require('lodash/cloneDeep')
const gct = require('../utils/gct-api')
module.exports = ({ strapi }) => ({
async translate({ data, sourceLocale, targetLocale, fieldsToTranslate }) {
const { apiKey } = strapi.config.get('plugin.gct')
const textsToTranslate = fieldsToTranslate.map((field) => {
return get(data, field, '')
})
const translateResult = await gct.translate({
key: apiKey,
q: textsToTranslate,
target: gct.parseLocale(targetLocale),
source: gct.parseLocale(sourceLocale),
format: 'text',
})
const translatedData = cloneDeep(data)
fieldsToTranslate.forEach((field, index) => {
set(
translatedData,
field,
translateResult.translations[index]?.translatedText
)
})
return translatedData
},
async usage() {
const { apiKey, freeApi } = strapi.config.get('plugin.gct')
return await gct.usage({
auth_key: apiKey,
free_api: freeApi,
})
},
})