美文网首页
iOS自动检测国际化文本格式错误脚本

iOS自动检测国际化文本格式错误脚本

作者: 阿古斯年 | 来源:发表于2018-01-30 14:55 被阅读151次

    前段时间公司要上一个海外版的APP,要做国际化,整理了本地化字符串拿去翻译。翻译回来的文案有些格式不小心被改动了,毕竟那么多字符串,不小心改动了也很正常,不能怪人家翻译的人。偏偏xcode这货报错还没有提示是哪一行格式不对,找的是那个头晕眼花啊。只能全部注释掉,然后一段一段的打开注释,编译,找的想吐血。后来在网上找到了一个好用的脚本,在这记录一下,以后就不用这么麻烦了。

    如何使用
    1.  修改 DESPATH 为你项目的路径;
    2.  直接在脚本所在的目录下,打开终端执行 python localizableError.py,这里的 localizableError.py 为脚本文件名。
    3.  执行完成后,控制台会打印报错的代码行。如
    
    图片 1.png

    脚本代码如下:

    # coding=utf-8
    
    import os
    import re
    
    # 将要解析的本地化字符串路径
    DESPATH = "/Users/xxx/Downloads/xxx/xxx/xxx/zh-Hans.lproj"
    
    def filename(filePath):
        return os.path.split(filePath)[1]
    
    def pragram_error(filePath):
        with open(filePath) as f:
            isMutliNote = False
            fname = filePath.replace(DESPATH, '')
            for index, line in enumerate(f):
                line = line.strip()
                
                if '/*' in line:
                    isMutliNote = True
                if '*/' in line:
                    isMutliNote = False
                if isMutliNote:
                    continue
                
                if len(line) == 0 or line == '*/':
                    continue
                
                if re.findall(r'^/+', line):
                    continue
                
                regx = r'^".*s?"\s*=\s*".*?";$'
                matchs = re.findall(regx, line)
                if not matchs:
                    result = fname + ':line[' + str(index) + '] : ' + line
                    print(filePath)
                    print(result)
    
    
    def find_from_file(path):
        paths = os.listdir(path)
        for aCompent in paths:
            aPath = os.path.join(path, aCompent)
            if os.path.isdir(aPath):
                find_from_file(aPath)
            elif os.path.isfile(aPath) and os.path.splitext(aPath)[1]=='.strings':
                pragram_error(aPath)
    
    if __name__ == '__main__':
        find_from_file(DESPATH)
        print('已完成')
    
    

    相关文章

      网友评论

          本文标题:iOS自动检测国际化文本格式错误脚本

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