I understand the "sparse message catalog" problem to be
that an ast optget usage string would be treated as
one string in the message catalog
however, this is not how libast::optget() interfaces with
the underlying message catalogs
almost all of the l10n strings in ast src are
arguments to libast::error() or libast::optget()
the error() strings are basically printf-style
strings that are used as keys into the message catalog
an ast layer is provided to map the strings to integral
indices for native message catalog apis that require indices
optget() breaks down the usage string into smaller
message catalog strings
the --keys option lists the message catalog strings
in C-style "..." strings, one per line
e.g.,
sum --keys 2>&1 | wc
shows 88 message catalog strings for a total of ~6K bytes
for the C locale
note that the long option names are also subject to l10n
for portability the C locale names are visible in all locales
-- Glenn Fowler -- at&t Research, Florham Park NJ --