Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 23.09.2013, 15:34   #1
IngaMal
Новичок
Джуниор
 
Регистрация: 23.09.2013
Сообщений: 4
По умолчанию переводчик с русского на английский на Delphi

Подскажите, пожалуйста, необходимо в программе текст с русского перевести на английский ... с английского на русский переводится, а наоборот никак.... в чем проблема не понимаю... плиз help

привожу 2 процедуры исходника:

Код:
function urlEncode(const URL: WideString): AnsiString;
var
  i: Integer;
  utf8: AnsiString;
begin
  result := '';
  utf8 := UTF8Encode(URL);
  //
  for i := 1 to length(utf8) do begin
    //
    case (utf8[i]) of

      ' ': result := result + '+';

      '0'..'1', 'A'..'Z', 'a'..'z', '-', '_': result := result + utf8[i];

      else
        result := result + '%' + AnsiString(IntToHex(byte(utf8[i]), 2));
    end;
  end;
end; 

function TForm1.Translate_Google(text, myLang, toLang:string): string;
var
  idHTTP1: TidHTTP;
  data: TStringList;
  Response: TStringStream;
  s: string;
  k, n: integer;
begin
  data:= TStringList.Create;
  idHTTP1:= TIdHTTP.Create(nil);
  text:=URLEncode(text);

 text:= StringReplace(StringReplace(StringReplace(text, #13#10, ' ', [rfReplaceAll]), '...', '',[rfReplaceAll]), '.', ',', [rfReplaceAll]);
  
  data.Add('client=x');
  data.Add('text=' + text);
  data.Add('hl=ru');
  data.Add('sl='+myLang);
  data.Add('tl='+toLang);
  data.add('multires=1');
  data.add('otf=1');
  data.add('sc=1');
  Response:= TStringStream.Create('');

  try
    Idhttp1.Post('http://translate.google.ru/translate_a/t', data, Response);
  except
    ShowMessage('ррр' + #13#10 +'ррр');
  end;
  
  s:= Response.DataString;
  k:= Pos('trans":"', s);
  n:= PosEx('","', s, k);
  s:= Copy(s, k + 8, n - k - 8);
//  result:= Koi_WinConvert(s); // from ENG to RUS
   result:= s;// from RUS to ENG

  data.Free;
  idHTTP1.Free;
end;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.09.2013 в 15:56.
IngaMal вне форума Ответить с цитированием
Старый 23.09.2013, 16:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Может опять проблема с юникодом в Инди? Я сталкивался - морочная штука, передает фиг-зна-што.
Попробуй что-ли с TEncoding переводить отсылаемый текст...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2013, 17:26   #3
IngaMal
Новичок
Джуниор
 
Регистрация: 23.09.2013
Сообщений: 4
По умолчанию

может я не правильно передаю параметры в translate google? , текст на русском в юникоде выглядит также, если бы напрямую переводить в google, но почему то сама функция post возвращает тот же самый текст в юникоде, который и передается...т.е. на русском.... почему не отрабатывает перевод???
IngaMal вне форума Ответить с цитированием
Старый 23.09.2013, 18:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

А ты не Post попробуй а Get.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.09.2013, 09:30   #5
IngaMal
Новичок
Джуниор
 
Регистрация: 23.09.2013
Сообщений: 4
По умолчанию

C Get вообще что-то заморочилась, пробую выдает сплошные ошибки и параметры как передать для перевода тогда не ясно.....
IngaMal вне форума Ответить с цитированием
Старый 24.09.2013, 13:55   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

http://sourceforge.net/projects/agoo...?source=navbar
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.09.2013, 20:56   #7
IngaMal
Новичок
Джуниор
 
Регистрация: 23.09.2013
Сообщений: 4
По умолчанию

raxp Спасибо большое за ссылку!!! - попробую...
IngaMal вне форума Ответить с цитированием
Старый 25.09.2013, 08:47   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...попробуйте, попробуйте. Тут выкладывал разные прикладные применения всего этого, пошарьтесь по каналу.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переводчик в Delphi dani92 Общие вопросы Delphi 28 08.04.2015 18:00
Переводчик на Delphi XYLIGANXYL Фриланс 9 09.06.2011 22:19
преобразование с русского на английский и обратно natsik'09 Помощь студентам 5 21.04.2010 16:42
Delphi. Переводчик систем исчисления(из любой в любую) kikimka Помощь студентам 5 03.07.2009 13:05
не хавает русского шрифта из Delphi при обращении к БД Pitbull БД в Delphi 4 11.06.2007 08:57


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840