LibreOffice Calc programının standart işlevselliği, metni diğer dillere çevirme işlevlerini içermez. Ancak herhangi bir kullanıcı böyle bir işlevi bağımsız olarak oluşturabilir.
Bu makalede, herhangi bir çalışma sayfasındaki bir hücredeki metni doğrudan çevirmenize olanak tanıyan GoogleTranslate_YouLibreCalc() özel işlevine bakacağız.
Metin çevirisi için işlev "Google Translate" sitesini kullanır ve herhangi bir formülde hem bağımsız olarak hem de diğer standart işlevlerle birlikte kullanılabilir.
Google Translate işlevini eklemek için Tools - Macros - Edit Macros... menüsünü açın, Module1'yi seçin ve aşağıdaki metni modüle kopyalayın:
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 ' AJAX isteğini kullanarak web sunucusuna API çağrısını yürütüyoruz Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") XMLHTTP.Open "GET", WebsiteURL, False XMLHTTP.Send ' AJAX isteğinin yanıt metnini kullanarak bir HTML belgesi oluşturuyoruz Set oHTML = CreateObject("HTMLFile") With oHTML .Open .Write XMLHTTP.responseText .Close End With ' Web öğeleri kütüphanesini kullanarak HTML metnini bir nesne modeline dönüştürüyoruz Microsoft HTML Object Kütüphane Set HTMLDoc = oHTML Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0) If Not ObjClass Is Nothing Then GoogleTranslate_YouLibreCalc = ObjClass.innerText End If ' Hafızayı serbest bırakıyoruz Set ObjClass = Nothing Set oHTML = Nothing Set XMLHTTP = Nothing End Function
Daha sonra, Macro Editor'u kapatın ve LibreOffice Calc çalışma sayfasına dönün, herhangi bir hücreyi seçin ve yeni GoogleTranslate_YouLibreCalc() işlevimizi kullanın.
" GOOGLETRANSLATE() işlevini, " uzantısını ayarlayarak da kullanabilirsiniz. YouLibreCalc.oxt ". Bundan sonra LibreOffice Calc'de açılacak tüm dosyalarda bu fonksiyon mevcut olacaktır.