Онлайновый перевод текста
Фото программы:
Скачать архив
Для перевода текста используем AJAX API от Google.
http://code.google.com/intl/ru-RU/apis/ajaxlanguage/documentation/
На сайте много примеров (не только по переводу текста) и достаточно понятное и подробное описание на русском языке принципа работы.
Используем AJAX по автоматическому определению языка оригинала и переводу.
Заменяем в скрипте все двойные кавычки на одинарные.
Удаляем все не нужные теги (наша программа будет на компьютере, а не на сервере в сети)
Так как в коде, скрипт прийдется записывать в одну строку, в скрипте добавляем ; в конце команд.
Добавляем стиль отображения страницы (фон, шрифт,цвет шрифта)
На сервере ограничение по объёму переводимого текста ~1300 знаков.
Переводим, ожидайте !
Фото переводчика:
Для работы с утилитой, выделить нужный текст и нажать клавишу Shift.
Меняем горячию клавишу по своему усмотрению, коды кнопок смотрим в таблице.
Скачать архив.
Для перехвата нажатия кнопок используем HotKeyAdd() из библиотеки Droopy Library
Эмуляция нажатия кнопок Ctrl+C используем APi функции
:
keybd_event_( кнопка, 0,0,0)
- нажать
keybd_event_(
кнопка, 0,#KEYEVENTF_KEYUP,0) - отжать
Скрипт переводит только в одну строку, поэтому заранее форматируем
текст для перевода:
1. заменяем переход на новую
строку Chr(13)+
Chr(10) ( #CRLF$
константа ) на тег br
2. заменяем в тексте одинарные кавычки на
двойные (а в скрипте наоборот)
Вариант кода для версии 4.41:
",1) ; записываем всё одну строку (скрипт понимает одну строку) text= ReplaceString(text,"'",Chr(34),1) ; меняем запрещенный символ ' на " ;-------------изображение для фона-------------------------------------- ;FileName$="body_bg0.jpg" ;Buffer$=Space(512) ;GetFullPathName_(FileName$,Len(Buffer$),@Buffer$,@FilePart) ;img$ = PeekS(@Buffer$) ;----------скрипт--------------------------- Html.s Html.s + "" Html.s + "" Html.s + "
" Html.s + "
Переводим, ожидайте ! (Долго не переводит - выбери меньше текста )
"
;-------------скрипт--------------------------------------
SetGadgetItemText(#Web, #PB_Web_HtmlCode, Html.s) ; изменяет html код в WebGadget
HideWindow(#Window_0,0) ; показать окно
EndProcedure
ret=CatchImage(#icon,?icon) ; иконка
If OpenWindow(#Window_0,0,0,500,250,"Онлайн переводчик. Выдели текст и нажми Shift",#PB_Window_Invisible|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)
StickyWindow(#Window_0, 1) ; окно всегда сверху
WebGadget(#Web, 0,0,500,250,"")
AddSysTrayIcon(#tray,WindowID(#Window_0),ret) ; Добавляет значок в Systray
HotKeysInit() ; Инициализация библиотеки HotKeys из Droopy Library
HotKeyAdd(WindowID(#Window_0), #VK_SHIFT, @Script(), "SkrinAll", 1,0,0) ; Перехват кнопки SHIFT
CreatePopupMenu(0) ; Контекстное меню для трея
MenuItem(0,"Выход")
EndIf
;--------------------------------------
Repeat
Event=HotkeyWaitWindowEvent()
Window= EventWindow()
Gadget= EventGadget()
Select Event
Case #PB_Event_SizeWindow
ResizeGadget(#Web,#PB_Ignore,#PB_Ignore,WindowWidth(#Window_0),WindowHeight(#Window_0))
Case #PB_Event_SysTray
If EventType()=#PB_EventType_RightClick
DisplayPopupMenu(0,WindowID(#Window_0))
EndIf
Case #PB_Event_Menu
If EventMenu()=0
Break
EndIf
EndSelect
If Event = #PB_Event_CloseWindow
HideWindow(#Window_0,1) ; скрыть окно
EndIf
ForEver
;----------------------------------------
DataSection
icon: IncludeBinary "iconka.ico"
EndDataSection
Простая альтернатива:
Код:
OpenWindow(0,0,0,476,430,"Переводчик",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) WebGadget(0, 0, 0, 495, 495, "http://translate.imtranslator.net/") Repeat Event = WaitWindowEvent() Select Event Case #PB_Event_CloseWindow EventWindow = EventWindow() If EventWindow = 0 CloseWindow(0) Break EndIf EndSelect ForEver |