TOP

LibreOffice Calc'da Google Çeviri

Tanım

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 Çeviri işlevi için BASIC kodu

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.

YouLibreCalc uzantısını kullanma

" 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.