проблема в следующем: в программе (на C) вызывается:
bindtextdomain (PROGRAMM_NAME, TEXT_DOMAIN_DIR); textdomain (PROGRAMM_NAME); setlocale (LC_ALL, ""); ... sprintf (message_str, gettext ("This program was compiled with GStreamer (%d.%d.%d) and now running with GStreamer (%d.%d.%d)"), GST_VERSION_MAJOR, GST_VERSION_MINOR, GST_VERSION_MICRO, major, minor, micro);
в xxx.po файле (сгенерированном xgettext'ом) введён перевод для этой строки (в UTF-8) и в заголовке прописано "Content-Type: text/plain; charset=utf-8\n", "Content-Transfer-Encoding: 8bit\n"
далее сделан mo-файл (msgfmt'ом) и скопирован в нужный каталог.
после запуска программы в окружении LANG=ru_RU.UTF-8 - всё прекрасно, в ru_RU.KOI8-R и ru_RU.CP1251 - кракозябры (mc в этих окружениях работает по-русски (ну кроме UTF-8))
исправил в po-файле кодировку на koi8-r и переконвертировал его utf8-koi8r, скомпилил msgfmt'ом, скопировал в нужное место.
в ru_RU.KOI8-R - всё прекрасно, в ru_RU.CP1251 и ru_RU.UTF-8 - кракозябры.
пожалуйста, объясните, что не так.