<pre>
ZBabel Translation Assistance System
(C) Copyright 2000 The Internet (Aust) Pty Ltd
ACN: 082 081 472  ABN: 83 082 081 472
All Rights Reserved

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

Author: Andrew Milton <akm@theinternet.com.au>

Now that's out of the way....

This is the ZBabel Translation System for ZOPE, the Z Object Publishing 
Environment (http://www.zope.org/)

This is a phrase by phrase translation system, it allows you to translate
key parts of your site, and the content if you desire. With this you don't
need to maintain seperate source for each supported language, or mix different
languages in your source. You can do your entire site in one language and
then translate it without re-editing the source code.

This system also automatically creates the catalogs as you go, you do not 
need to manually insert text strings into databases for translation.

Installation
------------

Unpack it in your top-level Zope directory. This should create a directory
named lib/python/Products/ZBabel/ containing the product files as well as
this README file.

There is a file for the mimimum tables you require to run ZBabel
with Zope called ZBabel.sql. These are MySQL specific, but, should be 
easily adaptable to any other database. Create the tables in the schema 
file (for you MySQL people you can just mysql Database < ZBabel.sql )

Usage
-----

ZBabel comes as a two part kit, to help you with translating your ZOPE Content.

The first part is the tag <dtml-babel> which allows you to register and
translate your phrases.

Usage: <dtml-babel src="en" dst="es" literal="1">Text to translate</dtml-babel>

src is the language that the text is originally written in, this is the
language the phrase will be registered in initially. If you know a phrase
has already been translated, you can omit the src. You can put anything
you like in here, as long as you are consistent.

dst is the language that you wish to be displayed, it is effectively mandatory,
but if you're creating a page that will only be displayed in one language, but
the phrases will be used elsewhere you can omit the dst parameter. As with
src you can put any value you like in here.

if literal is set to a value, then the contents of the container will not
be further processed. Normally <dtml-babel><dtml-var foo></dtml-babel> would
render the results of foo not '<dtml-var foo>'. There are times when you want
to specify literal translation. This parameter is completely optional.

You can wrap as much text as you like (up to your TEXT field limit in
your DB).

The second part is a the ZBabel Tower Product. This is a Folderish Object
that does most of the legwork. You will need a ZBabel Tower Product installed
somewhere that your documents can acquire it if you want translations to occur.
If you do not install the product, the <dtml-babel> tag will simply return
the existing text.

It is not required to add documents to be translated beneath the ZBabel Tower.

In the manage section of the ZBabel Tower you will see a tab that says
'Translate', beneath here is where you will do most of your translating.

If you don't like the default translation interface, you can create your
own translation interface inside the ZBabel Tower (see why it's a folder now?),
to keep everything together. You don't have to create it inside the ZBabel 
Tower, but it'll be neater for you.

NOTE
----
Phrases are only registered when the page is actually viewed. If no
phrases for a particular language have been viewed, then you will not be
able to translate to this language (if MySQL had sub-selects then there
would be an interface I could export that would let you seed this).
To prime it, simply view one of your pages in the desired language, as you
go to translate it will automatically propogate the phrases.
</pre>