TOP

Google Traduction dans LibreOffice Calc

Description

La fonctionnalité standard du programme LibreOffice Calc n'inclut pas de fonctions de traduction de texte dans d'autres langues. Cependant, n’importe quel utilisateur peut créer une telle fonction de manière indépendante.

Dans cet article, nous examinerons la fonction personnalisée GoogleTranslate_YouLibreCalc(), qui vous permettra de traduire du texte directement dans une cellule de n'importe quelle feuille de calcul.

La fonction utilise le site pour traduire le texte "Google Traduction" et peut être utilisé dans n'importe quelle formule, indépendamment ou avec d'autres fonctions standard.



StarBASIC code pour la fonction Google Translate

Ajouter fonction Google Translate , ouvrez le menu Tools - Macros - Edit Macros... , sélectionner Module1 et copiez le texte suivant dans le module :

  1. Option VBASupport 1  
  2.   
  3. Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)  
  4.   ' moonexcel.com.ua   
  5.   Dim FCalc      As Object  
  6.   Dim WebsiteURL As String    
  7.   Dim XMLHTTP    As Object  
  8.   Dim oHTML      As Object  
  9.   Dim HTMLDoc    As HTMLDocument  
  10.   Dim ObjClass   As Object  
  11.       
  12.   FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")   
  13.   TextToTranslate =  FCalc.callFunction("ENCODEURL", Array(TextToTranslate))  
  14.     
  15.   SrcLang = LCase(SrcLang)  
  16.   TrgLang = LCase(TrgLang)  
  17.     
  18.   IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"  
  19.   IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"  
  20.     
  21.   IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"  
  22.   IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"   
  23.       
  24.   WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate  
  25.       
  26.   ' Nous exécutons l'appel API vers le serveur Web à l'aide de la requête AJAX   
  27.   Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")  
  28.    
  29.   XMLHTTP.Open "GET", WebsiteURL, False    
  30.   XMLHTTP.Send  
  31.    
  32.   ' Nous créons un document HTML en utilisant le texte de réponse de la requête AJAX   
  33.   Set oHTML = CreateObject("HTMLFile")  
  34.   With oHTML  
  35.         .Open  
  36.         .Write XMLHTTP.responseText  
  37.         .Close  
  38.   End With  
  39.     
  40.   ' Nous convertissons le texte HTML en modèle objet à l'aide de la bibliothèque d'éléments Web Microsoft HTML Object Library   
  41.   Set HTMLDoc = oHTML    
  42.     
  43.   Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)  
  44.   If Not ObjClass Is Nothing Then  
  45.     GoogleTranslate_YouLibreCalc = ObjClass.innerText      
  46.   End If   
  47.    
  48.   ' Nous libérons la mémoire   
  49.   Set ObjClass = Nothing  
  50.   Set oHTML    = Nothing  
  51.   Set XMLHTTP  = Nothing    
  52. End Function  

Ensuite, fermez Macro Editor et retour à la feuille de travail LibreOffice Calc , sélectionnez n'importe quelle cellule et utilisez notre nouvelle fonctionnalité GoogleTranslate_YouLibreCalc() .

Utiliser l'extension

Après cela, cette fonction sera disponible dans tous les fichiers qui seront ouverts dans LibreOffice Calc.