суббота, 27 ноября 2010 г.

Описание API вызова библиотеки GoogleTranslateAPI.DLL


Данная библиотека (далее DLL), представляет собой обертку над онлайн-сервисом Google Translate API через POST-запросы в ОС NT/2000/2003/XP/7/8/10 и предназначена для произвольного направления перевода текста в своих программах с возможностью его озвучивания (также возможен синтез текста без перевода). DLL предоставляет универсальный доступ для других приложений вне зависимости от языка в среде Windows. Для использования DLL в своих проектах соблюдайте соглашение об stdcall-вызовах. Тип соглашения о вызове объявляется после прототипа функции, будь то объявление функционального типа или же объявление функции.

Таблица расшифровок входных параметров экспортируемой функции 'TRANSLATE()' библиотеки GoogleTranslateAPI.DLL:



Пример динамического подключения (Delphi 6/7/2006/2009/2010/TDL):
var

     translate:function(text,              // исходный текст для перевода
                        toLang,            // направление перевода en/ru
                        myLang: pansichar; // исходный язык текста
                        play: boolean      // флаг аудио-воспроизведения
                        ): pansichar;      // текст после перевода
                        stdcall;
     LibHandle: THandle;
function LinkProc(ProcName: string):Pointer;
begin
  result:= GetProcAddress(LibHandle,PChar(ProcName));
end;

{ инициализация }
begin
 LibHandle:= LoadLibrary('GoogleTranslateAPI.dll');

 IF LibHandle<>0 then
  translate:= LinkProc('translate')
end;

{ пример вызова }
begin
 result:= translate('мой', // my
                    'en',               
                    'ru',
                    true         
                   );
Пример использования в Excel (макроса в VBA):
Declare Function translate Lib "GoogleTranslateAPI.DLL" (ByVal text As String, ByVal tolang As String, ByVal mylang As String, ByVal play As Boolean) As String

Sub TestMacros()
 RESULT = translate("перевод", "en", "ru", True)
End Sub

Private Sub Command1_Click()
 MsgBox translate("перевод", "en", "ru", True)
End Sub
Пример использования через dynwrapX.dll в VBS:
Set Wrap = CreateObject("DynamicWrapperX")
Wrap.Register "GoogleTranslateAPI.dll", "translate", "i=sssc", "f=s", "r=s"
MsgBox Wrap.translate("перевод", "en", "ru", 1), vbInformation Or vbSystemModal, "_WINMGMT_"
ПОРЯДОК ИСПОЛЬЗОВАНИЯ
  1. Все параметры вызова функции TRANSLATE() можно оставлять пустыми, кроме 'text'.
  2. По-умолчанию установлена авто-озвучка перевода, параметр 'play' в true.
  3. По-умолчанию установлено направление перевода RU -> EN.
  4. Возможные направления перевода - все поддерживаемые Google и читаемые в кодировке ANSI
  5. На Windows Vista/7/8/8.1 (32/64 bit) запускать 'regdynwrapx.bat' правой кнопкой мыши от имени Администратора.
забрать добро себе

1 комментарий:

  1. В связи с изменениями API Google обновлен плагин перевода и озвучивания.

    ОтветитьУдалить

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.