Стандартний функціонал програми LibreOffice Calc не містить функцій для перекладу тексту на інші мови. Проте, будь який користувач може створити таку функцію самостійно.
В даній статті ми розглянемо користувацьку функцію GoogleTranslate_YouLibreCalc(), яка дозволить вам перекладати текст безпосередньо в комірці на будь-якому робочому аркуші.
Для перекладу тексту функція використовує сайт "Google Перекладач" та може використовуватись в будь-яких формулах як самостійно, так і спільно з іншими стандартними функціями.
Щоб додати функцію Google Translate, відкрийте меню Tools - Macros - Edit Macros..., виберіть Module1 і скопіюйте наведений нижче текст до модуля:
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
'Виконуємо API звернення до веб-сервера за допомогою AJAX-запиту
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
'Створюємо HTML документ, використовуючи текст відповіді AJAX-запиту
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
'Конвертуємо HTML текст в об'єктну модель за допомогою бібліотеки веб-елементів 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
'Звільняємо пам'ять
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
Далі, закрийте Macro Editor та поверніться на робочий аркуш LibreOffice Calc, виберіть будь-яку клітинку та скористайтеся нашою новою функцією GoogleTranslate_YouLibreCalc().