A while ago, I wanted to localize a perl script so I went to look at my options (mainly Locale::gettext and Locale::Maketext) and I wasn't satisfied with either.
My main concern is that, IMO (and this is without every having localized a program before, so this is sort of an outsider-looking-in perspective), I don't see how you can keep a set of translations up-to-date without per-message version information. I read most of the gettext documentation, and it seems to me that there is wonderful support for doing initial translations, but if you ever need to revise a message, then it's not obvious which translations are up-to-date at that point. Some trivial changes (i.e. correcting a typo for example) would not require that the translations be fixed, but if you added functionality requiring that a message needed to be updated, then all of the translations for that message are now out-of-date, but other messages in the lexicon would still be fine, and would not need to be revisited by a translator. I didn't see any tool which would allow me to look at a set of translations and distinguish between those that were current and those that were out-of-date.
Anyway, I may be missing something in my reading, but it just doesn't seem like the standard tools allow for this (though some external tool that I might have missed may have that functionality).
I briefly considered modifying Locale::Maketext, but I abandoned that quickly. The module is short (only a few hundred lines) and by the time I made the changes I wanted, there would be nothing left of the original.
So, I wrote my own module along with a simple GUI tool for maintaining translations, and I've been using it for a while and am really pleased with it. It makes it really easy to take a lexicon and see which messages are missing and need to be added, which are out-of-date with respect to the default, and which are current.
Since I've been very satisfied, I'm thinking I'd like to release it, but I wanted to get some feedback on whether I'm totally off the wall on what I perceive as a missing piece of the localization process.
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |