Онлайновый перевод (Google, Bing, Яндекс)

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Serge Yolkin писал(а):... и никак иначе.
Это документ какой-то корявый. Попробуй, например, эту страницу.
Serge Yolkin писал(а):Ох, накаркаешь...
Ох, надеюсь.. :)
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Flasher
Это документ какой-то корявый
да не, это я пример вызова привел, url любой может быть, но обязательно url. Не текст, не что-то еще. А значит, текст в окне локального приложения переводиться не будет. Нет к нему доступа по http://

А с абзацами запара. Надо передохнуть, а то уже не врубаюсь: это ИЕ глючит, яваскрипт, или я.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Про абзацы: простое добавление фичи к хэтэашничку не прокатило. И, на удивление, основная проблема не в том, чтобы разбить перевод на абзацы, а в том, чтобы корректно отловить их во вводе. При копипасте из браузера (и .chm) каких только чудес не насмотрелся. В общем, вероятно, победю, но методом написания с нуля. И немного позже. Когда с регэкспами подружусь. (с тоской вспоминаю каэмдэшнички - там for рулит, но, блин, 21-й век на дворе...)
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Требуется помощь специалиста (специалистов) :o умеющих работать с регулярными выражениями :evil:
Имеем: переменную типа string с копипащеным текстом, в котором куча мусора;
Нада:
1. убрать весь мусор до первого и после последнего значащего символа (на сколько я понял, [^[\s][\s]$]g )
2. убрать все вхождения \x00, \v, \r (ИЕ и \n достаточно)
3. убрать пробельный мусор из пустых строк (\n мусор \n на \n\n или просто \n , кажется, здесь колдунство с модификатором m)
4. заменить все \t пробелом
это можно в любом порядке, а вот 5 - только после 1-4
5. заменить любое количество переводов строк одним (\n\n\n... на \n)
За 16 часов сам разобрался. Методом ненаучного тыка. Так что шанс на поддержку абзацев сильно увеличился.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Еще одна бессонная ночь. И все получилось.
Но сначала небольшое предисловие:
В связи с поддержкой абзацев простенький переводчик превратился в двухпанельный редактор, а значит, пришлось освободить клавиши редактирования от не свойственных им функций. Прочитайте справку (F1), особенно те, кто пользовался предыдущими версиями (сам привыкнуть не могу).
Перевод производится по абзацам, а значит, теоретически, абзацы могут быть на разных языках. И будут переведены. [s]В связи с чем пока отказался от индикации направления перевода - просто не знаю, где его показывать (для каждого абзаца).[/s]
В общем, эта версия для тех, кто переводит тексты. После выполнения можно подправить перевод прямо в правой панели перед дальнейшим использованием. А кому словечко подсмотреть - предыдущие версии, по-моему, удобнее.

Код: Выделить всё

begin 644 Gt.zip
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
`
end
sum -r/size 56313/2385
Проект еще не заброшен, поэтому все конструктивное приветствуется.

Обновлено 12.01.11
Последний раз редактировалось Serge Yolkin Ср янв 12, 2011 13:24, всего редактировалось 4 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Serge Yolkin
У меня при F2 текст просто исчезает, и ничего не происходит. И поменяй, пож-та, на Ctrl+Enter, так привычней.
Win7 IE8.
P.S.: Да, в MIME кодируй, меньше строк займёт.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Нашел пару глюков, поправил оформление, исполнил желание Флэшера про Ctrl+Enter. Обновил файл в посте На_Два_Выше.
Да! и нашел, где распознанный язык отобразить.
Flasher
Виснет, если гугль не отвечает, например, не может распознать язык, или лаги большие. Вообще где-то видел сообщение, что этот бесплатный сервис имеет некоторые ограничения, в частности, по количеству запросов с одного адреса в минуту. Сам - не налетал, ни подтвердить, ни опровергнуть не могу.
Аватара пользователя
Lazy Crazy
Сообщения: 400
Зарегистрирован: Вс янв 16, 2005 20:53

Сообщение Lazy Crazy »

Serge Yolkin
Что-то последний вариант декодировать не могу… Изображение
Изображение
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Lazy Crazy
Еще раз обновил. Теперь должно декодироваться - перед этим я пытался с длиной строки поиграть, у меня Тотал понимал, но формат, действительно, был нестандартный. Кроме того нашел еще глючок с отображением < и >, которые гугль возвращает в виде &...; - поправил.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чего-то не хочет у меня работать на семёрке. Жалко ОperaAC не часто пользоваться приходится, там стоит макрос, вызывающий маленькое окошко с переводом. В нём и с абзацами всё в порядке. "Serge Yolkin" переводит с французского - "Сергей Ёлкин". :)
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Flasher
Что-то не врубаюсь: собственно, это и писалось, и тестилось на 7/32 + ИЕ9, проверялось - на XP/32 + ИЕ8... Может, файервол какой в сеть не пускает?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Serge Yolkin писал(а):Может, файервол какой в сеть не пускает?
Не использую..
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Flasher
А предыдущие версии работали? И сейчас работают?

Еще одно обновление: копирование с F6 назначил на F5, а то случайное нажатие на F5 всю картинку ломало.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Такс, что-то неладное проявилось. Кажется, ещё вчера подобного не было. При нажатии Enter с любым из предложенных вариантов выскакивает это:
Изображение
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Flasher
Да у тебя API не скачивается. Кто-то переводчика к гуглу не пускает. Я тут в параллельной [s]вселен[/s] ветке еще hta выложил, принцип близкий, но стучится на другой сайт. Попробуй - он-то работает?
Ответить