Android导出多个语言的strings.xml到excel表格中

1,080 阅读1分钟
import xml.dom.minidom  
import xlwt  
  
res_en_string = "G:/xml/merged0.xml"  
res_cs_string = "G:/xml/merged1.xml"  
res_de_string = "G:/xml/merged2.xml"  
res_es_string = "G:/xml/merged3.xml"  
res_fr_string = "G:/xml/merged4.xml"  
res_hu_string = "G:/xml/merged5.xml"  
res_it_string = "G:/xml/merged6.xml"  
res_ja_string = "G:/xml/merged7.xml"  
res_nl_string = "G:/xml/merged8.xml"  
res_pt_string = "G:/xml/merged9.xml"  
res_ro_string = "G:/xml/merged10.xml"  
res_zh_string = "G:/xml/merged11.xml"  
res_zh_rTW_string = "G:/xml/merged12.xml"  
  
  
# def hasChinese(string):  
# for ch in string:  
# if u'\u4e00' <= ch <= u'\u9fff':  
# return True  
# return False  
  
  
def get_text(nodelist):  
rc = []  
for node in nodelist:  
if node.nodeType == node.TEXT_NODE:  
rc.append(node.data)  
return ''.join(rc)  
  
  
# 导出所有语言文本  
def export_xml():  
doc_en = xml.dom.minidom.parse(res_en_string)  
doc_cs = xml.dom.minidom.parse(res_cs_string)  
doc_de = xml.dom.minidom.parse(res_de_string)  
doc_es = xml.dom.minidom.parse(res_es_string)  
doc_fr = xml.dom.minidom.parse(res_fr_string)  
doc_hu = xml.dom.minidom.parse(res_hu_string)  
doc_it = xml.dom.minidom.parse(res_it_string)  
doc_ja = xml.dom.minidom.parse(res_ja_string)  
doc_nl = xml.dom.minidom.parse(res_nl_string)  
doc_pt = xml.dom.minidom.parse(res_pt_string)  
doc_ro = xml.dom.minidom.parse(res_ro_string)  
doc_zh = xml.dom.minidom.parse(res_zh_string)  
doc_zh_r_tw = xml.dom.minidom.parse(res_zh_rTW_string)  
  
strings_en = doc_en.getElementsByTagName('string')  
strings_cs = doc_cs.getElementsByTagName('string')  
strings_de = doc_de.getElementsByTagName('string')  
strings_es = doc_es.getElementsByTagName('string')  
strings_fr = doc_fr.getElementsByTagName('string')  
strings_hu = doc_hu.getElementsByTagName('string')  
strings_it = doc_it.getElementsByTagName('string')  
strings_ja = doc_ja.getElementsByTagName('string')  
strings_nl = doc_nl.getElementsByTagName('string')  
strings_pt = doc_pt.getElementsByTagName('string')  
strings_ro = doc_ro.getElementsByTagName('string')  
strings_zh = doc_zh.getElementsByTagName('string')  
strings_zh_r_tw = doc_zh_r_tw.getElementsByTagName('string')  
  
column_key = 0  
  
column_en = 1  
column_cs = 2  
column_de = 3  
column_es = 4  
column_fr = 5  
column_hu = 6  
column_it = 7  
column_ja = 8  
column_nl = 9  
column_pt = 10  
column_ro = 11  
column_zh = 12  
column_zh_r_tw = 13  
  
wb = xlwt.Workbook(encoding='utf-8')  
worksheet = wb.add_sheet('Sheet1', True)  
  
worksheet.write(0, column_key, 'key')  
worksheet.write(0, column_en, '英语')  
worksheet.write(0, column_cs, '捷克语')  
worksheet.write(0, column_de, '德语')  
worksheet.write(0, column_es, '西班牙语')  
worksheet.write(0, column_fr, '法语')  
worksheet.write(0, column_hu, '匈牙利语')  
worksheet.write(0, column_it, '意大利语')  
worksheet.write(0, column_ja, '日语')  
worksheet.write(0, column_nl, '荷兰语')  
worksheet.write(0, column_pt, '葡萄牙语')  
worksheet.write(0, column_ro, '罗马尼亚语')  
worksheet.write(0, column_zh, '简体中文')  
worksheet.write(0, column_zh_r_tw, '繁体中文')  
line = 1  
  
for string_en in strings_en:  
name = string_en.getAttribute('name')  
text_en = get_text(string_en.childNodes)  
text_cs = ' '  
text_de = ' '  
text_es = ' '  
text_fr = ' '  
text_hu = ' '  
text_it = ' '  
text_ja = ' '  
text_nl = ' '  
text_pt = ' '  
text_ro = ' '  
text_zh = ' '  
text_zh_r_tw = ' '  
  
for string_cs in strings_cs:  
if string_cs.getAttribute('name') == name:  
text_cs = get_text(string_cs.childNodes)  
break  
for string_de in strings_de:  
if string_de.getAttribute('name') == name:  
text_de = get_text(string_de.childNodes)  
break  
for string_es in strings_es:  
if string_es.getAttribute('name') == name:  
text_es = get_text(string_es.childNodes)  
break  
for string_fr in strings_fr:  
if string_fr.getAttribute('name') == name:  
text_fr = get_text(string_fr.childNodes)  
break  
for string_hu in strings_hu:  
if string_hu.getAttribute('name') == name:  
text_hu = get_text(string_hu.childNodes)  
break  
for string_it in strings_it:  
if string_it.getAttribute('name') == name:  
text_it = get_text(string_it.childNodes)  
break  
for string_ja in strings_ja:  
if string_ja.getAttribute('name') == name:  
text_ja = get_text(string_ja.childNodes)  
break  
for string_nl in strings_nl:  
if string_nl.getAttribute('name') == name:  
text_nl = get_text(string_nl.childNodes)  
break  
for string_pt in strings_pt:  
if string_pt.getAttribute('name') == name:  
text_pt = get_text(string_pt.childNodes)  
break  
for string_ro in strings_ro:  
if string_ro.getAttribute('name') == name:  
text_ro = get_text(string_ro.childNodes)  
break  
for string_zh in strings_zh:  
if string_zh.getAttribute('name') == name:  
text_zh = get_text(string_zh.childNodes)  
break  
for string_zh_rTW in strings_zh_r_tw:  
if string_zh_rTW.getAttribute('name') == name:  
text_zh_r_tw = get_text(string_zh_rTW.childNodes)  
break  
worksheet.write(line, column_key, name)  
worksheet.write(line, column_en, text_en)  
worksheet.write(line, column_cs, text_cs)  
worksheet.write(line, column_de, text_de)  
worksheet.write(line, column_es, text_es)  
worksheet.write(line, column_fr, text_fr)  
worksheet.write(line, column_hu, text_hu)  
worksheet.write(line, column_it, text_it)  
worksheet.write(line, column_ja, text_ja)  
worksheet.write(line, column_nl, text_nl)  
worksheet.write(line, column_pt, text_pt)  
worksheet.write(line, column_ro, text_ro)  
worksheet.write(line, column_zh, text_zh)  
worksheet.write(line, column_zh_r_tw, text_zh_r_tw)  
  
line = line + 1  
  
wb.save('多语言翻译集合.xls')  
  
  
if __name__ == '__main__':  
export_xml()