#!/usr/bin/python # -*- encoding: utf-8 -*- import fnmatch import polib import re import os import string start_directory = '../..' language_filename = '*.pot' search_replace_regex = [ ] search_module = False # ['sale', 'stock'] valid_entries = [] for root, dirs, files in os.walk(start_directory): for filename in fnmatch.filter(files, language_filename): print filename src = os.path.join(root, filename) try: po = polib.pofile(src) except IOError as e: print "ERROR", e continue for e in po: if not e.obsolete: valid_entries.append(e) po2 = polib.POFile() cnt = 0 for se in search_replace_regex: for entry in valid_entries: module = re.search(u'(module:)(.*)', entry.comment) if module: module = module.group(2).strip() if search_module is False or module in search_module: if re.search(se[0], entry.msgstr): entry.msgstr = string.replace(entry.msgstr, se[0], se[1]) po2.append(entry) cnt += 1 print entry.msgid, "<->", entry.msgstr, cnt elif re.search(se[0], entry.msgid): entry.msgstr = se[1] po2.append(entry) cnt += 1 print entry.msgid, "<->", entry.msgstr, cnt po2.save('../../setup/auto_translated3.po')