annotate roundup/scripts/roundup_gettext.py @ 4587:a2eb4fb3e6d8

New Chameleon templating engine, engine is now configurable. We now have two configurable templating engines, the old Zope TAL templates (called zopetal in the config) and the new Chameleon (called chameleon in the config). A new config-option "template_engine" under [main] can take these config-options, the default is zopetal. Thanks to Cheer Xiao for the idea of making this configurable *and* for the actual implementation! Cheer Xiao commit log: - The original TAL engine ported from Zope is thereafter referred to as "zopetal", in speech and in code - A new option "template_engine" under [main] introduced - Zopetal-specific code stripped from cgi/templating.py to form the new cgi/engine_zopetal.py - Interface to Chameleon in cgi/engine_chameleon.py - Engines are supposed to provide a Templates class that mimics the behavior of the old cgi.templating.Templates. The Templates class is preferably subclassed from cgi.templating.TemplatesBase. - New function cgi.templating.get_templates to get the appropriate engine's Templates instance according to the engine name
author Ralf Schlatterbeck <rsc@runtux.com>
date Thu, 23 Feb 2012 18:10:03 +0100
parents 6e3e4f24c753
children 86ef4ab17dc5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2803
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
1 #! /usr/bin/env python
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
2 #
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
3 # Copyright 2004 Richard Jones (richard@mechanicalcat.net)
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
4
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
5 """Extract translatable strings from tracker templates"""
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
6
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
7 import os
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
8 import sys
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
9
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
10 from roundup.i18n import _
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
11 from roundup.cgi.TAL import talgettext
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
12
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
13 # name of message template file.
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
14 # i don't think this will ever need to be changed, but still...
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
15 TEMPLATE_FILE = "messages.pot"
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
16
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
17 def run():
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
18 # return unless command line arguments contain single directory path
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
19 if (len(sys.argv) != 2) or (sys.argv[1] in ("-h", "--help")):
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
20 print _("Usage: %(program)s <tracker home>") % {"program": sys.argv[0]}
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
21 return
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
22 # collect file paths of html templates
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
23 home = os.path.abspath(sys.argv[1])
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
24 htmldir = os.path.join(home, "html")
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
25 if os.path.isdir(htmldir):
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
26 # glob is not used because i want to match file names
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
27 # without case sensitivity, and that is easier done this way.
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
28 htmlfiles = [filename for filename in os.listdir(htmldir)
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
29 if os.path.isfile(os.path.join(htmldir, filename))
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
30 and filename.lower().endswith(".html")]
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
31 else:
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
32 htmlfiles = []
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
33 # return if no html files found
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
34 if not htmlfiles:
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
35 print _("No tracker templates found in directory %s") % home
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
36 return
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
37 # change to locale dir to have relative source references
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
38 locale = os.path.join(home, "locale")
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
39 if not os.path.isdir(locale):
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
40 os.mkdir(locale)
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
41 os.chdir(locale)
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
42 # tweak sys.argv as this is the only way to tell talgettext what to do
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
43 # Note: unix-style paths used instead of os.path.join deliberately
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
44 sys.argv[1:] = ["-o", TEMPLATE_FILE] \
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
45 + ["../html/" + filename for filename in htmlfiles]
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
46 # run
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
47 talgettext.main()
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
48
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
49 if __name__ == "__main__":
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
50 run()
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
51
a7b755646ffd Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff changeset
52 # vim: set et sts=4 sw=4 :

Roundup Issue Tracker: http://roundup-tracker.org/