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:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-09-15 17:20:18 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-09-15 17:20:18 +0400
commit0eda51f2eabe24016efdc8f07825f1ba667cac33 (patch)
tree03d6f876da6b1256b8890b89db09b63952fa544f /po/update_pot.py
parent30293dc2ca8052ad0c7113c77365feca590f4d05 (diff)
Fixing issues with i18n stuff:
- Make gettext stuff draw-time. so switching between languages can happens without restart now. - Added option to translate visible interface (menus, buttons, labels) and tooltips. Now it's possible to have english UI and localized tooltips. - Clean-up sources, do not use gettext stuff for things which can be collected with RNA. - Fix issues with windows 64bit and ru_RU locale on my desktop (it was codepage issue). - Added operator "Get Messages" which generates new text block with with all strings collected from RNA. - Changed script for updating blender.pot so now it appends messages collected from rna to automatically gathered messages. To update .pot you have to re-generate messages.txt using "Get Messages" operator and then run update_pot script. - Clean up old translation stuff which wasn't used and most probably wouldn't be used. - Return back "International Fonts" option, so if it's disabled, no gettext lookups happens on draw. - Merged read_homefile function back. No need in splitting it. TODO: - Custom fonts and font size. Current font isn't nice at least for russian locale, it's difficult to read it. - Put references to messages.txt so gettext can merge translation when name/description of some property changes.
Diffstat (limited to 'po/update_pot.py')
-rwxr-xr-xpo/update_pot.py49
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")