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 özel GoogleTranslate_YouLibreCalc() işlevine bakacağız.

İşlev, metni çevirmek için siteyi kullanır "Google Çeviri" ve herhangi bir formülde hem bağımsız olarak hem de diğer standart işlevlerle birlikte kullanılabilir.



StarBASIC işlevin kodu Google Translate

Eklemek function Google Translate , menüyü aç Tools - Macros - Edit Macros... , seçme Module1 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
    
  ' API çağrısını web sunucusuna AJAX isteğini kullanarak 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

Sonraki, kapat Macro Editor ve çalışma sayfasına geri dönün LibreOffice Calc , herhangi bir hücreyi seçin ve yeni özelliğimizi kullanın GoogleTranslate_YouLibreCalc() .

Uzantıyı kullanma

Ücretsiz uzantıyı yükleyerek GOOGLETRANSLATE() işlevini de kullanabilirsiniz. YouLibreCalc.oxt veya tam özellikli sürümü YLC_Utilities.oxt .

Bundan sonra bu fonksiyon LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.