[CMF-checkins] SVN: CMF/trunk/i18nextract.py - updated
i18nextract.py
Yvo Schubbe
y.2006_ at wcm-solutions.de
Thu Nov 2 12:32:23 EST 2006
Log message for revision 71027:
- updated i18nextract.py
Changed:
U CMF/trunk/i18nextract.py
-=-
Modified: CMF/trunk/i18nextract.py
===================================================================
--- CMF/trunk/i18nextract.py 2006-11-02 11:09:26 UTC (rev 71026)
+++ CMF/trunk/i18nextract.py 2006-11-02 17:32:22 UTC (rev 71027)
@@ -37,17 +37,26 @@
-p / --path <path>
Specifies the package that is supposed to be searched
(i.e. 'zope/app')
+ -s / --site_zcml <path>
+ Specify the location of the 'site.zcml' file. By default the regular
+ Zope 3 one is used.
+ -e / --exclude-default-domain
+ Exclude all messages found as part of the default domain. Messages are
+ in this domain, if their domain could not be determined. This usually
+ happens in page template snippets.
-o dir
Specifies a directory, relative to the package in which to put the
output translation template.
-x dir
Specifies a directory, relative to the package, to exclude.
May be used more than once.
+ --python-only
+ Only extract message ids from Python
$Id$
"""
-# XXX: This is a modified copy of zope3's utilities/i18nextract.py (r41131).
-# It includes some modified code from zope.app.locales.extract (r41131).
+# XXX: This is a modified copy of zope3's utilities/i18nextract.py (r68098).
+# It includes some modified code from zope.app.locales.extract (r69514).
# Extracting from ZCML is disabled for now.
#
# This is just used to create .pot files for CMF. Don't make your code
@@ -80,7 +89,7 @@
##############################################################################
msgid ""
msgstr ""
-"Project-Id-Version: CMF 2.0\\n"
+"Project-Id-Version: CMF 2.1\\n"
"POT-Creation-Date: $Date$\\n"
"Language-Team: CMF Developers <zope-cmf at zope.org>\\n"
"MIME-Version: 1.0\\n"
@@ -96,7 +105,6 @@
def write(self):
file = open(self._output_filename, 'w')
file.write(pot_header % {'time': time.ctime(),
- 'version': self._getProductVersion(),
'charset': DEFAULT_CHARSET,
'encoding': DEFAULT_ENCODING})
@@ -211,14 +219,16 @@
# When the Domain is 'default', then this means that none was found;
# Include these strings; yes or no?
if include_default_domain:
- catalog.update(engine.catalog['zope'])
+ defaultCatalog = engine.catalog.get('default')
+ if defaultCatalog == None:
+ engine.catalog['default'] = {}
+ catalog.update(engine.catalog['default'])
for msgid, locations in catalog.items():
catalog[msgid] = map(lambda l: (l[0], l[1][0]), locations)
return catalog
import os, sys, getopt
-
def usage(code, msg=''):
# Python 2.1 required
print >> sys.stderr, __doc__
@@ -254,8 +264,8 @@
try:
opts, args = getopt.getopt(
sys.argv[1:],
- 'hd:p:o:x:',
- ['help', 'domain=', 'path=', 'python-only'])
+ 'hd:s:i:p:o:x:',
+ ['help', 'domain=', 'site_zcml=', 'path=', 'python-only'])
except getopt.error, msg:
usage(1, msg)
@@ -264,12 +274,16 @@
include_default_domain = True
output_dir = None
exclude_dirs = []
- python_only = None
+ python_only = False
+ site_zcml = None
for opt, arg in opts:
if opt in ('-h', '--help'):
usage(0)
elif opt in ('-d', '--domain'):
domain = arg
+ elif opt in ('-s', '--site_zcml'):
+ site_zcml = arg
+ elif opt in ('-e', '--exclude-default-domain'):
include_default_domain = False
elif opt in ('-o', ):
output_dir = arg
@@ -302,15 +316,19 @@
print "base path: %r\n" \
"search path: %s\n" \
+ "'site.zcml' location: %s\n" \
"exclude dirs: %r\n" \
"domain: %r\n" \
- "output file: %r" \
- % (base_dir, path, exclude_dirs, domain, output_file)
+ "include default domain: %r\n" \
+ "output file: %r\n" \
+ "Python only: %r" \
+ % (base_dir, path, site_zcml, exclude_dirs, domain,
+ include_default_domain, output_file, python_only)
maker = POTMaker(output_file, path)
maker.add(py_strings(path, domain, exclude=exclude_dirs), base_dir)
if not python_only:
- maker.add(zcml_strings(path, domain), base_dir)
+ maker.add(zcml_strings(path, domain, site_zcml), base_dir)
maker.add(tal_strings(path, domain, include_default_domain,
exclude=exclude_dirs), base_dir)
maker.write()
More information about the CMF-checkins
mailing list