Применение бота Google Translate в мирных целях
Создано: 26-01-2010 12:06:52 изменено: 26-03-2010 17:50:14  Метки: tcl google openbox
Нужен иногда переводчик с импорта на наш и иногда наоборот, а то и с какого-нибудь японского на китайский :)
Google Translate в этом отношении весьма и весьма не плох по качеству перевода, можно даже иногда с неким иносТранцем в вакууме пообщаться, ну почти...
для быстрого перевода я себе добавил в гуглтолковский ростер парочку ботов en2ru@bot.talk.google.com и ru2en@bot.talk.google.com. В обычном джабберовом ростере они у меня не прижились - не показывали статус и не отзывались на запросы. Ну в общем вот. Ближе к делу - решил я в порыве автоматизации всего и вся, автоматизировать и перевод повесив его на горячую клавишу.

Пользуюсь я питоновским джаббер-клиентом gajim, который позволяет некоторые операции выполнять из командной строки. Также xsel для выведения из буфера в переменную
cat translator.tcl
#! /usr/bin/tclsh
# зависимости: tcl, xsel, gajim with jid

if {[exec gajim-remote check_gajim_running] ne "True"} {exit 1}
# из буфера в переменную
set buf [exec xsel -p -o -t 100]
# переводим
set dir ru2en
if {$argv eq "en2ru"} {set dir en2ru}
exec gajim-remote send_single_message $dir@bot.talk.google.com "" $buf
# открываем сообщение
exec gajim-remote toggle_roster_appearance
exec gajim-remote show_next_pending_event
#
exec numlockx on


ну и напоследок кусок конфига openbox с примерами вызовов

    <keybind key="W-r">
      <action name="Execute">
        <command>/home/sanych/bin/translator.tcl en2ru</command>
      </action>
    </keybind>
    <keybind key="W-e">
      <action name="Execute">
        <command>/home/sanych/bin/translator.tcl ru2en</command>
      </action>
    </keybind>


Теперь при нажатии {Win-R} или {Win-E} происходит вызов скрипта и открывается закладка gajim с переводом...


1267 просмотров комментировать