LINUX.ORG.RU

gtk + можно ли рисовать текст с кирилицей?


0

0

...
   g_sprintf(buf,_("After proccess optimization sume is {%d,%d,%d,%d,%d}, detail numbers is {%d,%d,%d,%d,%d}, and Gante diagrame:"),
             summ[0],summ[1],summ[2],summ[3],summ[4],
             number[0]+1,number[1]+1,number[2]+1,number[3]+1,number[4]+1);
   s_y += 4 * step_y + step_y;
   gdk_draw_string(widget->window,
                 font,
                 widget->style->fg_gc[GTK_WIDGET_STATE(widget)],
                 s_x+10,s_y,buf);
...

Сделал для строки "After proccess..." перевод... так при отрисовки
 этого русского текста в drawingarea он в караулях... а в остальных 
элементах окна все ОК
★★★

Строки нужно передавать в кодировке UTF-8. Чтобы не зависеть от локалей в системах, на которых будет собираться программа, лучше сделать английское оформление и стандартную локализацию для русского языка "словариком", файл которого будет как раз в UTF-8 - как это сделать, сказано в стандартной документации Gtk+

erDiZz
()
Ответ на: комментарий от erDiZz

Ты не понял.... перевод находиться в папке /usr/share/locale/ru/LC_MESSAGES/programe.mo и он как раз в кодировке UTF-8...

Я не пойму почему он выводиться козяблами именно на drawingarea

Mrak ★★★
() автор топика
Ответ на: комментарий от welkam

GTK - gtk2-2.6.10-2

А шрифт я беру так: font = gtk_style_get_font(widget->style); где widget это drawingarea! А он скорее всего наследует текст от окна... а на окне другие виджеты где русский текст отображается нормально... что за хрень?

ЗЫ: Кстати сейчас перенес данную прогу под оффтопик... так на этой строчке при руссификации прога вообще валиться :(

Mrak ★★★
() автор топика
Ответ на: комментарий от Mrak

Скорее всего, просто ошибка в программе где-то с памятью, поэтому и работает неправильно.

Еще неплохо было бы не использовать deprecated функцию gdk_draw_string а вместо этого рисовать gdk_draw_layout.

welkam ★★
()
Ответ на: комментарий от welkam

>Скорее всего, просто ошибка в программе где-то с памятью

Если ошибка в программе, то почему она происходит когда я работаю уже с кирилицей?

Может ошибка в том, что g_sprintf с латиницей работает нормально, а когда я ей подставляю кирилицу в UTF-8, то она глючит?

Mrak ★★★
() автор топика
Ответ на: комментарий от Mrak

Все может быть, нужно проверять. Для начала хотя бы вывести туже строку на консоль и где-нибудь в интерфейсе. Хотя память может портится в районе шрифта.

Ну и код можешь показать, может, там очевидный ляп.

welkam ★★
()
Ответ на: комментарий от welkam

> Ну и код можешь показать

Конечно могу показать... прога типо опенсорц =))

Исходники + русификация лежит тут http://webfile.ru/631475

Можешь создать GTK 2.0 проект в anjuta, скопировать исходники и русифицацию, добавить в проект func.c func.h ru.po и все... или сделай как тебе удобнее...

Жду указания на ляпы ;)

Mrak ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.