summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Bauer <gb@hugo.westfalen.de>2005-10-17 14:37:26 +0000
committerGeorg Bauer <gb@hugo.westfalen.de>2005-10-17 14:37:26 +0000
commitf3723ce84b44812c7feddd594679ab98f708411f (patch)
tree27f911a18b55f7de75f6d13aebc48dfd6d7efd48
parent3c68633d579e82a9248bac80043611d66ee9b073 (diff)
i18n: added -a switch to make-messags.py to run xgettext on all messagefiles
git-svn-id: http://code.djangoproject.com/svn/django/branches/i18n@907 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rwxr-xr-xdjango/bin/make-messages.py90
1 files changed, 52 insertions, 38 deletions
diff --git a/django/bin/make-messages.py b/django/bin/make-messages.py
index 3a893afe45..d8c5299e62 100755
--- a/django/bin/make-messages.py
+++ b/django/bin/make-messages.py
@@ -5,21 +5,22 @@ import os
import sys
import getopt
-basedir = None
+localedir = None
if os.path.isdir(os.path.join('conf', 'locale')):
- basedir = os.path.abspath(os.path.join('conf', 'locale'))
+ localedir = os.path.abspath(os.path.join('conf', 'locale'))
elif os.path.isdir('locale'):
- basedir = os.path.abspath('locale')
+ localedir = os.path.abspath('locale')
else:
print "this script should be run from the django svn tree or your project or app tree"
sys.exit(1)
-(opts, args) = getopt.getopt(sys.argv[1:], 'l:d:v')
+(opts, args) = getopt.getopt(sys.argv[1:], 'l:d:va')
lang = None
domain = 'django'
verbose = False
+all = False
for o, v in opts:
if o == '-l':
@@ -28,14 +29,20 @@ for o, v in opts:
domain = v
elif o == '-v':
verbose = True
+ elif o == '-a':
+ all = True
-if lang is None or domain is None:
+if (lang is None and not all) or domain is None:
print "usage: make-messages.py -l <language>"
+ print " or: make-messages.py -a"
sys.exit(1)
-basedir = os.path.join(basedir, lang, 'LC_MESSAGES')
-if not os.path.isdir(basedir):
- os.makedirs(basedir)
+languages = []
+
+if lang is not None:
+ languages.append(lang)
+elif all:
+ languages = [el for el in os.listdir(localedir) if not el.startswith('.')]
dot_re = re.compile('\S')
def blank(src):
@@ -60,37 +67,44 @@ def templateize(src):
going = 0
return ''.join(o)
-pofile = os.path.join(basedir, '%s.po' % domain)
-potfile = os.path.join(basedir, '%s.pot' % domain)
+for lang in languages:
-if os.path.exists(potfile):
- os.unlink(potfile)
+ print "processing language", lang
+ basedir = os.path.join(localedir, lang, 'LC_MESSAGES')
+ if not os.path.isdir(basedir):
+ os.makedirs(basedir)
+
+ pofile = os.path.join(basedir, '%s.po' % domain)
+ potfile = os.path.join(basedir, '%s.pot' % domain)
-for (dirpath, dirnames, filenames) in os.walk("."):
- for file in filenames:
- if file.endswith('.py') or file.endswith('.html'):
- thefile = file
- if file.endswith('.html'):
- src = open(os.path.join(dirpath, file), "rb").read()
- open(os.path.join(dirpath, '%s.py' % file), "wb").write(templateize(src))
- thefile = '%s.py' % file
- if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
- cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % (
- os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
- msgs = os.popen(cmd, 'r').read()
- if thefile != file:
- old = '#: '+os.path.join(dirpath, thefile)[2:]
- new = '#: '+os.path.join(dirpath, file)[2:]
- msgs = msgs.replace(old, new)
- if msgs:
- open(potfile, 'ab').write(msgs)
- if thefile != file:
- os.unlink(os.path.join(dirpath, thefile))
+ if os.path.exists(potfile):
+ os.unlink(potfile)
-msgs = os.popen('msguniq %s' % potfile, 'r').read()
-open(potfile, 'w').write(msgs)
-if os.path.exists(pofile):
- msgs = os.popen('msgmerge %s %s' % (pofile, potfile), 'r').read()
-open(pofile, 'wb').write(msgs)
-os.unlink(potfile)
+ for (dirpath, dirnames, filenames) in os.walk("."):
+ for file in filenames:
+ if file.endswith('.py') or file.endswith('.html'):
+ thefile = file
+ if file.endswith('.html'):
+ src = open(os.path.join(dirpath, file), "rb").read()
+ open(os.path.join(dirpath, '%s.py' % file), "wb").write(templateize(src))
+ thefile = '%s.py' % file
+ if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
+ cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % (
+ os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
+ msgs = os.popen(cmd, 'r').read()
+ if thefile != file:
+ old = '#: '+os.path.join(dirpath, thefile)[2:]
+ new = '#: '+os.path.join(dirpath, file)[2:]
+ msgs = msgs.replace(old, new)
+ if msgs:
+ open(potfile, 'ab').write(msgs)
+ if thefile != file:
+ os.unlink(os.path.join(dirpath, thefile))
+
+ msgs = os.popen('msguniq %s' % potfile, 'r').read()
+ open(potfile, 'w').write(msgs)
+ if os.path.exists(pofile):
+ msgs = os.popen('msgmerge %s %s' % (pofile, potfile), 'r').read()
+ open(pofile, 'wb').write(msgs)
+ os.unlink(potfile)