Design

The system is designed as a database driven website, where the database can be changed to a similar one in another language.

Database content is presented using the WebMacro templating engine.

Internationalisation

The overiding design goal is that all human language text should be contained within the underlying database.

A secondary goal is that there should be no language specific code in the java, templates or javascript.

The original page text was supplied in English and French. This text was placed into the Div table of two separate databases.

The ancillary text, such as Text Only and Graphic Site is stored in the Setting table.

Where whole paragraphs are needed, as in the Thankyou page, these are stored in the Div table.

The input forms on the News and Sales pages have their content and metadata such as column names, products and prompts are stored the database and have been translated.

The form validation javascript is to be internationalised in the same way, with the javascript file being a webmacro template and the text being stored in the database.

Internationalising Melati templets

The only templet to contain natual language text is the password templet. This has the word Confirm between the two input fields. To internationalise this template it was copied into the project name space and the word confirm replaced with a look up from the Setting table.

Database management

The database engine used is the pure java database HSQLDB . This can be setup in a variety of ways. For the site it is setup to be runtime, using cached tables, with shutdown script option which ensures that the database is written out to disk as sql when the container is stopped. This has the advantage of enabling the contents of the databse to be stored in CVS.

For unit tests HSQLDB is set to use memory mode, which is considerably faster, but leaves no files on disk after a run.