Ticket #5463: 5463.diff

File 5463.diff, 2.6 KB (added by beer, 17 years ago)
  • trunk/django/bin/make-messages.py

     
    1111import getopt
    1212from itertools import dropwhile
    1313
     14TEMPLATE_EXTENSIONS = ('.html', '.tpl', '.xml', '.txt')
     15
    1416pythonize_re = re.compile(r'\n\s*//')
    1517
    1618def make_messages():
     19    global TEMPLATE_EXTENSIONS
    1720    localedir = None
    1821
    1922    if os.path.isdir(os.path.join('conf', 'locale')):
     
    2932        print "you want to enable i18n for your project or application."
    3033        sys.exit(1)
    3134
    32     (opts, args) = getopt.getopt(sys.argv[1:], 'l:d:va')
     35    (opts, args) = getopt.getopt(sys.argv[1:], 'l:d:vae')
    3336
    3437    lang = None
    3538    domain = 'django'
     
    4548            verbose = True
    4649        elif o == '-a':
    4750            all = True
    48 
     51        elif o == '-e':
     52            TEMPLATE_EXTENSIONS = args
     53   
    4954    if domain not in ('django', 'djangojs'):
    5055        print "currently make-messages.py only supports domains 'django' and 'djangojs'"
    5156        sys.exit(1)
     
    6267        languages = [el for el in os.listdir(localedir) if not el.startswith('.')]
    6368
    6469    for lang in languages:
    65 
    6670        print "processing language", lang
    6771        basedir = os.path.join(localedir, lang, 'LC_MESSAGES')
    6872        if not os.path.isdir(basedir):
     
    7680
    7781        for (dirpath, dirnames, filenames) in os.walk("."):
    7882            for file in filenames:
    79                 if domain == 'djangojs' and file.endswith('.js'):
     83                file_base, file_ext = os.path.splitext(file)
     84                if domain == 'djangojs' and file_ext == 'js':
    8085                    if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
    8186                    src = open(os.path.join(dirpath, file), "rb").read()
    8287                    src = pythonize_re.sub('\n#', src)
     
    97102                    if msgs:
    98103                        open(potfile, 'ab').write(msgs)
    99104                    os.unlink(os.path.join(dirpath, thefile))
    100                 elif domain == 'django' and (file.endswith('.py') or file.endswith('.html')):
     105                elif domain == 'django' and (file_ext == 'py' or file_ext in TEMPLATE_EXTENSIONS):
    101106                    thefile = file
    102                     if file.endswith('.html'):
     107                    if file_ext in TEMPLATE_EXTENSIONS:
    103108                        src = open(os.path.join(dirpath, file), "rb").read()
    104109                        thefile = '%s.py' % file
    105110                        open(os.path.join(dirpath, thefile), "wb").write(templatize(src))
Back to Top