命令行偏执狂们都喜欢用字符命令搞定一切,当然应该包括翻译在内。最近兄弟我在翻译
Django 1.0 的 zh_CN locale 文件时,颇为那一大堆国名地名所困扰。为了准确翻译,要把这些名词逐一在
Poedit 和
Pidgin(我用的是
Google Talk en2zh bot: en2zh@bot.talk.google.com)两个窗口之间来回反复拷贝粘贴。拷贝原文,粘贴原文,回车,拷贝译文,粘贴译文——翻译一个地名至少需要耗费五步操作,翻译两百个地名就是一千次操作,怎么不头晕呢?
于是就想到利用
xmpppy 来制作一个 en2zh 命令行工具,实现自动翻译。好在
xmpppy 已经提供了
xtalk.py 代码样例,只要略作修改即可:
--- xtalk.py 2006-10-06 20:30:42.000000000 +0800 +++ en2zh.py 2008-09-07 08:37:22.000000000 +0800 @@ -1,4 +1,6 @@ #!/usr/bin/python +# en2zh.py = xtalk.py + en2zh@bot.talk.google.com +# @Copyleft 2008 hutuworm (http://hutuworm.blogspot.com) # $Id: xtalk.py,v 1.2 2006/10/06 12:30:42 normanr Exp $ import sys,os,xmpp,time,select
@@ -15,7 +17,8 @@ type = event.getType() fromjid = event.getFrom().getStripped() if type in ['message', 'chat', None] and fromjid == self.remotejid: - sys.stdout.write(event.getBody() + '\n') + sys.stdout.write(event.getBody().encode('utf8') + '\n' ) + sys.exit(0)
def stdio_message(self, message): m = xmpp.protocol.Message(to=self.remotejid,body=message,typ='chat') @@ -27,22 +30,23 @@ if not con: sys.stderr.write('could not connect!\n') return False - sys.stderr.write('connected with %s\n'%con) + #sys.stderr.write('connected with %s\n'%con) auth=self.jabber.auth(jid.getNode(),jidparams['password'],resource=jid.getResource()) if not auth: sys.stderr.write('could not authenticate!\n') return False - sys.stderr.write('authenticated using %s\n'%auth) + #sys.stderr.write('authenticated using %s\n'%auth) self.register_handlers() return con
if __name__ == '__main__':
if len(sys.argv) < 2: - print "Syntax: xtalk JID" + print "Syntax: en2zh text" sys.exit(0)
- tojid=sys.argv[1] + tojid='en2zh@bot.talk.google.com' + text=sys.argv[1]
jidparams={} if os.access(os.environ['HOME']+'/.xtalk',os.R_OK): @@ -66,6 +70,8 @@ sys.exit(1)
#cl.SendInitPresence(requestRoster=0) # you may need to uncomment this for old server + + bot.stdio_message(text)
socketlist = {cl.Connection._sock:'xmpp',sys.stdin:'stdio'} online = 1
|
或者直接下载修改后的 en2zh.py:
http://github.com/hutuworm/minitrue/tree/master/en2zh.py然后按以下步骤设置并使用:
0. 安装 xmpppy: $
easy_install xmpppy1. 在 home 目录中创建 .xtalk 配置文件,设定你的 Google Talk 用户名和密码,为了安全起见,必须将该文件权限设为 0600:
$ cat .xtalk
#Uncomment fields before use and type in correct credentials. #JID=romeo@montague.net/resource (/resource is optional) #PASSWORD=juliet JID=your-id@gmail.com PASSWORD=your-password $ chmod 0600 .xtalk |
2. 测试翻译:
$ python en2zh.py "Bosnia and Herzegovina"
波斯尼亚和黑塞哥维那 |
3. 自行编写任意命令代码,调用 en2zh.py 完成自动翻译工作。(注意:Google Talk en2zh bot 比较适合翻译名词、短语,翻译完毕之后无论如何一定要检查一遍。)
3 评论:
超赞!
BTW: blogspot 这模板真的不错啊
发现博主最近两个月发文量突然增大~~
^_^ 继续加油啊~~
其实是惯性使然。此前每个月至少要输出八万字,交稿之后突然停了下来,刹车刹不住,只好再往前滑行一段,留下一些车胎烧灼的印迹。
感谢关注! :)
发表评论