Grand renaming:

- Renamed most files (especially python modules) to lower case.

- Moved views and interfaces into separate hierarchies within each
  project, where each top-level directory under the zope package
  is a separate project.

- Moved everything to src from lib/python.

  lib/python will eventually go away. I need access to the cvs
  repository to make this happen, however.

There are probably some bits that are broken. All tests pass
and zope runs, but I haven't tried everything. There are a number
of cleanups I'll work on tomorrow.
Moved some missplaced interface files.
An unexpected raid by the Whitespace Police.

Other than fixes of nonconforming whitespace, just a couple of $Id$
docstrings has been added.
XML attribute names are case-sensitive; fix the expected output to
match what XML users expect.
XML attribute names are case-sensitive; do not lower-case them!
This closes Zope 3 collector issue 129.
http://collector.zope.org/Zope3-dev/129
Make sure element names are not lower-cased in XML mode.
Oops!  Introduced typo between testing and committing.  Fixed.
Fixed talinterpreter to watch out for unknown translation message id.
The Plone people would like the i18n translation to return
the default text when the message ID is not found in the
translation table and there is an explicit message ID.

example:
<span i18n:translate="explict id">default text</span>
will now return
<span>default text</span>
if "explicit id" is not in the translation table instead of None (as previous)
Updated DummyDomain to simulate an unknown message id when translating.
Added logging to warn when a message id is not found in the translation table.
Add an ITranslator interface and a Translator implementation of that
interface.  This is basically a glue class for specifying the domain,
context, and locale in one packet and then providing a translate()
method which just takes the message id and mapping.

Glue this into the Zope app's page template engine.

Also removed some unused code and fix some typos.
Refactored the translation service interfaces and updated all the
tests.
Added update mode to talgettext; created rudimentary unit tests.
Fixed bug in --update mode which borked existing multi-line translations in the .po file.
Implemented --output parameter to write .po to a file as opposed to stdout.
Fixed a bug in handling of attribute translations when no translation
is available.
Update i18n:attributes to support explicit message IDs.
Changed the handling of program source translations

- The translation files for the application server (zope.app) are now
  al in one place, src/zope/app/translation_files.

- Added an extraction tool, extract.py that extracts all translatable
  strings from Python and zpt source files into a translation template
  file, zope.pot. This template file should then be merged into
  individual translation files.

To do:

- zcml extraction

- I don't think that encodings are handled correctly. The template
  file certainly doesn't have the encoding set correctly.
Pass the default text to the translation service so intepolations can be
performed if necessary.  Added a test.
- pass default text to the translation service
- when skipping a file because of an error, still print the traceback