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

下圖是準備好的翻譯數據:
這是準備好的翻譯數據
這是執行結果:
這是執行結果

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