TOP

Traducere Google în LibreOffice Calc

Descriere

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.

Pentru traducerea textului, funcția folosește site-ul „Google Translate” și poate fi folosită în orice formule atât independent, cât și împreună cu alte funcții standard.



Cod BASIC pentru funcția Google Translate

Pentru a adăuga funcția Google Translate, deschideți 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 o solicitare AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Creăm un document HTML folosind textul de răspuns al unei solicitări 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, închideți Macro Editor și reveniți la foaia de lucru LibreOffice Calc, selectați orice celulă și utilizați noua noastră funcție GoogleTranslate_YouLibreCalc().

Folosind extensia YouLibreCalc

De asemenea, puteți utiliza funcția GOOGLETRANSLATE() setând extensia „ YouLibreCalc.oxt „. După aceea, această funcție va fi disponibilă în toate fișierele care vor fi deschise în LibreOffice Calc.