Стандартный функционал 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.