Привет всем. Мне необходимо получить список языков установленных в системе. С помощью кода, который привел ниже я могу получать текущий язык раскладки, а как получить список установленных языков ввода - ума не приложу.
XkbStateRec xkbState;
Display *display = XOpenDisplay(NULL);
XkbGetState(display, XkbUseCoreKbd, &xkbState);
Atom real_prop_type; int fmt;
unsigned long nitems, extra_bytes;
char *prop_data = NULL;
Atom rules_atom = XInternAtom(display, "_XKB_RULES_NAMES", False);
XGetWindowProperty(display, DefaultRootWindow(display), rules_atom, 0L, 1024,
False, XA_STRING, &real_prop_type, &fmt, &nitems, &extra_bytes, (unsigned char **) (void *) &prop_data);
QStringList names;
for(char* p=prop_data; p-prop_data < (long)nitems && p != NULL; p += strlen(p)+1) names.append( p );
if (names.count() > 3 ) names = names[2].split(",");
qDebug()<<names;
qDebug()<<names[xkbState.group];
XFree(prop_data);
XCloseDisplay(display);
languageLabel->setText(names[xkbState.group]);
И таким образом я получаю только сокращенное название языка (us,by,ru), а необходимо получать полное. Буду очень благодарен за помощь! С данной библиотекой никогда ранее не сталкивался, поэтому плохо понимаю, как ей пользоваться адекватно