суббота, 4 апреля 2015 г.

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

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

DLL предоставляет универсальный доступ для других приложений вне зависимости от языка в среде Win ALL. Для использования DLL в своих проектах соблюдайте соглашение об stdcall-вызовах. Тип соглашения о вызове объявляется после прототипа функции, будь то объявление функционального типа или же объявление функции.

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



Пример динамического подключения (Delphi 6/7/2006/2009/2010/TDL/XE5-7):
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('YandexTranslateAPI.dll');
 if LibHandle<>0 then
  translate   := LinkProc('translate');
...


{ пример вызова }
begin
 text:= 'фотографии NASA';

 result:= translate(text,
                    'en',               
                    'auto',
                    true         
                   );
...
Пример использования в Excel (макроса в VBA):
Declare Function translate Lib "YandexTranslateAPI.DLL" (ByVal text As String, ByVal tolang As String, ByVal mylang As String, ByVal play As Boolean) As String

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


Private Sub Command1_Click()
 MsgBox translate("перевод", "en", "auto", True)
End Sub
Пример использования через dynwrapX.dll в VBS:
Set Wrap = CreateObject("DynamicWrapperX")
Wrap.Register "YandexTranslateAPI.dll", "translate", "i=sssc", "f=s", "r=s"
MsgBox(Wrap.translate("The test system of transfer", "ru", "auto", 1))

 
ПОРЯДОК ИСПОЛЬЗОВАНИЯ
  1. Все параметры вызова функции TRANSLATE() можно оставлять пустыми, кроме 'text' .
  2. По-умолчанию установлено направление перевода AUTO -> EN. При выборе параметра 'myLang' = 'auto' будет автоматически определен язык исходного текста.
  3. Возможные направления перевода:  "ru en uk de fr cs es az"

cкачать (783 кБ)

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

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

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

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