Стандартний функціонал програми 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().
Ви також можете скористатись функцією GOOGLETRANSLATE() встановивши безкоштовне розширення YouLibreCalc.oxt або його повнофункціональну версію YLC_Utilities.oxt.
Після цього, дана функція буде доступна у всіх файлах, які будуть відкриті в LibreOffice Calc.