diff options
Diffstat (limited to 'po/update_pot.py')
-rwxr-xr-x | po/update_pot.py | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/po/update_pot.py b/po/update_pot.py index 5b5fe35ae35..616443edc4a 100755 --- a/po/update_pot.py +++ b/po/update_pot.py @@ -1,6 +1,6 @@ #!/usr/bin/python -#update the pot file according the POTFILES.in +# update the pot file according the POTFILES.in import os @@ -12,3 +12,50 @@ cmd = "%s --files-from=%s/po/POTFILES.in --keyword=_ --keyword=N_ --directory=%s 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") |