Не работает простейшая программа сделанная по руководству
Я искал руководства по написанию программ на C с использованием gettext и нашёл эту с федоры и эту. Пробовал делать оба варианта по инструкции (перевод делал и через терминал, и через poedit) , но всё равно программа выводила непереведённый текст. Текущий код такой
#include <stdlib.h>
#include <libintl.h>
#include <locale.h>
#define _(STRING) gettext (STRING)
int main()
{
setlocale (LC_ALL, "");
bindtextdomain ("main_6", getenv("PWD"));
textdomain ("main_6");
printf(_("translated"));
return 0;
}
А кусок текущего main_6.po
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: main_6.c:12
#, c-format
msgid "translated"
msgstr "переведённый"
Выводит просто translated. Запускал через терминал с флагами LANG=ru; LANG=ru_RU и меняя локаль в программе. Возможно проблема из-за того что работаю на виртуалке Ubuntu. Вот дерево в каталоге, немного сделал лишнего и ненужного по идее.
├── main
├── main_6
├── main_6.c
├── po
│ ├── main_6.pot
│ └── ru
│ ├── LC_MESSAGES
│ │ └── main_6.mo
│ ├── main_6.mo
│ └── main_6.po
└── ru
├── LC_MESSAGES
│ └── main_6.mo
├── main_6.mo
└── main_6.po