diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-09-20 21:07:33 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-09-20 21:07:33 +0400 |
commit | 8cf8fd7326f0961bad2cd633092fccbcadf0cc92 (patch) | |
tree | d3ea45fcf0ea4a6a242a5c942a06caf01fac6d55 | |
parent | 9d1b4b63b33b77505f4399a4db4f462f5b1fd1eb (diff) |
- translation scripts now run with py3.x
- added convenience make target 'make translations'
- some MEM_malloc strings were not unique enough, expanded them.
-rw-r--r-- | GNUmakefile | 13 | ||||
-rwxr-xr-x | po/update_mo.py | 56 | ||||
-rwxr-xr-x | po/update_po.py | 55 | ||||
-rwxr-xr-x | po/update_pot.py | 118 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 2 | ||||
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 2 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_interface_atexit.c | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 2 |
9 files changed, 187 insertions, 67 deletions
diff --git a/GNUmakefile b/GNUmakefile index d587668cf0c..1c8bb0f82a9 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -130,6 +130,10 @@ help: @echo " * package_pacman - build an arch linux pacmanpackage" @echo " * package_archive - build an archive package" @echo "" + @echo "Other Targets" + @echo " * translations - update blenders translation files in po/" + # TODO, doxygen and sphinx docs + @echo "" @echo "Testing Targets (not assosiated with building blender)" @echo " * test - run ctest, currently tests import/export, operator execution and that python modules load" @echo " * test_cmake - runs our own cmake file checker which detects errors in the cmake file list definitions" @@ -157,6 +161,15 @@ package_archive: # ----------------------------------------------------------------------------- +# Other Targets +# +translations: + python3 po/update_pot.py + python3 po/update_po.py + python3 po/update_mo.py + + +# ----------------------------------------------------------------------------- # Tests # test: diff --git a/po/update_mo.py b/po/update_mo.py index 4effdc65541..e0317f74dd7 100755 --- a/po/update_mo.py +++ b/po/update_mo.py @@ -1,17 +1,53 @@ -#!/usr/bin/python +#!/usr/bin/env python + +# $Id: +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ***** END GPL LICENSE BLOCK ***** + +# <pep8 compliant> # update all mo files in the LANGS +import subprocess import os -LOCALE_DIR="../release/bin/.blender/locale" -PO_DIR = "." +CURRENT_DIR = os.path.dirname(__file__) +SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.join(CURRENT_DIR, ".."))) +LOCALE_DIR = os.path.join(SOURCE_DIR, "release", "bin", ".blender", "locale") + DOMAIN = "blender" -for po in os.listdir( PO_DIR ): - if po.endswith(".po"): - lang = po[:-3] - # show stats - cmd = "msgfmt --statistics %s.po -o %s/%s/LC_MESSAGES/%s.mo" % ( lang, LOCALE_DIR, lang, DOMAIN ) - print cmd - os.system( cmd ) + +def main(): + for po in os.listdir(CURRENT_DIR): + if po.endswith(".po"): + lang = po[:-3] + # show stats + cmd = ("msgfmt", + "--statistics", + os.path.join(CURRENT_DIR, "%s.po" % lang), + "-o", + os.path.join(LOCALE_DIR, lang, "LC_MESSAGES", "%s.mo" % DOMAIN), + ) + + print(" ".join(cmd)) + process = subprocess.Popen(cmd) + process.wait() + +if __name__ == "__main__": + main() diff --git a/po/update_po.py b/po/update_po.py index 50459c2b14b..88547760f67 100755 --- a/po/update_po.py +++ b/po/update_po.py @@ -1,17 +1,52 @@ -#!/usr/bin/python +#!/usr/bin/env python + +# $Id: +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ***** END GPL LICENSE BLOCK ***** + +# <pep8 compliant> # update all po files in the LANGS +import subprocess import os -PO_DIR = "." +CURRENT_DIR = os.path.dirname(__file__) DOMAIN = "blender" -for po in os.listdir( PO_DIR ): - if po.endswith(".po"): - lang = po[:-3] - # update po file - cmd = "msgmerge --update --lang=%s %s.po %s.pot" % (lang, lang, DOMAIN) - print(cmd) - os.system( cmd ) - + +def main(): + for po in os.listdir(CURRENT_DIR): + if po.endswith(".po"): + lang = po[:-3] + + # update po file + cmd = ("msgmerge", + "--update", + "--lang=%s" % lang, + os.path.join(CURRENT_DIR, "%s.po" % lang), + os.path.join(CURRENT_DIR, "%s.pot" % DOMAIN), + ) + + print(" ".join(cmd)) + process = subprocess.Popen(cmd) + process.wait() + + +if __name__ == "__main__": + main() diff --git a/po/update_pot.py b/po/update_pot.py index 616443edc4a..b0d77a3be03 100755 --- a/po/update_pot.py +++ b/po/update_pot.py @@ -1,50 +1,61 @@ -#!/usr/bin/python +#!/usr/bin/env python -# update the pot file according the POTFILES.in - -import os +# $Id: +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ***** END GPL LICENSE BLOCK ***** -GETTEXT_XGETTEXT_EXECUTABLE="xgettext" -SOURCE_DIR=".." -DOMAIN="blender" +# <pep8 compliant> -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) +# update the pot file according the POTFILES.in -os.system( cmd ) +import subprocess +import os -def stripeol(s): - if line.endswith("\n"): - s = s[:-1] +GETTEXT_XGETTEXT_EXECUTABLE = "xgettext" +CURRENT_DIR = os.path.dirname(__file__) +SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.join(CURRENT_DIR, ".."))) +DOMAIN = "blender" - if line.endswith("\r"): - s = s[:-1] +FILE_NAME_POT = os.path.join(CURRENT_DIR, "blender.pot") +FILE_NAME_MESSAGES = os.path.join(CURRENT_DIR, "messages.txt") - return s -pot_messages = {} -reading_message = False -message = "" -with open("blender.pot", 'r') as handle: - while True: - line = handle.readline() +def main(): + cmd = (GETTEXT_XGETTEXT_EXECUTABLE, + "--files-from=%s" % os.path.join(SOURCE_DIR, "po", "POTFILES.in"), + "--keyword=_", + "--keyword=N_", + "--directory=%s" % SOURCE_DIR, + "--output=%s" % os.path.join(SOURCE_DIR, "po", "%s.pot" % DOMAIN), + "--from-code=utf-8", + ) - if not line: - break + print(" ".join(cmd)) + process = subprocess.Popen(cmd) + process.wait() - 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] + def stripeol(s): + return s.rstrip("\n\r") -# add messages collected automatically from RNA -with open("blender.pot", "a") as pot_handle: - with open("messages.txt", 'r') as handle: + pot_messages = {} + reading_message = False + message = "" + with open(FILE_NAME_POT, 'r') as handle: while True: line = handle.readline() @@ -52,10 +63,33 @@ with open("blender.pot", "a") as pot_handle: break line = stripeol(line) - line = line.replace("\\", "\\\\") - line = line.replace("\"", "\\\"") + 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(FILE_NAME_POT, "a") as pot_handle: + with open(FILE_NAME_MESSAGES, '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") + - 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") +if __name__ == "__main__": + main() diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 0b3bb4cc7cd..fddd2809c47 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -2935,7 +2935,7 @@ void DM_set_object_boundbox(Object *ob, DerivedMesh *dm) dm->getMinMax(dm, min, max); if(!ob->bb) - ob->bb= MEM_callocN(sizeof(BoundBox), "bb"); + ob->bb= MEM_callocN(sizeof(BoundBox), "DM-BoundBox"); boundbox_set_from_min_max(ob->bb, min, max); } diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 3644b02e7b5..94be1a7a7b5 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2350,7 +2350,7 @@ BoundBox *unit_boundbox(void) BoundBox *bb; float min[3] = {-1.0f,-1.0f,-1.0f}, max[3] = {-1.0f,-1.0f,-1.0f}; - bb= MEM_callocN(sizeof(BoundBox), "bb"); + bb= MEM_callocN(sizeof(BoundBox), "OB-BoundBox"); boundbox_set_from_min_max(bb, min, max); return bb; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 497ac415ebb..c736270533e 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -12224,7 +12224,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath) BlendFileData *bfd; bfd= MEM_callocN(sizeof(BlendFileData), "blendfiledata"); - bfd->main= MEM_callocN(sizeof(Main), "main"); + bfd->main= MEM_callocN(sizeof(Main), "readfile_Main"); BLI_addtail(&fd->mainlist, bfd->main); bfd->main->versionfile= fd->fileversion; diff --git a/source/blender/python/intern/bpy_interface_atexit.c b/source/blender/python/intern/bpy_interface_atexit.c index de59ce1584d..ac8c90198a0 100644 --- a/source/blender/python/intern/bpy_interface_atexit.c +++ b/source/blender/python/intern/bpy_interface_atexit.c @@ -79,7 +79,7 @@ static void atexit_func_call(const char *func_name, PyObject *atexit_func_arg) void BPY_atexit_register(void) { /* atexit module owns this new function reference */ - BLI_assert(func_bpy_atregister ==NULL); + BLI_assert(func_bpy_atregister == NULL); func_bpy_atregister= (PyObject *)PyCFunction_New(&meth_bpy_atexit, NULL); atexit_func_call("register", func_bpy_atregister); @@ -87,6 +87,8 @@ void BPY_atexit_register(void) void BPY_atexit_unregister(void) { + BLI_assert(func_bpy_atregister != NULL); + atexit_func_call("unregister", func_bpy_atregister); func_bpy_atregister= NULL; /* don't really need to set but just incase */ } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 518ebeafc80..75fec6ed705 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -85,7 +85,7 @@ static int wm_operator_call_internal(bContext *C, wmOperatorType *ot, PointerRNA void wm_event_add(wmWindow *win, wmEvent *event_to_add) { - wmEvent *event= MEM_callocN(sizeof(wmEvent), "event"); + wmEvent *event= MEM_callocN(sizeof(wmEvent), "wmEvent"); *event= *event_to_add; BLI_addtail(&win->queue, event); |