уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Сегодня внес небольшие коррективы в модуль, реализующий возможности переводчика Google (Traslator.pas). Теперь модуль использует вторую версию API со всеми вытекающими отсюда последствиями.

Все изменения выложены в репозитории на GitHub.com. На данный момент компонент имеет те же возможности, что и первая версия, т.е. перевод строк текста на различные языки с использованием GET-запросов. Хотя новая версия API “обросла” несколькими новыми возможностями, которые будут по мере сил реализовываться в компоненте, а именно

1. Возможность использования POST-запросов.

Очень удобная штука. По умолчанию количество символов в GET-запросе не должно превышать 2 000 символов. POST-запрос расширяет это ограничение до 5000.

2. Возможность перевода нескольких строк текста.

Для этого разработчикам API пришлось немного изменить форму ответа. Теперь переведенные строки оформляются в виде JSON-массива.

3. Контроль лимита использования API.

Об этом я писал вчера, но пока ещё не успел протестировать эту возможность и получить ответ от сервера, когда лимит исчерпан. В документации по API Переводчика таких примеров, к сожалению, нет – придётся потестировать самому.

В общем, пока можете скачивать новый модуль с этой страницы репозитория. Обо всех обновлениях, как обычно, буду отписываться в блоге.

Книжная полка

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
купить книгу delphi на ЛитРес
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
купить книгу delphi на ЛитРес
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
23 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
6ruse
6ruse
01/12/2010 10:34

У меня не компилируется компонент Translator_pack ошибка на этой строке
req := {$IFDEF VER220} CoXMLHTTP {$ELSE} CoXMLHTTPRequest {$ENDIF}.Create;
подскажите в чем дело. у меня Delphi2010.

Елена
Елена
23/12/2010 20:28

Пытаюсь запустить демо в дельфи 2007. При переводе ругается на строку if(index >= FLength) then в function TSuperArray.GetO(const index: Integer): ISuperObject; модуля superobject. В чем может быть дело?

Елена
Елена
24/12/2010 01:40

Где взять и на сколько раннюю?

Елена
Елена
24/12/2010 16:49

Ошибка скорее всего в вашем коде, т.к. нашла пример использования GoogleAPI и с той же версией SuperObject’a все работает отлично в D2007. Так что код скорее всего не совместим с некоторыми версиями дельфи.

350z6233
350z6233
11/01/2011 21:43

Как установить это компоненты??зарание спасибо!

Горный Оптимизатор
Горный Оптимизатор
18/01/2011 02:04

Это ППЦ ))))))))))) Оказывается код рабочий! У меня стоит D7. У меня есть панацея для всех, у кого не работает код и ругается на всякую всячину в SuperObject. (Подправить всёравно придётся, но это мелочи) Как бы то ни казалось, но Vlad написал рабочий код. Даже нестыковки в версиях невсчёт — это легко убирается, а вот ругающийся на всё SuperObject это уже надо быть крутым экстрасенсом, что б догадаться  ))) Мне «повезло», после 6 часов неприрывных поисков всяких способов у меня в папке с прогой накопилась уйма всего и там, оказалось то, что нужно для работы — это DLLки для SSL,… Подробнее »

Горный Оптимизатор
Горный Оптимизатор
19/01/2011 19:45

HELP! Нужен отзыв того, у кого всё переводит. С английским и подобными языками всё нормально, но вот с «хитрыми» не всё так гладко.   Как я говорил, у меня D7. При переводе на китайский в Мемо приходят одни «????». Поставил TNT Unicode Controls, теперь TntMemo1.Lines.Add(#26377); иероглиф добавляет, но перевод выведенный в этот же Мемо всё равно в виде «?????» Пробовал ставить Font.Name:= ‘Arial Unicode MS’; Font.Charset:= CHINESEBIG5_CHARSET;  Результата нет.   Уже думаю, может при переводе где-то из «?????» превращается в «?????»….. (интересно, схавает ли Вордпресс иероглифы в строке выше)   У кого работает китайский (желательно с версией до D2009), расскажите… Подробнее »

Горный Оптимизатор
Горный Оптимизатор
19/01/2011 20:15

Не сочтите за спам…
Я таки оказался прав. Надо было изменить тип данных возвращаемый функцией Translate на WideString и всё стало работать.
Впринципе, и верхний и этот коммменты можно можно стереть.

reacer
reacer
18/05/2011 13:15

Здравствуйте , если я компилирую ваш демо код translate_demo , в функции ComboBox1Change и ComboBox2Change   появляется ошибка:
Access violation at address 0052940E in module «Project3.exe»/ Write of address 00000039
У меня Delphi Studio 2010

reacer
reacer
19/05/2011 15:18

Delphi 2010 не видет класс Ttranslate, он находится в файле GTranslate.pas ( сам файл есть в проекте) . Как нужно его подключать ? Компилируется ваше demo .

reacer
reacer
19/05/2011 18:02

я так и делал , ошибка как на скриншоте. А вы тестировали код на других версиях delphi ? https://img696.imageshack.us/i/delphi.gif/

reacer
reacer
19/05/2011 18:07

если выбераем ignore , программа не работает и ошибка Access violation at address ( в 1 моем посте) .

reacer
reacer
21/05/2011 12:35

Спасибо , я установил компонент , программа нормально компилируется . Но сама программа не переводит текст . Выводит «Исходный текст  Перевод » . Там какие то проблеммы с SSL ?

reacer
reacer
21/05/2011 12:36

Api я прописал

reacer
reacer
23/05/2011 17:45

В Delphi Xe код запустился , но не переводит с русского на другие языки . Например если написать в поле Фраза : текст , он не переведется на другой язык. Если нависать text переводится на любой язык .

Владимир
Владимир
26/09/2014 18:24

С русского перевод не работал. Метод GetParams надо переписать так (DelphiXE, использую TAzureService): function TTranslator.GetParams(const Text: TStringList): string; var i: integer; source, dest: AnsiString; begin source := »; if SourceLang unknown then begin source := StringReplace (GetEnumName(TypeInfo(TLanguageEnum), Ord(FSourceLang)), ‘_’, ‘-‘, [rfReplaceAll]); Delete(source, 1, 4); end; dest := StringReplace(GetEnumName(TypeInfo(TLanguageEnum), Ord(FDestLang)), ‘_’, ‘-‘, [rfReplaceAll]); Delete(dest, 1, 4); Result := ‘key=’ + Key; for i := 0 to Text.Count — 1 do Result := Result + ‘&q=’ + TAzureService.UrlEncode(Text[i]); if SourceLang unknown then Result := Result + ‘&source=’ + source; if DestLang unknown then Result := Result + ‘&target=’ + dest; end; На… Подробнее »