crowdin文案的自动化统计功能(包含Python联网和xml
2020-03-28 本文已影响0人
杨闯
对于本地化语言处理,一些公司使用crowdin平台,有的时候,作为开发者,肯定要看对应的各个语言是否翻译完成,全都要人工操作,但是可以通过crowdin的api进行获取相应的状态,然后通过钉钉机器人等操作直接提示给相关人员。
在这里,crowdin操作中主要有两种处理,一个是联网获取相应数据,一个是通过xml解析获取到对应的数据。
import requests # 为了能够联网请求数据
import xml.dom.minidom # 为了进行xmml解析
具体使用到的api可见 https://support.crowdin.com/api/language-status/
在这里只展现部门的功能函数处理
def getIosNUms(languageCode):
dic = {}
dic['key'] = 'crowdin上的key'
dic['language'] = languageCode
oneR = requests.post("https://api.crowdin.com/api/project{project-identifier}/language-status", dic)
if oneR.status_code == 200:
DOMTree = xml.dom.minidom.parseString(oneR.text)
collection = DOMTree.documentElement
items = collection.getElementsByTagName("item")
for item in items:
name = item.getElementsByTagName('name')[0]
if name.childNodes[0].data == '你所创建的name':
phrases = int(item.getElementsByTagName('phrases')[0].childNodes[0].data)
translated = int(item.getElementsByTagName('translated')[0].childNodes[0].data)
approved = int(item.getElementsByTagName('approved')[0].childNodes[0].data)
if phrases > approved or phrases > translated:
return "未完成"
return "已完成"
return "获取失败"
其中
- {project-identifier} 是开发者所创建的project
- languageCode 可以详见 https://support.crowdin.com/api/language-codes/
如果不太擅长xml的解析,或者感觉xml的解析太古老,可以用json解析处理,具体处理如下:
将xml的导入替换为json的import
import json
在请求的字典里添加key json
dic['json'] = '1'
然后在解析中做如下的操作即可
if oneR.status_code == 200:
respnse = json.loads(oneR.text)
if "files" in respnse:
files = respnse["files"]
for file in files:
if 'name' in file:
if file['name'] == '你所创建的name':
phrases = int(file['phrases'])
translated = int(file['translated'])
approved = int(file['approved'])
if phrases > approved or phrases > translated:
return "未完成"
return "已完成"
return "获取失败"