TOP

Google Traduttore in LibreOffice Calc

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.

Per la traduzione del testo, la funzione utilizza il sito "Google Translate" e può essere utilizzata in qualsiasi formula sia indipendentemente che insieme ad altre funzioni standard.



Codice BASIC per la funzione Google Translate

Per aggiungere la funzione Google Translate, apri il menu Tools - Macros - Edit Macros..., seleziona 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 una richiesta AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Creiamo un documento HTML utilizzando il testo di risposta di una 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

Successivamente, chiudi Macro Editor e torna al foglio di lavoro LibreOffice Calc, seleziona una cella qualsiasi e utilizza la nostra nuova funzione GoogleTranslate_YouLibreCalc().

Utilizzando l'estensione YouLibreCalc

Puoi anche utilizzare la funzione GOOGLETRANSLATE() impostando l'estensione " YouLibreCalc.oxt ". Successivamente, questa funzione sarà disponibile in tutti i file che verranno aperti in LibreOffice Calc.