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.
Zur Textübersetzung nutzt die Funktion die Seite „Google Translate“ und kann in beliebigen Formeln sowohl unabhängig als auch zusammen mit anderen Standardfunktionen verwendet werden.
Um die Google Translate-Funktion hinzuzufügen, öffnen Sie das Menü Tools - Macros - Edit Macros..., wählen Sie Module1 aus 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 über eine AJAX-Anfrage aus Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") XMLHTTP.Open "GET", WebsiteURL, False XMLHTTP.Send ' Wir erstellen ein HTML-Dokument mit dem Antworttext einer 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
Schließen Sie als Nächstes Macro Editor und kehren Sie zum Arbeitsblatt LibreOffice Calc zurück, wählen Sie eine beliebige Zelle aus und verwenden Sie unsere neue Funktion GoogleTranslate_YouLibreCalc().
Sie können auch die Funktion GOOGLETRANSLATE() verwenden, indem Sie die Erweiterung „ YouLibreCalc.oxt ". Danach ist diese Funktion in allen Dateien verfügbar, die in LibreOffice Calc geöffnet werden.