本地化脚本 Excel转XML

#coding=utf-8
import xlwt
import xlrd
import codecs
import sys
from xml.dom import minidom
from HTMLParser import HTMLParser

import xml.etree.ElementTree as ET


def toXML(filePath):
	data = xlrd.open_workbook(filePath);
	global sheet
	sheet = data.sheet_by_name("translate")
	html = HTMLParser()

	rows = sheet.nrows
	cols = sheet.ncols

	global row
	global col
	row = 1
	col = 3

	for col in range(2,cols):
		impl = minidom.getDOMImplementation()
		dom = impl.createDocument(None, 'resources', None)
		root = dom.documentElement
		title = sheet.cell(0, col).value
		print col, title
		for row in range(1,rows):
			attri = sheet.cell(row, 1).value
			var = sheet.cell(row, col).value
			print var
			xmlItem = dom.createElement('string')
			val = dom.createTextNode(var)
			xmlItem.setAttribute("name", attri)
			xmlItem.appendChild(val)
			root.appendChild(xmlItem)
		print dom.toprettyxml(encoding='utf-8')
		s = html.unescape(dom.toprettyxml(encoding='utf-8').decode('utf-8'))
		f = open('string' + title + '.xml', 'w')
		f.write(s)
		f.close()

def readPath():
	filePath = raw_input("拖入本地化Excel \n 注意: 需要xls格式, 第一行为语言简写,第一列为场景或空,第二列为ID,第三列开始是翻译文案,sheet 名字为:translate\n")
	print "文件路径是:" + filePath
	return filePath

reload(sys)
sys.setdefaultencoding('utf-8')
filePath = readPath()
toXML(filePath)

132528_MeEX_591636.png

xls文件格式

目前还存在转换完成的XML需要人工手动对应到values的strings.xml文件并粘贴进去。自动添加的话,需要约定规则。如有使用者,自己改进吧。

主要解决了文本中使用HTML标签,在写入到文件时自动转义特殊字符的问题。

转载于:https://my.oschina.net/zhibuji/blog/788072

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值