您的位置:首页 > 编程语言 > Python开发

用python将%格式化字符串转换成xliff格式

2017-06-21 21:11 316 查看

1. xliff是什么

xliff是Android中的用以格式化字符串的一种东西。%d这种会转换成<xliff:g id="xxx">%1$d</xliff:g>这种。
具体见https://developer.android.com/guide/topics/resources/string-resource.html

2. 代码

class XliffMaker(object):
"""class for XliffMaker"""
def __init__(self, s):
super(XliffMaker, self).__init__()
self.s = s

def make(self):
reg = re.compile(STRING_REGEX)
idx = 1
targetStrHead = '<xliff:g id="FMT_STR_ID">'
targetStrBoot = '</xliff:g>'
targetStr = targetStrHead
mediemStr = ""

otherStrList = reg.split(self.s)

replacedList = []
for m in reg.finditer(self.s):
s0 = m.group()
s1 = ""
if 'd' in s0:
reg0 = re.compile(r'%(\d+)d')
s1 = '%%%d$%sd' % (idx, reg0.search('%2d').group(1))
elif 's' in s0:
s1 = '%%%d$s' % idx
replacedList.append(s1)
idx = idx + 1

ret = zip(otherStrList, replacedList)
for t in ret:
mediemStr = mediemStr + "".join(t)
mediemStr = mediemStr + otherStrList[-1]

return targetStr + mediemStr + targetStrBoot


目前只支持%d和%s两种格式!其中,%d可以使用位数限制格式,例如%2d代表2位数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xliff android python tools