python批量替换app多国语言翻译字符串

背景:

开发的APP需要导入多国语言,研发需要将翻译后的字符串复制到values下的stings.xml中,六国语言复制的工作量太大,一开始想着使用Excel的批量替换,百度了一下给office装了个插件叫做方方格子
但我电脑上始终用不了这个插件,于是乎用python写脚本来实现这个功能

思路:

取stings.xml数据表中的第一行,再遍历translate.xlsx翻译文件寻找与之对应的翻译,最后用replace将翻译替换上去
取stings.xml数据表中的第二行,再遍历…以此类推…

上代码

from openpyxl import load_workbook

fn = "..\\case\\strings.xlsx"            #导入Android Studio内的字符串xml文件(转换成了xlsx文件)
ws = load_workbook(fn)                           # 打开fn文件,workbook:工作簿(excel文件)
st = ws["Sheet2"]                               #得到工作簿中的Sheet2表格
nRow=0                                          #行计数器
for row in st.iter_rows():                      #遍历每一行的数据,此时row为一个list,里面的元素为每一行的单元格
    nRow += 1
    fn1 = "..\\case\\translate.xlsx"                     # 导入多国语言数据表
    ws1 = load_workbook(fn1)                          # 打开fn文件,workbook:工作簿(excel文件)
    st1 = ws1["Sheet1"]
    for row1 in st1.iter_rows():
        if str(row1[0].value) in str(row[0].value):
            result = str(row[0].value).replace(str(row1[0].value),str(row1[1].value))   #replace(old,new),replace方法将旧字符串替换成新字符串
            st["B" + str(nRow)] = result                                                    #将替换后的表格存放到B列
        if row1[0].value == "%END%":                                                       #识别到%END%后停止循环
            break
    if row[0].value == "%END%":
        break
ws.save(fn)                 #保存并退出excel

下图是准备好的翻译数据:
这是准备好的翻译数据
这是执行结果:
这是执行结果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章