Boost logo

Boost :

Subject: [boost] [locale] Review
From: Noah Roberts (roberts.noah_at_[hidden])
Date: 2011-04-15 18:53:04

     - What is your evaluation of the design?

Functions. Seems straight forward to use.

     - What is your evaluation of the implementation?

What I used worked. I did not look over the source.

     - What is your evaluation of the documentation?

Good except that there are at least some errors/inconsistencies
(ngettext in messages_formatting.html for example is missing an argument).

Also need to be explicit about which version of 3rd party programs are
required (see below).

     - What is your evaluation of the potential usefulness of the

I'll probably be using it for our product (assuming it plays fine with
Qt, which I don't see any reason why not) so I'd say very.

     - Did you try to use the library? With what compiler? Did you
       have any problems?

Yes. MSVC2010. No problems specific to the library but did have a
pretty hard time figuring out which version of gettext was necessary and
finding it. Simple search for gettext win32 or windows does not turn up
a version compatible with this library (--keyword=translate:1,1t syntax
invalid). Had to get the recent MSYS developer toolkit (mingw + msys
wasn't even enough). After a couple of hours of searching it seemed to
be the only option.

     - How much effort did you put into your evaluation? A glance? A
       quick reading? In-depth study?

I wrote a simple program and played with a few of the functions. I
downloaded and installed various tools that are supposed to help with
translating. Basically did a short, 4 hour evaluation of whether I
could propose it for use.

     - Are you knowledgeable about the problem domain?

Not as much as I certainly should be.

     - Should it be in boost?

I have some concerns about the fact that it relies so much on 3rd party
stuff. The gettext tools are obviously moving targets and not having an
easily accessible version of xgettext for Visual Studio users is not an
optimal situation. Having to install MinGW and the works shouldn't be
required. Various supposed binary downloads of gettext for win32 either
are not or are too old.

I also found that of the tools listed for working on po files, only one
both worked with plural forms and worked on win32. In fact possibly
only the one worked with plural forms at all.

The fact that this library implements a gettext like setup is nice, but
the dependency then upon gettext to provide the source extraction tools
and such is unfortunate and could certainly lead to problems where there
are version conflicts. Based on my experience I'd say that clearly
there are some availability issues in this area for those using Visual
Studio. Since gettext is someone else's problem, I don't see how boost
can safely make sure the necessary programs are available to anyone
using boost. Certainly some better documentation about which version of
gettext is being emulated should be included (I looked through the docs
and never saw anything specifying version).

Once I did find the correct version of the tools (or at least a version
that responded as the documentation explained) the system seemed to work
out just fine. I would like to see an alternative to a complete msys
install (though I personally like to have it around, others on my team
find it useless). I would guess that there should be one but I
seriously couldn't find it.

I would also like to see boost::locale::format work like boost::format.
  The documentation also calls this thing a printf like utility class
but it doesn't, as opposed to boost::format, accept printf format
strings. On the other hand, boost::format(translate("%.4g")) % 3.14
worked just fine so I don't know what this locale specific version is

All that said, I think it could be a good addition. We certainly need
something like it and it at least does what I think I need from such a

Boost list run by bdawes at, gregod at, cpdaniel at, john at