UNPKG

@shawnvogt/strapi-plugin-google-translate

Version:

Strapi plugin for automated translation of content using Google Cloud Translation

46 lines (36 loc) 1.13 kB
'use strict' 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, }) }, })