Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: lex_newton от Март 04, 2009, 08:58



Название: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 08:58
Все знают сервис translate.google.ru, но переводить через него тескты несколько неудобно...
И при плохом канале(таком как gprs) работать с ним очень затруднительно.

Вот написал на досуге программку QGoogleTranslate, которая используе translate google api.

Страница QGoogleTranslate:
http://qgoogletranslate.googlecode.com

P.S.: Сообщения о багах, предложение и т.п. привествуются ;)

(http://qgoogletranslate.googlecode.com/svn/trunk/img001.png)

--
2010.07.11
* сделал поддержку нового протокола translate.google.com

2009.12.10
* профиксил багу из за которой переводилось только первое предложение. Теперь переводится произвольное количество предложений

2009.12.04
* убрал парсер json(используемый раннее) и заменил его на QScriptEngine && QScriptValue
* доработал по быстрому, чтобы работало на новом api гугла

2009.03.04 : 17:21
* Профиксино много багов. все изменения в SVN/trunk/

2009.03.04 : 20:53
+ добавлены иконки стран в QComboBox выбора направления перевода

2009.03.04 : 21:34
+ Добавлена иконка в системном трэе. Программа не закрывается, а сворачивается в системный трэй.

2009.03.05 : 12:31
+ Добавил еще флажков. теперь почти все ;)

2009.03.06 : 16:51
+ добавил еще иконки для зыков. теперь для всех языков имеются иконки ( если гдето ошибся, отпишитесь, исправлю )
* изменил название программы с Google Translate на QGoogleTranslate в связи с коллизией имени с уже существующим проектом.

2009.03.09 : 17:43 ( build 4 )
+ кнопка перевода буфера обмена

2009.04.01 : 14:59 ( r17 )
+ Добавил таки настройку для использования прокси сервера( протестировать не на чем.. но вроде все должно работать )


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 09:31
прикольно, работает.
Спасибо


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 10:27
про баги:
хочу перевести с аглицкого на русский, вставляю текст перевожу - ок.
вставляю текст по больше, а именно:
Цитировать
March 3, 2009 — Oslo, Norway — Qt Software today announced that the product, Qt Extended, will be discontinued as a stand-alone product. Instead, selected features will be migrated into the Qt framework which will result in Qt becoming an even richer, cross-platform application framework.

The final release of Qt Extended will be version 4.4.3, which will is planned for release on March 5, 2009. Qt Extended will be maintained for one year from that date. Qt Software will honor all existing support agreements, and for customers who need continued access to support beyond the term of their current agreement, Qt Software is offering the possibility of purchasing supplemental support.

в виджете перевода появляется надпись:
TRANSLATE ERROR(400): invalid translation language pair

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


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 10:27
Эксперимент показал, что причиной ошибки служит перевод строки в исходном тексте - надо победить это дело.


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 10:29
и еще от длинных тире кривится конечный перевод, появляется лишний символ "С".
Чего не происходит в Веб-интерфейсе гугла


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 11:15
Спасибо ;)
Цитировать
Приэтом можно только закрыть вкладку, иного способо продолжить в ней работать нету. Предлагаю реализовать тоже поведение, что и в отсутствии ошибки
это бага ;)

Профиксил пару баков.
1. Интерфейс не разблокировался при некоторых ошибках
2. Неверно строился POST запрос (это вызывало ошибку TRANSLATE ERROR(400): invalid translation language pair )
(все изменения в ветке trunk)
--

Цитировать
и еще от длинных тире кривится конечный перевод, появляется лишний символ "С".
Эту ошибку вызвать не вышло... (пробовал приведенный выше пример текста).

--
Нашел серьезные проблемы. QJson неверно обрабатывает json объекты, поэтому ошибку вызывают символы ' и ", возможное ще какието, но пока не определил.
>
Буду использовать другой json парсер


Название: Re: QGoogleTranslate
Отправлено: Dendy от Март 04, 2009, 11:34
А позволяет ли гугл транслятор использовать вместо Json Atom? И если да, то почему бы вы выбрали именно Json?


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 11:43
2 lex_newton, еще запятая вызывает ошибку с символом "С".
П.С. У меня Qt 4.4.3 и Виндовоз 2кСП4


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 11:45
Цитировать
А позволяет ли гугл транслятор использовать вместо Json Atom? И если да, то почему бы вы выбрали именно Json?
В докментации про Atom ничего не сказано

Цитировать
2 lex_newton, еще запятая вызывает ошибку с символом "С".
Ага.. сейчас я работаю над этими проблемой...

Цитировать
П.С. У меня Qt 4.4.3 и Виндовоз 2кСП4
Qt 4.4.3 XP SP 2 - вроде все ок.. Привидите пример текста и перевода, плиз.


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 11:51
так пересобрал, теперь никаких проблем, тот-же текст полностью перевелся.

Релиз:
Last Changed Author: lexnewton86
Last Changed Rev: 6
Last Changed Date: 2009-03-04 14:07:07 +0600


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 11:58
откатился, к первичной версии, пересобрал.
Текст брал отсюда (http://www.qtsoftware.com/about/news/qt-software-discontinues-qt-extended), простым копированием (Опера 9.63)

Снимок с багами во вложении


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 11:58
только сейчас заметил, что ошибкой является не только символ "С", а несколько подряд: "enC"


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 12:09
Ага. помню ;) отсюда ноги росли:
2. Неверно строился POST запрос (это вызывало ошибку TRANSLATE ERROR(400): invalid translation language pair )
(все изменения в ветке trunk)


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 12:57
похожая прога: тык (http://www.qt-apps.org/content/show.php/Google+Translate?content=100039)
там флаги для языков есть - наглядно


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 13:15
Ой... а я на qt-apps только gtranslator видел О_о
похоже, что моя программа практически бессполезна ;)


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 13:49
не, со вкладками удобно
и к стати тот чувак AJAX неиспользует, тык (http://alexsnet.ru/2009/02/google-translate-non-ajax-api/)


Название: Re: QGoogleTranslate
Отправлено: spirit от Март 04, 2009, 13:58
гы, зачет.


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 14:16
Ну,  раз софтина всетаки полезна, то буду ее дальше доделывать ;)
Значит так:
Теперь все переводится вроде нормально и никаких проблем с символами и т.п. не заметно.
Что изменил?
Забил на ajax, временно, и воспользовался наглым плагиатом запроса(с небольшой доработкой) и парсера ответа.

Какие минусы:
Нельзя точноз знать код ошибки при переводе. Ошибка выводится просто текстом.
А является ли такой способ перевода правильным??? офф. доку на эту тему я не нашел. А интерфейс скрипта пхп могут и изменить...

Какие планы:
+ добавить иконки стран
+ всетаки домучить ajax(не хочется просто тяжелую либу тащить ради мелкой программки)
+ перевод буффера обмена по горячей клавише
+ возможность висеть в трее

--
Не знаю, будет ли работать на QT ниже QT.4.4.3 т.к. отказался от использования QBuffer
все изменения в trunk/


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 15:50
>>+ возможность висеть в трее
вот это бы первым делом. Это я тебе как пользователь говрю.


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 15:52
>>Не знаю, будет ли работать на QT ниже QT.4.4.3
НЕА:
./uic/ui_editorwidget.h:25:28: qplaintextedit.h: No such file or directory
(Qt4.3.5)


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 18:36
>>+ возможность висеть в трее
вот это бы первым делом. Это я тебе как пользователь говрю.
Сделано :)


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 19:05
Флаги еще не на все языки есть, я правильно понимаю?
напротив некоторых языков серое поле.


Название: Re: QGoogleTranslate
Отправлено: lit-uriy от Март 04, 2009, 19:08
БАГА:
после ошибки, когда повторная попытка удается, иконка во вкладке не обновляется (с восклицательного знака на обычную).


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 04, 2009, 19:26
Флаги еще не на все языки есть, я правильно понимаю?
напротив некоторых языков серое поле.
Да. это я осознанно сделал. Взял иконки из Google Tranlslate. Если иконки для языка нет,  то иконка не светится. Саомоу пока искать нет времени...

Цитировать
БАГА:
после ошибки, когда повторная попытка удается, иконка во вкладке не обновляется (с восклицательного знака на обычную).
Пасиба :) совсем забыл про иконку удачного завершения... теперь все "ОК".


Название: Re: QGoogleTranslate
Отправлено: ритт от Март 04, 2009, 20:19
флажки стран имеются в CountryComboBox в libqxt
также можно взять набор флажков от AngeliKa в аддонах миранды (http://miranda-im.org)


Название: Re: QGoogleTranslate
Отправлено: Sergeich от Март 18, 2009, 19:44
Было бы неплохо прикрутить настройки для прокси


Название: Re: QGoogleTranslate
Отправлено: Alex Custov от Март 19, 2009, 01:09
для флагов я сделал небольшую библиотеку, но т.к. ещё непонятно с её лицензированием, выкладываю пока данные - 250 флагов (без Косово, но с Антарктидой :) ), и таблица ISO кодов, которую можно парсить через QSettings. Т.к. картинки в разных форматах, для загрузки её из ресурсов можно воспользоваться особенностью работы QPixmap/QImage, когда ему достаточно дать путь к изображению без расширения - он сам всё найдёт. Часть small флагов взято из kdelibs. Некоторые флаги нужно доделать, надеюсь завтра сделаю.

Полезные ссылки:

  • http://www.fotw.net
  • http://openclipart.org
  • http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
  • https://www.cia.gov/library/publications/the-world-factbook/docs/flagsoftheworld.html

По последней ссылке коды некоторых стран не совпадают с ISO кодами (в архиве всё исправлено).


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 19, 2009, 08:23
Спасибо :) мне они очень пригодятся, т.к. у меня подборка флагов не факт что правильная...


Название: Re: QGoogleTranslate
Отправлено: Alex Custov от Март 19, 2009, 18:17
http://depositfiles.com/files/b6l6jjvre

В архиве также SVG версии всех флагов.


Название: Re: QGoogleTranslate
Отправлено: Sergeich от Март 19, 2009, 22:48
Поскольку ответа на предложение добавить поддержку прокси не было, нарисовал сам (У меня на работе инет исключительно через проксю). Измененные файлы в аттаче.


Название: Re: QGoogleTranslate
Отправлено: Sergeich от Март 19, 2009, 22:57
Кстати, хорошо бы по умолчанию выставлять в качестве исходного аглицкий, а целевой определять по QLocale. Пара africanas/africanas при первом запуске не есть гуд.


Название: Re: QGoogleTranslate
Отправлено: Sergeich от Март 19, 2009, 23:14
Да, на будующее, в качестве запросов на функциональность:
1. Глобальные горячие клавиши: Скажем нажал Ctrl+G+G - и появляется окошко с переводом буфера обмена
2. Движки. Google translate, это конечно круто, но если бы была возможность юзать еще, скажем Lingvo Online, юзеры бы сцали кипятком :)
3. При каждом запуске проверять запущена ли уже программа (желательно один процесс на юзера). Как вариант кутишные  солюшены http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtsingleapplication/ (оно вроде коммерческое еще) или возьми аналог у константина.


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Март 20, 2009, 10:48
Sergeich: Извиняюсь, что не отвечал. Времени не было.. Насчет прокси - все руки не доходят. в ближайшее время обязательно добавлю.
Горячие клавиши это конечно хорошо, но насколько мне известно - это уже платформозависимое(если правильно помню..). Можно использовать, конечно, qxt, но не хочется тянуть тяжелые либы ради мелкой софтинки.
Насчет расширения... такая идея есть. ага. Мы объединились с еще одним человеком, который писал Google Translate(ссылка на него в обсуждениях мелькала). И теперь совместно начали разрабатывать проект, который будет использовать различные API для перевода, API словарей может еще чего-нибудь..
Что касается моего QGoogleTranslate, то он будет поддерживать только Google API.


Название: Re: QGoogleTranslate
Отправлено: ритт от Апрель 27, 2009, 19:18
http://kde-look.org/content/show.php/translatoid?content=97511
удобный и неплохо продуманный плазмоид. частенько им пользуюсь, но действительно, одного гугля не хватает - слишком уж он тупит на сложных предложениях. очень хотелось бы иметь нечто подобное, но с _одновременной_ поддержкой нескольких движков переводов - чтобы не дергаться от одного к другому.
где можно глянуть на ваш совместный проект и есть ли конкретный план действий по нему?


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Апрель 28, 2009, 18:39
Глянуть то можно.. только вот смысла нет. у меня сейчас диплом и работа. совсем некогда заниматься заниматься этим переводчиком... другой человек, видимо, тоже занят. все на уровне идеи и архитектуры и загнулось пока. реализовывать некогда...


Название: Re: QGoogleTranslate
Отправлено: vfilatov от Ноябрь 19, 2009, 15:42
Похоже, гугл изменил формат ответа в своём API. Теперь, например, перевод слова "Привет" выглядит так:
{"sentences":[{"trans":"Hi","orig":"Привет","translit":""}],"src":"ky"}
Может быть можно подправить и перевыпустить вашу тулзу?


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Ноябрь 20, 2009, 07:13
Можно то можно... и по хорошему использовать QJSon. его таки доработали. Но, к сожалению, я пока не могу этим заняться. совсем нет свободного времени... все исходники открыты. можете доработать самостоятельно. Если захотите, я могу вас включить в список разработчиков :-)


Название: Re: QGoogleTranslate
Отправлено: vfilatov от Ноябрь 20, 2009, 13:20
Спасибо, но к разработчикам подключиться я не готов пока :)
Однако как пользователь хочу сказать, что ваша программа хорошая и нужная, буду рад, если выйдет обновление.


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Декабрь 03, 2009, 21:56
воть ;) все заработало


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Декабрь 03, 2009, 21:58
чуть позже, как опять появится время, переработаю некоторые элементы + попробую придумать и реализовать работу в режиме словаря...


Название: Re: QGoogleTranslate
Отправлено: vfilatov от Декабрь 07, 2009, 18:42
Я наверно слепой, но не вижу на странице проекта в разделе Downloads ссылки на новую версию... Или предполагается, что надо самому собирать?


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Декабрь 08, 2009, 18:10
ссори. совсем забыл собрать пакет ;) исправил. в архиве zip бинарники.


Название: Re: QGoogleTranslate
Отправлено: vfilatov от Декабрь 09, 2009, 14:01
Кажется новая версия переводит только первое предложение...

Ввожу: "Здравствуй, мир. Как поживаешь?", перевод: "Hello world.".
Ввожу: "Здравствуй, мир, Как поживаешь?", перевод: "Hello World, How are you?"

Скорее всего это из-за того, что теперь каждое предложение в ответе отдельно идёт:
{"sentences":[{"trans":"Hello world. ","orig":"Здравствуй, мир.","translit":""},{"trans":"How are you?","orig":"Как поживаешь?","translit":""}],"src":"ru"}


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Декабрь 09, 2009, 14:37
хм. точно. как-то на это я внимания не обратил.. сегодня или завтра исправлю. сенкс ;)


Название: Re: QGoogleTranslate
Отправлено: vfilatov от Июнь 24, 2010, 11:45
Снова сломалось, видимо опять поменялся API.
Проект, как я понял, больше не поддерживается?


Название: Re: QGoogleTranslate
Отправлено: lex_newton от Июнь 24, 2010, 12:01
Ну, я бы сказал, работает да работает ;) но раз сломалось - посмотрю, починю ;)