TOP

Google Translate in LibreOffice Calc

YLC Utilities logo

Beschreibung

Die Standardfunktionalität des Programms LibreOffice Calc umfasst keine Funktionen zum Übersetzen von Texten in andere Sprachen. Allerdings kann jeder Benutzer eine solche Funktion selbstständig erstellen.

In diesem Artikel betrachten wir die benutzerdefinierte Funktion GoogleTranslate_YouLibreCalc(), mit der Sie Text direkt in einer Zelle in einem beliebigen Arbeitsblatt übersetzen können.

Die Funktion nutzt die Site, um den Text zu übersetzen "Google Übersetzer" und kann sowohl unabhängig als auch zusammen mit anderen Standardfunktionen in beliebigen Formeln verwendet werden.



StarBASIC Code für Funktion Google Translate

Hinzufügen Funktion Google Translate , öffnen Sie das Menü Tools - Macros - Edit Macros... , wählen Module1 und kopieren Sie den folgenden Text in das 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
    
  ' Wir führen den API-Aufruf an den Webserver mit der AJAX-Anfrage aus 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Wir erstellen ein HTML-Dokument mit dem Antworttext der AJAX-Anfrage 
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  ' Wir konvertieren HTML-Text mithilfe der Bibliothek von Webelementen Microsoft HTML Object in ein Objektmodell 
  Set HTMLDoc = oHTML  
  
  Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
  If Not ObjClass Is Nothing Then
    GoogleTranslate_YouLibreCalc = ObjClass.innerText    
  End If 
 
  ' Wir befreien die Erinnerung 
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

Als nächstes schließen Macro Editor und kehren Sie zum Arbeitsblatt zurück LibreOffice Calc , wählen Sie eine beliebige Zelle aus und nutzen Sie unsere neue Funktion GoogleTranslate_YouLibreCalc() .

Verwendung der Erweiterung

Sie können auch die Funktion GOOGLETRANSLATE() verwenden, indem Sie die kostenlose Erweiterung installieren YouLibreCalc.oxt oder die Vollversion YLC_Utilities.oxt .

Danach steht diese Funktion in allen Dateien zur Verfügung, die in LibreOffice Calc geöffnet werden.