Как установить локаль таким образом, чтобы подменялись только сообщения (gettext) и ни в коем случае не изменялся LC_NUMERIC?
При использовании только LC_ALL в числах десятичная точка во всех выводах превращается в запятую, что неприемлимо.
А такой вариант неработает - не переводятся сообщения:
setlocale(LC_ALL - LC_NUMERIC, "");
bindtextdomain("LambdaMach", "./locale");
textdomain("LambdaMach");