Skip to content
Snippets Groups Projects
pre-translate-po 1.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/python3
    
    import polib
    import re
    import sys
    
    def main (f):
        po = polib.pofile(f)
    
        for entry in po:
            if (re.fullmatch(r'-[-a-z0-9[\]]+', entry.msgid)) \
    
               or re.fullmatch(r'((linkgit:)?(git[-a-z0-9[\]]+|mail)(\[[157]\]|\([157]\))(,|;)?(\n| )?)+', entry.msgid) \
    
               or re.fullmatch(r'`[a-zA-Z-_]+`|(user|transfer|submodule|stash|status|splitIndex|showbranch|sendemail|repack|remote|receive|push|merge(tool)?|mailinfo|log|interactive|instaweb|i18n|help|gui|gitweb|fastimport|format|fetch|diff(tool)?|credential|commit|column|core|branch|apply|color|git-p4)\.[a-zA-Z_.]+|araxis|bc3?|codecompare|deltawalker|guiffy|meld|diff(use|merge)|ec?merge|(exam|g?vim|t?k|open|xx)?diff[23]?|(p4|tortoise|win)merge', entry.msgid)\
    
               or re.fullmatch(r'`?GIT_[A-Z_]+`?', entry.msgid):
    
                entry.msgstr = entry.msgid
    
                entry.flags.append("ignore-same")
    
                flags = set(entry.flags)
                entry.flags = list(flags)
    
                if 'fuzzy' in entry.flags:
                    entry.flags.remove('fuzzy')
                    entry.previous_msgid = None
        po.save(f)
    
    if __name__ == '__main__':
        if len(sys.argv)>1:
            main(sys.argv[1])