一、前言
最近产品需要上架多语言,相比手动一个个去翻译,我想试试看看可不可以用python去实现多语言快速翻译,看过百度翻译官方文档,虽然很友好的提供了接口,同时也有免费额度,但是有些语言并不支持,所以,还是准备找找Google翻译,毕竟是服务于全球的翻译。
二、轮子
出于能不自己写就不自己写的心态,打开了GitHub。最终找到了google_trans_new,废话不多说,直接上代码
import xlrdfrom xlutils import copyfrom google_trans_new import google_translatordef translate_base(text, lang_tgt):t = google_translator(timeout=20)translate_text = t.translate(text, lang_tgt)print(translate_text)return translate_textexcel_file = "本地化语言.xls" # 设置excel文件名file = xlrd.open_workbook(excel_file) # 读取excel文件write_file = copy.copy(file)write_sheet = write_file.get_sheet(0)sheet = file.sheet_by_index(0) #获取所有的sheet页sheet_rows = sheet.nrows # 获取当前sheet行数sheet_cols = sheet.ncols # 获取当前sheet列数for sheet_row in range(1, sheet_rows):sheet_value = str(sheet.cell(sheet_row,0).value)write_sheet.write(sheet_row, 1, translate_base(sheet_value, 'en'))write_sheet.write(sheet_row, 2, translate_base(sheet_value, 'pl'))write_sheet.write(sheet_row, 3, translate_base(sheet_value, 'de'))write_sheet.write(sheet_row, 4, translate_base(sheet_value, 'ru'))write_sheet.write(sheet_row, 5, translate_base(sheet_value, 'fr'))write_sheet.write(sheet_row, 6, translate_base(sheet_value, 'ko'))write_sheet.write(sheet_row, 7, translate_base(sheet_value, 'nl'))write_sheet.write(sheet_row, 8, translate_base(sheet_value, 'ms'))write_sheet.write(sheet_row, 9, translate_base(sheet_value, 'no'))write_sheet.write(sheet_row, 10, translate_base(sheet_value, 'pt'))write_sheet.write(sheet_row, 11, translate_base(sheet_value, 'ja'))write_sheet.write(sheet_row, 12, translate_base(sheet_value, 'sv'))write_sheet.write(sheet_row, 13, translate_base(sheet_value, 'th'))write_sheet.write(sheet_row, 14, translate_base(sheet_value, 'tr'))write_sheet.write(sheet_row, 15, translate_base(sheet_value, 'es'))write_sheet.write(sheet_row, 16, translate_base(sheet_value, 'el'))write_sheet.write(sheet_row, 17, translate_base(sheet_value, 'it'))write_sheet.write(sheet_row, 18, translate_base(sheet_value, 'id'))write_sheet.write(sheet_row, 19, translate_base(sheet_value, 'vi'))write_sheet.write(sheet_row, 20, translate_base(sheet_value, 'zh-hk'))write_file.save(excel_file)
开发思想
首先读取xls格式文件,将需要翻译单元格提出来后,翻译完成后写入相应位置。
有关语言格式 任意门
有关测试文档及代码 任意门