La funcionalidad estándar del programa LibreOffice Calc no incluye funciones para traducir texto a otros idiomas. Sin embargo, cualquier usuario puede crear dicha función de forma independiente.
En este artículo, veremos la función personalizada GoogleTranslate_YouLibreCalc(), que le permitirá traducir texto directamente en una celda de cualquier hoja de trabajo.
Para la traducción de texto, la función utiliza el sitio "Google Translate" y se puede utilizar en cualquier fórmula tanto de forma independiente como junto con otras funciones estándar.
Para agregar la función Google Translate, abra el menú Tools - Macros - Edit Macros..., seleccione Module1 y copie el siguiente texto en el 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 ' Ejecutamos la llamada API al servidor web mediante una petición AJAX Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") XMLHTTP.Open "GET", WebsiteURL, False XMLHTTP.Send ' Creamos un documento HTML utilizando el texto de respuesta de una solicitud AJAX Set oHTML = CreateObject("HTMLFile") With oHTML .Open .Write XMLHTTP.responseText .Close End With ' Convertimos texto HTML en un modelo de objetos usando la biblioteca de elementos web Microsoft HTML Object Library Set HTMLDoc = oHTML Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0) If Not ObjClass Is Nothing Then GoogleTranslate_YouLibreCalc = ObjClass.innerText End If ' Liberamos la memoria Set ObjClass = Nothing Set oHTML = Nothing Set XMLHTTP = Nothing End Function
A continuación, cierre Macro Editor y regrese a la hoja de trabajo LibreOffice Calc, seleccione cualquier celda y use nuestra nueva función GoogleTranslate_YouLibreCalc().
También puedes usar la función GOOGLETRANSLATE() configurando la extensión " YouLibreCalc.oxt ". Después de eso, esta función estará disponible en todos los archivos que se abrirán en LibreOffice Calc.