美文网首页
crowdin文案的自动化统计功能(包含Python联网和xml

crowdin文案的自动化统计功能(包含Python联网和xml

作者: 杨闯 | 来源:发表于2020-03-28 12:30 被阅读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 "获取失败"
    

    相关文章

      网友评论

          本文标题:crowdin文案的自动化统计功能(包含Python联网和xml

          本文链接:https://www.haomeiwen.com/subject/mqmjuhtx.html