Saltar ligações

Traduzir textos da FileMaker com o Google Translate ou deepl.com

Traduzir textos para outras línguas com a FileMaker

Graças a interfaces API padronizadas, serviços de tradução como o Google Translate ou Deepl.com podem ser usados diretamente com a FileMaker para traduzir textos para outras línguas. Neste pequeno artigo, vamos mostrar-lhe como criar uma tradução diretamente na FileMaker. Interface e, assim, ser capaz de traduzir qualquer texto.

Tanto o Google Translate como o Deepl.com estão sujeitos a uma taxa. Um milhão de caracteres enviados para a API custa 20 dólares americanos e 20 euros, respetivamente, para ambos os serviços, enquanto o Deepl.com também cobra uma taxa básica mensal de pouco menos de cinco euros. Os textos traduzidos pela Deepl.com são geralmente considerados ligeiramente mais bem traduzidos do que os do Google Translate, embora isso provavelmente também dependa da área temática. Descubra abaixo como funciona uma tradução automática de textos numa aplicação FileMaker.Base de dados pode ser realizado.

Para efetuar a tradução com o Google Translate, é necessária uma conta Google válida que esteja autorizada a utilizar o API de tradução na nuvem está ativado.

É necessária uma conta de programador paga para a API DeepL para traduzir com a Deepl.com. Os custos mensais são de 4,99 euros mais custos dependentes da utilização (atualmente 1 cêntimo por 500 caracteres, a partir de 03/2019)

Curso rápido de FileMaker

FileMaker rápido e eficaz
aprendizagem em 20 capítulos.

Participar gratuitamente

Genéricos Script para a tradução

Em primeiro lugar, criamos um script que aceita a língua de partida, a língua de chegada e o texto a traduzir através de três parâmetros e envia-os para a interface em conformidade. No nosso exemplo, os parâmetros estão separados por quebras de linha (CR). Se quiser enviar textos com separadores de linha para a interface, use um separador diferente para os parâmetros, como um apóstrofo. Nesse caso, não utilizar a função GetValue ()mas outra função (personalizada) que divide a cadeia de caracteres com o seu separador. No nosso exemplo, chamamos ao script "ts.Translate". No primeiro passo, os parâmetros transferidos são convertidos num Variável escrito.

O script pode ser chamado a partir de outros scripts da seguinte forma:

Executar o script [ Especificado: Da lista ; "ts.Translate"; Parâmetro: ""DE¶EN¶Hello world" ]

Descrição geral do script "ts.Translate

FileMaker Script para Google Translate e DeepL

Transferência dos parâmetros do guião

Definir variável [ $quellsprache ; Valor: GetValue(Get(ScriptParameter); 1) ]
Definir variável [ $argetLanguage ; Valor: GetValue(Get(ScriptParameter); 2) ]
Definir variável [ $quelltext ; Valor: GetValue(Get(ScriptParameter); 3) ] 

As variáveis 1TP4Língua de partida e 1TP4Língua de chegada contêm o código ISO da respectiva língua, por exemplo, DE ou EN.

Definir variável para a chave da API

Definir variável [ $api_key ; Valor: "hJghjjHJHGjkhjKJgÖLkjjjjhlkHkjFJKGkjjjhlÄf" ] 

É necessária uma chave de autenticação para utilizar a API do Google Cloud Translation e a API DeepL. Esta pode ser obtida na área de administração da respetiva API.

Chamar o URL da API

API de tradução do Google Cloud

Definir variável [ $_url ; Valor: "https://www.googleapis.com/language/translate/v2?key=" & $api_key & "&q=" & ReadAsURLEncrypted ($source text) & "&source=" & $source language & "&target=" & $target language ] 

DeepL API

Definir variável [ $_url ; Valor: "https://api.deepl.com/v2/translate?auth_key=" & $api_key & "&source_lang=" & $source_lang & "&target_lang=" & $target_lang & "&text=" & ReadAsURLEncrypted ($source_text) ] 

Dependendo do fornecedor a ser usado, a linha de script correspondente deve ser usada aqui. Na variável $_url, o URL que deve ser chamado para a tradução é gerado primeiro. O endereço do servidor é seguido por todos os outros valores que foram guardados nas variáveis previamente definidas:

  • $api_key (Chave de autenticação da API)
  • $source_long (língua de partida como código ISO)
  • $target_long (língua de destino como código ISO)
  • $exto fonte (O texto transmitido é transmitido com a função ReadAsURLEncrypted no URL para evitar o envio de quebras de linha reais, etc.)

Inserir a partir do URL [ Seleção ; Com diálogo: Off ; $url_result ; $_url ] 

Este comando chama o URL e guarda o resultado na variável $url_result.

Ler o resultado e a consulta de erro

Em primeiro lugar, o sistema verifica se o resultado devolvido através do URL contém o termo "errors". Em caso afirmativo, deve aparecer um diálogo de erro correspondente, que contém as variáveis $_url e $url_result no texto.

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

     Apresentar a sua própria caixa de diálogo [ "Ocorreu um erro" ; $_url & ", " & $url_result ]

Caso contrário

     Definir variável [ $_message_target ; Valor:

     SetVar ( [
     Texto = $url_result ;
     StartTag = "\"text\":\"" ;
     EndTag = "\"}]}" ;
     StartPos = Posição ( Texto ; StartTag ; 1 ; 1 ) ;
     StartPos = StartPos + Comprimento ( StartTag ) ;
     EndPos = Posição ( Texto ; EndTag ; StartPos ; 1 ) ;
     LengthToKeep = EndPos - StartPos ;
     Resultado = CharacterCentre ( Texto ; StartPos ; LengthToKeep ) ] ;
     Resultado & If(PatternNumber(Resultado; "|") > 0; "|")
     )

Filtragem de entidades HTML

Se o texto devolvido contiver entidades HTML, estas podem ser removidas com um Função personalizada pode ser filtrado. Neste exemplo, utilizamos a função HTMLencoded2Textque está disponível gratuitamente.

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

          Definir variável [ $_message_target ; Valor: HTMLencoded2Text ( $_message_target ) ] 

     Fim (se)

Fim (se)

Sair do script e apresentar o resultado

O seguinte comando sai do script e retorna o resultado que é exibido no script pai após a execução com o comando Obter(ScriptResult) pode ser lido.

Sair do script atual [ Resultado do texto: $_message_target ] 

Separação de vários valores de texto com um separador

Utilizando as interfaces, é também possível atribuir um separador a várias palavras a traduzir, de modo a introduzi-las posteriormente em diferentes variáveis ou campos de forma estruturada. Com a API DeepL, por exemplo, um apóstrofo pode ser facilmente utilizado como separador, enquanto com o Google Translate conseguimos implementar com sucesso um separador com um ou dois sublinhados.

 

Deixar um comentário

  1. Existem actualizações para esta situação? O guião não pode ser introduzido desta forma. Ficaria muito satisfeito com isso.

    Fabrico

    Burkhard Quenzler

    1. Olá Burkhard, o que é que não pode ser introduzido exatamente ou o que é que não funciona? Não tenho conhecimento de que algo tenha mudado na API desde então, em termos puramente técnicos. A função StringColumns corresponde à função "GetValue", apenas com o apóstrofo como separador.

      1. Tentei escrever o guião palavra a palavra, mas acho que tenho um problema com o apóstrofo. Tentarei novamente mais tarde. Talvez me possa enviar o script ts.Translate. Ficar-lhe-ia muito grato.

Partilhar esta página:

Um software ERP tão flexível como a sua empresa.
Teremos todo o prazer em o aconselhar.

Software ERP personalizável para Mac, Windows e iOS.

Você está aqui: Traduzir textos em FileMaker com Deepl.com e Google Translate