views:

414

answers:

4

I have a Web application written in Java that is targeting several countries, all of which speak different languages (and more often than not, several languages -- that's Europe for you).

We have a bunch of .properties files that hold the localized strings, and our current procedure is to e-mail the language-specific files to our partners for updating before doing major updates.

However, this process is rather error-prone, as sometimes people forget to translate new strings and sometimes new strings don't get added to every language file, thus small mistakes get through very easily.

Does anyone know of any existing software that could help us clear this mess?

At a bare minimum, I'm thinking of something that would allow you to load a master file (for example, in English), a localized file and then would highlight the keys that were added to or removed from the master file.

+1  A: 

I've used Jinto for that purpose as well as EPFE (older version, haven't tried the newest one).

Both are Eclipse plug-ins, both are quite decent if you can get past the fact that they will reorder keys in your resource bundles. Then there's also Babel - I haven't tried it personally so I don't know how good it is.

ChssPly76
These are interesting projects indeed, but unfortunately they don't seem like something suitable for non-technical translators without some major work.
andri
@andri - what do you mean by "major work"? You need to install Eclipse and one of those plugins - that's it; there's nothing "technical" involved afterwards. Your translators will see a screen like this one: http://www.guh-software.de/images/jinto1.gif, do their thing, and you'll get back your resource bundle. If you feeling adventurous :-) you can even show them how to check it in right there from Eclipse.
ChssPly76
I mean that the users are *non-technical* -- installing Eclipse and a plugin, not to mention using a SCM, is way beyond them. I'd need to make a package with stripped-down Eclipse (as excessive functionality is bound to confuse them) with only these plugins and hope they don't mess something up when installing it.
andri
A: 

The CAL10N project is intended to deal with this problem. It builds upon resource bundles by adding verification primitives. It is also rather easy to use.

Ceki
A: 

Netbeans has a really excellent Java properties editor that shows you each of the locales side-by-side. You can easily see which properties are absent for different languages.

Mike Sickler
A: 

sometimes people forget to translate new strings and sometimes new strings don't get added to every language file, thus small mistakes get through very easily.

I use a slightly different approach in that I send out .properties files containing the existing localized strings merged with the new untranslated strings in the order that I want them back.

The new strings are marked with "pseudo-translation" characters, so that untranslated strings are easy to find with a simple text search.

The translators very rarely lose properties or forget to translate strings. The most common mistake is to forget to remove the pseudo-translation characters from the newly translated strings. The difference check before committing the new translations back into the revision control system is very good at catching these errors.

This system works really well, and now that it is semi-automated it takes about an hour to do each localization update instead of the 1 - 2 days it used to take when the process was completely manual.

I wrote my own tool to generate the merged files and do a three-way comparison between the new masters, the old localized files and the newly generated merged files, but any tool that merges changes in the same way would work with this process.

richj