因為另外一套要錢,所以來用 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()
隨手寫寫,一年沒寫文章,也許有點刻意,差不多該是改變的時候了。