TOP

ترجمة جوجل في LibreOffice Cac

لا تتضمن الوظيفة القياسية لبرنامج LibreOffice Calcc وظائف لترجمة النص إلى لغات أخرى. ومع ذلك، يمكن لأي مستخدم إنشاء مثل هذه الوظيفة بشكل مستقل.

في هذه المقالة، سنلقي نظرة على الوظيفة المخصصة GoogleTranslate_YouLibreCalc()، والتي ستسمح لك بترجمة النص مباشرة في خلية في أي ورقة عمل.

لترجمة النص، تستخدم الوظيفة موقع "Google Translator" ويمكن استخدامها في أي صيغ بشكل مستقل أو مع وظائف قياسية أخرى.



رمز BASIC لوظيفة الترجمة من Google

لإضافة وظيفة الترجمة من Google، افتح القائمة Tools - Macros - Edit Macros...، وحدد Module1 وانسخ النص التالي إلى الوحدة:

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 لخادم الويب باستخدام طلب AJAX
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  'نقوم بإنشاء مستند HTML باستخدام نص الاستجابة لطلب AJAX
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  'نقوم بتحويل نص HTML إلى نموذج كائن باستخدام مكتبة عناصر الويب Microsoft HTML Object Library
  Set HTMLDoc = oHTML  
  
  Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
  If Not ObjClass Is Nothing Then
    GoogleTranslate_YouLibreCalc = ObjClass.innerText    
  End If 
 
  'نحن نحرر الذاكرة
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

بعد ذلك، أغلق Macro Editor وارجع إلى ورقة العمل LibreOffice Calcc، وحدد أي خلية واستخدم وظيفة GoogleTranslate_YouLibreCalc() الجديدة.