A funcionalidade padrão do programa LibreOffice Calc não inclui funções para tradução de texto para outros idiomas. No entanto, qualquer usuário pode criar tal função de forma independente.
Neste artigo, veremos a função personalizada GoogleTranslate_YouLibreCalc(), que permitirá traduzir texto diretamente em uma célula de qualquer planilha.
Para tradução de texto, a função utiliza o site "Google Translate" e pode ser utilizada em qualquer fórmula tanto de forma independente quanto em conjunto com outras funções padrão.
Para adicionar a função Google Translate, abra o menu Tools - Macros - Edit Macros..., selecione Module1 e copie o seguinte texto no módulo:
Option VBASupport 1 Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String) ' moonexcel.com.ua Dim FCalc As Object Dim WebsiteURL As String Dim XMLHTTP As Object Dim oHTML As Object Dim HTMLDoc As HTMLDocument Dim ObjClass As Object FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess") TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate)) SrcLang = LCase(SrcLang) TrgLang = LCase(TrgLang) IF SrcLang = "zh-cn" Then SrcLang = "zh-CN" IF SrcLang = "zh-tw" Then SrcLang = "zh-TW" IF TrgLang = "zh-cn" Then TrgLang = "zh-CN" IF TrgLang = "zh-tw" Then TrgLang = "zh-TW" WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate ' Executamos a chamada da API para o servidor web usando uma solicitação AJAX Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") XMLHTTP.Open "GET", WebsiteURL, False XMLHTTP.Send ' Criamos um documento HTML usando o texto de resposta de uma solicitação AJAX Set oHTML = CreateObject("HTMLFile") With oHTML .Open .Write XMLHTTP.responseText .Close End With ' Convertemos texto HTML em um modelo de objeto usando a biblioteca de elementos da web Microsoft Biblioteca HTML Object Set HTMLDoc = oHTML Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0) If Not ObjClass Is Nothing Then GoogleTranslate_YouLibreCalc = ObjClass.innerText End If ' Nós liberamos a memória Set ObjClass = Nothing Set oHTML = Nothing Set XMLHTTP = Nothing End Function
Em seguida, feche Macro Editor e retorne à planilha LibreOffice Calc, selecione qualquer célula e use nossa nova função GoogleTranslate_YouLibreCalc().
Você também pode usar a função GOOGLETRANSLATE() definindo a extensão " YouLibreCalc.oxt ". Depois disso, esta função estará disponível em todos os arquivos que serão abertos em LibreOffice Calc.