[jsword-devel] Re: [sword-devel] i18n of sword website

Troy A. Griffitts jsword-devel@crosswire.org
Tue, 25 Feb 2003 05:28:20 -0700

	I had a look at the i18n taglib from jakarta and don't like it.  I 
don't like the idea of replacing all strings in the source files with 
some key name.  It makes the page very unreadable.

	Martin showed me some of your stuff earlier today and it was great. 
Here's my plan for a jsp implementation.  Let me know what you think 
(other people please let me know, as well).

	I have commited two new classes to jsword-old cvs to handle a new 
taglib package: org.crosswire.web.i18n

	So far, the 2 classes will enable 2 new tags in jsp:

<t:contextStart />
<t:t>My text to translate</t:t>

We can call the tags whatever we like, but I wanted to keep the prefix 
short ('t' for translation taglib) and the actual translate tag short 
('t' for translate), since they're gonna be everywhere.

Currently the idea for the handler for contextStart will look in the 
users session for a locale name.  If one is set, it will look for a 
serialized HashMap in a file called ./i18n/<pageName>.<localeName>
If it finds the file, it deserializes it and save the HashMap into the 
session with the key "i18n.transMap"
It will also clear another session property "i18n.transKeys" that is a 
Vector of Strings.  This will happen at the beginning of each page.

The t handler currently looks in "i18n.transMap" HashMap for a value to 
the key of it's body, e.g. "My text to translate" would be the key.  If 
it finds a value, it replaces the body of the tag with this text.

This part is done and in CVS.

It will also add the initial body value to the Vector of Strings in the 
session at "i18n.transKeys"

A 3rd call will be created, probably something like <t:contextEnd /> 
which will check to see if a 'translator' is logged in.  If so, it will 
add a new link to the bottom of the page: _Translation_Maintenence_

This link will take them to a translation page that will look for the 
session Vector "i18n.transKeys", and also "i18n.transMap" (set from the 
previous page), and display each key and any entry in the transMap that 
matches those keys.  It will probably also display any keys in the 
transMap that are there that didn't have a transKey entry (this means 
that we probably changed something in the page) so the translator can 
salvage any translation they may have done if the change is very minor. 
  Obviously a new translation would have all the keys, and empty text 
boxes for each one.  Once the user submits this page it will save all 
the values in a new HashMap (so we clear out stale entries) and 
serialize it out to the appropriate i18n/<pageName>.<localeName> file.

I think this works similar to your method.  Let me know what you think 
and if you think we will run into any problems that you may have 

Anyone wishing to help me with the remaining work on the new taglib 
would be appreciated, as well (jsword guys) :)


Joachim Ansorg wrote:
> Daniel, that's a very useful and good idea!
> For www.bibletime.info we have a online translation tool in place which offers 
> the possibility to translate and edit the messages of the chosen language 
> online. 
> The data is stored in a aSQL database.
> In my opinion the online translation tool is very useful for people who don't 
> have programming skills.
> Thank you for spending your time about this topic!
> Joachim
> On Montag, 24. Februar 2003 19:50, Daniel Glassey wrote:
>>well, with the debate raging about plans for the web interface and
>>the importance of non-English stuff () it seems like a good time to
>>bring up the idea of translating the sword website into (at minimum)
>>appropriate languages, imho these would do for starters:
>>Important imho:
>>Chinese Traditional and Simplified
>>Other potentially useful imho:
>>others that there are modules for
>>after that in importance are other languages people would like to
>>translate to.
>>On an English only website non-English modules won't be as useful as
>>they could possibly be.
>>Just one wee problem. There is no procedure for translating the site
>>yet, or core/essential bits of it set aside for translating. _If_
>>there is going to be a change to the website this should definitely
>>be part of it (see www.bibletime.info for one way to do it ;) )
>>Do other people think this would be useful and do you think people
>>would be willing to do the translation?
>>sword-devel mailing list