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 dictinary 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 usege 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 havn't worked with other solutions at all, so try to understand how it works at first place.