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.
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() .
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.