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.

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.



StarBASIC cod pentru funcția Google Translate

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() .

Folosind extensia

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.

Meniul Utilitare YLC din LO Calc

Meniul Utilitare YLC din LO Calc

Meniul Utilitare YLC din Excel

Meniul Utilitare YLC din Excel