LINUX.ORG.RU

История изменений

Исправление 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 и в котором надписи в нужной кодировке. И я так понимаю, что именно так и была организована интернационализация.