Přeskočit odkazy

Překlad textů z aplikace FileMaker pomocí Překladače Google nebo deepl.com

Překládání textů do jiných jazyků pomocí aplikace FileMaker

Díky standardizovaným rozhraním API lze překladatelské služby, jako je Google Translate nebo Deepl.com, používat přímo s FileMakerem k překladu textů do jiných jazyků. V tomto krátkém článku vám ukážeme, jak takový překlad vytvořit přímo ve FileMakeru. Rozhraní a tím i možnost překládat jakýkoli text.

Překladač Google i Deepl.com jsou zpoplatněny. Jeden milion znaků odeslaných do API stojí u obou služeb 20 amerických dolarů, respektive 20 eur, zatímco Deepl.com si rovněž účtuje základní měsíční poplatek ve výši necelých pěti eur. Přeložené texty z Deepl.com jsou obecně považovány za o něco lépe přeložené než texty z Překladače Google, i když to pravděpodobně závisí také na oboru. Níže se dozvíte, jak funguje automatický překlad textů v aplikaci FileMaker.Databáze lze realizovat.

K provedení překladu pomocí Překladače Google je zapotřebí platný účet Google, který je oprávněn používat. Cloud Translation API je aktivován.

Pro překlad pomocí Deepl.com je vyžadován placený vývojářský účet pro rozhraní API DeepL. Měsíční náklady činí 4,99 eur plus náklady závislé na používání (v současné době 1 cent za 500 znaků, od 03/2019).

Rychlokurz FileMakeru

Rychlý a efektivní FileMaker
učení ve 20 kapitolách.

Zúčastněte se zdarma

Obecné Skript pro překlad

Nejprve vytvoříme skript, který přijme zdrojový jazyk, cílový jazyk a text, který má být přeložen, prostřednictvím tří parametrů a podle toho je odešle do rozhraní. V našem příkladu jsou parametry odděleny zalomením řádku (CR). Pokud chcete do rozhraní odesílat texty s oddělovači řádků, použijte pro parametry jiný oddělovač, například apostrof. V tomto případě nepoužívejte funkci GetValue ()ale jinou (vlastní) funkci, která řetězec rozdělí pomocí vašeho oddělovače. V našem příkladu nazveme skript "ts.Translate". V prvním kroku se každý z přenášených parametrů převede do tvaru Variabilní napsáno.

Skript lze volat z jiných skriptů následujícím způsobem:

Spuštění skriptu [ Zadáno: Ze seznamu ; "ts.Translate"; Parametr: ""DE¶EN¶Hello world" ]

Přehled skriptu "ts.Translate"

Skript FileMakeru pro překladač Google a DeepL

Přenos parametrů skriptu

Nastavení proměnné [ $quellsprache ; Hodnota: GetValue(Get(ScriptParameter); 1) ]
Nastavení proměnné [ $argetLanguage ; Hodnota: GetValue(Get(ScriptParameter); 2) ]
Nastavení proměnné [ $quelltext ; Hodnota: GetValue(Get(ScriptParameter); 3) ] 

Proměnné 1TP4Source language a $arget language obsahují ISO kód příslušného jazyka, např. DE nebo EN.

Nastavení proměnné pro klíč API

Nastavení proměnné [ $api_key ; Value: "hJghjjHJHGjkhjKJgÖLkjjjhlkHkjFJKGkjjhlÄf" ] 

K použití rozhraní API pro překlad Google Cloud i rozhraní API DeepL je vyžadován ověřovací klíč. Ten lze získat v oblasti správy příslušného rozhraní API.

Volání API URL

Rozhraní API pro překlad Google Cloud

Nastavení proměnné [ $_url ; Hodnota: "https://www.googleapis.com/language/translate/v2?key=" & $api_key & "&q=" & ReadAsURLEncrypted ($source text) & "&source=" & $source language & "&target=" & $target language ] 

DeepL API

Nastavení proměnné [ $_url ; Hodnota: "https://api.deepl.com/v2/translate?auth_key=" & $api_key & "&source_lang=" & $source_lang & "&target_lang=" & $target_lang & "&text=" & ReadAsURLEncrypted ($source_text) ] 

V závislosti na tom, který zprostředkovatel má být použit, je třeba použít odpovídající řádek skriptu. V proměnné $_url se nejprve vygeneruje adresa URL, která má být pro překlad vyvolána. Za adresou serveru následují všechny ostatní hodnoty, které byly uloženy v dříve definovaných proměnných:

  • $api_key (Ověřovací klíč rozhraní API)
  • $source_long (zdrojový jazyk jako kód ISO)
  • $target_long (cílový jazyk jako kód ISO)
  • 1TP4Zdrojový text (Předávaný text se předává s funkcí ReadAsURLEncrypted v adrese URL, aby se zabránilo odesílání skutečných zlomů řádků atd.)

Vložení z adresy URL [ Výběr ; S dialogem: Vypnuto ; $url_result ; $_url ] 

Tento příkaz zavolá adresu URL a výsledek uloží do proměnné $url_result.

Vyčtení výsledku a chybového dotazu

Nejprve se systém dotáže, zda výsledek vrácený prostřednictvím adresy URL obsahuje výraz "chyby". Pokud ano, měl by se zobrazit příslušný dialog o chybách, který v textu obsahuje proměnné $_url a $url_result.

Když [ PatternNumber ( $url_result ; "errors" ) ] 

     Zobrazení vlastního dialogového okna [ "Chyba nastala" ; $_url & ", " & $url_result ]

Jinak

     Nastavení proměnné [ $_message_target ; Hodnota:

     SetVar ( [
     Text = $url_result ;
     StartTag = "\"text\":\"" ;
     EndTag = "\"}]}" ;
     StartPos = Pozice ( Text ; StartTag ; 1 ; 1 ) ;
     StartPos = StartPos + Length ( StartTag ) ;
     EndPos = pozice ( Text ; EndTag ; StartPos ; 1 ) ;
     LengthToKeep = EndPos - StartPos ;
     Výsledek = CharacterCentre ( Text ; StartPos ; LengthToKeep ) ] ;
     Výsledek & If(PatternNumber(Výsledek; "|") > 0; "|")
     )

Filtrování entit HTML

Pokud vrácený text obsahuje entity HTML, lze je odstranit pomocí příkazu Vlastní funkce lze odfiltrovat. V tomto příkladu použijeme funkci HTMLencoded2Textkterý je volně k dispozici.

     Když [ PatternNumber ( $_message_target ; "&#" ) ] 

          Nastavení proměnné [ $_message_target ; Value: HTMLencoded2Text ( $_message_target ) ] 

     Konec (if)

Konec (if)

Ukončení skriptu a doručení výsledku

Následující příkaz ukončí skript a vrátí výsledek, který se zobrazí v nadřazeném skriptu po provedení příkazem Get(ScriptResult) lze přečíst.

Ukončení aktuálního skriptu [ Výsledek textu: $_message_target ] 

Oddělení několika textových hodnot oddělovačem

Pomocí rozhraní je také možné přiřadit oddělovač několika slovům, která mají být přeložena, aby bylo možné je později strukturovaně zadat do různých proměnných nebo polí. Pomocí rozhraní API DeepL lze například jako oddělovač snadno použít apostrof, zatímco u překladače Google jsme mohli úspěšně implementovat oddělovač s jedním nebo dvěma podtržítky.

 

Zanechat komentář

  1. Jsou k tomu nějaké aktualizace? Skript nelze takto zadat. Byl bych za to velmi rád.

    Mfg

    Burkhard Quenzler

    1. Dobrý den, Burkharde, co přesně nelze zadat nebo co nefunguje? Nejsem si vědom, že by se od té doby v API něco změnilo z čistě technického hlediska. Funkce StringColumns odpovídá funkci "GetValue", pouze s apostrofem jako oddělovačem.

      1. Zkoušel jsem napsat skript slovo od slova, myslím, že mám problém s apostrofem. Zkusím to později. Možná mi můžete poslat skript ts.Translate. Byl bych vám velmi vděčný.

Sdílet tuto stránku:

Software ERP je stejně flexibilní jako vaše společnost.
Rádi vám poradíme.

Přizpůsobitelný software ERP pro Mac, Windows a iOS.

Nacházíte se zde: Masarykova univerzita Lidé se mohou těšit na další informace: Překlad textů v aplikaci FileMaker pomocí Deepl.com a Překladače Google