Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'po/update_pot.py')
-rwxr-xr-xpo/update_pot.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/po/update_pot.py b/po/update_pot.py
new file mode 100755
index 00000000000..616443edc4a
--- /dev/null
+++ b/po/update_pot.py
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+
+# update the pot file according the POTFILES.in
+
+import os
+
+GETTEXT_XGETTEXT_EXECUTABLE="xgettext"
+SOURCE_DIR=".."
+DOMAIN="blender"
+
+cmd = "%s --files-from=%s/po/POTFILES.in --keyword=_ --keyword=N_ --directory=%s --output=%s/po/%s.pot --from-code=utf-8" % (
+ GETTEXT_XGETTEXT_EXECUTABLE, SOURCE_DIR, SOURCE_DIR, SOURCE_DIR, DOMAIN)
+
+os.system( cmd )
+
+def stripeol(s):
+ if line.endswith("\n"):
+ s = s[:-1]
+
+ if line.endswith("\r"):
+ s = s[:-1]
+
+ return s
+
+pot_messages = {}
+reading_message = False
+message = ""
+with open("blender.pot", 'r') as handle:
+ while True:
+ line = handle.readline()
+
+ if not line:
+ break
+
+ line = stripeol(line)
+ if line.startswith("msgid"):
+ reading_message = True
+ message = line[7:-1]
+ elif line.startswith("msgstr"):
+ reading_message = False
+ pot_messages[message] = True
+ elif reading_message:
+ message += line[1:-1]
+
+# add messages collected automatically from RNA
+with open("blender.pot", "a") as pot_handle:
+ with open("messages.txt", 'r') as handle:
+ while True:
+ line = handle.readline()
+
+ if not line:
+ break
+
+ line = stripeol(line)
+ line = line.replace("\\", "\\\\")
+ line = line.replace("\"", "\\\"")
+
+ if not pot_messages.get(line):
+ pot_handle.write("\n#: Automatically collected from RNA\n")
+ pot_handle.write("msgid \"%s\"\n" % (line))
+ pot_handle.write("msgstr \"\"\n")