I've been working with the gettext version and it is doing very well.
Some of my concerns/observations:
Due to the way in which different languages and translators interpret things it is best to:
1. try to keep all gettext strings to full complete sentences or just plain single words.
2. do not mix ANY markup in with gettext strings to be translated; translators invariably get confused by this and we end up redoing these translations.
3. do not put any param substitution %s type variables in the gettext strings.
4. use full form instead of contractions: (cannot) instead of can't; (they are) instead of they're, etc.
5. avoid highlighting things by using quotes; translations resulting from mid-sentence quoting sometimes causes problems for the gettext tools and other translation tools; rather should use parentheses to highlight (important) things.
A lot of the osticket strings are very unfriendly to being translated currently. I'm trying to clean some of these up. Like most of the markup can just be stripped out or the string broken into multiple gettext strings with markup concatenated separately. Most of it is trivial bolding, underline, etc. And mid-sentence links need moved all the way to the end of the sentence so that the gettext string can be a full, uninterrupted sentence.
If the strings can be cleaned up then this osTicket-gettext version should work very nicely.
-Gerry