代码: 全选
#!/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>'
代码: 全选
#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;
}