Переводчик на Яндекс API (Delphi)

Автор: | 12.10.2017

В этой статье я покажу как написать свой переводчик на delphi.

Для начала необходимо получить API-ключ. Для этого переходим по этой ссылке. Нажимаем на «Создать новый ключ» и вводим краткое описание. Теперь копируем сам ключ, он нам ещё пригодиться.

Весь перевод будет осуществляться в функции TranslateText.

Ей нужно передавать:

  1. Ключ, который мы получили раннее;
  2. Язык с которого и на который переводить. Например: en-ru. Поддерживаемые языки.
  3. Текст, который надо перевести.

А возвращать эта функция будет переведённый текст.

 

Код программы будет такой:

function TForm1.TranslateText(const key, lang, text: string): string;
const
  yurl = 'https://translate.yandex.net/api/v1.5/tr/translate'; // Ссылка API Яндекс переводчика
var
  NetHTTP: TNetHTTPClient;
  MyMemory: TMemoryStream;
  OutS: TStringList;
  s: string;
begin
  NetHTTP:= TNetHTTPClient.Create; //Создаём TNetHTTPClient, через который будет осуществляться перевод
  MyMemory := TMemoryStream.Create; //Создаём TMemoryStream, куда будет загружаться результат
  //Заполняем s входящими данными, чтобы получить ссылку на перевод
  s := yurl + '?key=' + key + '&lang=' + lang + '&text=' + text;
  NetHTTP.Get(s, MyMemory); //Методом Get заполняем MyMemory переводом
  MyMemory.Position := 0; //Выставляем Position на 0, для правильной работы с ним
  OutS := TStringList.Create; //Создаём TStringList для загрузки в него результата
  OutS.LoadFromStream(MyMemory); //Загружаем в него результат
  result := UTF8ToWideString(OutS.Text); //Результатом будет String, загружаемый через OutS
  //Уничтожаем раннее созданные объекты
  NetHTTP.Free; 
  MyMemory.Free;
  OutS.Free;
end;

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.