基于百度翻译API实现国际化自动翻译脚本
(背景:手写多语言的KEY,替换文件中的中文繁琐、耗时)
1、通过接入百度翻译API生成xx.strings所需要的KEY
2、通过分析项目中的.m文件找到所需的翻译的中文,生成KEY、VALUE的对应关系,并替换.m文件中的中文
3、将翻译生成的对应关系的词条写入xx.strings文件
操作方式:
进入项目autoTranslation.py所在的目录下,执行python autoTranslation.py "HBTest"
tips:HBTest代表xx.strings中KEY的前缀
目录如下
主要需要三个python文件,如果自己路径有变化,修改成对应路径。
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
fliterFileNameList=['xx.m']//过滤部分不需要翻译的文件
import os,sys
from autoTranslationHelper import translateHelper
def filter_oc_file(dirpath,pretext):
L1=[]
ext = ('.m','.mm')
for x in os.listdir(dirpath):
if x not in fliterFileNameList:
fullPath=os.path.join(dirpath,x)
L1.append(fullPath)
L1 = [x for x in L1 if os.path.isfile(x) and x.endswith(ext)]
if L1:
[translateHelper.handle_oc_file(x,pretext) for x in L1]
L2 = [os.path.join(dirpath,x) for x in os.listdir(dirpath)]
L2 = [x for x in L2 if os.path.isdir(x)]
if L2:
[filter_oc_file(x,pretext) for x in L2]
if __name__ == '__main__':
translateHelper.remove_Localized()
dirpath = os.path.abspath('./xx/xxx')//需要翻译的文件夹目录
filter_oc_file(dirpath,sys.argv[1])
translateHelper.write_oc_file()
print('----------------------FINISH-----------------------')
print('---------------------------------------------------')
# -*- coding: utf-8 -*-
import os,datetime,re
from autoTranslationHelper import translate
SPLIT_LIST = ('%@', '%d', '%ld', '%lld', '%f')
def handle_oc_file(filepath,pre