TOP

Google Traduction dans LibreOffice Calc

YLC Utilities logo

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 :

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 vers le serveur Web à l'aide de la 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 de la 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 retour à la feuille de travail LibreOffice Calc , sélectionnez n'importe quelle cellule et utilisez notre nouvelle fonctionnalité GoogleTranslate_YouLibreCalc() .

Utiliser l'extension

Vous pouvez également utiliser la fonction GOOGLETRANSLATE() en installant l'extension gratuite YouLibreCalc.oxt ou sa version complète YLC_Utilities.oxt .

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