Что нового

Переводчик Google

Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Не хватает иконок для языков:

Код:
Китайский
Себуанский
Урду
Хмонг

:smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR [?]
Не хватает иконок
Как-то я их пропустил, добавил.

PS
CreatoR,
Если интересно, то могу объединить все иконки в одну простыню в формате png и написать функцию получения их из файла или ресурса хоть по одной, хоть все, хоть выборочно по номерам.
 

Вложения

  • Flag_Lang_Ico_All.7z
    34.4 КБ · Просмотры: 1
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
Как-то я их пропустил, добавил.
Спасибо.

Если интересно, то могу объединить все иконки в одну простыню в формате png и написать функцию получения их из файла или ресурса хоть по одной, хоть все, хоть выборочно по номерам.
Интересно увидеть реализацию (возможно в Полезняшках?), но в нашем случае будет не очень удобно добавлять новые иконки.
Файл icl вполне сойдёт :smile:.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles
В Себуанский ошибка, в массиве записано как эсебуанский :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR [?]
но в нашем случае будет не очень удобно добавлять новые иконки.
Если сделать из 66 иконок один файл 1056х16 или 16х1056, то добавить в конец новую картинку не составит никакого труда, даже руками. Плюс от этого - существенное уменьшение размера. Пример получения картинок из такого файла есть в библиотеке YashiedAnimate.au3.


Добавлено:
Сообщение автоматически объединено:

CreatoR [?]
В Себуанский ошибка
Исправил, поменял архив.



Добавлено:
Сообщение автоматически объединено:

Надо, наверное, добавить иконку на неподдерживаемые языки.
Три штуки на выбор прикрепил.
 

Вложения

  • Unknown.7z
    1.7 КБ · Просмотры: 2
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновил немного.

v0.3
* Исправлен главный модуль переводчика.
* _HTTPRead заменён на InetGet (из за трудностей получить код страницы с https).
+ Добавлена поддержка мультиязычности.
+ Добавлены иконки в выпадающий список языков (спасибо madmasles).
+ Добавлена поддержка преобразование для перевода справа налево (RTL).
+ Улучшена обработка юникода.

Правда есть одна проблема:
При переводе не используя авто определение языка, некоторые языки отображаются некорректно (например при переводе на Иврит).
InetGet записывает в файл правильные данные (кодировка файла и содержимое переведённого текста совпадают), но почему то в поле выводится неправильно.
Можно в этом убедиться если переводить текст Test выбрав направление перевода Английски -> Иврит, должно получиться מבחן, а получается НАГО. :scratch:
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
CreatoR
А Google не выдает бан по типу яндекса? Была у меня там попытка отслеживать позицию сайта по поисковым словам...

[?]
но почему то в поле выводится неправильно
А почему не использовать встроенный IE?
Еще не понятно откуда берется ограничение.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR,
Симпатично получилось.

Хотелки:
Добавить опцию прокси.
Сортировать массив $aLang_Icons, чтобы названия языков шли по алфавиту.

Баг: при смене языка сбиваются настройки перевода (в анг. было From: English, To: Russian, а после перехода на рус. стало с: Гуджарати, в: Тайский).
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
Баг: при смене языка сбиваются настройки перевода
Это из наименьших проблем программы :smile:.
Это логично, т.к название языков в списке меняется при смене языка программы. Максимум что можно сделать, так это сброс настроек.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
CreatoR [?]
Из за не желания использовать API
laugh.gif
.
Если попробовать весь текст делить на предложения по MAX=376 символов, наверное точно начнут банить. :(

Хотелки (part 2):
Двойное нажатие Ctrl+C приводит к появлению Traytip'а или окошка в правом нижнем углу с переводом.
Или появляется на несколько секунд прозрачное окно справа сверху. С закругленными углами.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
Добавить опцию прокси.
Это позже...
Остальное сделал.

Z_Lenar [?]
Двойное нажатие Ctrl+C приводит к появлению Traytip'а или окошка в правом нижнем углу с переводом.
А ещё можно сделать сразу по выделению.

Но прежде чем реализовывать хотелки, нужно исправить проблему с кодировками, может кто то посмотрит на код? :whistle:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967

Вложения

  • Google_Translator.zip
    8.5 КБ · Просмотры: 12

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Garrett [?]
некорректный перевод связан с InetGet
Если изменить User-Agent на данные любого браузера, например:
Код:
HttpSetUserAgent('Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.17')
То тоже все отображается корректно.

Почему то для браузеров google возвращает страницу в кодировке UTF-8, а для других в кодировке языка, на который идет перевод (Английский -> Иврит windows-1255; Английский -> Японский Shift_JIS). Посмотреть можно в первой строке скачанной страницы, если ее не удалять (charset=).

PS
У меня возвращает корректный перевод, если использовать флаг 128 при открытии временного файла и закомментировать обе проверки (If _Encoding_*).
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
madmasles [?]
Привык к объекту "WinHttp.WinHttpRequest.5.1" настолько, что позабыл про функцию HttpSetUserAgent :beer:
Почему то для браузеров google возвращает страницу в кодировке UTF-8
IMHO по идее, так должно быть во всех браузерах.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновление...

v0.4
* Исправлена проблема перевода на юникод языки при переводе не с автоопределения (спасибо Garrett & madmasles).
* Теперь не требуется перезапуск при смене языка программы.
* Теперь направление перевода должно корректно восстанавливаться при смене языка программы.
* Теперь языки в списках сортируются в алфавитном порядке.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR [?]
К сожалению на данный момент имеется ограничение на длину переводимого текста (376 символов).
Если отправлять текст POST запросом, то у меня получилось перевести 48 Кб текста за один раз.

В прикрепленном архиве пример. (код тестовый, не причесанный) :smile:

PS
И так быстрее переводит (у меня).


Добавлено:
Сообщение автоматически объединено:

CreatoR,
У Вас ошибка в списке языков, с которых можно переводить: должно быть только Китайский (zh-CN), а у Вас два - Китайский (упрощенный) (zh-CN) и Китайский (традиционный) (zh-TW)
 

Вложения

  • POST.7z
    34.8 КБ · Просмотры: 22

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR [?]
Сейчас проверил, только изменил
Код:
$sTxt = FileRead($hFile, 1024 * 10)
У меня возвращает
Код:
TCPSend: 11681
HTTP/1.0 200 OK
Date: Wed, 18 Jun 2014 18:43:13 GMT
Expires: Wed, 18 Jun 2014 18:43:13 GMT
Cache-Control: private, max-age=86400
Content-Type: text/html; charset=UTF-8
Content-Language: en
X-Content-Type-Options: nosniff
Server: HTTP server (unknown)
X-XSS-Protection: 1; mode=block
Alternate-Protocol: 80:quic

<pre>BUSINESS Fugitive hussar

George tells Zudintsev

     &quot;Zudintsev Georgy, 43, correspondent of the investigation department. Lieutenant Colonel stock dismissed from
of superannuation, worked as head of ESD. Has extensive experience in operational and investigative work.
     The Agency - since its foundation.
И далее до конца переведенный на английский текст.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
У меня возвращает
Да, в 3.3.8.1 работает, в более поздних версиях не работает.

Нужно добавить Opt('TCPTimeout', $iTimeout).
 
Верх