#!/bin/python import fnmatch import os import re import shutil import subprocess if (not os.path.exists("tools")): os.sys.exit("ERROR: This script should be started from the root of the git repo.") matches = [] for root, dirnames, filenames in os.walk('.'): for filename in fnmatch.filter(filenames, '*.cpp'): if (filename.find("collada")!=-1): continue matches.append(os.path.join(root, filename)) for filename in fnmatch.filter(filenames, '*.h'): if (filename.find("collada")!=-1): continue matches.append(os.path.join(root, filename)) unique_str=[] main_po="" print("Updating the tools.pot template...") for fname in matches: f = open(fname,"rb") new_f = "" l = f.readline() lc=1 while(l): pos = 0 while(pos>=0): pos = l.find('TTR(\"',pos) if (pos==-1): break pos+=5 msg="" while (pos < len(l) and (l[pos]!='"' or l[pos-1]=='\\') ): msg+=l[pos] pos+=1 if (not msg in unique_str): main_po+="\n#: "+os.path.relpath(fname).replace('\\','/')+":"+str(lc)+"\n" main_po+='msgid "'+msg+'"\n' main_po+='msgstr ""\n' unique_str.append(msg) l = f.readline() lc+=1 f.close() f = open("tools.pot","wb") f.write(main_po) f.close() shutil.move("tools.pot", "tools/translations/tools.pot") # TODO: Make that in a portable way, if we care; if not, kudos to Unix users if (os.name == "posix"): added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell=True) removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell=True) print("Template changes compared to the staged status:") print(" Additions: %s msgids.\n Deletions: %s msgids." % (int(added), int(removed)))