diff -r 058bb3dc685f -r 0b59724cb3f2 devtools/fix_po_encoding --- a/devtools/fix_po_encoding Mon Jan 04 18:40:30 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -#!/usr/bin/python - -"""usage: fix-po-encodings [filename...] -change the encoding of the po files passed as arguments to utf-8 -""" -import sys -import re -import codecs - -def change_encoding(filename, target='UTF-8'): - fdesc = open(filename) - data = fdesc.read() - fdesc.close() - encoding = find_encoding(data) - if encoding == target: - return - data = fix_encoding(data, target) - data = unicode(data, encoding) - fdesc = codecs.open(filename, 'wb', encoding=target) - fdesc.write(data) - fdesc.close() - -def find_encoding(data): - regexp = re.compile(r'"Content-Type:.* charset=([a-zA-Z0-9-]+)\\n"', re.M) - mo = regexp.search(data) - if mo is None: - raise ValueError('No encoding declaration') - return mo.group(1) - -def fix_encoding(data, target_encoding): - regexp = re.compile(r'("Content-Type:.* charset=)(.*)(\\n")', re.M) - return regexp.sub(r'\1%s\3' % target_encoding, data) - - - -for filename in sys.argv[1:]: - print filename - change_encoding(filename)