Anasayfa / Delphi / Delphi Yandex Translate Api

Delphi Yandex Translate Api

Merhaba Bu yazımızda Yandex Translete Api kullanarak delphi uygulamamız ile translate işlemi yapacağız.
Öncelikle gerekenler yandex mail hesabınız olması gerekiyor daha sonra https://tech.yandex.com/translate/ adresinden translate işlemlerimiz de kullanacağımız api key imizi alıyoruz.
Json web servisinden dönen sonucu parse etmek için https://code.google.com/p/superobject/downloads/list aracını kullanacağız.

https://tech.yandex.com/translate/doc/dg/concepts/api-overview-docpage/

Adresinden desteklediği diller ve diğer teknik ayrıntılara ulaşabilirsiniz

Delphi Xe8 i açıyoruz

Formumuzu Resimdeki Gibi Düzenliyoruz.

 

 

 

uses a

uses superobject, superxmlparser,msxml;

ekliyoruz

String parse Procedure miz

procedure response(const This, Params: ISuperObject; var Result: ISuperObject);
var
  obj: ISuperObject;

begin
  with frm_YandexTranslate.Memo2.Lines do
  begin
    BeginUpdate;
    try
      Clear;
      case Params.I['code'] of
        200:
          for obj in Params['text'] do
          begin
           Add(obj.format(Params.S['text'],'[',']'));
          end

        else
          Add(Params.S['message']);
      end;
    finally
      EndUpdate;
    end;
  end;
end;

Çevir Buttonundaki kodlarımız

procedure Tfrm_YandexTranslate.btn_CevirClick(Sender: TObject);
var
  req: IXMLHttpRequest;
  o: ISuperObject;
  begin

  if ComboBox1.Text='' then
  begin
    ShowMessage('Kaynak Dil Seçimi Boş Olamaz');
    ComboBox1.SetFocus;
    abort;
  end;

  if ComboBox2.Text='' then
  begin
    ShowMessage('Hedef Dil Seçimi Boş Olamaz');
    ComboBox2.SetFocus;
    abort;
  end;

   if ComboBox1.Text=ComboBox2.Text then
   begin
   ShowMessage('Kaynak Ve Hedef Dil Aynı Olamaz');
   ComboBox2.SetFocus;
   abort;
   end;


   if edt_apikey.Text='' then
   begin
     ShowMessage('Yandex Api Key Boş Olamaz');
     edt_apikey.SetFocus;
     Abort;
   end;

  req:=CoXMLHTTP.Create;
  req.open('GET', 'https://translate.yandex.net/api/v1.5/tr.json/translate?key='+edt_apikey.Text+'&lang='+ComboBox1.Text+'-'+ComboBox2.Text+'&text='+UTF8Encode(Memo1.Lines.Text)+'&callback=myCallback',  False,EmptyParam, EmptyParam);

  req.send(EmptyParam);
  o := so;
  o.M['myCallback'] := response;
  o[req.responseText];

end;

Kaynak Kod ve exe dosyasını indirmek için tıklayın.

 

myCallback'({"code":404,"message":"Maximum daily translated text volume exceeded"})

Bu uyarıyı alırsanız günlük translate limitiniz bittiği anlamına gelir.

Hakkında ibrahim

İlgili Makaleler

borlndmm.dll disable delphi

Kod yürütülmesi devam edemiyor çünkü borlndmm.dll bulunamadı. Programı yeniden yüklemek bu sorunu çözebilir. borlndmm.dll gerekliliğini …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir