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

Daniel Glassey jsword-devel@crosswire.org
Tue, 25 Feb 2003 17:06:06 -0000

One (imho) very important thing is the ability to edit the the 
translations offline. This would allow people on limited dialup to 
work on it.

I'd suggest that there should be a way to download the 'translation 
page' in a format that can be easily edited. A spreadsheet file is 
one option though it requires people to have a spreadsheet program. 
(is that reasonable?) 

Alternatively if .po files (like gettext uses) could be generated 
then we could point to poEdit (http://poedit.sourceforge.net/) as a 
tool to edit them. One description of the format is at 


I don't think it'll be too difficult to generate a file in that 
format. The only complication that there might be is multi-line 
entries, but it doesn't sound like there'll need to be any. 
(especially if you end up using gettext!)

We'll also need an easy way to import and merge submissions that are 
emailed in.

Sounds good so far :)

P.S. Using GNU gettext like Martin suggests gets you the tools to 
import and merge and it has a java api for reading the strings from 
the translation. The thing that looks less simple (afaict) is using 
it for online editing of the translations.

On 25 Feb 2003 at 5:28, Troy A. Griffitts sent forth the message:

> Joachim,
> 	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 
> encountered.
> Anyone wishing to help me with the remaining work on the new taglib 
> would be appreciated, as well (jsword guys) :)
> 	-Troy.
> 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:
> >>German
> >>Chinese Traditional and Simplified
> >>Thai
> >>Russian
> >>Arabic
> >>Korean?
> >>
> >>Other potentially useful imho:
> >>Czech
> >>Danish
> >>Spanish
> >>Finnish
> >>French
> >>Italian
> >>Dutch
> >>Vietnamese
> >>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?
> >>
> >>Regards,
> >>Daniel
> >>_______________________________________________
> >>sword-devel mailing list
> >>sword-devel@crosswire.org
> >>http://www.crosswire.org/mailman/listinfo/sword-devel
> > 
> > 
> _______________________________________________
> jsword-devel mailing list
> jsword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel