TOP

Google Traduttore in LibreOffice Calc

YLC Utilities logo

Descrizione

La funzionalità standard del programma LibreOffice Calc non contiene funzioni per la traduzione del testo in altre lingue. Tuttavia, qualsiasi utente può creare tale funzione in modo indipendente.

In questo articolo esamineremo la funzione personalizzata GoogleTranslate_YouLibreCalc(), che ti consentirà di tradurre il testo direttamente in una cella su qualsiasi foglio di lavoro.

La funzione utilizza il sito per tradurre il testo "Google Traduttore" e può essere utilizzato in qualsiasi formula sia indipendentemente che insieme ad altre funzioni standard.



Codice StarBASIC per la funzione Google Translate

Aggiungere funzione Google Traduttore , aprire il menu Tools - Macros - Edit Macros... , Selezionare Module1 e copia il seguente testo nel modulo:

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
    
  ' Eseguiamo la chiamata API al server web utilizzando la richiesta AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Creiamo un documento HTML utilizzando il testo di risposta della richiesta AJAX 
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  ' Convertiamo il testo HTML in un modello a oggetti utilizzando la libreria di elementi web Microsoft HTML Object Libreria 
  Set HTMLDoc = oHTML  
  
  Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
  If Not ObjClass Is Nothing Then
    GoogleTranslate_YouLibreCalc = ObjClass.innerText    
  End If 
 
  ' Liberiamo la memoria 
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

Quindi, chiudi Macro Editor e tornare al foglio di lavoro LibreOffice Calc , seleziona qualsiasi cella e utilizza la nostra nuova funzionalità GoogleTranslate_YouLibreCalc() .

Utilizzando l'estensione

Puoi anche utilizzare la funzione GOOGLETRANSLATE() installando l'estensione gratuita YouLibreCalc.oxt o la sua versione completa YLC_Utilities.oxt .

Successivamente, questa funzione sarà disponibile in tutti i file che verranno aperti in LibreOffice Calc.