import os from string import * def get_po_stat(pofile): import string msgfmt_msg = ['translated', 'fuzzy', 'untranslated'] cmd = 'msgfmt -v -o /dev/null' cmd = cmd + ' ' + pofile print cmd (fin,fout,ferr) = os.popen3(cmd) result = ferr.read() print result bb = string.split(result) fin.close() ; fout.close() ; ferr.close() result = [0,0,0] for x in range(len(bb) / 3): if (bb[3 * x + 1] == msgfmt_msg[0]): result[0] = int(bb[3 * x]) elif (bb[3 * x + 1] == msgfmt_msg[1]): result[1] = int(bb[3 * x]) elif (bb[3 * x + 1] == msgfmt_msg[2]): result[2] = int(bb[3 * x]) #print result return result def get_template(): (temp_out, temp_in) = os.popen2('find templates/ -name *.pot') temp_ar = temp_in.readlines() temp_doc = {} temp_po = {} for x in temp_ar: line = strip(x) tokens = split(line, '/') if (tokens[1] == 'docs'): key = tokens[2] for y in range(len(tokens) - 3): key = key + '/' + tokens[y+3] temp_doc [key] = 1 else: key = tokens[1] for y in range(len(tokens) - 2): key = key + '/' + tokens[y+2] temp_po [key] = 1 return (temp_doc, temp_po) def get_zh_TW(): (temp_out, temp_in) = os.popen2('find zh_TW/ -name *.po') temp_ar = temp_in.readlines() temp_doc = {} temp_po = {} for x in temp_ar: line = strip(x) tokens = split(line, '/') if (tokens[1] == 'docs'): key = tokens[2] for y in range(len(tokens) - 3): key = key + '/' + tokens[y+3] temp_doc [key] = 1 else: key = tokens[2] for y in range(len(tokens) - 3): key = key + '/' + tokens[y+3] temp_po [key] = 1 return (temp_doc, temp_po) msgmerg_cmd = '/usr/bin/msgmerge x.po x.pot' msgmerg_cmd = '/usr/bin/msgmerge' (temp_doc, temp_po) = get_template() (zh_TW_doc, zh_TW_po) = get_zh_TW() zh_TW_po_stat = {} for x in temp_po.keys(): if zh_TW_po.has_key(x[0:-1]): cmd = msgmerg_cmd + \ ' zh_TW/messages/' + x[0:-1] + \ ' templates/' + x + \ ' > msgmerge/messages/' + x[0:-1] #print x[0:-1], 1 # system(cmd) zh_TW_po_stat [x[0:-1]] = \ get_po_stat('msgmerge/messages/' + x[0:-1]) else: #print x[0:-1], 0 zh_TW_po_stat [x[0:-1]] = \ get_po_stat('templates/' + x) exit zh_TW_po_stat_keys = zh_TW_po_stat.keys() zh_TW_po_stat_keys.sort() print """ ????¦W ¤w翻譯 fuzzy ¥¼翻譯 """ for x in zh_TW_po_stat_keys: val = zh_TW_po_stat[x] print "" print "\t" + x + "" for i in range(3): print "\t" + str(val[i]) + "" print "" #for x in zh_TW_po_stat.keys(): # print x, zh_TW_po_stat[x] # print x, 1 # else: # print x, 0