1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

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
This commit is contained in:
Georg Bauer 2005-10-17 14:37:26 +00:00
parent 3c68633d57
commit f3723ce84b

View File

@ -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,13 +67,20 @@ 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):
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)
if os.path.exists(potfile):
os.unlink(potfile)
for (dirpath, dirnames, filenames) in os.walk("."):
for (dirpath, dirnames, filenames) in os.walk("."):
for file in filenames:
if file.endswith('.py') or file.endswith('.html'):
thefile = file
@ -87,10 +101,10 @@ for (dirpath, dirnames, filenames) in os.walk("."):
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('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)
open(pofile, 'wb').write(msgs)
os.unlink(potfile)