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 /po | |
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.
Diffstat (limited to 'po')
-rwxr-xr-x | po/update_mo.py | 56 | ||||
-rwxr-xr-x | po/update_po.py | 55 | ||||
-rwxr-xr-x | po/update_pot.py | 118 |
3 files changed, 167 insertions, 62 deletions
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() |