Alternatives to gettext?

gettext, internationalization, localization

Solution

First of all I think `gettext` is one of the best at this point.

You may take a look on `Boost.Locale` that may provide a better API and use `gettext`'s dictionary model: http://cppcms.sourceforge.net/boost_locale/docs/ (not official part of Boost, still beta).

Edit:

If you don't like `gettext`...

These are translation technologies:

- OASIS XLIFF

- GNU gettext po/mo files

- POSIX catalogs

- Qt ts/tm files

- Java properties,

- Windows resources.

Now:

- Last two total crap... Very hard to use translate and maintain, do not support plural forms.

- Qt ts/tm -- requires usage of Qt framework. Have very similar model to `gettext`. Not bad solution, but limited to Qt. Not so useful in generic programs.

- POSIX catalogs -- nobody uses them, no plural forms support. Crap.

- OASIX XLIFF -- "standard" solution, depends on XML, even ICU requires compilation to specific ICU resources for use. Limited translation tools, I don't know any library that supports XLIFF. Plural forms not so easy to use (ICU included some support only in 4.x release).

Now what do we have?

GNU `gettext`, widely used, has great tools, has great plural forms support, very popular in translators community...

So decide, do you really think that gettext is not so good solution?

I don't think so. You haven't worked with other solutions at all, so try to understand how it works at first place.

Problem

Are there any general localization/translation alternatives to gettext? Open source or proprietary doesn't matter. When I say alternative to gettext, I mean a library for internationalization, with a localization backend of sorts. The reason I'm asking is because (among other things) I find the way gettext does things slightly cumbersome and static, mostly in the backend bit.

Original source