Translate API - Integrare și utilizare

Vom utiliza serviciul de traducere oferit de Google în proiectul asociat Back-end-ului

  • Instalați pachetul translate din google-cloud - npm i ... în consolă

npm i @google-cloud/translate
  • Introducem calea către credențialele furnizate de Google în .env

// .env
GOOGLE_APPLICATION_CREDENTIALS="./translateKey.json"
  • Pentru a păstra proiectul organizat, creați un fișier nou în care vom introduce logica de traducere. Îl puteți numi translateFunctions.js

  • Cele mai simple metode pe care le putem utiliza sunt .detect(input), .translate(input, targetLanguage). Pentru cazul în care ne-am dori să mai prelucrăm răspunsurile primite de la API, dar și pentru a ascunde complexitatea (importuri de funcții, creare de obiecte, etc), vom defini 2 funcții utile și le vom exporta

// translateFunctions.js
const {Translate} = require('@google-cloud/translate').v2;
const translateAPI = new Translate();

async function detectLanguage(inputText) {
    const languageDetection = await translateAPI.detect(inputText);
    return languageDetection;
}

async function translateText(inputText, targetLanguage) {
    const outputText = await translateAPI.translate(inputText, targetLanguage);
    return outputText;
}

module.exports = {
    detectLanguage,
    translateText
}
  • Fiecare limbă pe care o putem trimite ca parametru în funcția translateText este reprezentată printr-un cod ISO. Putem astfel să definim un dicționar al limbilor - codurilor și să îl exportăm. Creați fișierul dictionaries.js

// dictionaries.js
const LANGUAGE_ISO_CODE = {
    'ENGLISH': 'en',
    'SPANISH': 'es',
    'FRENCH': 'fr',
    'GERMAN': 'de',
    'ITALIAN': 'it',
    'PORTUGUESE': 'pt',
    'ROMANIAN': 'ro',
    'SWEDISH': 'sv',
    'DUTCH': 'nl',
    'FINNISH': 'fi',
    'NORWEGIAN': 'no',
    'POLISH': 'pl',
    'HUNGARIAN': 'hu',
};

module.exports = {
    LANGUAGE_ISO_CODE,
};
  • Putem testa că programul nostru funcționează importând cele 2 funcții în index.js și apelându-le (observați că am introdus cele 2 fișiere noi într-un folder utils)

// index.js
const {detectLanguage, translateText} = require("./utils/translateFunctions.js");
const {LANGUAGE_ISO_CODE} = require("./utils/dictionaries.js");

const processLanguage = async (text) => {
  const languageDetection = await detectLanguage(text);
  const translatedText = await translateText(text, LANGUAGE_ISO_CODE.ROMANIAN);
  console.log(languageDetection);
  console.log(translatedText);
}

processLanguage("Hello world! This is my first time using Google Translate API!");

Last updated