История изменений
Исправление Zubok, (текущая версия) :
Что касается XmMULTIBYTE_TEXT, то из многобайтовой строки в UTF-8 таки можно создать корректный экземпляр XmString, но только в UTF8-локали,
Вот и я так думаю. Что только локаль UTF-8 тебе даст результат. Когда ты делаешь XmStringCreate, ты ему сообщаешь «UTF-8». Сообщить такое же для XmStringGenerate() ты не можешь. Вот если бы у тебя была локаль ru_RU.UTF-8, то вот это «UTF-8» он бы взял, наверное, из нее.
Тебе нужно для XmStringGenerate() подбрасывать строчки в нужной кодировке динамически. То есть брать сообщения в нужной кодировке из какого-то ресурсного файла, название которого содержит локаль и charset и в котором надписи в нужной кодировке. И я так понимаю из разрозненных текстов, что именно так и была организована интернационализация в Motif. Ну или вариант - динамически. Вот при помощи gettext, например.
Исходная версия Zubok, :
Что касается XmMULTIBYTE_TEXT, то из многобайтовой строки в UTF-8 таки можно создать корректный экземпляр XmString, но только в UTF8-локали,
Вот и я так думаю. Что только локаль UTF-8 тебе даст результат. Когда ты делаешь XmStringCreate, ты ему сообщаешь «UTF-8». Сообщить такое же для XmStringGenerate() ты не можешь. Вот если бы у тебя была локаль ru_RU.UTF-8, то вот это «UTF-8» он бы взял, наверное, из нее.
Тебе нужно для XmStringGenerate() подбрасывать строчки в нужной кодировке динамически. То есть брать сообщения в нужной кодировке из какого-то ресурсного файла, название которого содержит локаль и charset и в котором надписи в нужной кодировке. И я так понимаю, что именно так и была организована интернационализация.