当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : bash google 翻译
帖子发表于 : 2009-08-31 17:57 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
bash google 翻译
代码:
#!/bin/bash
text=${1:-$(xsel -o)}
word=$(echo "$text" | wc -w)
if echo "$text" | enca | grep -q 'ASCII';then
    tran="auto%7Czh-CN"
    if ((word == 1));then
        espeak "$text" &
    fi
else
    tran="zh-CN%7Cen"
fi
enc=$(echo "$text" | uni2ascii -a J)
url="http://translate.google.com/translate_a/t?client=firefox-a&text=${enc}&langpair=${tran}&ie=UTF-8&oe=UTF-8"
AGENT="User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009030814 Iceweasel/3.0.9 (Debian-3.0.91)"
get=$(wget --user-agent="$AGENT" "$url" -O - )
#notify-send -i gtk-info -t 10000 "$text is:" "$get"
tips 5 '<span foreground="blue" background="#0ff" font_desc="11">'"$get"'</span>'


tips 鼠标位置显示提示 没找到 拿个工具是 用gtk扯了一个
代码:
#include    <gtk/gtk.h>
#include    <stdio.h>
#include    <stdlib.h>
gint leave(GtkWidget *widget, GdkEvent *event, gpointer data)
{
    gtk_main_quit();
    return FALSE;
}
gboolean cb_timeout(gpointer data)
{
    gtk_main_quit();
    return FALSE;
}
int main(int argc, char *argv[])
{
    GdkWindow *root;
    GtkWidget *window;
    GtkWidget *lable;
    gint x,y;
    guint timeout;
    gtk_init(&argc, &argv);
    if (argc < 3) {
        fprintf(stderr, "%s timeout/s text ", argv[0]);
        exit(1);
    }
    timeout = atoi(argv[1]);
    if (timeout == 0) {
        fprintf(stderr, "Timeout/s error!");
        exit(1);
    }
    window = gtk_window_new(GTK_WINDOW_POPUP);
    gtk_widget_set_events(window,GDK_BUTTON_PRESS_MASK);
    g_signal_connect(G_OBJECT(window),"delete_event",
                     G_CALLBACK(leave), NULL);
    g_signal_connect(G_OBJECT(window),"button_press_event",
                     G_CALLBACK(leave), NULL);
    lable = gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(lable), argv[2]);
    gtk_label_set_line_wrap(GTK_LABEL(lable), TRUE);
    gtk_container_add(GTK_CONTAINER(window), lable);
    root = gdk_get_default_root_window();
    gdk_window_get_pointer(root, &x, &y, NULL);
    gtk_window_move(GTK_WINDOW(window), x, y);
    g_timeout_add_seconds(timeout, cb_timeout, NULL);
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


最后由 O_O_BOT 编辑于 2009-09-01 7:20,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-08-31 18:11 

注册: 2008-11-13 16:03
帖子: 817
送出感谢: 0 次
接收感谢: 0 次
可以划线取词吗?


_________________
HP ProBook4321s,I3+ATI
OS : Fedora + Debian

http://box-look.org/


页首
 用户资料  
 
3 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-08-31 18:23 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
fzq5012 写道:
可以划线取词吗?

代码:
#!/bin/bash
trans() {
text=${1:-$(xsel)}
word=$(echo "$text" | wc -w)
if ((word == 1));then
    espeak "$text"
fi
if echo "$text" | enca | grep -q 'ASCII';then
    tran="auto%7Czh-CN"
else
    tran="zh-CN%7Cen"
fi
enc=$(echo "$text" | uni2ascii -a J)
url="http://translate.google.com/translate_a/t?client=firefox-a&text=${enc}&langpair=${tran}&ie=UTF-8&oe=UTF-8"
AGENT="User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009030814 Iceweasel/3.0.9 (Debian-3.0.91)"
get=$(wget --user-agent="$AGENT" "$url" -O - )
[ "$get" ] && xsel -b <<< "$get" && notify-send -i gtk-info -t 10000 "$text is:" "$get"
}
while :; do [ "`xsel`" ] && trans && echo | xsel; sleep 2;done


页首
 用户资料  
 
4 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-08-31 18:42 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
不错:


附件:
8.png
8.png [ 49.16 KiB | 被浏览 823 次 ]

页首
 用户资料  
 
5 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-08-31 21:02 
头像

注册: 2006-08-24 21:25
帖子: 256
送出感谢: 0 次
接收感谢: 0 次
不错,不错,顶起,我平时用的是这个

代码:
#!/bin/bash
w3m -dump -no-cookie http://dict.cn/mini.php?q=$1



受到启发把这个常用的改下,改成也可以滑词的。谢谢,又学到了。
代码:
#!/bin/bash
while :
do
xx=`xsel -o`
if [ ! -z "$xx" ];then
IFS="\n"
yy=$(w3m -dump -no-cookie http://dict.cn/mini.php?q="$xx")
yy=`echo $yy|sed '/加入生词本/d'`
echo $yy| zenity --text-info --title "http://dict.cn上\"$xx\"的翻译"
wait
xsel -c
fi
sleep 2
done


页首
 用户资料  
 
6 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-09-01 7:16 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
:em06


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


最后由 O_O_BOT 编辑于 2009-09-08 15:16,总共编辑了 1 次

页首
 用户资料  
 
7 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-09-08 14:20 

注册: 2007-08-26 10:35
帖子: 294
地址: 上海
送出感谢: 0 次
接收感谢: 0 次
我也改了一把,用sdcv来查英文,忽略中文的干扰:
代码:
#!/bin/bash
trans() {
    text=${1:-$(xsel)}
    if echo "$text" | enca | grep -q 'ASCII';then
        word=$(echo "$text" | wc -w)
        if ((word == 1));then
            espeak "$text"
        fi
        get=$(sdcv -n -u 懒虫简明英汉词典 $text)
        [ "$get" ] && xsel -b <<< "$get" && notify-send -u critical -i '~/picture/logo/ubuntu.png' 'stardict翻译' "$get"
    fi
}

while :; do [ "`xsel`" ] && trans && echo | xsel; sleep 2;done


页首
 用户资料  
 
8 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-09-16 13:47 

注册: 2009-08-13 12:11
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
这个需要在什么环境下运行。。。?


页首
 用户资料  
 
9 楼 
 文章标题 : Re: bash google 翻译
帖子发表于 : 2009-09-16 14:08 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
又折腾,我从bash换到perl的,都发过了。

xsel -o


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译