Funcționalitatea standard a programului LibreOffice Calc nu include funcții pentru traducerea textului în alte limbi. Cu toate acestea, orice utilizator poate crea o astfel de funcție în mod independent.
În acest articol, ne vom uita la funcția personalizată GoogleTranslate_YouLibreCalc(), care vă va permite să traduceți text direct într-o celulă din orice foaie de lucru.
Funcția folosește site-ul pentru a traduce textul „Google Translate” și poate fi folosit în orice formulă atât independent, cât și împreună cu alte funcții standard.
A adauga funcția Google Translate , deschide meniul Tools - Macros - Edit Macros... , Selectați Module1 și copiați următorul text în modul:
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
' Executăm apelul API către serverul web folosind cererea AJAX
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
' Creăm un document HTML folosind textul de răspuns al solicitării AJAX
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
' Convertim textul HTML într-un model de obiect folosind biblioteca de elemente 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
' Eliberăm memoria
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
Apoi, aproape Macro Editor și reveniți la foaia de lucru LibreOffice Calc , selectați orice celulă și utilizați noua noastră funcție GoogleTranslate_YouLibreCalc() .
De asemenea, puteți utiliza funcția GOOGLETRANSLATE() instalând extensia gratuită YouLibreCalc.oxt sau versiunea sa cu funcții complete YLC_Utilities.oxt .
După aceea, această funcție va fi disponibilă în toate fișierele care vor fi deschise în LibreOffice Calc.