summaryrefslogtreecommitdiff
path: root/tools/translations/extract.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/translations/extract.py')
-rw-r--r--tools/translations/extract.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tools/translations/extract.py b/tools/translations/extract.py
new file mode 100644
index 0000000000..ad78a9da60
--- /dev/null
+++ b/tools/translations/extract.py
@@ -0,0 +1,58 @@
+#!/bin/python
+
+import fnmatch
+import os
+import re
+
+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=""
+
+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#:"+fname+":"+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()