Salta i link

Tradurre testi da FileMaker con Google Translate o deepl.com

Tradurre testi in altre lingue con FileMaker

Grazie alle interfacce API standardizzate, i servizi di traduzione come Google Translate o Deepl.com possono essere utilizzati direttamente con FileMaker per tradurre testi in altre lingue. In questo breve articolo vi mostreremo come creare una traduzione di questo tipo direttamente in FileMaker. Interfaccia e quindi essere in grado di tradurre qualsiasi testo.

Sia Google Translate che Deepl.com sono a pagamento. Un milione di caratteri inviati all'API costa rispettivamente 20 dollari USA e 20 euro per entrambi i servizi, mentre Deepl.com richiede un canone mensile di base di poco meno di cinque euro. I testi tradotti da Deepl.com sono generalmente considerati leggermente migliori rispetto a quelli di Google Translate, anche se ciò dipende probabilmente anche dall'area tematica. Scoprite di seguito come funziona la traduzione automatica dei testi in un'applicazione FileMaker.Database può essere realizzato.

Per effettuare la traduzione con Google Translate, è necessario un account Google valido e autorizzato all'utilizzo del servizio. API di traduzione nel cloud è attivato.

Per tradurre con Deepl.com è necessario un account sviluppatore a pagamento per l'API DeepL. Il costo mensile è di 4,99 euro più i costi dipendenti dall'uso (attualmente 1 centesimo per 500 caratteri, a partire dal 03/2019).

Corso accelerato di FileMaker

FileMaker veloce ed efficace
apprendimento in 20 capitoli.

Partecipare gratuitamente

Generico Scrittura per la traduzione

In primo luogo, creiamo uno script che accetta la lingua di partenza, la lingua di arrivo e il testo da tradurre tramite tre parametri e li invia all'interfaccia di conseguenza. Nel nostro esempio, i parametri sono separati da interruzioni di riga (CR). Se si desidera inviare all'interfaccia testi con separatori di riga, utilizzare un separatore diverso per i parametri, ad esempio un apostrofo. In questo caso, non utilizzare la funzione GetValue ()ma un'altra funzione (personalizzata) che divide la stringa con il separatore. Nel nostro esempio, chiamiamo lo script "ts.Translate". Nel primo passo, i parametri trasferiti vengono convertiti ciascuno in un elemento Variabile scritto.

Lo script può essere richiamato da altri script come segue:

Eseguire lo script [ Specificato: Da elenco ; "ts.Translate"; Parametro: ""DE¶EN¶Hello world" ].

Panoramica dello script "ts.Translate

Script FileMaker per Google Translate e DeepL

Trasferimento dei parametri dello script

Impostare la variabile [ $quellsprache ; Valore: GetValue(Get(ScriptParameter); 1) ]
Impostare la variabile [ $argetLanguage ; Valore: GetValue(Get(ScriptParameter); 2) ]
Impostare la variabile [ $quelltext ; Valore: GetValue(Get(ScriptParameter); 3) ] 

Le variabili 1TP4Source language e $arget language contengono il codice ISO della rispettiva lingua, ad esempio DE o EN.

Impostare la variabile per la chiave API

Impostare la variabile [ $api_key ; Valore: "hJghjjHJHGjkhjKJgÖLkjjjhlkHkjFJKGkjhlÄf" ] 

Per utilizzare sia l'API di traduzione di Google Cloud che l'API DeepL è necessaria una chiave di autenticazione. Questa può essere recuperata nell'area di amministrazione delle rispettive API.

Chiamata URL API

API di traduzione di Google Cloud

Impostare la variabile [ $_url ; Valore: "https://www.googleapis.com/language/translate/v2?key=" & $api_key & "&q=" & ReadAsURLEncrypted ($source text) & "&source=" & $source language & "&target=" & $target language ] 

DeepL API

Impostare la variabile [ $_url ; Valore: "https://api.deepl.com/v2/translate?auth_key=" & $api_key & "&source_lang=" & $source_lang & "&target_lang=" & $target_lang & "&text=" & ReadAsURLEncrypted ($source_text) ] 

A seconda del provider utilizzato, è necessario utilizzare la riga di script corrispondente. Nella variabile $_url viene generato innanzitutto l'URL che deve essere richiamato per la traduzione. L'indirizzo del server è seguito da tutti gli altri valori che sono stati salvati nelle variabili precedentemente definite:

  • $api_key (chiave di autenticazione dell'API)
  • $source_long (lingua sorgente come codice ISO)
  • $arget_long (lingua di destinazione come codice ISO)
  • $esto sorgente (Il testo passato viene trasmesso con la funzione ReadAsURLEncrypted nell'URL per evitare di inviare interruzioni di riga reali ecc.)

Inserisci da URL [ Selezione ; Con dialogo: Off ; $url_result ; $_url ] 

Questo comando richiama l'URL e salva il risultato nella variabile $url_result.

Leggere il risultato e la query di errore

In primo luogo, il sistema verifica se il risultato restituito tramite l'URL contiene il termine "errori". In caso affermativo, dovrebbe apparire un dialogo di errore corrispondente, che contiene le variabili $_url e $url_result nel testo.

Quando [ PatternNumber ( $url_result ; "errors" ) ] 

     Visualizzare la propria finestra di dialogo [ "Si è verificato un errore" ; $_url & ", " & $url_result ]

Altrimenti

     Impostare la variabile [ $_message_target ; Valore:

     SetVar ( [
     Testo = $url_result ;
     StartTag = "\"text":\"" ;
     EndTag = "\"}]}" ;
     StartPos = Posizione ( Testo ; StartTag ; 1 ; 1 ) ;
     StartPos = StartPos + Lunghezza ( StartTag ) ;
     EndPos = Posizione ( Testo ; EndTag ; StartPos ; 1 ) ;
     LengthToKeep = EndPos - StartPos ;
     Risultato = Centro caratteri ( Testo ; StartPos ; LengthToKeep ) ] ;
     Risultato & If(PatternNumber(Risultato; "|") > 0; "|")
     )

Filtraggio di entità HTML

Se il testo restituito contiene entità HTML, queste possono essere rimosse con l'opzione Funzione personalizzata possono essere filtrati. In questo esempio, si utilizza la funzione HTMLencoded2Textche è liberamente disponibile.

     Quando [ PatternNumber ( $_message_target ; "&#" ) ] 

          Impostare la variabile [ $_message_target ; Valore: HTMLencoded2Text ( $_message_target ) ] 

     Fine (se)

Fine (se)

Uscire dallo script e consegnare il risultato

Il comando seguente esce dallo script e restituisce il risultato visualizzato nello script padre dopo l'esecuzione con il comando Get(ScriptResult) può essere letto.

Esce dallo script corrente [ Risultato del testo: $_message_target ] 

Separazione di diversi valori di testo con un separatore

Utilizzando le interfacce, è anche possibile assegnare un separatore a diverse parole da tradurre per poterle inserire successivamente in diverse variabili o campi in modo strutturato. Con l'API DeepL, ad esempio, è possibile utilizzare facilmente un apostrofo come separatore, mentre con Google Translate siamo riusciti a implementare con successo un separatore con uno o due trattini bassi.

 

Lascia un commento

  1. Commento al post

    Signor Quenzler dice:

    Ci sono aggiornamenti per questo? Lo script non può essere inserito in questo modo. Sarei molto contento di questo.

    Fabbricazione

    Burkhard Quenzler

    1. Ciao Burkhard, cosa non si può inserire esattamente o cosa non funziona? Non mi risulta che da allora sia cambiato qualcosa nell'API in termini puramente tecnici. La funzione StringColumns corrisponde alla funzione "GetValue", solo con l'apostrofo come separatore.

      1. Commento al post

        Burkhard Quenzler dice:

        Ho provato a digitare lo script parola per parola, credo di avere un problema con l'apostrofo. Riproverò più tardi. Forse puoi inviarmi lo script ts.Translate. Te ne sarei molto grato.

Condividi questa pagina:

Un software ERP flessibile come la vostra azienda.
Saremo lieti di consigliarvi.

Software ERP personalizzabile per Mac, Windows e iOS.

Siete qui: Tradurre testi in FileMaker con Deepl.com e Google Translate