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 "获取失败"

其中

如果不太擅长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 "获取失败"
上一篇下一篇

猜你喜欢

热点阅读