VBA Excel - Automação do Google Tradutor - Google Translate by Internet Explorer Automation




Sim, meus caros, é possível traduzirmos alguns textos com certa velocidade e comodidade usado um código VBA que utiliza o Google Tradutor pela automação do Internet Explorer controlados via Excel.

Mas talvez esteja neste exato momento como que atônito imaginando como isso pode ser útil num Relatório, ou num Dashboard. Talvez pergunte-se: Seria útil na minha aplicação? 

Meus caros, todos nós desenvolvemos soluções por aí. De vez em quando, ou quase sempre no caso de alguns, precisamos desenvolver soluções para a América Latina ou para a Europa. Isso demanda camadas e mais camadas de interfaces para Formulários, Relatórios, Gráficos, Infográficos, Dashboards, Scorecards, etc... 

Com as funcionalidades que veremos mais abaixo no artigo, poderemos resolver tudo isso no início da aplicação, talvez atualizando uma tabela interna que contenha todos os títulos usados nela e Voilá temos a nossa interface traduzida para os mais diversos idiomas!

Este programa grava automaticamente o texto do Excel no Internet Explorer e usa o serviço do Google Tradutor para traduzir o texto na linguagem que desejarmos. Será possível traduzir de e para vários idiomas diferentes, bastando alterar o código deste no programa. 


O que é o Google Tradutor?
Google Tradutor é um serviço de tradução gratuito que fornece traduções instantâneas em 64 idiomas  diferentes (em Janeiro de 2013). Ele pode traduzir palavras, frases e páginas da web em qualquer combinação dos idiomas aceitos. Com o Google Tradutor, esperamos disponibilizar informações úteis para todos, independentemente do idioma em que estiverem escritas.

Como funciona?
Quando gera uma tradução, o Google Tradutor procura padrões em centenas de milhares de documentos para ajudar a decidir qual é a melhor tradução. Ao detectar padrões em documentos que já foram traduzidos por tradutores humanos, o Google Tradutor pode fazer escolhas inteligentes e determinar qual é a tradução apropriada. Esse processo de procurar padrões em grandes quantidades de texto é chamado de "tradução automática estatística". Como as traduções são geradas por máquinas, nem todas serão perfeitas. Quanto mais documentos traduzidos por humanos o Google Tradutor puder analisar em um idioma específico, melhor será a qualidade da tradução. É por esse motivo que a precisão da tradução às vezes varia de acordo com o idioma.

Hoje, todos os principais idiomas estão disponíveis no Google Translate. É um dos poucos serviços que permite a tradução de frases inteiras não apenas palavras. O serviço é gratuito e pode ser executado através de API

Divirta-se!


Public Sub Google_Translate()

Dim Google_Translate_Internet_Explorer_Automation As Object

Set Google_Translate_Internet_Explorer_Automation = CreateObject("InternetExplorer.Application")

Google_Translate_Internet_Explorer_Automation.Navigate "http://translate.google.com/translate_t#"
Google_Translate_Internet_Explorer_Automation.Visible = True
Wait_Between_Google_Translate_Cycles = Range("G1").Value

Let Column = 0

While Range("f9").Offset(0, Column).Value <> tom

    Do While Google_Translate_Internet_Explorer_Automation.busy
        Call WaitSeconds(Wait_Between_Google_Translate_Cycles)
    Loop
    
    Let to_language_code = Range("f9").Offset(0, Column).Value

    Do While Google_Translate_Internet_Explorer_Automation.busy
        Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
    Loop

    Let Google_Translate_Internet_Explorer_Automation.document.forms("text_form").elements(5).Value = to_language_code

    Do While Google_Translate_Internet_Explorer_Automation.busy
        Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
    Loop

    Let rad = 0

    While Range("c10").Offset(rad, 0).Value <> tom

        If Range("f10").Offset(rad, Column).Value = tom Then

            Let from_language_code = Range("a10").Offset(rad, 0).Value
            Let Google_Translate_Internet_Explorer_Automation.document.forms("text_form").elements(4).Value = from_language_code

            Do While Google_Translate_Internet_Explorer_Automation.busy
                Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
            Loop

            Let Google_Translate_Text = Range("c10").Offset(rad, 0).Value

            While Google_Translate_Internet_Explorer_Automation.busy
                Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
            Wend

            Let Google_Translate_Internet_Explorer_Automation.document.forms("text_form").elements("source").Value = Google_Translate_Text

            While Google_Translate_Internet_Explorer_Automation.busy
                Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
            Wend

            Google_Translate_Internet_Explorer_Automation.document.getElementById("text_form").submit

            While Google_Translate_Internet_Explorer_Automation.busy
                Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
            Wend

            Let dd2 = Google_Translate_Internet_Explorer_Automation.document.forms(1).elements(4).Value

            While Google_Translate_Internet_Explorer_Automation.busy
                Call WaitSeconds (Wait_Between_Google_Translate_Cycles)
            Wend

            Let Google_Translate_Variable1 = Replace(dd2, Chr(13), "")
            Let Range("f10").Offset(rad, Column).Value = Google_Translate_Variable1

        End If

        Let rad = rad + 1
    Wend

    Let Column = Column + 1
Wend

Google_Translate_Internet_Explorer_Automation.Quit

Set Google_Translate_Internet_Explorer_Automation = Nothing

End Sub

Public Sub WaitSeconds(sek)


Let newHour = Hour(Now())

Let newMinute = Minute(Now())

Let newSecond = Second(Now()) + sek

Let waitTime = TimeSerial(newHour, newMinute, newSecond)



Application.Wait waitTime


End Sub

Tags: VBA, Excel, Google, Google Translate, IE, Internet Explorer, Automation, API


Nenhum comentário:

Postar um comentário

diHITT - Notícias