Имеется одно дерево исходников, из которого собирается несколько бинарников. Программа на С++, для локализации текстовых строк предполагается использовать GNU gettext. Для сборки используется autotools - т.е. все стандартно.
Предполагается, что каждый бинарник будет иметь свой собственный домен (каталог сообщений), плюс использовать один общий, разделяемый между всеми бинарниками домен. Каким образом лучше и красивее всё это организовать?
Я столкнулся с небольшими сложностями, которые, я полагаю, уже давно и успешно решали другие разработчики :)
1. Инфраструктура gettext, которую генерирует autotools (файлы ./po/*) предполагает, что домен будет один (параметр DOMAIN в ./po/Makevars).
2. Было бы очень удобно в программе сначала "зарегистрировать" несколько каталогов сообщений, которые будут использоваться, и затем одной функцией искать строку для перевода сразу в этих нескольких каталогах. Вместо этого gettext предоставляет функции bindtextdomain/dgettext, вынуждая меня в каждом случае указывать домен, который должен использоваться, чего делать не хочется, т.к. интерфейс (макрос "_()") хочется оставить единообразным во всем коде всех модулей.