54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
#!/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')
 |