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 :
- Option VBASupport 1
-
- Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
-
- 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
-
-
- Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
-
- XMLHTTP.Open "GET", WebsiteURL, False
- XMLHTTP.Send
-
-
- Set oHTML = CreateObject("HTMLFile")
- With oHTML
- .Open
- .Write XMLHTTP.responseText
- .Close
- End With
-
-
- 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
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.