如常见的翻译文案中,当存在多个占位符状况下,须要将多个%s占位符成Android标准占位符格式,如%1 s,%3$s...不然,在Gradle构建过程当中,某些版本的AAPT上会构建失败。html
AAPT: multiple substitutions specified in non-positional format.
复制代码
所以,须要用脚本进行批量替换。 本文Mark下,防止后续用到相似脚本,主要都是一些Python语法细节。markdown
def replace_multi_placeholder_text(input_file):
lines = []
with open(input_file) as src:
for line in src:
num = line.count("%s")
if num > 1:
for i in range(num):
target = '%%%d$s' % (i+1,)
line = line.replace('%s', target, 1)
lines.append(line)
with open(input_file, 'w') as dst:
for line in lines:
dst.write(line)
return
复制代码