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.

Pour la traduction de texte, la fonction utilise le site « Google Translate » et peut être utilisée dans n'importe quelle formule, indépendamment ou avec d'autres fonctions standard.



Code BASIC pour la fonction Google Translate

Pour ajouter la fonction Google Translate, ouvrez le menu Tools - Macros - Edit Macros..., sélectionnez Module1 et copiez le texte suivant dans le module :

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
    
  ' Nous exécutons l'appel API au serveur Web à l'aide d'une requête AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Nous créons un document HTML en utilisant le texte de réponse d'une requête AJAX 
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  ' Nous convertissons le texte HTML en modèle objet à l'aide de la bibliothèque d'éléments Web 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 
 
  ' Nous libérons la mémoire 
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

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

Utiliser l'extension YouLibreCalc

Vous pouvez également utiliser la fonction GOOGLETRANSLATE() en définissant l'extension " YouLibreCalc.oxt ". Après cela, cette fonction sera disponible dans tous les fichiers qui seront ouverts dans LibreOffice Calc.