Список форумов Форум Libreoffice

Форум Libreoffice

Добро пожаловать на Форум Libreoffice!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

English French German Italian Portuguese Russian Spanish
Google Translator для LibreOffice & OpenOffice

 
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Basic
Предыдущая тема :: Следующая тема  
Автор Сообщение
covar



Репутация: 0    

Зарегистрирован: 04.09.2011
Сообщения: 7

СообщениеДобавлено: Вт Сен 06, 2011 6:02 am    Заголовок сообщения: Google Translator для LibreOffice & OpenOffice Ответить с цитатой

Используя сообщения в данной по использованию ActiveX, получению текста Интернет-страницы и разбиению текста на предложения, можно подключить Google Translator (переводчик Google) к документу LibreOffice или OpenOffice для online-перевода текста документа.

Пример макроса для работы с Google Translator, направление перевода английский->русский (en|ru):
Код:
Sub wwwbody
Dim o As Object

oDoc=ThisComponent

oSheet=oDoc.CurrentController.getActiveSheet()

'Получаем текст для перевода из выбранной ячейки

oCell1 = oDoc.CurrentSelection

ncol=oCell1.CellAddress.Column
nrow=oCell1.cellAddress.Row

TextEN=oCell1.getString()

'Используем ActiveX "InternetExplorer"
o=CreateObject("InternetExplorer.Application")

'Находим и загружаем нужную Интернет-страницу
o.Navigate2("http://translate.google.com/?langpair=en|ru&text=" & TextEN)

WHILE o.ReadyState <> 4
wait 10
WEND

'Получаем текст Интернет-страницы
webText=o.Document.body.InnerText

    aStr1=Split(webText, Chr(10))
   
    l1 = LBound(aStr1)
    u1 = UBound(aStr1)

'Находим в тексте Интернет-страницы перевод текста
'''''''''''''''''''''''''''''''''''''''''''''''''''
    ns=19
     
   spl="***"

   aStr0 = aStr1(ns)
   aStr0 = Replace(aStr0, ".", "." & spl)
    aStr0 = Replace(aStr0, "!", "!" & spl)
    aStr0 = Replace(aStr0, "?", "?" & spl)
   aStr2=Split(aStr0, spl)

    l2 = LBound(aStr2)
    u2 = UBound(aStr2)

aStr=""

For k=l2 To (u2/2)-1
   aStr=aStr & aStr2(k)
Next k
'''''''''''''''''''''''''''''''''''''''''''''''''''

'Перевод текста пишем в соседний столбец справа
     oCell20=oSheet.getCellByposition(ncol+1,nrow)
     oCell20.setString(aStr)
     
End Sub


Файл с примером:
http://ifolder.ru/25584413

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JohnSUN



Репутация: 0    

Зарегистрирован: 29.08.2011
Сообщения: 39
Откуда: Киев, Украина

СообщениеДобавлено: Вт Сен 06, 2011 7:02 am    Заголовок сообщения: Ответить с цитатой

Душевно!
А улучшить можно?
Например, перевести не одну ячейку за одно обращение к сайту, а сразу несколько? Или вообще весь лист за раз?
Какие служебные символы Google Translator гарантированно не выбросит (не вырежет, не проглотит) при переводе? Слепить все непустые строки через такой символ, подусунуть транслятору, да и распарсить обратно... Ну, как это сделано split'ом с LF=Chr(10).
_________________
Владислав Орлов aka JohnSUN
LibreOffice 3.4.0 OOO340m1 (Build:12) WinXP SP2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
covar



Репутация: 0    

Зарегистрирован: 04.09.2011
Сообщения: 7

СообщениеДобавлено: Вт Сен 06, 2011 7:25 am    Заголовок сообщения: Ответить с цитатой

JohnSUN писал(а):
А улучшить можно?

Да я только вчера "на коленке" слепил это переводчик.
Наверное, можно.
Если ты сам сможешь (и если захочешь, конечно), что-то улучшить, исправить, поменять, я буду только рад.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JohnSUN



Репутация: 0    

Зарегистрирован: 29.08.2011
Сообщения: 39
Откуда: Киев, Украина

СообщениеДобавлено: Вт Сен 06, 2011 8:08 am    Заголовок сообщения: Ответить с цитатой

Ну, чтобы запустить макрос пришлось кое-что изменить... Так, например, у меня перевод не в 19-ой строке, а в 20-ой... Это там где
Код:
   ns=19
...
  aStr0 = aStr1(ns)

И сама строка перевода ни одного из упомянутых разделителей (.,!) не содержит... Особенности национальной страницы. Меня Гугль перепасовывает на местный сервер, com.ua. А там немного другое оформление...
Рад бы взяться за изменение, но пока недосуг. Главное, что идея есть и в принципе реализуема. Сэнкс!
_________________
Владислав Орлов aka JohnSUN
LibreOffice 3.4.0 OOO340m1 (Build:12) WinXP SP2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Basic Часовой пояс: GMT
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Вы можете бесплатно создать форум на MyBB2.ru, RSS