TOP

LibreOffice calc में Google अनुवाद

LibreOffice calc प्रोग्राम की मानक कार्यक्षमता में पाठ को अन्य भाषाओं में अनुवाद करने के कार्य शामिल नहीं हैं। हालाँकि, कोई भी उपयोगकर्ता स्वतंत्र रूप से ऐसा फ़ंक्शन बना सकता है।

इस लेख में, हम कस्टम फ़ंक्शन GoogleTranslate_YouLibrecalc() को देखेंगे, जो आपको किसी भी वर्कशीट पर सीधे सेल में टेक्स्ट का अनुवाद करने की अनुमति देगा।

पाठ अनुवाद के लिए, फ़ंक्शन "Google Translate" साइट का उपयोग करता है और इसे किसी भी सूत्र में स्वतंत्र रूप से और अन्य मानक कार्यों के साथ उपयोग किया जा सकता है।



Google अनुवाद फ़ंक्शन के लिए BASIC कोड

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
    
  'हम AJAX अनुरोध का उपयोग करके वेब सर्वर पर API कॉल निष्पादित करते हैं
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  'हम AJAX अनुरोध के प्रतिक्रिया पाठ का उपयोग करके एक HTML दस्तावेज़ बनाते हैं
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  'हम वेब तत्वों की लाइब्रेरी का उपयोग करके HTML टेक्स्ट को ऑब्जेक्ट मॉडल में परिवर्तित करते हैं Microsoft HTML Object लाइब्रेरी
  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 calc वर्कशीट पर वापस लौटें, किसी भी सेल का चयन करें और हमारे नए GoogleTranslate_YouLibrecalc() फ़ंक्शन का उपयोग करें।