因為另外一套要錢,所以來用 Microsoft Translator API
#!/usr/bin/env python
# coding: utf-8
import urllib
import sys
import xml.dom.minidom
# Get Bing AppID from https://ssl.bing.com/webmaster/developers/appids.aspx
BING_APPID = 'KERO~'
FILE_FROM = 'lang.properties'
FILE_TO = 'translated.properties'
LANG_FROM = 'en'
LANG_TO = 'zh-chs'
def translate(text, from_lang, to_lang):
base_url = 'http://api.microsofttranslator.com/v2/Http.svc/Translate?'
data = urllib.urlencode({'appId':BING_APPID,
'from': from_lang.encode('utf-8'),
'to': to_lang.encode('utf-8'),
'text': text.encode('utf-8')
})
url = base_url + data
response = urllib.urlopen(url).read()
dom = xml.dom.minidom.parseString(response)
result = dom.documentElement.childNodes[0].nodeValue
return result.encode('utf-8')
def parse_properties(filename):
langs = {}
with open(filename, 'r') as f:
lines = [ line.strip() for line in f.readlines() ]
for line in lines:
idx = line.find('=')
if idx == -1:
continue
(key, val) = (line[:idx], line[idx+1:])
if not key:
continue
langs[key] = val
return langs
def main():
langs = parse_properties(FILE_FROM)
translated = { k: translate(v, LANG_FROM, LANG_TO) if v else ""
for k,v in langs.items() }
with open(FILE_TO, 'w+') as f:
for k,v in sorted(translated.items()):
f.write("%s=%s\n" % (k,v))
if __name__ == '__main__':
main()
隨手寫寫,一年沒寫文章,也許有點刻意,差不多該是改變的時候了。