Integrazione Odoo con Google Translate

Descrizione del modulo Odoo per il traduttore di Google

Il modulo che abbiamo creato permette di gestire le traduzioni in Odoo attraverso le API di Google Translate. Il processo di traduzione può avvenire tramite l’automatismo dei cron job, o attraverso la richiesta manuale di traduzione alle API.

Il modulo permette di gestire i campi dei prodotti come i nomi e le descrizioni, è utilizzabile sulle varie app di Odoo come Clienti, Magazzino, Fatture etc.

Si possono tradurre i contenuti da e verso tutte le lingue presenti su Google.

Sono stati inoltre implementati diversi sistemi che permettono di velocizzare ed ottimizzare i processi di traduzione in modo quindi da ridurre al massimo i costi.



Prerequisiti

Per poter utilizzare correttamente il modulo sono necessari:

- il pacchetto Python google-cloud-translate, alla versione 2.0.0 o superiore;
- un account Google abilitato alla fatturazione e all’utilizzo delle API di Google Translate;
- il file .json contenente le credenziali generate da Google per l’accesso alle API.


Premessa: gestione delle traduzioni via Google

Per gestire le traduzioni via Google si è scelto di operare su 3 livelli: i gruppi di traduzioni, i benchmark di traduzione, i dati di traduzione.

I gruppi di traduzioni permettono di gestire il dato sul database. Ogni volta che un record viene modificato, il nuovo dato viene salvato sul database. Questa modifica viene riflessa appunto sul gruppo di traduzioni. Ogni gruppo è definito univocamente dal record a cui è collegato e dal field di cui contiene il testo. Ad esempio, se si modifica il nome e la descrizione di tre prodotti, verranno creati o aggiornati sei gruppi, perché per ognuno dei tre prodotti viene creato un gruppo relativo al nome ed uno relativo alla descrizione.

I benchmark di traduzione permettono di velocizzare ed ottimizzare i processi di traduzione. Ogni benchmark è definito da un testo da tradurre e dalla coppia lingua di partenza / lingua di traduzione.
L’uso dei benchmark è quello di permettere l’aggiornamento massivo di tutti i dati di traduzione che hanno lo stesso testo da tradurre e la stessa coppia lingua di partenza / lingua di traduzione. In particolare, se anziché eseguire la singola traduzione si traduce il benchmark, il testo tradotto verrà assegnato automaticamente anche a tutti i dati di traduzione non ancora tradotti, o anche a questi ultimi se si forza la traduzione.

I dati di traduzione sono definiti da una serie di parametri presi dai gruppi e dai benchmark di cui sopra. Ogni traduzione è infatti definita dal record e dal field da tradurre (come il gruppo) ma anche dalla coppia lingua di partenza / lingua di traduzione (come il benchmark). Pertanto, ogni traduzione è collegata ad un solo gruppo ed un solo benchmark.


Configurazione delle lingue

Per prima cosa, si attivano le lingue che vogliono essere utilizzate nell’ambiente.
All’installazione del modulo, la lingua inglese viene attivata automaticamente se non è già attiva.




Configurazione dei client

I client sono necessari ad Odoo per interfacciarsi con le API di Google. Nella configurazione è sufficiente impostare il nome del progetto (di default sarà “Google Translate”), caricando il file .json con le credenziali.




Abilitazione dei modelli alla traduzione

Per default, nessun documento è traducibile via Google Translate: l’abilitazione va fatta manualmente, andando a selezionare quali modelli abilitare o disabilitare.


Attivazione pulsanti contestuali su menù

Una volta abilitati i modelli alla traduzione via Google Translate, si possono attivare i pulsanti contestuali su menù per la gestione manuale delle traduzioni. Si devono scegliere i modelli per cui verranno abilitati questi pulsanti. Si possono scegliere soltanto modelli abilitati alla traduzione tramite Google Translate (vedi punto precedente).


Attivazione traduzioni automatiche

Dopo aver abilitato i modelli alla traduzione, è possibile attivare dei cron che traducono automaticamente i testi di quei modelli. Si potranno configurare, tra gli altri, i campi i Fields da tradurre, le lingue di origine e le lingue di destinazione e la frequenza di esecuzione del cron.


Creazione e modifica delle traduzioni

Dopo aver attivato i pulsanti contestuali, compariranno tre nuove voci dal menù “Action” presente nelle viste tree e form dei modelli abilitati.



1. “Translations Setup” è un tool che, una volta cliccato, crea in automatico tutti i gruppi di traduzioni mancanti per i record selezionati;
2. “Show Translations” mostra i gruppi di traduzioni relativi ai record selezionati;
3. “Google Translate” apre un wizard che permette di fare un aggiornamento massivo delle traduzioni dei record selezionati.

Il pulsante “Google Translate” verrà descritto nella prossima sezione; il funzionamento dei gruppi, visibili dal pulsante “Show Translations” viene invece rimandato alla sezione “Gruppi di Traduzioni”.


Pulsante “Google Translate”

Cliccando su “Google Translate” si apre un wizard, nel quale si definisce il client da utilizzare per le traduzioni, da quali lingue si sta traducendo e verso quali lingue si sta traducendo, se sovrascrivere o meno eventuali traduzioni preesistenti, selezionare i field da tradurre




Gruppi di traduzioni

Cliccando sul pulsante “Show Translations” si accede ai gruppi di traduzioni.
Aprendo un gruppo si possono gestire i dati di traduzione, mentre la lingua di origine ed il testo da tradurre sono in modalità sola lettura.
Si possono inoltre aggiungere nuovi dati di traduzione (“Add a line”) o rimuoverli.




Benchmark di traduzione

Aprendo un benchmark di traduzione si possono gestire i dati di traduzione, mentre la lingua di origine, il testo da tradurre, la lingua di traduzione ed il testo tradotto (vuoto, nell’immagine) sono in modalità sola lettura.



Come nel caso dei gruppi di traduzione, anche qui è possibile modificare l’ordine dei dati di traduzione, a differenza dei gruppi di traduzione, sui benchmark non è possibile creare o cancellare dati di traduzione, ma solo modificare quelli preesistenti.
Inoltre, è possibile tradurre il benchmark (e, a cascata, i dati di traduzione), inserire una traduzione manuale o richiedere una traduzione alle API di Google Translate scegliendo un client.


Dati di traduzione

Andando nei dati di traduzione, sono segnalati in verde i dati già tradotti.



Aprendone uno è possibile identificare se il dato di traduzione è considerabile tradotto o meno, mostrare il gruppo di traduzione a cui è collegato il dato di traduzione, il benchmark a cui è collegato il dato di traduzione, la lingua originaria da cui tradurre,  la lingua in cui dev’essere fatta la traduzione, il testo da tradurre e la traduzione.