Grâce à des interfaces API standardisées, des services de traduction comme Google Translate ou Deepl.com peuvent être utilisés directement avec FileMaker pour traduire des textes dans d'autres langues. Dans ce bref article, nous vous montrons comment créer une telle traduction directement dans FileMaker. Interface et de traduire ainsi n'importe quel texte.
Google Translate et Deepl.com sont tous deux payants. Un million de caractères envoyés à l'API coûte 20 dollars US ou 20 euros pour les deux services, Deepl.com demande en outre un abonnement mensuel d'un peu moins de cinq euros. Les textes traduits par Deepl.com sont généralement considérés comme un peu mieux traduits que par Google Translate, même si cela dépend probablement aussi du domaine de spécialité. Découvrez ci-dessous comment traduire automatiquement des textes dans une application FileMaker.Base de données peut être mis en œuvre.
Pour effectuer une traduction avec Google Translate, il est nécessaire de disposer d'un compte Google valide, qui peut être utilisé pour API de traduction en nuage est activée.
Pour la traduction avec Deepl.com, un compte de développeur payant de l'API DeepL est nécessaire. Les frais mensuels s'élèvent à 4,99 euros, plus les frais liés à l'utilisation (actuellement 1 centime par 500 caractères, état 03/2019).
Cours accéléré FileMaker
FileMaker rapide et efficace
apprendre en 20 chapitres.
Participer gratuitement
Générique Script pour la traduction
Nous commençons par créer un script qui accepte la langue source, la langue cible et le texte à traduire via trois paramètres et les envoie en conséquence à l'interface. Dans notre exemple, les paramètres sont séparés par des retours à la ligne (CR). Si vous souhaitez envoyer des textes avec des séparateurs de ligne à l'interface, utilisez un autre séparateur pour les paramètres, comme par exemple une barre verticale. Dans ce cas, n'utilisez pas la fonction ObtenirValeur ()mais une autre fonction (propre) qui divise la chaîne avec votre séparateur. Dans notre exemple, nous appelons le script "ts.Translate". La première étape consiste à convertir chacun des paramètres passés en une Variable écrit.
Le script peut être appelé à partir d'autres scripts comme suit :
Exécuter le script [ Spécifié : De la liste ; "ts.Translate" ; Paramètre : ""FR¶EN¶Bonjour le monde" ]
Aperçu du script "ts.Translate
Transfert des paramètres de script
Définir une variable [ $langage source ; Valeur : ObtenirValeur(Obtenir(ParamètreScript) ; 1) ]
Définir une variable [ 1TP4Langue cible ; Valeur : ObtenirValeur(Obtenir(ParamètreScript) ; 2) ]
Définir une variable [ $quelltext ; Valeur : ObtenirValeur(Obtenir(ParamètreScript) ; 3) ]
Les variables $langue source et $langue cible contiennent le code ISO de la langue concernée, par exemple FR ou EN.
Définir une variable pour la clé API
Définir une variable [ $api_key ; Valeur : "hJghjjHJHGjkhjKJgÖLkjjhlkHkjFJKGkjhlÄf" ]
Une clé d'authentification est nécessaire pour l'utilisation de l'API Google Cloud Translation et de l'API DeepL. Celle-ci peut être obtenue dans la zone d'administration de l'API concernée.
Appeler l'URL de l'API
API Google Cloud Translation
Définir une variable [ $_url ; Valeur : "https://www.googleapis.com/language/translate/v2?key=" & $api_key & "&q=" & LiesAlsURLCryptée ($sourcetext) & "&source=" & $source language & "&target=" & $arget language ]
DeepL API
Définir une variable [ $_url ; Valeur : "https://api.deepl.com/v2/translate?auth_key=" & $api_key & "&source_lang=" & $langue_source & "&target_lang=" & 1TP4langue_cible & "&text=" & LiesAlsURLCrypté ($quelltext) ]
Selon le fournisseur qui doit être utilisé, il faut utiliser ici la ligne de script correspondante. L'URL qui doit être appelée pour la traduction est d'abord générée dans la variable $_url. L'adresse du serveur est suivie de toutes les autres valeurs qui ont été enregistrées dans les variables définies précédemment :
- $api_key (clé d'authentification de l'API)
- $source_lang (langue source en code ISO)
- $target_lang (langue cible sous forme de code ISO)
- $Texte source (Texte transmis, est transmis dans l'URL avec la fonction LireCommeURLCrypté, afin de ne pas envoyer de véritables retours à la ligne, etc.)
Insérer à partir de l'URL [ Sélection ; Avec dialogue : Désactivé ; $url_résultat ; $_url ]
Cette commande permet d'appeler l'URL et de stocker le résultat obtenu dans la variable $url_ergebnis.
Lecture du résultat et consultation des erreurs
Tout d'abord, il est demandé si le résultat fourni par l'URL contient le terme "errors". Si c'est le cas, une boîte de dialogue d'erreur correspondante doit apparaître, contenant dans le texte les variables $_url et $url_résultat.
Si [ NombreModèle ( $url_ergebnis ; "errors" ) ]
Afficher sa propre boîte de dialogue ["Une erreur est survenue" ; $_url & ", " & $url_résultat ]
Sinon
Définir une variable [ $_message_target ; Valeur :
DéfinirVar ( [
Texte = $url_résultat ;
StartTag = "\"text\":\"" ;
EndTag = "\"}]}" ;
StartPos = position ( texte ; baliseDépart ; 1 ; 1 ) ;
StartPos = StartPos + longueur ( StartTag ) ;
EndPos = position ( texte ; balise de fin ; startPos ; 1 ) ;
LengthToKeep = EndPos - StartPos ;
Result = CentreCaractère ( Texte ; StartPos ; LengthToKeep ) ] ;
Result & Si(NombreModèle(Result ; "|") > 0 ; "|")
)
Filtrage des entités HTML
Si le texte renvoyé contient des entités HTML, celles-ci peuvent être supprimées à l'aide d'une commande Fonction personnalisée peuvent être filtrés. Dans cet exemple, nous utilisons la fonction HTMLencoded2Textqui est librement disponible.
Si [ NombreModèle ( $_message_target ; "&#" ) ] ]
Définir une variable [ $_message_target ; Valeur : HTMLencoded2Text ( $_message_target ) ] ]
Fin (si)
Fin (si)
Quitter le script et fournir le résultat
La commande suivante permet de quitter le script, en renvoyant le résultat obtenu dans le script parent après son exécution avec la commande Obtenir(RésultatScript) peut être lu.
Quitter le script en cours [ Résultat du texte : $_message_target ]
Séparation de plusieurs valeurs de texte à l'aide d'un seul séparateur
Grâce aux interfaces, il est également possible d'attribuer un caractère de séparation à plusieurs mots à traduire, afin de les saisir ultérieurement de manière structurée dans différentes variables ou champs. Avec l'API DeepL, il est par exemple possible d'utiliser sans problème un trait en exposant comme séparateur, tandis qu'avec Google Translate, nous avons pu mettre en œuvre avec succès une séparation avec un ou deux traits de soulignement.

Markus Schall développe depuis 1994 des bases de données individuelles, des interfaces et des applications commerciales sur la base de Claris FileMaker. Il est partenaire de Claris, lauréat du FMM-Award 2011 et développeur de la Logiciel ERP gFM-Business. Il est en outre auteur de livres et fondateur du M. Schall Verlags.


Y a-t-il des mises à jour pour cela ? Le script ne peut pas être saisi tel quel. J'en serais très heureux.
Avec nos compliments
Burkhard Quenzler
Bonjour Burkhard, qu'est-ce qui ne peut pas être saisi ou qui ne fonctionne pas ? Je ne sais pas si quelque chose a changé dans l'API depuis, d'un point de vue purement technique. La fonction ColonnesChaînes correspond à la fonction "ObtenirValeur", mais avec une apostrophe comme séparateur.
J'ai essayé de taper le script mot par mot, je crois que c'est l'apostrophe qui me pose problème. Je vais réessayer plus tard. Tu pourrais peut-être m'envoyer le script ts.Translate. Je t'en serais très reconnaissant.