升C小调狂想曲

<递归的忧伤>
posts - 10, comments - 71, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

简单地调用Google翻译API

Posted on 2009-06-03 21:00 陈坤 阅读(7234) 评论(5)  编辑 收藏 引用 所属分类: Flashing Ideas

JustType新命令translate~ 实时翻译! 废话不多说,截2个图先:(http://justtype.cloudapp.net 我前一篇博文有更详细地介绍这个JustType项目)

image

image

 

我们经常会有这种需求,就是翻译一小段看不太懂的外语。Google提供了翻译服务,但是如果每次都要打开Google那个翻译页面,倒也挺麻烦。于是我把翻译功能也做成了JustType的命令,现在在JustType中就可以通过translate命令来翻译任何语言的文字了。想体验的话:http://justtype.cloudapp.net

 

整个translate命令的脚本代码很简单,先用正则表达式分析了命令结构,然后向网页写入javascript代码,在javascript中引用google函数库,调用对应函数即可:

import System
import System.Text
import System.Text.RegularExpressions
import System.Web

from System.Text.RegularExpressions import *

def OnCommand(command):
    sourceLang = "en"
    targetLang = "zh"
    text = command
    chkAdvancedUsage = Regex("(?<text>(.|\n)+?)\\s+from (?<from>[a-zA-Z]+) to (?<to>[a-zA-Z]+)")
    m = chkAdvancedUsage.Match(command)
    if m.Success:
        sourceLang = m.Groups["from"].Value
        targetLang = m.Groups["to"].Value
        text = m.Groups["text"].Value
    render = "<div id=\"divTranslation\" style=\"background-color:#f0f8ff; border:dotted 1px gray; padding:5px; width:500px; \"></div>\n"
    render += "<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>\n"
    render += "<script type=\"text/javascript\">\n"
    render += "google.load(\"language\", \"1\");\n"
    render += "function initializeTranslation() { google.language.translate(\"" + System.Web.HttpUtility.HtmlEncode(text.Replace("\n", " ").Replace("\r", "")) + "\",\"" + sourceLang + "\", \"" + targetLang + "\", function(result) {\n"
    render += "if (!result.error) { document.getElementById(\"divTranslation\").innerHTML = result.translation; } else { document.getElementById(\"divTranslation\").innerHTML = \"error!\" }\n"
    render += "}); }"
    render += "google.setOnLoadCallback(initializeTranslation);"
    render += "</script>"
    SetTipText(render)
    return True

 

在JustType中,一个命令对应一个执行脚本,我们可以自己写新脚本,同时可以允许其他人调用自己写的程序。大家互相分享自己智慧的同时,也在利用编程技术增加自己和他人的工作效率。更多的信息请到http://justtype.cloudapp.net 获取。 :)

Feedback

# re: 简单地调用Google翻译API[未登录]  回复  更多评论   

2009-06-04 09:39 by megax
想法很好,但是不看好这种运行于web的,通用性不够。这样的工具必须嵌入于经常用的软件中,比如编辑器,输入法之类的才会有前途。其它的只能当做个人用的玩具

# re: 简单地调用Google翻译API  回复  更多评论   

2009-06-04 10:52 by 陈坤
@megax

这些命令可以以Web Service的方式调用,因此我们可以在任意客户端软件上调用这些命令。我正在开发一个Firefox上的插件,提供一个文本框来让用户在浏览网页的同时方便地使用JustType。

# re: 简单地调用Google翻译API  回复  更多评论   

2009-06-04 12:40 by foxtail
你终于又开始写东西啦
呵呵 好久了哇

# re: 简单地调用Google翻译API  回复  更多评论   

2009-06-04 12:54 by 陈坤
@foxtail

呵呵,好久不见啊。之前在搞毕业设计~

# re: 简单地调用Google翻译API  回复  更多评论   

2009-06-04 17:55 by 东方CJ
想法很好

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理