Переводчик

Пример релизации онлайн перевода с помощью сервиса Google. Своеобразный аналог Dicter. Для перевода нужно выделить текст в любом окне и нажать F . Есть ограничение на длину переводимого текста. Выход из программы реализован в трее. При нажатии завершения по форме происходит сворачивание в трей. Для работы нужна библиотека Window9 .
Автор: О. Мирошниченко. Создано в 2010 году. Его сайт
Адаптация под FreeBasic: Станислав Будинов.

Сообщение от 04.12.2011: Скрипт, с помощью которого выполнялся перевод, больше не работает. Google все больше разочаровывает... Может быть я найду другой способ с помощью другого сервиса, когда будет желание

google translate

'====================================================
'       26 сентября 2010
'       Google.translate
'       Перевод с использованием скрипта и WebGadget
'       При нажатии на кнопку F
'       Олег Мирошниченко
'       ограничение на обьем переводимого текста
'=====================================================
#INCLUDE "window9.bi"
Dim Shared As HWND Window_0,web
Dim As HMENU hMessages
Dim As Integer Event
Dim As HICON icon
Sub Script()
    Dim As String text,Html
    Dim As Byte byte_=1
    Dim As Integer a
    keybd_event(VK_CONTROL, 0,0,0) ' нажали Ctrl
    keybd_event(67, 0,0,0)          ' нажали C
    Sleep(100)   '  пауза между нажали/отпустили
    keybd_event(VK_CONTROL, 0,KEYEVENTF_KEYUP,0)   ' отпустили Ctrl
    keybd_event(67,0,KEYEVENTF_KEYUP,0)   ' отпустили C
    '---------форматирование текста----------------------------------------------------------
    text=GetClipboardText()  '  вывод текста из буфера
    text=ReplaceString(text,Chr(10),"",,1)
    text=ReplaceString(text,Chr(13),"<br>",,1)
    text= ReplaceString(text,"'",Chr(34),,1) ' меняем запрещенный символ  ' на "
    '-------------скрипт--------------------------------------
    Html+= "<html>"
    Html+= "<head>"
    Html+= "<meta http-equiv=" & ""& "Content-Type" &""&" content="&""&"text/html; charset=windows-1251"&""&">"
    Html+= "<title>GoogleTranslate</title>"
    Html+= "</head>"
    Html+= "<body>"

    Html += "<style>"
    Html += "body {padding:2; font: normal 11px Verdana, Arial, Helvetica, sans-serif;color: #444444;}"
    Html += "</style>"
    Html += "<script type='text/javascript' src='http://www.google.com/jsapi'></script>"
    Html += "<script type='text/javascript'>"
    Html += "$text='"+text+"';"
    Html +="google.load('language', '1');"
    Html += "function initialize() {"
    Html += "google.language.translate($text, 'en', 'ru', function(result) { "
    Html += "if (!result.error) {"
    Html += "var container = document.getElementById('translation');"
    Html += "container.innerHTML = result.translation;"
    Html += "}"
    Html += "});"
    Html += "}"
    Html += "google.setOnLoadCallback(initialize);"
    Html += "</script>"
    Html += "<div id='translation'></div>"
    Html += "</body>"
    Html +="</html>"
    '-------------скрипт--------------------------------------
    Var h=Create_File(GetTempDir & "google_translate.htm")
    If h<>-1 Then
        Write_String(h,html)
    Endif
    WebGadgetNavigate(web,"file://localhost/"&GetTempDir &"google_translate.htm")
    HideWindow(Window_0,0) '  показать окно
End Sub

icon=LoadIcon(0,IDI_WINLOGO) ' иконка
Window_0 = OpenWindow("Переводчик",0,0,500,250)
SetWindowTop(Window_0, 1) '  окно всегда сверху
Web = WebGadget(1, 0,0,500,250,"about")
AddSysTrayIcon(1,Window_0,icon,"GoogleTranslate") ' Добавляет значок в Systray
RegisterHotKey(Window_0,3,0,VK_F)
hMessages=CreatePopMenu()
MenuItem(1,hMessages,"Выход")
'--------------------------------------
Do
    Event=WaitEvent()
    Select Case Event
        Case EventRBDown
            If EventNumber = 1 Then DisplayPopupMenu(hMessages,GlobalMouseX,GlobalMouseY)
        Case WM_HOTKEY
            If EventWParam=3 Then
                Script
            Endif
        Case EventMenu
            Exit Do
        Case EventClose
            HideWindow(Window_0,1)
    End Select
Loop
UnregisterHotKey(Window_0,3)